TCPIP基本原理傳輸層課件_第1頁
TCPIP基本原理傳輸層課件_第2頁
TCPIP基本原理傳輸層課件_第3頁
TCPIP基本原理傳輸層課件_第4頁
TCPIP基本原理傳輸層課件_第5頁
已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

本章學習要求:掌握:端口、周知端口號、TCP地址、MSS、RTT、三次握手、套接字、慢啟動等概念;掌握:TCP的重傳機制原理掌握:用三次握手建立連接、關閉連接的原理掌握:流量及擁塞控制原理了解:TCP、UDP的校驗和原理了解:TCP、UDP報文格式了解:常用網(wǎng)絡命令中國科學技術大學遠程教育4-14.1

Internet傳輸層的基本原理傳輸層的功能目的:是在互聯(lián)網(wǎng)層提供主機數(shù)據(jù)通信服務的基礎上,向源主機和宿主機之間提供端到端可靠進程通信。功能:一是加強或彌補網(wǎng)絡層或互聯(lián)網(wǎng)層提供的服務;二是提供進程通信機制。端到端的通信:是由一段段點到點的通信構成的,端到端的協(xié)議建立在點到點的協(xié)議基礎之上,提供應用進程之間的通信,在其下層,是沒有應用進程整個概念的。端口號:傳輸層要區(qū)分收到的數(shù)據(jù)中的不同的應用進程,方法是為每個應用進程分配一個“端口號Port

Number”.某一臺主機上的某個應用進程由「主機IP地址、端口號」唯一標識端口號也稱為傳輸層訪問點TSAP。傳輸層要解決的問題還有:差錯控制、流量控制、排序和連接管理等問題。在TCP/IP的協(xié)議簇中的傳輸層協(xié)議有傳輸控制協(xié)議TCP,面向連接。用戶數(shù)據(jù)報協(xié)議UDP,面向無連接。中國科學技術大學遠程教育4-24.1.1

TCP服務TCP 為主機提供許多服務。

TCP 是一個面向連接的協(xié)議,須提供會話管理和數(shù)據(jù)單元的可靠傳輸。IP是一個無連接協(xié)議,它依靠TIP提供可靠的數(shù)據(jù)傳輸。TCP提供兩種重要服務:差錯控制和流量控制。TCP差錯和流量控制的一個獨特要素是它沒有否定確認。它只發(fā)送肯定確認。如果接收到的序列有錯(被校驗和檢測的),該數(shù)據(jù)單元就從緩沖區(qū)中刪去。 TCP 不向源主機返回任何應答。 源主機在發(fā)送數(shù)據(jù)單元時設置一個確認計時器。當發(fā)生錯誤(校驗和錯或其它錯)時,計時器將超時,源主機將重傳數(shù)據(jù)單元。同樣的機制也適用于接收數(shù)據(jù)單元的順序出錯。計時器并非固定時長,它是可變的,基于往返時間,往返時間包括前向時間(即到達目的的時間)、目的處理時間和反向延遲時間(即確認到達源主機的時間)。中國科學技術大學遠程教育4-3發(fā)起一個會話一臺計算機中的應用程序如果需要向其它計算機中的應用程序發(fā)送信息,它將把數(shù)據(jù)傳遞給傳輸層。傳輸層的TCP從應用程序那里接收到數(shù)據(jù),然后將其分割成較小的報文段。TCP

將這些報文段封裝在IP數(shù)據(jù)報中,這些數(shù)據(jù)報將在網(wǎng)絡中路由。中國科學技術大學遠程教育4-44.1.2

服務質(zhì)量(QoS)連接建立延遲:傳輸連接請求和傳輸確認收到之間的時間延遲。連接建立失敗的概率:在最大建立延遲時間之內(nèi),連接無法建立的概率。吞吐率:每秒傳輸?shù)臄?shù)據(jù)量:從源主機到宿主機的吞吐率和從宿主機到源主機的吞吐率是分別衡量的。傳輸延遲:信息從源主機傳輸至宿主機的持續(xù)時間,傳輸延遲也是雙向分別衡量的。殘余誤碼率:一段特定時間內(nèi)丟失或混亂的數(shù)據(jù)量占總數(shù)據(jù)量的比率。安全保護:用于防止未經(jīng)授權的第三方讀取或修改傳輸?shù)臄?shù)據(jù)。優(yōu)先級:確保重要應用的數(shù)據(jù)優(yōu)先得到傳輸服務。中國科學技術大學遠程教育4-54.1.3

