




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、計算機網絡原理與應用計算機網絡原理與應用第第8 8章章 運輸層運輸層 8.1 8.1 運輸協議概述運輸協議概述 8.2 TCP/IP8.2 TCP/IP體系中的運輸層體系中的運輸層 8.3 8.3 用戶數據報協議用戶數據報協議UDP UDP 8.4 8.4 傳輸控制協議傳輸控制協議TCPTCP 運輸協議運輸協議(transport protocol)(transport protocol)是整個網絡體系結構中的關鍵是整個網絡體系結構中的關鍵之一。本章討論之一。本章討論TCP/IPTCP/IP體系中的運輸協議體系中的運輸協議TCPTCP。8.1 8.1 運輸協議概述運輸協議概述 q運輸層的任務就
2、是運輸層的任務就是為主機間兩個應用進程的進程之間提供邏輯通信為主機間兩個應用進程的進程之間提供邏輯通信,其數據傳輸的單位是,其數據傳輸的單位是報文報文(segment)(segment)。運輸層提供的是端運輸層提供的是端( (的傳輸進程的傳輸進程) )到端到端( (的傳輸進程的傳輸進程) )的傳輸的傳輸。端。端到端的信道是由一段段點到點的信道構成的。端到端的協議建到端的信道是由一段段點到點的信道構成的。端到端的協議建立在點到點的協議上,提供應用程序進程之間的通信,以便上立在點到點的協議上,提供應用程序進程之間的通信,以便上層應用程序利用網絡的信息傳遞服務來實現資源共享。層應用程序利用網絡的信息
3、傳遞服務來實現資源共享。運輸層具有運輸層具有復用復用和和分用分用的功能。運輸層中的多個進程可復用下的功能。運輸層中的多個進程可復用下面網絡層的傳輸功能,到了目的主機的網絡層后,再使用分用面網絡層的傳輸功能,到了目的主機的網絡層后,再使用分用功能,將數據交付給相應的進程。功能,將數據交付給相應的進程。運輸層只能存在于通信子網外面的主機之中運輸層只能存在于通信子網外面的主機之中。運輸層以上的各。運輸層以上的各層就不再關心信息傳輸的問題了。層就不再關心信息傳輸的問題了。因特網的運輸層使用面向連接的因特網的運輸層使用面向連接的TCPTCP和無連接的和無連接的UDPUDP兩種協議兩種協議。運輸層要對收到
4、的報文進行運輸層要對收到的報文進行差錯檢測和流量控制差錯檢測和流量控制。而。而IPIP數據報數據報首部中的檢驗和字段,只檢驗首部而不檢查數據部分。首部中的檢驗和字段,只檢驗首部而不檢查數據部分。運輸層為相互通信的應用進程提供了邏輯通信運輸層為相互通信的應用進程提供了邏輯通信運輸層為運輸層為應用進程之間應用進程之間提供邏輯通信,提供邏輯通信,網絡層為網絡層為主機之間主機之間提供邏輯通信。提供邏輯通信。 服務質量與服務質量與TCP、UDP協議協議p 在計算計網絡中,服務質量簡稱在計算計網絡中,服務質量簡稱 QoS (Quality Of Service)QoS (Quality Of Servic
5、e)。p 提出網絡服務質量的問題,是由于提出網絡服務質量的問題,是由于通信子網是用戶無法控制通信子網是用戶無法控制的,的,通信子網往往不能滿足用戶對網絡傳輸服務的要求。作為用戶應用與通信子網往往不能滿足用戶對網絡傳輸服務的要求。作為用戶應用與通信子網之間的運輸層起著承上啟下的作用,通信子網之間的運輸層起著承上啟下的作用,通過運輸層協議對通信通過運輸層協議對通信子網的屏蔽,就可以給用戶提供標準而完善的服務界面子網的屏蔽,就可以給用戶提供標準而完善的服務界面。p 因特網的通信子網的種類很多,提供的網絡傳輸質量差異很大因特網的通信子網的種類很多,提供的網絡傳輸質量差異很大;用戶對于網絡服務的要求種類
6、也很多,有要求高可靠性的,有要求高用戶對于網絡服務的要求種類也很多,有要求高可靠性的,有要求高吞吐率的,也有要求低時延的等等。既然通信子網用戶不可選擇,用吞吐率的,也有要求低時延的等等。既然通信子網用戶不可選擇,用戶要求的服務又是千差萬別。為此,運輸層協議往往形成了一個協議戶要求的服務又是千差萬別。為此,運輸層協議往往形成了一個協議簇,以應對多變的服務要求。簇,以應對多變的服務要求。p TCP/IPTCP/IP協議的運輸層包含了協議的運輸層包含了TCPTCP和和UDPUDP兩個協議,以滿足不同應用兩個協議,以滿足不同應用的要求。的要求。8.2 TCP/IP8.2 TCP/IP體系中的運輸層體系
7、中的運輸層 qTCP/IPTCP/IP的運輸層有兩個協議,的運輸層有兩個協議,TCPTCP和和UDPUDP都使用相同的網絡層都使用相同的網絡層(IP):(IP):用戶數據報協議用戶數據報協議UDP(User Datagram Protocol): UDP(User Datagram Protocol): UDPUDP在傳送數據之前在傳送數據之前不需要先建立連接。遠地主機的運輸層在收到不需要先建立連接。遠地主機的運輸層在收到UDPUDP數據報后,不需要給數據報后,不需要給出任何確認。廣泛應用于只需一次的客戶服務器模式的請求出任何確認。廣泛應用于只需一次的客戶服務器模式的請求應答查應答查詢,或者要
8、求提供高效率數據傳輸的場合。詢,或者要求提供高效率數據傳輸的場合。 傳輸控制協議傳輸控制協議TCP(Transmission Control Protocol): TCP(Transmission Control Protocol): TCPTCP提供提供可靠可靠的的、面向連接面向連接的運輸服務,用于高可靠性數據的傳輸。的運輸服務,用于高可靠性數據的傳輸。TCPTCP具有完善的具有完善的錯誤檢測與恢復、順序控制和流量控制等功能。錯誤檢測與恢復、順序控制和流量控制等功能。 qTCPTCP和和UDPUDP協議說明:協議說明:注重可靠性場合一般使用注重可靠性場合一般使用TCP,TCP,而在那些更注重
9、實時性而在那些更注重實時性、傳輸率、吞吐量的場合一般使用、傳輸率、吞吐量的場合一般使用UCPUCP 。最終取決與所傳輸數據的類型,。最終取決與所傳輸數據的類型,以及用途和使用場合。以及用途和使用場合。 8.2.1 8.2.1 運輸層中的兩個協議運輸層中的兩個協議應 用 層T CPU D PIP網 絡 接 口8.2.2 8.2.2 端口的概念端口的概念q 在運輸層的網絡地址中須包含描述進程的標識符。在在運輸層的網絡地址中須包含描述進程的標識符。在TCPTCP和和UDPUDP中,用端口標識通信的進程。中,用端口標識通信的進程。q 端口端口(port) :(port) :是是運輸層運輸層與與應用層應
10、用層的服務接口。端口相當于的服務接口。端口相當于OSIOSI中中的運輸層服務訪問點的運輸層服務訪問點TSAPTSAP。q UDPUDP和和TCPTCP都使用了與應用層都使用了與應用層接口處接口處的的端口端口與上層的應用進程進與上層的應用進程進行通信。應用層的各種進程是通過相應的端口與運輸實體進行交行通信。應用層的各種進程是通過相應的端口與運輸實體進行交互。互。q 當運輸層收到當運輸層收到IPIP層交上來的數據,就要根據其首部中的層交上來的數據,就要根據其首部中的端口號端口號來決定應當通過哪一個端口上交給應當接收此數據的應用進程。來決定應當通過哪一個端口上交給應當接收此數據的應用進程。q 端口是
11、端口是一個一個16 bit16 bit的地址的地址,用,用端口號端口號進行標識。分為兩類進行標識。分為兩類: : 公認端口號公認端口號 : :由因特網指派名字和號碼公司由因特網指派名字和號碼公司ICANNICANN負責分配給一負責分配給一些常用的應用層程序固定使用的些常用的應用層程序固定使用的端口端口,其數值一般為,其數值一般為0-10230-1023,例如,例如,FTPFTP用用21,TELNET21,TELNET用用23,SMTP23,SMTP用用25,HTTP25,HTTP用用8080等等。等等。 一般端口號一般端口號: :用來隨時分配給請求通信的客戶進程。用來隨時分配給請求通信的客戶進
12、程。 端口在進程之間的通信中所起的作用端口在進程之間的通信中所起的作用 q 使用端口來區分開應用層的不同進程。使用端口來區分開應用層的不同進程。q 使用復用和分用技術,運輸層與網絡層交互屏蔽各種應用進程,而使用復用和分用技術,運輸層與網絡層交互屏蔽各種應用進程,而只有只有TCPTCP報文段或報文段或UDPUDP數據報。數據報。IPIP層也使用類似的復用和分用技術,層也使用類似的復用和分用技術,因而網絡層和鏈路層交互得也只有因而網絡層和鏈路層交互得也只有IPIP數據報。數據報。常見常見TCPTCP和和UDPUDP公認端口號公認端口號 常見常見TCPTCP公認端口號公認端口號 常見常見UDPUDP
13、公認端口號公認端口號 端口號端口號服務服務簡述簡述2121FTPFTP文件傳輸服務器的控制流文件傳輸服務器的控制流2020FTP_DATAFTP_DATA文件傳輸服務器的數據流文件傳輸服務器的數據流2525SMTPSMTP簡單郵件傳輸簡單郵件傳輸4242NAMESERVERNAMESERVER主機名字服務主機名字服務5353DOMAINDOMAIN域名服務域名服務2323TELNETTELNET遠程終端服務遠程終端服務8080HTTPHTTPwwwwww服務服務端口號端口號服務服務簡述簡述111111RPCRPC遠程調用遠程調用161161SNMPSNMP簡單網絡管理簡單網絡管理6969TFT
14、P TFTP 簡單文件傳輸簡單文件傳輸套接字套接字q 套接字套接字(socket)(socket):是一個主機的是一個主機的 IPIP地址地址(32bit), (32bit), 端口號端口號(16bit)(16bit) 二元組。二元組。q 一個連接由兩個套接字來標識一個連接由兩個套接字來標識。在整個因特網中,。在整個因特網中,在運輸層通信在運輸層通信的 一 對的 一 對 套 接 字套 接 字 必 須 是 唯 一 的必 須 是 唯 一 的 。 如。 如 , , 一 對一 對 套 接 字套 接 字( (33: :15001500) )和和 ( (130.42
15、.85.155: :2525) )就定義了一個連接。就定義了一個連接。q 相關說明:相關說明:J 兩個使用兩個使用TCPTCP的應用進程在彼此交換數據前必須先建立一個面的應用進程在彼此交換數據前必須先建立一個面向連接的向連接的TCPTCP連接連接( (虛電路,虛電路,套接字套接字連接連接) )。J 使用無連接的使用無連接的UDPUDP,雖然在相互通信的兩個進程之間沒有一條,雖然在相互通信的兩個進程之間沒有一條虛連接,但每一個方向一定有發送端口和接收端口,因而也同虛連接,但每一個方向一定有發送端口和接收端口,因而也同樣可以使用樣可以使用套接字套接字的概念。的概念。J 使用使
16、用套接字套接字才能區分開同時通信的多個主機中的多個進程才能區分開同時通信的多個主機中的多個進程。端口的作用舉例端口的作用舉例q 設主機設主機A A、B B使用使用SMTPSMTP協議與主機協議與主機C C通信。通信。SMTPSMTP使用面向連接的使用面向連接的TCPTCP。主機。主機A A兩個進程與主機兩個進程與主機C C的的SMTPSMTP建立兩個連接建立兩個連接; ;主機主機B B一個進程與一個進程與主機主機C C的的SMTPSMTP建立一個連接建立一個連接; ;q 連接連接1 1的一對的一對套接字套接字是是( (33: :15001500) )和和
17、 ( (55: :2525) )q 連接連接2 2的一對的一對套接字套接字是是( (33: :15011501) )和和 ( (55: :2525) )面向連接的面向連接的SocketSocket通信過程通信過程8.3 8.3 用戶數據報協議用戶數據報協議UDPUDP q UDPUDP是一個簡單的面向數據報的運輸層的協議,它提供協是一個簡單的面向數據報的運輸層的協議,它提供協議端口,使得應用進程能夠向其他進程發送數據報。議端口,使得應用進程能夠向其他進程發送數據報。q
18、 UDPUDP數據報是無連接、不可靠的。盡最大努力交付,不提數據報是無連接、不可靠的。盡最大努力交付,不提供確認、消息反饋控制,與供確認、消息反饋控制,與IPIP數據報相同。所以數據報相同。所以UDPUDP的效的效率高。率高??煽啃砸栌蓱贸绦虮旧硖峁┛煽啃砸栌蓱贸绦虮旧硖峁?。UDPUDP數據報的結構數據報的結構qUDPUDP數據報包括首部和數據兩個字段。首部字段有數據報包括首部和數據兩個字段。首部字段有8 8字節,由字節,由4 4個字段個字段組成,每個字段都是兩個字節。組成,每個字段都是兩個字節。源端口字段源端口字段: :源端口號源端口號; ;目的端口字段目的端口字段: :目的端口號目
19、的端口號; ;長度字段長度字段: :UDPUDP數據報的長度數據報的長度; ;檢驗和字段檢驗和字段: :防止防止UDPUDP數據報在傳輸中出錯。數據報在傳輸中出錯。q UDP UDP數據報在計算檢驗和時在數據報在計算檢驗和時在UDPUDP數據報之前要增加數據報之前要增加1212個字節的偽首個字節的偽首部。所謂部。所謂“偽首部偽首部”只是在計算檢驗和時,臨時和只是在計算檢驗和時,臨時和UDPUDP數據報連接在一數據報連接在一起。起。8.4 8.4 傳輸控制協議傳輸控制協議TCPTCPp TCP TCP是一種是一種面向連接面向連接的的字節流服務字節流服務的運輸層協議,它提供全雙工的的運輸層協議,它
20、提供全雙工的可靠交付的服務。可靠交付的服務。TCPTCP用于高可靠性數據的傳輸用于高可靠性數據的傳輸。p TCPTCP應用進程間發送的數據被看作是應用進程間發送的數據被看作是字節流字節流,而在,而在 UDPUDP中一個應用中一個應用程序的輸出就封裝為一個數據報。程序的輸出就封裝為一個數據報。pTCPTCP協議具有完善的錯誤檢測與恢復、順序控制和流量控制等功能。協議具有完善的錯誤檢測與恢復、順序控制和流量控制等功能。因此,因此,TCPTCP協議非常復雜,執行起來效率必然不高。協議非常復雜,執行起來效率必然不高。p在互連的網絡中,網絡層產生擁塞是低層網絡傳輸能力不足的表現在互連的網絡中,網絡層產生
21、擁塞是低層網絡傳輸能力不足的表現。當網絡發生擁塞時,發生擁塞的路由器會將超載的報文紛紛丟棄,。當網絡發生擁塞時,發生擁塞的路由器會將超載的報文紛紛丟棄,而被丟棄的報文會引起運輸層的出錯重傳,這些大量的重傳報文又會而被丟棄的報文會引起運輸層的出錯重傳,這些大量的重傳報文又會進一步加劇網絡的擁塞。這種惡性循環不是單純網絡層協議能夠應付進一步加劇網絡的擁塞。這種惡性循環不是單純網絡層協議能夠應付的,因為的,因為引起報文傳輸的源頭是在運輸層。所以,引起報文傳輸的源頭是在運輸層。所以,TCPTCP也必須有控制也必須有控制擁塞的相應機制擁塞的相應機制。 使用使用TCPTCP和和UDPUDP協議的各種應用和
22、應用層協議協議的各種應用和應用層協議 應用應用應用層協議應用層協議運輸層協議運輸層協議名字轉換名字轉換DNSDNS一般用一般用UDPUDP選路協議選路協議RIPRIP一般用一般用UDPUDP網絡管理網絡管理SNMPSNMP一般用一般用UDPUDP遠程文件服務器遠程文件服務器NFSNFS一般用一般用UDPUDPIPIP電話電話專用協議專用協議一般用一般用UDPUDP流式多媒體通信流式多媒體通信專用協議專用協議一般用一般用UDPUDP電子郵件電子郵件SMTPSMTPTCPTCP遠程終端接入遠程終端接入TELNETTELNETTCPTCP萬維網萬維網HTTPHTTPTCPTCP文件傳送文件傳送FTP
23、FTPTCPTCPq 一個一個TCPTCP報文分為報文分為首部首部和和數據數據兩部分。兩部分。TCPTCP報文段首部的前報文段首部的前2020個字個字節是固定的,后面有節是固定的,后面有4N4N字節是可有可無的選項字節是可有可無的選項(N(N為整數為整數) )。因此。因此TCPTCP首部的最小長度是首部的最小長度是2020字節。字節。8.4.1 TCP8.4.1 TCP報文段的格式報文段的格式 q源端口源端口和和目的端口目的端口: :各占各占2 2個字節個字節, , 用來將高層協議向下復用。用來將高層協議向下復用。q序號序號: :占占4 4字節字節, ,是本報文段所發送的數據部分是本報文段所發
24、送的數據部分第一個字節的序號第一個字節的序號。TCPTCP是是面向字節流的面向字節流的。在。在TCPTCP傳送的數據流中傳送的數據流中, ,每一個字節都有一個序號。每一個字節都有一個序號。q確認序號確認序號: :占占4 4字節字節, ,是期望收到對方下次發送的數據的是期望收到對方下次發送的數據的第一個字節的序號第一個字節的序號 。由于序號字段有。由于序號字段有32 bit32 bit長,可對長,可對4 GB4 GB的數據進行編號。這樣就可保證的數據進行編號。這樣就可保證當序號重復使用。當序號重復使用。q數據偏移數據偏移: :占占4 bit,4 bit,它指出數據開始的地方離它指出數據開始的地方
25、離TCPTCP報文段的起始處有多遠報文段的起始處有多遠。這實際上就是。這實際上就是TCPTCP報文段首部的長度報文段首部的長度。單位是。單位是32 bit32 bit字。字。q保留字段保留字段: :占占6 bit6 bit,供今后使用,目前應置為,供今后使用,目前應置為0 0。q窗口窗口: :占占2 2字節。窗口字段是報文段發送方的接收窗口,單位為字節。此字節。窗口字段是報文段發送方的接收窗口,單位為字節。此窗口告訴對方,窗口告訴對方,“在未收到我的確認時,你能發送的數據的字節數至多在未收到我的確認時,你能發送的數據的字節數至多是此窗口的大小。是此窗口的大小?!眖檢驗和檢驗和: :占占2 2字
26、節字節, ,檢驗的范圍包括首部和數據。和檢驗的范圍包括首部和數據。和UDPUDP一樣,在計算檢驗一樣,在計算檢驗和時,要在和時,要在TCPTCP報文段的前面加上一個報文段的前面加上一個1212字節的偽首部。偽首部的格式與字節的偽首部。偽首部的格式與UDPUDP數據報的偽首部類似。數據報的偽首部類似。q選項選項: :長度可變。長度可變。TCPTCP只規定了一種選項,即只規定了一種選項,即最大報文段長度最大報文段長度MSSMSS 。MSSMSS告告訴對方的訴對方的TCPTCP:“我的緩存所能接收的報文段的最大長度是我的緩存所能接收的報文段的最大長度是MSS MSS ” 。若主。若主機未填寫這項,則
27、機未填寫這項,則MSSMSS的默認值是的默認值是536536字節長的凈負荷。字節長的凈負荷。 TCPTCP數據包首部固定部分各字段的意義數據包首部固定部分各字段的意義 q緊急比特緊急比特URG(URGent):URG(URGent):當當URG URG 1 1時,表明此報文段應盡快傳送,而不按時,表明此報文段應盡快傳送,而不按原來的排隊順序來傳送。此時要與原來的排隊順序來傳送。此時要與“緊急指針緊急指針”字段配合使用。緊急指字段配合使用。緊急指針指出在本報文段中的緊急數據的針指出在本報文段中的緊急數據的最后一個字節的序號最后一個字節的序號。緊急指針使接。緊急指針使接收方可以知道緊急數據共有多長
28、。另外,即使當窗口大小為零時也可發收方可以知道緊急數據共有多長。另外,即使當窗口大小為零時也可發送緊急數據。送緊急數據。q確認比特確認比特ACK:ACK:只有當只有當ACKACK 1 1時確認序號字段才有意義。當時確認序號字段才有意義。當ACKACK 0 0 時,確認時,確認序號沒有意義。序號沒有意義。q急迫比特急迫比特PSH(PuSH):PSH(PuSH):當當PSHPSH 1 1時,表明請求遠地時,表明請求遠地TCPTCP將本報文段立即傳送將本報文段立即傳送給其應用層,而不要等到整個緩存都填滿了后再向上交付。給其應用層,而不要等到整個緩存都填滿了后再向上交付。q復位比特復位比特RST(Re
29、SeT):RST(ReSeT):當當RSTRST 1 1時,表明出現嚴重差錯,必須釋放連接,時,表明出現嚴重差錯,必須釋放連接,然后再重建運輸連接。復位比特還用來拒絕一個非法的報文段或拒絕打然后再重建運輸連接。復位比特還用來拒絕一個非法的報文段或拒絕打開一個連接。復位比特也可稱為重建比特或重置比特。開一個連接。復位比特也可稱為重建比特或重置比特。q同步比特同步比特SYN:SYN:在連接建立時使用。例如,當在連接建立時使用。例如,當SYNSYN 1 1而而ACK ACK 0 0時,表明這時,表明這是一個是一個連接請求報文段連接請求報文段。對方若同意建立連接,則應在發回的報文段中。對方若同意建立連
30、接,則應在發回的報文段中使使SYNSYN 1 1和和ACKACK 1 1。因此,同步比特。因此,同步比特SYNSYN置為置為1 1,就表示這是一個,就表示這是一個連接請求連接請求或或連接接受報文連接接受報文,而,而ACKACK比特的值用來區分是哪一報文。比特的值用來區分是哪一報文。q終止比特終止比特FIN:FIN:用來釋放一個連接。當用來釋放一個連接。當FINFIN 1 1時,表明欲發送的字節串已經時,表明欲發送的字節串已經發完,并要求釋放運輸連接。發完,并要求釋放運輸連接。控制字段控制字段( (或稱為標志或稱為標志) )各比特的意義各比特的意義 TCPTCP將所要傳送的整個報文看成是將所要傳
31、送的整個報文看成是一個個字節組成的一個個字節組成的數據流數據流,然后對,然后對每一個字節編一個序號每一個字節編一個序號。在連接建立時,雙方要。在連接建立時,雙方要商定初始序號。商定初始序號。TCPTCP就將每一次所傳送的報文段中的第一個數據字就將每一次所傳送的報文段中的第一個數據字節的序號,放在節的序號,放在TCPTCP首部的序號字段中。首部的序號字段中。是對接收到的數據的最高序號是對接收到的數據的最高序號( (最后一個序號最后一個序號) )表示確表示確認認。但返回的確認序號是已收到的數據的最高序號加。但返回的確認序號是已收到的數據的最高序號加1 1。也就是說。也就是說,確認序號表示期望下次收
32、到的第一個數據字節的序號確認序號表示期望下次收到的第一個數據字節的序號。q 由于由于TCPTCP能提供全雙工通信,因此能提供全雙工通信,因此通信中的每一方都不必專門發送通信中的每一方都不必專門發送確認報文段確認報文段,而可以在傳送數據時順便把確認信息捎帶傳送而可以在傳送數據時順便把確認信息捎帶傳送。這。這樣做可以提高傳輸效率。樣做可以提高傳輸效率。8.4.2 TCP8.4.2 TCP的編號與確認的編號與確認 只要發送緩存從發送進程得到的數據達到只要發送緩存從發送進程得到的數據達到MSSMSS字節時,就組裝字節時,就組裝成一個成一個TCPTCP報文段,然后發送出去;報文段,然后發送出去; 發送端
33、的應用進程指明要求發送報文段,即發送端的應用進程指明要求發送報文段,即TCPTCP支持推送支持推送(push)(push)操作;操作; 發送端的一個計時器時間到了,這時就把當前已有的緩存數據發送端的一個計時器時間到了,這時就把當前已有的緩存數據裝入報文發送出去。裝入報文發送出去。q NagleNagle算法算法(可明顯地減少所用的網絡帶寬):(可明顯地減少所用的網絡帶寬):l若數據是逐個字節地到達發送端,則發送端就將第一個字符先若數據是逐個字節地到達發送端,則發送端就將第一個字符先發送出去,將后面到達的字符都發送出去,將后面到達的字符都緩存緩存起來。起來。l當收到對第一個字符的確認后,再將當收
34、到對第一個字符的確認后,再將緩存中的所有字符裝成一緩存中的所有字符裝成一個報文段個報文段發送出去,同時繼續發送出去,同時繼續對到達的字符進行緩存對到達的字符進行緩存。l只有在收到確認后才繼續發送下一個報文段。只有在收到確認后才繼續發送下一個報文段。l當到達的字符已達到窗口大小的一半當到達的字符已達到窗口大小的一半或或已達到報文段的最大長已達到報文段的最大長度時,就立即發送下一個報文段。度時,就立即發送下一個報文段??刂瓶刂芓CPTCP報文發送機制報文發送機制q TCPTCP使用滑動窗口協議可以解決兩個重要問題:使用滑動窗口協議可以解決兩個重要問題:-有效傳輸:有效傳輸:通過減少等待時間可增加網
35、絡總吞吐量通過減少等待時間可增加網絡總吞吐量-流量控制:流量控制:可以通過變化發送方窗口大小以及接收方緩存大小可以通過變化發送方窗口大小以及接收方緩存大小來控制端到端的流量。窗口大小定義在來控制端到端的流量。窗口大小定義在TCPTCP報文段首部。報文段首部。q TCPTCP的流量控制是基于滑動窗口的的流量控制是基于滑動窗口的。通過改變發送窗口的大小,可。通過改變發送窗口的大小,可以限制傳輸報文進入網絡的速率,從而達到控制擁塞的目的。以限制傳輸報文進入網絡的速率,從而達到控制擁塞的目的。q 示例:示例:發送端要發送的數據共發送端要發送的數據共9 9個報文段,每個報文段個報文段,每個報文段1001
36、00字節長字節長,而接收端許諾的發送窗口為,而接收端許諾的發送窗口為500500字節。字節。 8.4.3 TCP8.4.3 TCP的流量控制的流量控制 q 設主機設主機A A向主機向主機B B發送數據。雙方商定的窗口值是發送數據。雙方商定的窗口值是400400。再設每一個。再設每一個報文段為報文段為100100字節長,序號的初始值為字節長,序號的初始值為1 1。整個的過程主機。整個的過程主機B B進行了進行了三次流量控制。第一次將窗口減小為三次流量控制。第一次將窗口減小為300300字節,第二次又減為字節,第二次又減為200200字節,最后減至零。字節,最后減至零。利用可變窗口大小進行流量控制
37、利用可變窗口大小進行流量控制 q 接受端的接受窗口總是等于發送端的發送窗口,因為后者是前者接受端的接受窗口總是等于發送端的發送窗口,因為后者是前者決定的。決定的。q 發送端的主機在發送數據時,發送端的主機在發送數據時,既要考慮到接收端的接收能力,又既要考慮到接收端的接收能力,又要使網絡不要發生擁塞要使網絡不要發生擁塞。發送端的。發送端的發送窗口發送窗口應按以下方式確定:應按以下方式確定: 發送窗口發送窗口 Min Min 通知窗口,擁塞窗口通知窗口,擁塞窗口 -通知窗口通知窗口(advertised window)(advertised window)是接收端根據其接收能力許諾是接收端根據其接
38、收能力許諾的窗口值,是來自的窗口值,是來自接收端的流量控制接收端的流量控制。接收端將通知窗口的值。接收端將通知窗口的值放在放在TCPTCP報文的首部中,傳送給發送端。報文的首部中,傳送給發送端。-擁塞窗口擁塞窗口(congestion window)(congestion window)是發送端根據網絡擁塞情況得是發送端根據網絡擁塞情況得出的窗口值,是來自出的窗口值,是來自發送端的流量控制發送端的流量控制。q 發送端的發送窗口取發送端的發送窗口取“通知窗口通知窗口”和和“擁塞窗口擁塞窗口”中的較小的一中的較小的一個。在未發生擁塞的穩定工作狀態下,接收端通知的窗口和擁塞個。在未發生擁塞的穩定工作
39、狀態下,接收端通知的窗口和擁塞窗口是一致的。窗口是一致的。TCPTCP窗口大小控制窗口大小控制 q 因特網標準推薦使用以下三種擁塞控制技術:因特網標準推薦使用以下三種擁塞控制技術:-慢啟動慢啟動:指每出現一次超時,擁塞窗口都降低到:指每出現一次超時,擁塞窗口都降低到1 1,使,使報文段慢慢注入到網絡中。報文段慢慢注入到網絡中。-加速遞減加速遞減:指每出現一次超時,就將:指每出現一次超時,就將門限窗口值門限窗口值減半。減半。若超時頻繁出現,則門限窗口減小的速率是很快的。若超時頻繁出現,則門限窗口減小的速率是很快的。-擁塞避免:擁塞避免:指當擁塞窗口增大到門限窗口值時,就將擁指當擁塞窗口增大到門限
40、窗口值時,就將擁塞窗口指數增長速率降低為線性增長速率,避免網絡再塞窗口指數增長速率降低為線性增長速率,避免網絡再次出現擁塞。次出現擁塞。 擁塞控制方法擁塞控制方法 當一個連接初始化時,將擁塞窗口置為當一個連接初始化時,將擁塞窗口置為1 1(即窗口允許發(即窗口允許發送送1 1個報文段)。并設置慢啟動的門限窗口值。個報文段)。并設置慢啟動的門限窗口值。發送端的發送窗口不能超過擁塞窗口和通知窗口中的最小發送端的發送窗口不能超過擁塞窗口和通知窗口中的最小值。現在假定接收端不進行流量控制。值?,F在假定接收端不進行流量控制。發送端若收到了對所有發出的報文段的確認,就在下一次發送端若收到了對所有發出的報文
41、段的確認,就在下一次發送時將擁塞窗口加倍。可見擁塞窗口從發送時將擁塞窗口加倍。可見擁塞窗口從1 1開始,按指數開始,按指數規律增長。若出現了超時,則將當時的擁塞窗口值減半,規律增長。若出現了超時,則將當時的擁塞窗口值減半,作為新的門限窗口值,同時擁塞窗口再次變為作為新的門限窗口值,同時擁塞窗口再次變為1 1。擁塞窗口重新從擁塞窗口重新從1 1開始按指數規律增長。但當增長到新的開始按指數規律增長。但當增長到新的門限窗口值時,就每次只將擁塞窗口加門限窗口值時,就每次只將擁塞窗口加1 1,使擁塞窗口按,使擁塞窗口按線性規律增長。當網絡又出現超時,仍重復上述過程。線性規律增長。當網絡又出現超時,仍重復
42、上述過程。擁塞控制方法實現步驟擁塞控制方法實現步驟q TCPTCP設置了計時器。只要達到了重傳時間到而還沒有收到確認,就設置了計時器。只要達到了重傳時間到而還沒有收到確認,就要重傳這一報文段。要重傳這一報文段。q 若將若將超時時間設置太短超時時間設置太短,則很多報文段的重傳時間是太早了,給,則很多報文段的重傳時間是太早了,給網絡增加了許多不應有的負荷。但若將超時時間網絡增加了許多不應有的負荷。但若將超時時間設置太長設置太長,則顯,則顯然會使網絡的傳輸效率降低很多。然會使網絡的傳輸效率降低很多。q TCPTCP采用了一種自適應算法設置運輸層的超時計時器的重傳時間采用了一種自適應算法設置運輸層的超
43、時計時器的重傳時間: : 平均往返時延平均往返時延T T ( (舊的往返時延舊的往返時延T)T) (1(1-)()(新的往返時延樣本新的往返時延樣本) ) (0 (0 1 , 1 ,典型的典型的 值為值為7/8 )7/8 ) 重傳時間重傳時間 ( (平均往返時延平均往返時延) ) ( ( 是個大于是個大于1 1的系數的系數, TCP, TCP推薦將推薦將 值取為值取為2)2) 報文段每重傳一次,就將重傳時間增大一些:報文段每重傳一次,就將重傳時間增大一些: 新的重傳時間新的重傳時間 ( (舊的重傳時間舊的重傳時間) ) 系數系數 的典型值是的典型值是2 2 。當不再發生報文段的重傳時,才根據報
44、文。當不再發生報文段的重傳時,才根據報文段的往返時延更新平均往返時延和重傳時間的數值。段的往返時延更新平均往返時延和重傳時間的數值。8.4.4 TCP8.4.4 TCP的重傳機制的重傳機制 q TCPTCP是面向連接的協議。運輸連接的建立和釋放是每一次面是面向連接的協議。運輸連接的建立和釋放是每一次面向連接的通信中必不可少的過程。向連接的通信中必不可少的過程。q 在連接建立過程中要解決以下三個問題:在連接建立過程中要解決以下三個問題:要使每一方能夠確知對方的存在要使每一方能夠確知對方的存在( (而數據鏈路層不需要而數據鏈路層不需要考慮考慮) )。要允許雙方協商一些參數要允許雙方協商一些參數(
45、(如最大報文段長度、最大窗如最大報文段長度、最大窗口大小、服務質量等口大小、服務質量等) )。能夠運輸實體資源能夠運輸實體資源( (如緩存大小、連接表中的項目等如緩存大小、連接表中的項目等) )進進行分配。行分配。q TCPTCP的連接和建立都是采用的連接和建立都是采用客戶服務器方式客戶服務器方式。l主動發起連接建立的進程叫做主動發起連接建立的進程叫做客戶客戶,l被動等待連接建立的進程叫做被動等待連接建立的進程叫做服務器服務器。q TCPTCP的建立連接采用的建立連接采用三次握手法三次握手法。8.4.5 TCP8.4.5 TCP的運輸連接管理的運輸連接管理 人和機器間的三次握手法人和機器間的三次握手法q 三次握手的建立過程:三次握手的建立過程:第一次:第一次:主機主機A A向主機向主機B B發出發出TCPTCP連接請求報文,其首部中的連接請求報文,其首部中的同步比特同步比特SYN=1,SYN=1,確認確認ACKACK 0 0 ,同時選擇一個序號,同時選擇一個序號x x,表明在,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 形體房使用管理制度
- 往來款收據管理制度
- 微貸網公司管理制度
- 總公司保潔管理制度
- 總監辦安全管理制度
- 惠州停車場管理制度
- 成品倉盤點管理制度
- 成都公積金管理制度
- 房地產風險管理制度
- 掘進隊規章管理制度
- 村文書考試題及答案
- 創新創業策劃書格式
- 大數據在區域經濟學中的應用研究-洞察闡釋
- 美洲文化課件教學
- 2025屆重慶市巴川中學生物七下期末統考試題含解析
- 醫學檢驗進修匯報
- 2025春季學期河南電大本科補修課《民法學#》一平臺無紙化考試(作業練習+我要考試)試題及答案
- 《數據分析與可視化》課件
- 2024年貴州省黎平縣事業單位公開招聘醫療衛生崗筆試題帶答案
- 《關于智能家居系統》課件
- 煤礦重大災害治理頂層設計方案
評論
0/150
提交評論