




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP第3章 傳輸層協(xié)議UDP和TCP 3.1 端到端通信和端口號(hào)端到端通信和端口號(hào)3.2 用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP 3.3 傳輸控制協(xié)議傳輸控制協(xié)議TCP3.4 TCP與與UDP的比較的比較習(xí)題習(xí)題 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.1 端到端通信和端口號(hào)端到端通信和端口號(hào)3.1.1 端到端通信在互聯(lián)網(wǎng)中,任何兩臺(tái)通信的主機(jī)之間,從源端到目標(biāo)端的信道都是由一段一段的點(diǎn)到點(diǎn)通信線路組成的(一個(gè)局域網(wǎng)中兩臺(tái)主機(jī)通信時(shí)只有一段點(diǎn)到點(diǎn)的線路)。如圖3-1所示。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP主機(jī)1路由器路由器主機(jī)
2、2端到端點(diǎn)到點(diǎn)點(diǎn)到點(diǎn)點(diǎn)到點(diǎn)網(wǎng)絡(luò)1網(wǎng)絡(luò)2圖3-1 傳輸層端到端通信第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP由第2章的知識(shí)可知,點(diǎn)到點(diǎn)通信是由網(wǎng)絡(luò)互聯(lián)層來(lái)實(shí)現(xiàn)的,網(wǎng)絡(luò)互聯(lián)層只屏蔽了不同網(wǎng)絡(luò)之間的差異,構(gòu)建了一個(gè)邏輯上的通信網(wǎng)絡(luò),因此它只解決了數(shù)據(jù)通信問(wèn)題。 端到端通信是建立在點(diǎn)到點(diǎn)通信基礎(chǔ)之上的,它是比網(wǎng)絡(luò)互聯(lián)層通信更高一級(jí)的通信方式,完成應(yīng)用程序(進(jìn)程)之間的通信。端到端的通信是由傳輸層來(lái)實(shí)現(xiàn)的。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.1.2 傳輸層端口的概念為了識(shí)別傳輸層之上不同的網(wǎng)絡(luò)通信程序(進(jìn)程),傳輸層引入了端口的概念。在一臺(tái)主機(jī)上,要進(jìn)行網(wǎng)絡(luò)通信的進(jìn)程首先要向系統(tǒng)
3、提出動(dòng)態(tài)申請(qǐng),由系統(tǒng)(操作系統(tǒng)內(nèi)核)返回一個(gè)本地惟一的端口號(hào),進(jìn)程再通過(guò)系統(tǒng)調(diào)用把自己和這個(gè)特定的端口聯(lián)系在一起,這個(gè)過(guò)程叫綁定(Binding)。這樣,每個(gè)要通信的進(jìn)程都與一個(gè)端口號(hào)對(duì)應(yīng),傳輸層就可以使用其報(bào)文頭中的端口號(hào),把收到的數(shù)據(jù)送到不同的應(yīng)用程序,如圖3-2所示。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP應(yīng)用程序應(yīng)用程序應(yīng)用程序應(yīng)用程序ICMPTCPUDPARPIPRARP以太網(wǎng)網(wǎng)絡(luò)接口層以太網(wǎng)由傳輸層報(bào)頭中的端口字段標(biāo)識(shí)由IP數(shù)據(jù)報(bào)頭中的上層協(xié)議字段標(biāo)識(shí)由以太網(wǎng)幀類(lèi)型字段標(biāo)識(shí)圖3-2 傳輸層端到端通信 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP在TCP/IP協(xié)議中,傳輸
4、層使用的端口號(hào)用一個(gè)16位的二進(jìn)制數(shù)表示。因此,在傳輸層如果使用TCP協(xié)議進(jìn)行進(jìn)程通信,則可用的端口號(hào)共有216個(gè)。由于UDP也是傳輸層一個(gè)獨(dú)立于TCP的協(xié)議,因此使用UDP協(xié)議時(shí)也有216個(gè)不同的端口。一些常用服務(wù)的TCP和UDP的眾所周知端口號(hào)見(jiàn)表3-1和表3-2。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP表3-1 常用的眾所周知的TCP端口號(hào)TCP 端口號(hào) 關(guān)鍵詞 描 述 20 FTP-DATA 文件傳輸協(xié)議(數(shù)據(jù)連接) 21 FTP 文件傳輸協(xié)議(控制連接) 23 Telnet 遠(yuǎn)程登錄協(xié)議 25 SMTP 簡(jiǎn)單郵件傳輸協(xié)議 53 Domain 域名服務(wù)器 80 HTTP 超文
5、本傳輸協(xié)議 110 POP3 郵局協(xié)議 3 119 NNTP 網(wǎng)絡(luò)新聞傳遞協(xié)議 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP表3-2 常用的眾所周知的UDP端口號(hào)UDP 端口號(hào) 關(guān)鍵詞 描 述 53 Domain 域名服務(wù)器 67 BootPS 引導(dǎo)協(xié)議服務(wù)器 68 BootPC 引導(dǎo)協(xié)議客戶機(jī) 69 TFTP 簡(jiǎn)單文件傳輸協(xié)議 161 SNMP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議 162 SNMP-TRAP 簡(jiǎn)單網(wǎng)絡(luò)管理協(xié)議陷阱 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP 2561023之間的端口號(hào)通常都是由Unix系統(tǒng)占用的,以提供一些特定的Unix服務(wù)?,F(xiàn)在IANA管理11023之間所有的端口號(hào)
6、。任何TCP/IP實(shí)現(xiàn)所提供的服務(wù)都使用11023之間的端口號(hào)。 客戶端口號(hào)又稱為臨時(shí)端口號(hào)(即存在時(shí)間很短暫)。這是因?yàn)榭蛻舳丝谔?hào)是在客戶程序要進(jìn)行通信之前,動(dòng)態(tài)地從系統(tǒng)申請(qǐng)的一個(gè)端口號(hào),然后以該端口號(hào)為源端口,使用某個(gè)眾所周知的端口號(hào)為目標(biāo)端口號(hào)(如在TCP協(xié)議上要進(jìn)行文件傳輸時(shí)使用21)進(jìn)行客戶端到服務(wù)器端的通信。綜上所述,我們知道兩臺(tái)要通信的主機(jī),每一端要使用一個(gè)二元地址(IP地址,端口號(hào))才可以完成它們之間的通信。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.2 用戶數(shù)據(jù)報(bào)協(xié)議用戶數(shù)據(jù)報(bào)協(xié)議UDP 3.2.1 UDP數(shù)據(jù)報(bào)的封裝及其格式UDP協(xié)議在工作時(shí)是建立在IP協(xié)議之上的
7、,UDP從進(jìn)程的緩沖區(qū)接收進(jìn)程每一次產(chǎn)生的輸出,對(duì)每次輸出都生成一個(gè)UDP數(shù)據(jù)報(bào),然后把生成的UDP數(shù)據(jù)報(bào)直接封裝在IP數(shù)據(jù)報(bào)中進(jìn)行傳輸,因此在傳輸層使用UDP協(xié)議時(shí),發(fā)送端不需要發(fā)送緩沖區(qū),如圖3-3所示。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCPUDP數(shù)據(jù)報(bào)頭區(qū)UDP數(shù)據(jù)區(qū)IP數(shù)據(jù)區(qū)IP報(bào)頭區(qū)UDP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)圖3-3 UDP數(shù)據(jù)報(bào)的封裝 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP被封裝在IP中的UDP數(shù)據(jù)報(bào)通過(guò)網(wǎng)絡(luò)傳輸?shù)侥繕?biāo)主機(jī)的IP層后,由目標(biāo)主機(jī)的UDP層根據(jù)目標(biāo)端口號(hào)送到接收該數(shù)據(jù)的相應(yīng)進(jìn)程。UDP數(shù)據(jù)報(bào)的格式如圖3-4所示。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UD
8、P和和TCPUDP目標(biāo)端口號(hào)(16位)015 1631UDP源端口號(hào)(16位)UDP長(zhǎng)度(16位)UDP校驗(yàn)和(16位) 數(shù) 據(jù) 區(qū)圖3-4 UDP數(shù)據(jù)報(bào)格式 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.2.2 UDP校驗(yàn)和的計(jì)算方法 顧名思義,這個(gè)偽頭部并不是UDP的真正組成部分,它只是為了UDP在進(jìn)行差錯(cuò)檢查時(shí)可以把更多的信息包含進(jìn)去而人為加上的。偽頭部的格式如圖3-5所示。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP協(xié)議(8位,UDP值為17)UDP長(zhǎng)度(16位)填充域(8位,全0)目標(biāo)端IP地址(32位)源 端IP地 址(32位)015 16317 8圖3-5 UDP偽頭
9、部格式 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP偽頭部包含IP頭部的一些字段,填充域全填0,目的是使偽頭部為16位二進(jìn)制數(shù)的整數(shù)倍,這是計(jì)算校驗(yàn)和時(shí)所需要的。協(xié)議字段的值為17(表示為UDP協(xié)議,見(jiàn)表2-4),UDP長(zhǎng)度為UDP數(shù)據(jù)報(bào)的總長(zhǎng)(當(dāng)然不能包括虛構(gòu)的偽頭部)。源端在發(fā)送UDP數(shù)據(jù)報(bào)時(shí),使用構(gòu)造的UDP偽頭部和UDP數(shù)據(jù)報(bào)計(jì)算出校驗(yàn)和(校驗(yàn)和計(jì)算方法與IP頭部校驗(yàn)和的計(jì)算方法相同),然后填入U(xiǎn)DP頭部。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.2.3 UDP協(xié)議的特點(diǎn)從UDP協(xié)議的數(shù)據(jù)報(bào)格式可以看出,UDP對(duì)數(shù)據(jù)的封裝非常簡(jiǎn)單,主要是增加了端口號(hào)與校驗(yàn)和,然后就可以
10、直接通過(guò)IP層進(jìn)行傳輸了,因此它具有以下特點(diǎn): (1) UDP是一種無(wú)連接、不可靠的數(shù)據(jù)報(bào)傳輸服務(wù)協(xié)議。 (2) UDP對(duì)數(shù)據(jù)傳輸過(guò)程中惟一的可靠保證措施是進(jìn)行差錯(cuò)校驗(yàn),如果發(fā)生差錯(cuò),則只是簡(jiǎn)單地拋棄該數(shù)據(jù)報(bào)。(3) 如果目標(biāo)端收到的UDP數(shù)據(jù)報(bào)中的目標(biāo)端口號(hào)不能與當(dāng)前已使用的某端口號(hào)匹配,則將該數(shù)據(jù)報(bào)拋棄,并發(fā)送目標(biāo)端口不可達(dá)的ICMP差錯(cuò)報(bào)文。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP(4) UDP協(xié)議在設(shè)計(jì)時(shí)的簡(jiǎn)單性,是為了保證UDP在工作時(shí)的高效性和低延時(shí)性。因此,在服務(wù)質(zhì)量較高的網(wǎng)絡(luò)中(如局域網(wǎng)),UDP可以高效地工作。 (5) UDP常用于傳輸延時(shí)小,對(duì)可靠性要求不高,有少量
11、數(shù)據(jù)要進(jìn)行傳輸?shù)那闆r,如DNS(域名服務(wù))、TFTP(簡(jiǎn)單文件傳輸)等。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.3 傳輸控制協(xié)議TCP3.3.1 TCP報(bào)文段格式TCP報(bào)文段(常稱為段)與UDP數(shù)據(jù)報(bào)一樣也是封裝在IP中進(jìn)行傳輸?shù)?,只是IP報(bào)文的數(shù)據(jù)區(qū)為T(mén)CP報(bào)文段。TCP報(bào)文段的格式如圖3-6所示。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCPTCP目標(biāo)端口號(hào)(16位)0151631TCP源端口號(hào)(16位)序列號(hào)(32位)窗口大小(16位)確認(rèn)號(hào)(32位)FINSYNRSTPSHACKURG保留(6位)首部長(zhǎng)度(4位)校 驗(yàn) 和(16位)緊急指針(16位)選項(xiàng) 填充 數(shù) 據(jù) 區(qū)
12、圖3-6 TCP報(bào)文段的格式第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP1TCP源端口號(hào) TCP源端口號(hào)長(zhǎng)度為16位,用于標(biāo)識(shí)發(fā)送方通信進(jìn)程的端口。目標(biāo)端在收到TCP報(bào)文段后,可以用源端口號(hào)和源IP地址標(biāo)識(shí)報(bào)文的返回地址。2TCP目標(biāo)端口號(hào)TCP目標(biāo)端口號(hào)長(zhǎng)度為16位,用于標(biāo)識(shí)接收方通信進(jìn)程的端口。源端口號(hào)與IP頭部中的源端IP地址,目標(biāo)端口號(hào)與目標(biāo)端IP地址,這4個(gè)數(shù)就可以惟一確定從源端到目標(biāo)端的一對(duì)TCP連接。3序列號(hào)序列號(hào)長(zhǎng)度為32位,用于標(biāo)識(shí)TCP發(fā)送端向TCP接收端發(fā)送數(shù)據(jù)字節(jié)流的序號(hào)。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP4確認(rèn)號(hào)確認(rèn)號(hào)長(zhǎng)度為32位。5頭部長(zhǎng)度該字段
13、用4位二進(jìn)制數(shù)表示TCP頭部的長(zhǎng)短,它以32位二進(jìn)制數(shù)為一個(gè)計(jì)數(shù)單位。TCP頭部長(zhǎng)度一般為20個(gè)字節(jié),因此通常它的值為5。 6保留保留字段長(zhǎng)度為6位,該域必須置0,準(zhǔn)備為將來(lái)定義TCP新功能時(shí)使用。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP7標(biāo)志標(biāo)志域長(zhǎng)度為6位,每1位標(biāo)志可以打開(kāi)或關(guān)閉一個(gè)控制功能,這些控制功能與連接的管理(3.3.2小節(jié)講述)和數(shù)據(jù)傳輸控制有關(guān),其內(nèi)容如下所述:URG:緊急指針標(biāo)志,置1時(shí)緊急指針有效。ACK:確認(rèn)號(hào)標(biāo)志,置1時(shí)確認(rèn)號(hào)有效。如果ACK為0,那么TCP頭部中包含的確認(rèn)號(hào)字段應(yīng)被忽略。PSH:push操作標(biāo)志,當(dāng)置1時(shí)表示要對(duì)數(shù)據(jù)進(jìn)行push操作。 RST
14、:連接復(fù)位標(biāo)志,表示由于主機(jī)崩潰或其他原因而出現(xiàn)錯(cuò)誤時(shí)的連接。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCPSYN:同步序列號(hào)標(biāo)志,它用來(lái)發(fā)起一個(gè)連接的建立,也就是說(shuō),只有在連接建立的過(guò)程中SYN才被置1。FIN:連接終止標(biāo)志,當(dāng)一端發(fā)送FIN標(biāo)志置1的報(bào)文時(shí),告訴另一端已無(wú)數(shù)據(jù)可發(fā)送,即已完成了數(shù)據(jù)發(fā)送任務(wù),但它還可以繼續(xù)接收數(shù)據(jù)。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP8窗口大小窗口大小字段長(zhǎng)度為16位,它是接收端的流量控制措施,用來(lái)告訴另一端它的數(shù)據(jù)接收能力。9校驗(yàn)和校驗(yàn)和字段長(zhǎng)度為16位,用于進(jìn)行差錯(cuò)校驗(yàn)。校驗(yàn)和覆蓋了整個(gè)的TCP報(bào)文段的頭部和數(shù)據(jù)區(qū)。 10緊急指針緊急指針
15、字段長(zhǎng)度為16位,只有當(dāng)URG標(biāo)志置1時(shí)緊急指針才有效,它的值指向緊急數(shù)據(jù)最后一個(gè)字節(jié)的位置(如果把它的值與TCP頭部中的序列號(hào)相加,則表示緊急數(shù)據(jù)最后一個(gè)字節(jié)的序號(hào),在有些實(shí)現(xiàn)中指向最后一個(gè)字節(jié)的下一個(gè)字節(jié))。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP11選項(xiàng)選項(xiàng)的長(zhǎng)度不固定,通過(guò)選項(xiàng)使TCP可以提供一些額外的功能。每個(gè)選項(xiàng)由選項(xiàng)類(lèi)型(占1個(gè)字節(jié))、該選項(xiàng)的總長(zhǎng)度(占1個(gè)字節(jié))和選項(xiàng)值組成,如圖3-7所示。 選項(xiàng)類(lèi)型(1個(gè)字節(jié))總長(zhǎng)度(1個(gè)字節(jié))選項(xiàng)值(有些選項(xiàng)沒(méi)有選項(xiàng)值)圖3-7 TCP選項(xiàng)格式第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP當(dāng)前已定義的選項(xiàng)如表3-3所示。選項(xiàng)類(lèi)型
16、字段為0和1的選項(xiàng)僅各占1個(gè)字節(jié),其他的選項(xiàng)在選項(xiàng)類(lèi)型后說(shuō)明了其總長(zhǎng)度。12填充填充字段的長(zhǎng)度不定,用于填充以保證TCP頭部的長(zhǎng)度為32位的整數(shù)倍,值全為0。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP表3-3 TCP 選 項(xiàng)表略表略第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.3.2 TCP連接的建立與關(guān)閉TCP是一個(gè)面向連接的協(xié)議,TCP協(xié)議的高可靠性是通過(guò)發(fā)送數(shù)據(jù)前先建立連接,結(jié)束數(shù)據(jù)傳輸時(shí)關(guān)閉連接,在數(shù)據(jù)傳輸過(guò)程中進(jìn)行超時(shí)重發(fā)、流量控制和數(shù)據(jù)確認(rèn),對(duì)亂序數(shù)據(jù)進(jìn)行重排以及前面講過(guò)的校驗(yàn)和等機(jī)制來(lái)實(shí)現(xiàn)的。 TCP在IP之上工作,IP本身是一個(gè)無(wú)連接的協(xié)議,在無(wú)連接的協(xié)議之上要建立
17、連接,對(duì)初學(xué)者來(lái)說(shuō),這是一個(gè)較難理解的一個(gè)問(wèn)題。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP1. 建立連接TCP使用“三次握手”(3-way Handshake)法來(lái)建立一條連接。所謂三次握手,就是指在建立一條連接時(shí)通信雙方要交換三次報(bào)文。具體過(guò)程如下。2關(guān)閉連接由于TCP是一個(gè)全雙工協(xié)議,因此在通信過(guò)程中兩臺(tái)主機(jī)都可以獨(dú)立地發(fā)送數(shù)據(jù),完成數(shù)據(jù)發(fā)送的任何一方可以提出關(guān)閉連接的請(qǐng)求。關(guān)閉連接時(shí),由于在每個(gè)傳輸方向既要發(fā)送一個(gè)關(guān)閉連接的報(bào)文段,又要接收對(duì)方的確認(rèn)報(bào)文段,因此關(guān)閉一個(gè)連接要經(jīng)過(guò)4次握手。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP連接建立和關(guān)閉的過(guò)程可以用圖3-8表示,該圖
18、是通信雙方正常工作時(shí)的情況。關(guān)閉連接時(shí),圖中的u表示服務(wù)器已收到數(shù)據(jù)的序列號(hào),v表示客戶機(jī)已收到數(shù)據(jù)的序列號(hào)。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP客戶機(jī)進(jìn)程服務(wù)器進(jìn)程SYN1 SEQxSYN1 SEQy ACKx1SEQx1 ACKy1第一次握手第三次握手傳輸數(shù)據(jù)第二次握手第一次握手FIN1 SEQuACKu1FIN1 SEQvACKv1第四次握手第二次握手第三次握手圖3-8 TCP連接的建立與關(guān)閉 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.3.3 TCP的流量控制和擁塞控制機(jī)制 下面我們來(lái)看一個(gè)實(shí)例,圖3-9是主機(jī)1和主機(jī)2使用TCP協(xié)議在實(shí)際通信時(shí)的時(shí)序圖。 第第3
19、章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCPSYN1 SEQx WIN2048 MSS1024SYN1 SEQy ACKx1 WIN2048 MSS1024ACKy1 WIN20481:1024(1024)ACK WIN20481025:2048(1024)ACK WIN2048ACK2049 WIN10242049:3072(1024)ACK WIN2048ACK3073 WIN0ACK3073 WIN20483073:4096(1024)ACK WIN20484097:5120(1024)ACK WIN2048111075431主機(jī)1主機(jī)22689圖3-9 TCP連接的建立與關(guān)閉 第第3章章
20、 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP在圖3-9中,主機(jī)1連續(xù)發(fā)送了兩個(gè)報(bào)文段4和5,其長(zhǎng)度都為1024個(gè)字節(jié),這兩個(gè)報(bào)文段的數(shù)據(jù)用來(lái)填充接收方(主機(jī)2)所通知的窗口,由于主機(jī)2通知的窗口大小只有2048個(gè)字節(jié),這時(shí)主機(jī)2的緩沖區(qū)已經(jīng)被填滿,因此主機(jī)1停下來(lái)等待一個(gè)主機(jī)2的確認(rèn)。發(fā)送端發(fā)送數(shù)據(jù)的過(guò)程是如何受到接收方控制的,這可以用圖3-10表示。報(bào)文段2通知的窗口大小為2048個(gè)字節(jié),因此主機(jī)1的前兩個(gè)1024個(gè)字節(jié)的數(shù)據(jù)塊落入窗口內(nèi),如圖3-10(a)所示,窗口內(nèi)的數(shù)據(jù)是可以立即發(fā)送的數(shù)據(jù)。圖3-10(b)是圖3-9中主機(jī)1發(fā)送了報(bào)文段4和5后的情況,窗口內(nèi)的數(shù)據(jù)已發(fā)送完畢(用灰色表示),主
21、機(jī)1只能等待。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP圖3-10(c)是主機(jī)2收到前2048個(gè)字節(jié)發(fā)送了確認(rèn)報(bào)文段6窗口右移后的情況,由于報(bào)文段6通知的接收方窗口大小只有1024個(gè)字節(jié),因此只有一個(gè)1024個(gè)字節(jié)的數(shù)據(jù)塊落入窗口內(nèi)。圖3-10(d)是主機(jī)1對(duì)主機(jī)2發(fā)送了報(bào)文段7后的情況,這時(shí)窗口內(nèi)的數(shù)據(jù)已發(fā)送完畢,主機(jī)又進(jìn)入等待狀態(tài)。圖3-9中確認(rèn)報(bào)文段8對(duì)收到的前3072個(gè)字節(jié)進(jìn)行了確認(rèn),但通知的窗口大小為0,如圖3-10(e)所示,這時(shí)窗口的左邊沿到達(dá)右邊沿,即窗口的長(zhǎng)度變?yōu)?,稱其為一個(gè)0窗口,此時(shí)發(fā)送方不能再發(fā)送任何數(shù)據(jù),只能等待。等待一段時(shí)間后,由于主機(jī)2的應(yīng)用進(jìn)程從TCP緩
22、沖區(qū)中讀走了2048個(gè)字節(jié)的數(shù)據(jù),因此由窗口更新報(bào)文段9通知的窗口大小為2048個(gè)字節(jié),如圖3-10(f)所示,這時(shí)主機(jī)1又可以發(fā)送數(shù)據(jù)了。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP(e)(f)1:10241025:20482049:30723073:40964097:5120(a)1:1024 1025:2048 2049:3072 3073:40964097:5120(c)1:1024 1025:20482049:30723073:40964097:51201:10241025:2048 2049:30723073:40964097:5120(b)1:1024 1025:2048
23、2049:30723073:40964097:5120(d)1:1024 1025:20482049:30723073:40964097:5120圖3-10 TCP流量控制機(jī)制滑動(dòng)窗口協(xié)議 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP上述流量控制策略中,使用接收方通知的一個(gè)窗口大小來(lái)控制數(shù)據(jù)的發(fā)送,窗口的起始點(diǎn)為接收方確認(rèn)號(hào),終止于窗口長(zhǎng)度,只有落在窗口內(nèi)的數(shù)據(jù)可以發(fā)送。 為了解決網(wǎng)絡(luò)擁塞問(wèn)題,發(fā)送方又引入了另外一個(gè)窗口,叫擁塞窗口(Congestion Window),擁塞窗口被初始化為1個(gè)報(bào)文段的長(zhǎng)度(即另一端通知的最大報(bào)文段長(zhǎng)度為MSS)。在建立連接時(shí),發(fā)送方只發(fā)送一個(gè)長(zhǎng)度為MSS的
24、報(bào)文段,正常收到確認(rèn)后,擁塞窗口就增大為2MSS,即為原來(lái)?yè)砣翱陂L(zhǎng)度的兩倍,然后發(fā)送兩個(gè)MSS長(zhǎng)度的報(bào)文段。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP3.3.4 TCP的超時(shí)重發(fā)機(jī)制TCP協(xié)議提供的是可靠的運(yùn)輸層。前面我們已經(jīng)看到,接收方對(duì)收到的所有數(shù)據(jù)要進(jìn)行確認(rèn),TCP的確認(rèn)是對(duì)收到的字節(jié)流進(jìn)行累計(jì)確認(rèn)。發(fā)送TCP報(bào)文段時(shí),頭部的“確認(rèn)號(hào)”就指出該端希望接收的下一個(gè)字節(jié)的序號(hào),其含義是在此之前的所有數(shù)據(jù)都已經(jīng)正確收到,請(qǐng)發(fā)送從確認(rèn)號(hào)開(kāi)始的數(shù)據(jù)。TCP的確認(rèn)方式有兩種:一種是利用只有TCP頭部,而沒(méi)有數(shù)據(jù)區(qū)的專門(mén)確認(rèn)報(bào)文段進(jìn)行確認(rèn);另一種是當(dāng)通信雙方都有數(shù)據(jù)要傳輸時(shí),把確認(rèn)“捎帶”在
25、要傳輸?shù)膱?bào)文段中進(jìn)行確認(rèn),因此TCP的確認(rèn)報(bào)文段和普通數(shù)據(jù)報(bào)文段沒(méi)有什么區(qū)別。 第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP在TCP協(xié)議層實(shí)現(xiàn)超時(shí)重發(fā)的關(guān)鍵問(wèn)題是超時(shí)重送的策略,即怎樣決定超時(shí)間隔和如何確定重發(fā)的頻率。顯然使用固定大小的超時(shí)間隔有很大的不足之處。 一個(gè)好的實(shí)現(xiàn)超時(shí)重發(fā)的方案應(yīng)該是超時(shí)間隔可以隨網(wǎng)絡(luò)的通信狀況而自動(dòng)調(diào)整,即超時(shí)間隔應(yīng)具有一定的自適應(yīng)性。這種動(dòng)態(tài)調(diào)整超時(shí)間隔的方法與一條連接從發(fā)送端發(fā)出數(shù)據(jù)到收到確認(rèn)所需的往返時(shí)間RTT(Round Trip Time)有關(guān)。第第3章章 傳輸層協(xié)議傳輸層協(xié)議UDP和和TCP具體實(shí)現(xiàn)時(shí),可以在每條連接上保持一個(gè)叫RTT的變量,發(fā)送一個(gè)TCP報(bào)文段的同時(shí)啟動(dòng)定時(shí)器,收到確認(rèn)后計(jì)算出本次的RTT值(下面用M表示),然后根據(jù)下面的公式求出新的RTT加權(quán)平均值:計(jì)算RTT:RTT=RTT+(1)M計(jì)算重發(fā)超時(shí)間隔RTO(Retransmission Time Out)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 健身愛(ài)好者社團(tuán)章程范文
- 人工智能的哲學(xué)基礎(chǔ)研究-洞察闡釋
- 高三下學(xué)期班主任學(xué)科競(jìng)賽組織計(jì)劃
- 眼耳鼻喉科2025年抗生素使用計(jì)劃
- 江蘇省徐州市銅山區(qū)2024-2025學(xué)年高一下學(xué)期4月期中考試英語(yǔ)試題(解析版)
- 初一年級(jí)下學(xué)期學(xué)業(yè)發(fā)展計(jì)劃
- 冀教版英語(yǔ)三年級(jí)下冊(cè)教學(xué)計(jì)劃家校合作模式
- 3D掃描技術(shù)在醫(yī)療中的應(yīng)用范文
- 亞克力發(fā)光字制作流程中的材料選擇
- 多元文化背景下的學(xué)生管理心得體會(huì)
- 2025年公路水運(yùn)工程重大事故隱患判定標(biāo)準(zhǔn)深度解析
- 湖北省武漢市2025年高三3月份模擬考試英語(yǔ)試題含答案
- 機(jī)動(dòng)車(chē)檢測(cè)維修專業(yè)技術(shù)人員職業(yè)資格2024年筆試考試模擬題
- 鋼結(jié)構(gòu)吊裝監(jiān)理實(shí)施細(xì)則
- “住改商”登記利害關(guān)系業(yè)主同意證明(參考樣本)
- 廣東省廣州市2025年中考地理模擬卷
- 2025年鄉(xiāng)村醫(yī)學(xué)考試思想準(zhǔn)備試題及答案
- 地理巴西(第1課時(shí))課件-2024-2025學(xué)年七年級(jí)地理下冊(cè)人教版
- 員工涉黃賭毒協(xié)議書(shū)
- 2025年江蘇省南通市海安市十三校中考一模數(shù)學(xué)試題(原卷版+解析版)
- 路燈工程監(jiān)理規(guī)劃
評(píng)論
0/150
提交評(píng)論