傳輸層端口Internet傳輸層與互聯(lián)網(wǎng)層功能上的最大區(qū)別是前者提供進程通信能力,而后者不提供進程通信能力。為了提供進程通信功能,TCP/IP協(xié)議提出了端口(port)的概念,用于標識通信的進程。端口實際上是一個抽象的軟件結構(包括一些數(shù)據(jù)結構和I/O緩沖區(qū))。應用程序(進程)通過系統(tǒng)調(diào)用與某端口建立關聯(lián)(binding)后,傳輸層傳給該端口的數(shù)據(jù)都被相應的應用進程所接收。端口又是應用進程訪問傳輸服務的入口點。中國科學技術大學遠程教育4-6套接字套接字在要領上與文件句柄類似,因為其功能是作為網(wǎng)絡通信的終結點。一個應用程序通過定義三部分來產(chǎn)生一個套接字:主機IP地址、服務類型(面向連接的服務是TCP,無連接服務是UDP)、應用程序所用的端口。中國科學技術大學遠程教育4-7端口號分配全局分配由一個公認的中央機構根據(jù)用戶需求統(tǒng)一進行分配,并將結果公布于眾。全局端口分配的弊端是在于不能適應大量且迅速變化的端口使用環(huán)境。本地分配或動態(tài)聯(lián)編當某進程需要訪問傳輸服務時,它向主機操作系統(tǒng)提出動態(tài)申請,操作系統(tǒng)根據(jù)主機狀態(tài)為該進程分配一個本地唯一的端口號,然后該進程再通過系統(tǒng)調(diào)用將自己與相應的端口號進行關聯(lián)操作。本地分配方式不受網(wǎng)絡規(guī)模的限制,但其它主機仍然無法獲知分配情況,進程之間的通信依然難以建立。中國科學技術大學遠程教育4-8Internet端口號分配Internet將端口分為兩部分,一部分是保留端口,一部分是自由端口。其中保留端口只占很小的數(shù)目,它以全局方式進行分配,對應于前面所討論的服務器進程。在Internet中,每一個標準的服務器進程都擁有一個全局公認的端口號,不同機器上相同的服務器進程,其端口號相同。TCP和UDP都規(guī)定,小于256的端口號才能作為保留端口。自由端口以本地方式進行分配。當某進程要與遠地進程通信之前,首先申請一個自由端口號并與之進行關聯(lián)操作,然后與遠地進程進行通信。中國科學技術大學遠程教育4-9TCP和UDP的保留端口中國科學技術大學遠程教育4-10常用周知端口號列表端口號協(xié)議關鍵詞UNIX關鍵詞描述1TCPTCPMUX-TCP復用器7TCP/UDPECHOEcho回送9TCP/UDPDISCARDDiscard丟棄15TCP/UDP-Netstat網(wǎng)絡狀態(tài)程序20TCPFTP-DATAftp-data文件傳輸協(xié)議(數(shù)據(jù))21TCPFTPftp文件傳輸協(xié)議22TCP/UDPSSHSsh安全shell遠程登錄23TCPTELNETtelnet遠程登錄25TCPSMTPSmtp簡單郵件傳輸協(xié)議37TCP/UDP-Time時間42TCP/UDPNAMESERVERName主機名稱服務器43TCP/UDPNICNAMEWhois是誰53TCP/UDPDOMAINNameserver域名服務器67UDPBOOTPSBootps引導協(xié)議服務器68UDPBOOTPCbootpc引導協(xié)議客戶69UDPTFTPTftp簡單文件傳輸協(xié)議79TCPFINGERFingerFinger中國科學技術大學遠程教育4-11常用周知端口號列表(續(xù))端口號協(xié)議關鍵詞UNIX關鍵詞描述80TCPHTTPhttp超文本傳輸協(xié)議88TCPKERBEROSKerberosKerberos協(xié)議93TCPDCP-設備控制協(xié)議101TCPHOSTNAMEHostnameNIC主機名字服務器110TCPPOP3Pop3郵局協(xié)議v3111TCP/UDPSUNRPCSunrpcSun

Microsystem

RPC119TCPNNTPnntpUSENET新聞傳送協(xié)議123UDPNTPNtp網(wǎng)絡時間協(xié)議139TCPNETBIOS-SSN-NETBIOS會話協(xié)議161UDP-Snmp簡單網(wǎng)絡管理協(xié)議162UDP-Snmp-trapSNMP陷阱389TCPLDAPLdap輕量目錄訪問協(xié)議443TCPHTTPShttps安全HTTP協(xié)議513UDP-WhoUNIX

rwho

daemon514UDP-Syslog系統(tǒng)日志525UDP-TimedUNIX

time

daemon546TCPDHCP-CLIENTDhcp-slient動態(tài)主機配置協(xié)議客戶中國科學技術大學遠程教育4-124.2

用戶數(shù)據(jù)報協(xié)議UDP

(User

Datagram

Protocol)特點建立在IP協(xié)議之上唯一增加的能力是提供協(xié)議端口,實現(xiàn)進程通信UDP使用IP協(xié)議提供的不可靠的數(shù)據(jù)報服務,通過端口號識別互相通信的實體。UDP提供的是無連接的、不可靠的用戶數(shù)據(jù)報服務面向交易型應用機制端系統(tǒng)使用UDP協(xié)議相互通信時,UDP協(xié)議只負責將應用程序傳給IP層的數(shù)據(jù)發(fā)送出去,但是并不保證它們能到達。如傳輸中數(shù)據(jù)出錯,UDP協(xié)議不負責重傳,而由更高層負責。當數(shù)據(jù)正確到達后,接收端不負責確認。也由更高層負責中國科學技術大學遠程教育4-13UDP報文格式UDP校驗和覆蓋了除報文頭外的一個附加頭部,包括:源IP地址、目的IP地址、協(xié)議、UDP長度目的:驗證UDP數(shù)據(jù)報是否傳到正確的目的端中國科學技術大學遠程教育4-14UDP頭結構定義為:struct

udphdr{中國科學技術大學遠程教育4-15u_int16_tsource;//發(fā)送主機的UDP端口u_int16_tdest;//目標主機的UDP端口u_int16_tlen;//UDP消息的長度u_int16_tcheck;//

校驗和};UDP的校驗和其中源IP地址和目標IP地址來自于IP分組頭,UDP協(xié)議號為17,長度是UDP頭結構中的長度相同。偽頭結構只用于校驗和,使用

偽頭結構進行校驗的目的是為了進一步證實數(shù)據(jù)被送到正確的目的地。收方UDP校驗出收到的數(shù)據(jù)有錯后,只是簡單地丟棄數(shù)據(jù),而不向源報告錯誤。中國科學技術大學遠程教育4-16UDP計算校驗和時,用到一個12字節(jié)的偽頭結構。見下圖示:UDP的偽頭結構0

31源IP地址目的IP地址00000000協(xié)議號(17)UDP長度UDP的應用范圍UDP不用于那些使用虛電路的面向連接的服務,而主要用于那些面向查詢---應答的服務,例如NFS。相對于FTP或Telnet,這些服務需要交換的信息量較小。使用UDP的服務包括NTP(網(wǎng)落時間協(xié)議)和DNS(DNS也使用TCP)。中國科學技術大學遠程教育4-174.3

TCP協(xié)議特點面向連接傳輸層協(xié)議,非常復雜提供高可靠性服務一次傳輸交換大量報文例子文件傳輸、遠程登錄等中國科學技術大學遠程教育4-184.3.1

TCP報文格式源端口和目的端口:各2個字節(jié),表示源和目的端口號。發(fā)送序號:4字節(jié),指出報文中數(shù)據(jù)在發(fā)送方的數(shù)據(jù)流中的位置(以字節(jié)編號)。確認序號:4字節(jié),指接收方希望下一次接收的字節(jié)序號。TCP頭長:4比特,指出以32比特為單位的報文頭部長度。該域是針對變長的“選項”域設計的。緊急標志位URG:當

URG=1時,表明此報文是緊急數(shù)據(jù),應盡快傳送出去。確認標志位ACK:只有當ACK=1時確認序號字段才有意義。當ACK=0時,確認序號沒有意義。中國科學技術大學遠程教育4-19急迫標志位PSH(PuSH):當PSH=1時,請求遠地TCP軟件將該報文立即送給應用程序。重建標志位RST(ReseT):當RST=1時,表明出現(xiàn)嚴重差錯,必須釋放連接,然后重新建立連接。同步標志位SYN:當SYN=1而ACK=0時,表明這是一個建立連接請求報文,若對方同意建立該連接,則應在發(fā)回的報文中使將

SYN和ACK標志位同時置1。終止標志位FIN(Final):當FIN=1時,表明數(shù)據(jù)已經(jīng)發(fā)送完畢,并請求釋放連接。窗口:2字節(jié)。該字段實際上是接收方告訴發(fā)送方它的接收窗口大小,其單位為字節(jié)。窗口域主要是用于流量控制和擁塞控制。校驗和:2字節(jié)。校驗和也和UDP協(xié)議一樣,使用偽頭校驗,只不過協(xié)議號為6??蛇x項:長度可變。TCP只規(guī)定了一種選項,即最長報文段MSS(Maximum

Segment

Size)。中國科學技術大學遠程教育4-20TCP層格式中的控制信息字段控制信息字段:在報頭中按照從左到右的順序URG、ACK、PSH、RST、SYN、FIN,總共占用了6比特,對TCP數(shù)據(jù)流的發(fā)送和接收起到控制的作用。在這些控制信息標志中,SYN、FIN占用一個序列號。其余4個控制標志則不占用序列號空間。URG:緊急指針有效

ACK:確認字段有效

PSH:推送功能

RST:復位SYN:對各幀序列號進行同步FIN:不再有來自發(fā)送方的數(shù)據(jù)選項選項列表結束:指示選項列表的結束無操作:用于各個選項之間段最大尺寸:指明了發(fā)送此段的TCP上可接收的段的最大尺寸,該字段只在初始連接請求階段被發(fā)送出去(SYN置位時)。TCP必須能夠?qū)崿F(xiàn)發(fā)送和接收最大分段尺寸選項。如果在連接建立階段沒有收到該選項,則TCP必須采用默認的發(fā)送MSS=536中國科學技術大學遠程教育4-214.3.2

TCP的超時重傳機制背景TCP是一個可靠的數(shù)據(jù)傳輸協(xié)議,它要求接收方收到TCP段后必須給予應答但TCP只能用

acknowledgement

number域中的序號來表示該序號前的所有字節(jié)都已正確接收,而沒有其他否定應答或選

擇重發(fā)的功能。也就是說,當接收方TCP實體收到一

個出錯的TCP段后,只是將其丟棄而不作應答,因而

發(fā)送方必須采用超時重傳的機制來重發(fā)久未應答的段。由于在一個巨大的互聯(lián)網(wǎng)絡中,TCP段可能在不同速

率的物理線路上傳輸,信源和信宿間的距離可近可遠,而且每時每該網(wǎng)絡中的擁塞情況也不同,因此要選擇

一個合適的超時時間并不太一件容易的事。中國科學技術大學遠程教育4-22原理TCP使用一種動態(tài)算法隨時調(diào)整超時間隔。對于每個連接,都維持一個變量RTT。RTT

(Round-trip

Time)是當前發(fā)送方到接收方來回時間的最佳估算值。每當發(fā)送了一個段,發(fā)送方即啟動一個計時器,一方面用來測量從發(fā)送TCP段到收到應答的來回時間,另一方面當超過估算的超時間隔后即進行重發(fā)。算法每當收到一個應答,TCP就從計時器中得到當前的來回時間

M,然后利用公式:RTT=α*

RTT+(1-α)M估算出新的R

T

T值,

α是一個平滑因于,通常取為7/8。因為實際的來回時間同估算值總會有一個偏差,因此利用公式D=αd+(1-α)|RTT-M|計算出實際來回時間同RTT的偏差范圍,這里的α和估算RTT的α可能不同。最后利用公式Timeout=RTT+4D

確定出當前的超時間隔。評價這種算法在網(wǎng)絡擁塞或收發(fā)雙方距離較遠時能夠自動延長超時間隔,減少不必要的重發(fā),而在網(wǎng)絡較為空閑或雙方距離較近時又能迅速減小超時間隔,及時重發(fā)出錯的段,從而加快數(shù)據(jù)傳輸速度。中國科學技術大學遠程教育4-234.3.3

TCP連接TCP為每個數(shù)據(jù)流初始化并維護特定的狀態(tài)信息的組合,稱為一個連接。每個連接由標識該連接兩端的一對套接字唯一確定,套接字是由端口號和IP地址確定,在全網(wǎng)范圍內(nèi)是唯一的。當兩個進程希望通信時,它們的TCP必須首先建立一個連接,通信完成時,該連接要終止或關閉,釋放資源。TCP連接的建立通過“三次握手”來建立一條連接,以減少錯誤連接的可能性。利用TCP中的SYN同步標志位,啟動一條連接的建立。利用TCP中的RST復位標志位,中止異常連接的建立。TCP連接的關閉關閉(CLOSE)操作的意思是“我沒有更多的數(shù)據(jù)要發(fā)送”,通過TCP中的FIN控制位啟動關閉連接的操作。負責關閉的用戶可以繼續(xù)接收(RECEIVED)操作,直到它被告知另一方已經(jīng)關閉接收到關閉的用戶可以繼續(xù)發(fā)送(SEND)操作,使得發(fā)出關閉的用戶能夠聽到該連接成功的關閉了。中國科學技術大學遠程教育4-24連接請求(SYN=1,seq=client_isn)同意連接(SYN=1,seq=server_isn,Ack=client_isn+1)確認(SYN=0,seq=client_isn,ack=server_isn+1)客戶中國科學技術大學遠程教育4-25服務器TCP建立連接的三次握手時間時間TCP連接的狀態(tài)一條TCP連接在其生命期內(nèi)會經(jīng)歷一系列的狀態(tài)。這些狀態(tài)有:

LISTEN:正在等待一個來自任何遠程TCP和端口的連接請求。SYN-SENT:在已經(jīng)發(fā)出一個連接請求后正在等待一個匹配的連接請求

SYN-RECEIVED:在已經(jīng)收到并發(fā)出了一個連接請求后等待一個證實連接請求的確認。ESTABLISHED:一個打開的連接。通過此連接接收到的數(shù)據(jù)能夠被傳遞到用戶。該狀態(tài)是此連接的數(shù)據(jù)傳輸階段的正常狀態(tài)。FIN-WAIT-1:或正在等待一個針對先前發(fā)送的連接終止請求的確認。

FIN-WAIT-2:正在等待一個來自遠程TCP的連接終止請求。

CLOSE-WAIT:正在等待一個來自本地用戶的連接終止請求CLOSING:正在等待一個來自遠程TCP的連接終止請求的確認。LAST-ACK:正在等待一個先前發(fā)往遠程TCP的連接終止請求的確認(包括對其連接終止請求的確認)TIME-WAIT:等足夠的時間以確保遠程TCP接收到了其連接終止請求的確認

CLOSED:根本不存在連接的狀態(tài)。中國科學技術大學遠程教育4-26TCP連接端點TCP連接端點TCP把端點定義為一對整數(shù),即(host,port),其中

host是主機的IP地址,而port則是該主機上的TCP端口號。TCP連接是用它的兩個端點來表示;中國科大的一臺IP地址為80的主機與清華大學的一臺地址為2的主機之間建立連接的話,它可能會由端點定義成:(80,1234)和(2,25)中國科學技術大學遠程教育4-27TCP連接的建立過程服務→←→客戶TCP器TCPCLOSELISTENSYN-SENT→

<SEQ=100><CTL=SYN> SYN-RECEIVEDESTABLISHED←<SEQ=300><ACK=101><CTL=SYN,ACK> SYN-RECEIVEDESTABLISHED→<SEQ=101><ACK=301><CTL=ACK> ESTABLISHEDESTABLISHED→<SEQ=101><ACK=301><CTL=ACK><DATA>

→ ESTABLSHED說明:TCP

A、B在初始時分別是處于CLOSED和LISTEN狀態(tài)。A端首先發(fā)送一個SEQ=100的初始化序列,SYN置位中,國占科學用技一術個大序?qū)W列遠號程教;育B端在收到該請求后,發(fā)送一個4-序28

列號為300,確認號為101的段,這個段的SYN、ACK均置位,說明B端的初始發(fā)送序列號為300,同時又確在TCP連接的生存期中,通過多種狀態(tài)進行傳輸。這些狀態(tài)稱為TCP狀態(tài)。一個客戶機按照下列順序經(jīng)歷一系列的TCP狀態(tài)。如下圖示:中國科學技術大學遠程教育4-29CLOSEFIN_WAIT_1TIME_WAITFIN_WAIT_2SYN_SENTESTABLISHED中國科學技術大學遠程教育4-30接收SYN和ACK發(fā)送ACK發(fā)送FIN接收ACK不發(fā)送接收FIN發(fā)送ACK等待30秒客戶主機TCP的狀態(tài)順序于客戶機一樣,服務器也經(jīng)歷各種TCP狀態(tài)。如下圖示:中國科學技術大學遠程教育4-31CLOSEESTABLISHEDLAST_ACKCLOSED_WAITLISTENSYN_RCVD中國科學技術大學遠程教育4-32接收SYN發(fā)送SYN和ACK接收CAK不發(fā)送接收FIN不發(fā)送發(fā)送FIN接收ACK不發(fā)送服務器TCP的狀態(tài)順序TCP連接的關閉過程…

CLOSE-←

CLOSE-(關閉)←→

CLOSEDTCP

ATCP

BESTABLISHEDESTABLISHED(關閉)FIN-WAIT-1

<SEQ=100><ACK=300><CTL=FIN,

ACK>WAITFIN-WAIT-2

<SEQ=300><ACK=101><CTL=ACK> WAIT4.TIME-WAIT←

<SEQ=300><ACK=101><CTL=FIN,

ACK>LAST-ACKTIME-WAIT→<SEQ=101><ACK=301><CTL=ACK>(2

MSL)關閉說明:TCP

A啟動TCP關閉某連接的,TCP

B收到一個FIN段,進入CLOSEWAIT狀態(tài)。在第3行中,如果TCP

B還有數(shù)據(jù)要發(fā)送,在報頭之后,會有數(shù)據(jù),同時對TCP

A發(fā)來的FIN確認(FIN占用一個序列號)。發(fā)送完數(shù)據(jù)后,在第4行,TCP

B再發(fā)送一個FIN段,在沒有收到確認之前是4L-A33ST-ACK(等待發(fā)中往國遠科程學T技CP術的大FI學N的遠確程認教)育狀態(tài)。第5行中,TCP

B在收到了它發(fā)出的FIN的確認后,進入CLOSED狀態(tài),TCP

A在TCP關閉連接為什么采用三次握手法正常關閉時,一端用戶發(fā)出一個

DR(釋放連接請求)TPDU,首先要求釋放連接。當該TPDU到達對方后,收方也回送一個DR

TPDU,并同時啟動定時器以防止其DRTPDU丟失。當應答方的DR到達后,最初提出釋放連接的一方又

回送一個ACK(確認)TPDU,并斷開連接。最后,當ACKTPDU抵達目的地后,接收方也釋放連接。釋放一個連接意味著傳輸實體從其記載所有接通的連接的表中刪除該連接的有關信息并設法通知該連接的所有者(傳輸用戶)。中國科學技術大學遠程教育4-34圖b表示,如果最后的ACK(確認)TPDU丟失,就需要用定時器來補救。當定時器超過時限后,連接將被強行釋放。圖c表示,當?shù)诙€DR(響應的DR)丟失的情形。這時,首先提出釋放連接的用戶將不能收到所期待的響應,待到定時器超時,再次開始要求釋放連接。從圖c中可以看到這種情況下是如何工作的,假設第二次沒有任何TPDU丟失,并且所有TPDU都正確、及時地到達目的地。最后一種情況如圖d所示。除了假設由于丟失TPDU使所有重發(fā)

DR的嘗試均失敗以外,其他情況與圖c完全相同。這樣,經(jīng)過N次嘗試后,發(fā)送方(提出釋放連接的一方)只好放棄努力并斷開連接。同時,接收方(被動釋放連接的一方)因為定時器超時也釋放掉連接??梢?,采用三次握手法關閉連接,能解決經(jīng)常出現(xiàn)的非正常關閉

的情形。但理論上當?shù)谝粋€DR和所有N次重發(fā)均被丟失的情況下,該協(xié)議便會失敗。因為此時發(fā)送方將放棄重發(fā)并釋放連接,而另

一方卻對對方的釋放連接企圖一無所知,而處于連接有效狀態(tài)。

這種情況將導致一個半接通的連接。中國科學技術大學遠程教育4-35消除半接通連接的可行方法消除半接通連接的一種方法是,如果在一段時間內(nèi)沒

有收到任何TPDU,連接便自動釋放。這樣,如果一方已經(jīng)釋放了連接,那么另一方將檢測不到對方的活動

因而也斷開連接。當然,如果引進這一規(guī)則,就需要

為每個傳輸實體設置一個定時器,每當收到一個TPDU時都要使定時器停止并重新啟動。如果該定時器超時,就發(fā)送一個偽TPDU,目的只是不讓對方釋放連接。

另一方面,如果在一個處于空閑狀態(tài)的連接上連續(xù)丟

失了很多的偽TPDU,那么連接的雙方將會先后釋放連接。中國科學技術大學遠程教育4-36最大報文段長度MSS應用程序進程之間建立起連接后,就將進行真正的數(shù)據(jù)傳輸。傳輸層從應用程序接收的數(shù)據(jù)將被分割為更小的報文段。在接收端,這些報文段被重組。由于能夠重組的數(shù)據(jù)有其最大限制,所以報文段必須有大小的限制。最大報文長度(MSS):報文段大小的上限。TCP默認

MSS是536字節(jié)。因此,TCP接收到應用程序的數(shù)據(jù)后,將其分割的報文段不能超過536字節(jié)這一上限。在連接建立期間,TCP提供一些選項,以指明連接可接受的MSS。這個MSS是接收方發(fā)送給發(fā)送方的,指明了服務器可能接收的最大值X。X值既可以大于也可以小于默認的MSS值。中國科學技術大學遠程教育4-374.3.4

TCP可靠傳輸TCP提供面向連接的字節(jié)流傳輸。面向連接的傳輸協(xié)議對可靠性的保證首先是它在進行數(shù)據(jù)傳輸前,必須在通信雙方建立一條連接。

面向連接的傳輸協(xié)議要求對每一個報文都要進行確認,未經(jīng)確認的報文被當作是錯誤報文。流相當于一個管道,發(fā)送端從管道的一端放入什么,接收端就可以照原樣取出什么。TCP連接是全雙工和點到點的。全雙工意味著可以同時進行雙向傳輸。點到點的意思是每個連接只有兩個端點。TCP不支持組播或全廣播。中國科學技術大學遠程教育4-38TCP采用的可靠性技術可靠性傳輸包括以下四個含義:差錯控制序列控制丟失控制重復控制中國科學技術大學遠程教育4-394.3.5

TCP流量控制及擁塞控制流量控制TCP采用信用量機制進行流量控制。當建立一個連接時,兩端都為連接分配一塊接收緩沖區(qū)。發(fā)方數(shù)據(jù)到達時先放到緩沖區(qū)中,然后再發(fā)送;收方收到數(shù)據(jù)后,也是先放進緩沖區(qū),然后在適當?shù)臅r候由TCP實體交給應用程序處理。由于每個連接的接收緩沖區(qū)大小是固定的,當發(fā)送力發(fā)送過快時,會導致緩沖區(qū)溢出造成數(shù)據(jù)丟失,因此接收方必須隨時通報緩沖區(qū)的剩余空間,以便發(fā)送方調(diào)整流量。接收方通過將緩沖區(qū)的剩余空間大小放入window

size域來通知發(fā)送方,發(fā)送方每次發(fā)送的數(shù)據(jù)量不能超過window

size中指定的字節(jié)數(shù)。當window

size為0時,發(fā)送方必須停上發(fā)送。當接收方將數(shù)據(jù)交給應用程序后,發(fā)送一個ACK段(稱窗口更新)來告知發(fā)送方新的接收窗口大小。中國科學技術大學遠程教育4-40流量控制機制TCP使用序列號(Sequence

Number)、確認號(Acknowledge

Number)和窗口尺寸(Window

Size)相結合的方法來保證數(shù)據(jù)傳遞的可靠性。接收機端根據(jù)可用的緩沖區(qū)空間大小(流量控制)來決定窗口尺寸(以字節(jié)計算)。發(fā)送端統(tǒng)計出發(fā)送的字節(jié)數(shù),并且在接收到確認號后只發(fā)送“與窗口相當”的數(shù)據(jù)字節(jié)。一旦窗口中前面部分報文得到了確認,則窗口向前滑動相應的位置。TCP把數(shù)據(jù)當做字節(jié)流來看待。1

2

3

4

5

6

7

8

9

10窗口當前位置

下一個可發(fā)送的報文中國科學技術大學遠程教育4-41其中:1、2、3是已經(jīng)發(fā)送且得到確認的,4、5為已經(jīng)發(fā)送,但至少4是未得到確認的如該圖中為窗口大小為4,此時,如果5得到了確認,窗口不能向前滑動,在4和5都得到了確認后,而6還未得到確認時,窗口可以一次向前滑動兩個位置。在接收端,窗口內(nèi)的報文為可以接受的報文,窗口前的報文為已經(jīng)收到,且已經(jīng)發(fā)回確認的報文,不能接收;窗口后面多個報文則要等待窗口滑動后,落入到窗口之中,才能接收。決定滑動窗口大小的因素決定滑動窗口大小的因素,包括網(wǎng)絡的帶寬、可靠性以及需要傳輸?shù)臄?shù)據(jù)量。

Windows

NT的TCP滑動窗口,其默認窗口大小為8760,每接收兩段信息就發(fā)回一個確認。TcpWindowSize

規(guī)定滑動窗口的大小參數(shù),位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小為8760。ForwardBufferMemory

位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小為74240=50*1480DefaultTTL位于

HKEY_LOCAL_MACHINE\CurrentControlSet\Services\TCPIP\Parameters下,缺省大小為32秒重發(fā)計時器(retransmit

timer):在重新發(fā)送數(shù)據(jù)包之前將等待ACK的時間??稍谧员碇行薷闹匕l(fā)次數(shù),缺省為5次。缺省起始時間為1秒。重試時間分別為1秒;第一次失敗后的2秒;第二次失敗后的4秒;第三次失敗后的8秒;第四次失敗后的16秒。延遲ACK計時器(delayed-ACK

timer):定義:在重新發(fā)送數(shù)據(jù)包之前將等待ACK的時間ACK定時器的延遲為硬編碼200ms,為第一次重發(fā)計時器的1/5。中國科學技術大學遠程教育4-42擁塞控制為了進行擁塞控制,僅有一個接收窗口是不夠的,發(fā)送方還必須維持一個擁塞窗口。發(fā)送窗口必須是接收窗口和擁塞窗日中較小的那一個。和接收窗口一樣,擁塞窗口也是動態(tài)可變的。連接建立時,擁塞窗口被初始化成該連接支持的最大段長度,然后TCIP實體發(fā)送一個最大長度的段;如果這個段沒有超時,則將擁塞窗口調(diào)整成兩倍最大段長度,然后TCP發(fā)送兩倍最大長度的段。每當發(fā)送出去的段都及時地得到應答,就將擁塞窗口的大小加倍,

直至最終達到接收窗口大小或發(fā)生超時,這種算法稱為慢啟動。如果發(fā)生了超時,TCP實體將一個門限參數(shù)設置成當前擁塞窗口的一半,然后將擁塞窗口重新初始化長最大段段長度,再一次執(zhí)行慢啟動算法,直至擁塞窗口大小達到設定的門限值;這時減慢擁塞窗口增大的速率,每當發(fā)送出去的段得到了及時應答,就將擁塞窗口增加一個最大段長度,如此擁塞窗呈現(xiàn)線性增大直至達到接收窗口或又發(fā)生超時。當擁塞窗口達到接收收窗口時就不再增大,此后一直保持不變,除非接收窗門改變或又發(fā)生超時;如果發(fā)生超時則使用上述擁塞控制算法重新確定合適的擁塞窗口大小。中國科學技術大學遠程教育4-43TCP與上層用戶和低層協(xié)議的接口上層用戶和TCP的接口詳細完整的模型在提供互操作通信軟件方面,TCP除了接收命令,還要返回信息給它服務的進程上層用戶和TCP之間的接口命令SEND(發(fā)送)CLOSE(關閉)ABORT(中止)OPEN(打開)RECEIVE(接收)STATUS(狀態(tài))TCP和IP的接口TCP通過調(diào)用一個低層協(xié)議模塊,在一個網(wǎng)絡中進行實際的發(fā)送和接收信息。如果低層協(xié)議是IP,它為一個TOS和TTL提供了自變量,TCP為這些自變量使用了自己的設置。任何低層協(xié)議必須提供源地址、目的地址和協(xié)議字段,以及確定“TCP長度”的一些方法,還要提供與IP功能等同的服務和在TCP校驗和中使用的部分。中國科學技術大學遠程教育4-444.3.6

TCP與UDP的區(qū)別TCP(Transmission

Control

Protocol):為典型的傳輸大量數(shù)據(jù)或需要接收數(shù)據(jù)許可的應用程序提供連接定向和可靠的通信。UDP

(User

DatagramProtocol):提供無連接的通信,并不保證數(shù)據(jù)包被發(fā)送到。典型的即時傳輸少量數(shù)據(jù)的應用程序使用UDP。應該說可靠的發(fā)送是應用程序的責任。中國科學技術大學遠程教育4-45TCPUDP是否連接面向連接無連接應用場合傳輸大量數(shù)據(jù)即時傳輸少量數(shù)據(jù)傳輸可靠性可靠的不可靠的傳輸速度慢快4.4

r-services中國科學技術大學遠程教育4-46設遠程主機是A,A要用rlogin登錄到主機B。當A上的用戶啟動了rlogin,B上的rlogind在B上的/etc/passwd中檢查是否有這個用戶名,如果沒有則拒絕這次遠程訪問。在/etc/hosts.equiv中檢查遠程主機的主機名,若有A的名字,則允許這次訪問。若在/etc/hosts.equiv中沒有A的名字,則在B的遠程用戶的起始目錄中的.rhosts文件中是否有遠程主機B的名字。如果.rhosts文件中有遠程主機B的名字的項并且該項后沒有用戶名,則允許這次訪問。如果.rhosts文件中有遠程主機B的名字的項、該項后有用戶名并且該項后的用戶名中有這個遠程用戶,則允許這次訪問。如果.rhosts文件中有遠程主機B的名字的項、該項后有用戶名并且該項后的用戶名中沒有這個遠程用戶,則要求用戶輸入口令,如果口令正確則允許這次訪問,否則拒絕這次訪問。4.4.1

TCP/IP網(wǎng)絡系統(tǒng)命令rwho命令:和who命令的功能很相似。它顯示網(wǎng)絡中的每個系統(tǒng)的當前注冊的用戶。$rwhoviolet

robert:tty1

Sept

1010:34garnet

chris:tty2

Sept

10

09:22命令ruptime:可以顯示網(wǎng)絡中的每個系統(tǒng)的信息。此信息能顯示出每個系統(tǒng)是如何執(zhí)行。ruptime顯示系統(tǒng)是否運行,它運行了多久,系統(tǒng)中的用戶數(shù)和系統(tǒng)在最后5、10和15分鐘內(nèi)的系統(tǒng)負荷。$ruptimeviolet

up

11+04:10,

8

users,

load

1.20

1.10garnet

up

11+04:10,

20

users,

load

1.50

1.30中國科學技術大學遠程教育4-47命令.rhosts:用.rhosts文件控制使用TCP/IP命令對您帳號的訪問。用戶能用標準的編輯器象Vi來創(chuàng)建他們帳號中的.rhosts文件。它

必須位于用戶的主目錄。下面的例子中,使用者顯示文件.rhosts文件的內(nèi)容。$cat.rhostsgarnet

chrisciolet

robert.rhosts文件允許用戶不提供口令而訪問系統(tǒng)。如果需要禁止此用戶訪問,只須簡單地從文件.rhost中刪除系統(tǒng)名和用戶注冊名。如果一個用戶的注冊名和系統(tǒng)名在文件.rhost中,那么此用戶就能不提供口令直接訪問系統(tǒng)。并不是所有的遠程注冊操作都需要這種訪問形式;但一些遠程命令要求有.rhosts文件,象遠程復制文件或遠程執(zhí)行Linux命令。如果您想在遠程系統(tǒng)的帳號中使用這些命令,此帳號的.rhosts文件中必須有您的注冊名和系統(tǒng)名。通過.rhosts對某一系統(tǒng)進行訪問時,也允許您使用TCP/IP命令直接訪問系統(tǒng)中您的其他帳號。而不需要先注冊到這些帳號中。可以把系統(tǒng)中您的其他帳號做為當前注冊帳號的擴展。不管文件在的哪個賬號下,都可以用frcp命令從一個目錄復制到另一個目錄。中國科學技術大學遠程教育4-48命令rlogin:要訪問別的系統(tǒng)中別的帳號,首先要注冊到您的系統(tǒng)中,接著通過網(wǎng)絡遠程注冊到帳號所在的系統(tǒng)中。用命令r

login可以遠程注冊支別的系統(tǒng)。命令的參數(shù)應是一個系統(tǒng)名。命令將把您連接到另一個系統(tǒng)中并開始注冊的過程.用rlogin的注冊過程和一般的注冊過程有所不同,用rlogin時用戶不被提示輸入注冊名。rlogin假設您的本地系統(tǒng)中的注冊名和遠程系統(tǒng)中的一致。所以象上面執(zhí)行r

login命令時,您將馬上被提示輸入口令。輸入口令后,就可進入遠程系統(tǒng)各的帳號。用rlogin假設注冊名是相同的,因為大多數(shù)的人用rlogin訪問別的系統(tǒng)中的注冊名一般和本地的注冊名相同。然而,當遠程系統(tǒng)中的注冊名和本地系統(tǒng)的不同時,選項1-允許輸入遠程系統(tǒng)帳戶的不同的注冊名。語法如下所示:$rlogin

system-name

-1

login-name下面例子,用戶用注冊名robert注冊到violet的系統(tǒng)中:$rlogin

violet-1

robertpassword$:一旦注冊到遠程系統(tǒng)中,您能執(zhí)行任何命令??梢杂胑xit、CTRL-d或logout(TCSH或C-shell)結束連接中國科學技術大學遠程教育4-49遠程復制文件rcp:命令rcp的功能是從遠程系統(tǒng)復制文件到本地系統(tǒng)中。rcp執(zhí)行文件傳輸?shù)墓δ埽牟僮骱蚦p命令很相似,但它是通過網(wǎng)絡連接到另一系統(tǒng)。執(zhí)行命令rcp時要求遠程系統(tǒng)的.rhosts文件中有您的本地系統(tǒng)名和注冊名。命令rcp參數(shù)為源文件名和復制的目標文件名。為了指定文件在遠程系統(tǒng)中,您需要在文件名前放置一個系統(tǒng)名,兩者之間用冒號分隔,如下所示:$rcp

system-name:source-file

slystem-name:copy-file當復制一個文件到遠程系統(tǒng)中時,復制的目標文件是遠程文件,它要求帶有系統(tǒng)名。而源文件在您的本機系統(tǒng)中,不要求系統(tǒng)名:$rcp

source-file

remote-system-name:copy-file在下面的例子中,用戶從自己的系統(tǒng)中復制文件weather到遠程系統(tǒng)violet并重命名為monday.$rcp

weather

violet:Monday中國科學技術大學遠程教育4-50小結傳輸層是網(wǎng)絡體系結構中承上啟下的一層,它起著加強互聯(lián)網(wǎng)的服務質(zhì)量QoS,并提供進程之間可靠通信的功能,TCP/IP協(xié)議是利用端口來標識通信進程。TCP和UDP是Internet傳輸層的兩個協(xié)議。其中TCP是面向連接的,提供可靠的字節(jié)流服務;UDP是無連接的,提供數(shù)據(jù)報服務。TCP和UDP的共同點在于它們都提供進程通信能力,為此在TCP和UDP協(xié)議中引入端口的概念。UDP是最簡單的傳輸層協(xié)議,幾乎不提供任何可靠性措施。適用

UDP的應用程序須自己進行可靠性控制。TCP為保證可靠性做了大量的工作,它提供確認、超時重傳以及滑動窗口機制。TCP所面臨的所有問題中,重復報文是最難解決的問題,為此TCP引入三次握手以排除在建立和撤除連接過程中重復報文的干擾。另外,TCP協(xié)議還提供緊急數(shù)據(jù)傳輸?shù)炔僮?,以滿足實時應用需求中國科學技術大學遠程教育4-51習題中國科學技術大學遠程教育4-52習題4.1一臺TCP機器在1Gb/s的通道上使用65535字節(jié)的發(fā)送窗口,單程延遲時間等于10ms。問可以取得的最大吞吐率是多少?解:10ms*2=20ms每20ms可以發(fā)送一個窗口大小的交通量,每秒50個窗口(=1000ms/20ms)。65535/8/50=26.214Mb/s26.214Mb/s/1000Mb/s≈2.6%所以,最大吞吐率是26.214Mb/s,線路效約為2.6%習題4.2一個TCP鏈接使用256kb/s的鏈路,其端到端延時為128ms。經(jīng)測試發(fā)現(xiàn)吞吐量只有128kb/s。試問窗口是多少?忽略PDU封裝的協(xié)議開銷以及接收方應答分組的發(fā)射時間(假定應答分組長度很小)。解:來回路程的時延等于256ms(=128ms

*2)。設窗口值為X字節(jié),假定一次最大發(fā)送量等于窗口值,且發(fā)射時間等于256ms,那么,每發(fā)送一次都得停下來期待再次得到下一窗口的確認,以得到新的發(fā)送許可。這樣,發(fā)射時間等于停止等待應答的時間。結果,測到的平均吞吐率就等于發(fā)送速率的一半,即128ms。8X/

(256*1000)=

256*0.001X

=

256*1000*256

*0.001/8=256*32=

8192所以,窗口值為8192。中國科學技術大學遠程教育4-53習題4.3

在一個網(wǎng)絡中,最大TPDU尺寸為128字節(jié),最大的TPDU存活時間為30秒,使用8位序列號,問每條連接的最大數(shù)據(jù)速率是多少?解:具有相同編號的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論