李軍懷等新編電子工業(yè)出版社+計(jì)算網(wǎng)絡(luò)實(shí)用課件networkch7-new_第1頁(yè)
李軍懷等新編電子工業(yè)出版社+計(jì)算網(wǎng)絡(luò)實(shí)用課件networkch7-new_第2頁(yè)
李軍懷等新編電子工業(yè)出版社+計(jì)算網(wǎng)絡(luò)實(shí)用課件networkch7-new_第3頁(yè)
李軍懷等新編電子工業(yè)出版社+計(jì)算網(wǎng)絡(luò)實(shí)用課件networkch7-new_第4頁(yè)
李軍懷等新編電子工業(yè)出版社+計(jì)算網(wǎng)絡(luò)實(shí)用課件networkch7-new_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

第7章運(yùn)輸層本章主要內(nèi)容運(yùn)輸層是計(jì)算機(jī)網(wǎng)絡(luò)分層體系結(jié)構(gòu)中的核心層次。其主要任務(wù)是完成從源主機(jī)應(yīng)用進(jìn)程到目的主機(jī)應(yīng)用進(jìn)程之間的數(shù)據(jù)傳輸。本章將主要介紹運(yùn)輸層的功能以及在TCP/IP協(xié)議簇中運(yùn)輸層所采用的協(xié)議UDP和TCP。7.1運(yùn)輸層概述從通信和信息處理的角度看,運(yùn)輸層對(duì)上層屏蔽了下層的通信細(xì)節(jié),為上層應(yīng)用提供端到端的連接。物理層網(wǎng)絡(luò)層運(yùn)輸層應(yīng)用層數(shù)據(jù)鏈路層面向信息處理面向通信用戶(hù)功能網(wǎng)絡(luò)功能運(yùn)輸層為相互通信的應(yīng)用進(jìn)程提供了邏輯通信

54321運(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信主機(jī)A主機(jī)B應(yīng)用進(jìn)程應(yīng)用進(jìn)程路由器1路由器2AP1LAN2WANAP2AP3AP4IP層LAN1AP1AP2AP4端口端口54321IP協(xié)議的作用范圍運(yùn)輸層協(xié)議TCP和UDP的作用范圍AP3應(yīng)用進(jìn)程之間的通信兩個(gè)主機(jī)進(jìn)行通信實(shí)際上就是兩個(gè)主機(jī)中的應(yīng)用進(jìn)程互相通信。應(yīng)用進(jìn)程之間的通信又稱(chēng)為端到端的通信。運(yùn)輸層的一個(gè)很重要的功能就是復(fù)用和分用。應(yīng)用層不同進(jìn)程的報(bào)文通過(guò)不同的端口向下交到運(yùn)輸層,再往下就共用網(wǎng)絡(luò)層提供的服務(wù)?!斑\(yùn)輸層提供應(yīng)用進(jìn)程間的邏輯通信”。“邏輯通信”的意思是:運(yùn)輸層之間的通信好像是沿水平方向傳送數(shù)據(jù)。但事實(shí)上這兩個(gè)運(yùn)輸層之間并沒(méi)有一條水平方向的物理連接。運(yùn)輸層協(xié)議和網(wǎng)絡(luò)層協(xié)議的主要區(qū)別

應(yīng)用進(jìn)程…應(yīng)用進(jìn)程…IP協(xié)議的作用范圍(提供主機(jī)之間的邏輯通信)TCP和UDP協(xié)議的作用范圍(提供進(jìn)程之間的邏輯通信)因特網(wǎng)運(yùn)輸層與其上下層之間的關(guān)系的OSI表示法

運(yùn)輸實(shí)體運(yùn)輸實(shí)體運(yùn)輸協(xié)議運(yùn)輸層層接口運(yùn)輸服務(wù)用戶(hù)(應(yīng)用層實(shí)體)運(yùn)輸服務(wù)用戶(hù)(應(yīng)用層實(shí)體)層接口網(wǎng)絡(luò)層(或網(wǎng)際層)應(yīng)用層主機(jī)A主機(jī)B運(yùn)輸層服務(wù)訪問(wèn)點(diǎn)TSAP網(wǎng)絡(luò)層服務(wù)訪問(wèn)點(diǎn)NSAP術(shù)語(yǔ)傳輸實(shí)體通過(guò)運(yùn)輸層服務(wù)訪問(wèn)點(diǎn)TSAP(TransportServiceAccessPoint)向應(yīng)用層實(shí)體(又稱(chēng)傳輸服務(wù)用戶(hù))提供傳輸服務(wù),這里的傳輸服務(wù)用戶(hù)包括應(yīng)用層中的各種應(yīng)用進(jìn)程。傳輸實(shí)體(又稱(chēng)網(wǎng)絡(luò)服務(wù)用戶(hù))從網(wǎng)絡(luò)服務(wù)訪問(wèn)點(diǎn)NSAP(NetworkServiceAccessPoint)獲取網(wǎng)絡(luò)層(或網(wǎng)際層)提供的服務(wù)。運(yùn)輸層對(duì)等實(shí)體之間的通信遵循傳輸協(xié)議,兩個(gè)對(duì)等傳輸實(shí)體之間通信時(shí)傳送的數(shù)據(jù)單位叫做傳輸協(xié)議數(shù)據(jù)單元TPDU(TransportProtocolDataUnit)。7.2TCP/IP模型中的運(yùn)輸層7.2.1TCP和UDPUDP(UserDatagramProtocol)TCP(TransmissionControlProtocol)。圖7-2TCP/IP模型中的運(yùn)輸層協(xié)議運(yùn)輸層向上提供可靠的和不可靠的邏輯通信信道

?應(yīng)用層運(yùn)輸層發(fā)送進(jìn)程接收進(jìn)程接收進(jìn)程數(shù)據(jù)數(shù)據(jù)全雙工可靠信道數(shù)據(jù)數(shù)據(jù)使用TCP協(xié)議使用UDP協(xié)議不可靠信道發(fā)送進(jìn)程7.2.2運(yùn)輸層端口端口就是運(yùn)輸層服務(wù)訪問(wèn)點(diǎn)TSAP。端口的作用就是讓?xiě)?yīng)用層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過(guò)端口向下交付給運(yùn)輸層,以及讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段中的數(shù)據(jù)向上通過(guò)端口交付給應(yīng)用層相應(yīng)的進(jìn)程。從這個(gè)意義上講,端口是用來(lái)標(biāo)志應(yīng)用層的進(jìn)程。

端口在進(jìn)程之間的通信中所起的作用

應(yīng)用層運(yùn)輸層網(wǎng)絡(luò)層TCP報(bào)文段UDP用戶(hù)數(shù)據(jù)報(bào)應(yīng)用進(jìn)程TCP復(fù)用IP復(fù)用UDP復(fù)用TCP報(bào)文段UDP用戶(hù)數(shù)據(jù)報(bào)應(yīng)用進(jìn)程端口端口TCP分用UDP分用IP分用IP數(shù)據(jù)報(bào)IP數(shù)據(jù)報(bào)發(fā)送方接收方端口端口用一個(gè)16bit端口號(hào)進(jìn)行標(biāo)志。端口號(hào)只具有本地意義,即端口號(hào)只是為了標(biāo)志本計(jì)算機(jī)應(yīng)用層中的各進(jìn)程。在因特網(wǎng)中不同計(jì)算機(jī)的相同端口號(hào)是沒(méi)有聯(lián)系的。端口號(hào)的分配有兩種基本方式

在TCP/IP協(xié)議的實(shí)現(xiàn)中,端口號(hào)的分配有兩種基本方式:(1)全局分配,這是一種集中分配方式,由一個(gè)公認(rèn)權(quán)威的中央機(jī)構(gòu)根據(jù)用戶(hù)需要進(jìn)行統(tǒng)一分配,并將結(jié)果公布于眾。(2)本地分配,又稱(chēng)動(dòng)態(tài)連接,即進(jìn)程需要訪問(wèn)運(yùn)輸層服務(wù)時(shí),向本地操作系統(tǒng)提出申請(qǐng),操作系統(tǒng)返回本地唯一的端口號(hào),進(jìn)程再通過(guò)合適的系統(tǒng)調(diào)用,將自己和該端口連接起來(lái)(binding,綁定)。

按端口號(hào)可分為3大類(lèi)(1)熟知端口(Well

Known

Ports):從0到1023,它們緊密綁定(binding)于一些服務(wù)。通常這些端口的通信明確表明了某種服務(wù)的協(xié)議。例如:80端口實(shí)際上總是HTTP通信。(2)注冊(cè)端口(Registered

Ports):從1024到49151。它們松散地綁定于一些服務(wù)。也就是說(shuō)有許多服務(wù)綁定于這些端口,這些端口同樣用于許多其他目的。例如:許多系統(tǒng)處理動(dòng)態(tài)端口從1024左右開(kāi)始。

(3)動(dòng)態(tài)和/或私有端口(Dynamic

and/or

Private

Ports):從49152到65535。理論上,不應(yīng)為服務(wù)分配這些端口。實(shí)際上,機(jī)器通常從1024起分配動(dòng)態(tài)端口。例如默認(rèn)的HTTP端口是80,不少人將它重定向到另一個(gè)端口,如8080。7.3用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP7.3.1UDP概述用戶(hù)數(shù)據(jù)報(bào)協(xié)議UDP只在IP的數(shù)據(jù)報(bào)服務(wù)之上增加了很少一點(diǎn)的功能,這就是端口的功能(有了端口,運(yùn)輸層就能進(jìn)行復(fù)用和分用)和差錯(cuò)檢測(cè)的功能。UDP在某些方面有其特殊的優(yōu)點(diǎn):

(1)無(wú)需建立連接(2)無(wú)連接狀態(tài)管理(3)報(bào)文頭部開(kāi)銷(xiāo)?。?)應(yīng)用層能很好的控制要發(fā)送的數(shù)據(jù)和發(fā)送時(shí)間7.3.2UDP報(bào)文格式UDP數(shù)據(jù)報(bào)結(jié)構(gòu)由頭部和數(shù)據(jù)兩部分組成,頭部包含4個(gè)字段,其中每個(gè)字段各占用2個(gè)字節(jié)。各字段的含義(1)源/目的端口號(hào)(2)數(shù)據(jù)報(bào)長(zhǎng)度:數(shù)據(jù)報(bào)的長(zhǎng)度是指包括報(bào)頭和數(shù)據(jù)部分在內(nèi)的總的字節(jié)數(shù)。(3)校驗(yàn)和:用于檢查UDP報(bào)文在傳輸中是否出錯(cuò)。在計(jì)算校驗(yàn)和時(shí),要在UDP數(shù)據(jù)報(bào)之前增加12字節(jié)的偽頭部(并不是UDP的真正頭部)。UDP用戶(hù)數(shù)據(jù)報(bào)的首部格式

偽首部源端口目的端口長(zhǎng)度檢驗(yàn)和數(shù)據(jù)首部UDP長(zhǎng)度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶(hù)數(shù)據(jù)報(bào)偽首部源端口目的端口長(zhǎng)度檢驗(yàn)和數(shù)據(jù)首部UDP長(zhǎng)度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶(hù)數(shù)據(jù)報(bào)用戶(hù)數(shù)據(jù)報(bào)UDP有兩個(gè)字段:數(shù)據(jù)字段和首部字段。首部字段有8個(gè)字節(jié),由4個(gè)字段組成,每個(gè)字段都是兩個(gè)字節(jié)。

偽首部源端口目的端口長(zhǎng)度檢驗(yàn)和數(shù)據(jù)首部UDP長(zhǎng)度源IP地址目的IP地址017IP數(shù)據(jù)報(bào)字節(jié)44112122222字節(jié)發(fā)送在前數(shù)據(jù)首部UDP用戶(hù)數(shù)據(jù)報(bào)在計(jì)算檢驗(yàn)和時(shí),臨時(shí)把“偽首部”和UDP用戶(hù)數(shù)據(jù)報(bào)連接在一起。偽首部?jī)H僅是為了計(jì)算檢驗(yàn)和。校驗(yàn)和示例例如:1111001100110011011101010101010101110111011101110111101110111011110010100010001000011wraparoundsumchecksum計(jì)算UDP檢驗(yàn)和的例子

1001100100010011→153.190000100001101000→8.1041010101100000011→171.30000111000001011→14.110000000000010001→0和170000000000001111→150000010000111111→10870000000000001101→130000000000001111→150000000000000000→0(檢驗(yàn)和)0101010001000101→數(shù)據(jù)0101001101010100→數(shù)據(jù)0100100101001110→數(shù)據(jù)0100011100000000→數(shù)據(jù)和0(填充)1001011011101011→求和得出的結(jié)果0110100100010100→檢驗(yàn)和04112字節(jié)偽首部8字節(jié)UDP首部7字節(jié)數(shù)據(jù)填充按二進(jìn)制反碼運(yùn)算求和將得出的結(jié)果求反碼全0171510871315全0數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)數(shù)據(jù)全07.4傳輸控制協(xié)議TCP傳輸控制協(xié)議TCP(TransmissionControlProtocol)是運(yùn)輸層中使用最廣泛的一個(gè)協(xié)議。TCP提供全雙工和可靠的、面向連接的數(shù)據(jù)傳輸服務(wù)。并通過(guò)通信雙方三次握手、收方肯定確認(rèn)、重傳(時(shí)鐘控制),流量控制等機(jī)制保證數(shù)據(jù)在應(yīng)用進(jìn)程之間傳遞的可靠性。端口…發(fā)送

TCP

報(bào)文段TCP…TCP接收緩存發(fā)送緩存報(bào)文段…報(bào)文段報(bào)文段端口發(fā)送端接收端向發(fā)送緩存寫(xiě)入數(shù)據(jù)塊從接收緩存讀取數(shù)據(jù)塊應(yīng)用進(jìn)程應(yīng)用進(jìn)程7.4.1TCP提供的服務(wù)TCP的主要目的是提供可靠的端到端應(yīng)用進(jìn)程之間的數(shù)據(jù)傳輸,IP層只保證數(shù)據(jù)在主機(jī)之間的傳遞,而且是不可靠的,因此TCP需要很多自己的服務(wù)實(shí)現(xiàn)可靠傳輸?shù)哪康?。⑴面向連接⑵可靠性⑶數(shù)據(jù)流傳輸⑷流量控制⑸全雙工7.4.2TCP報(bào)文段格式一個(gè)TCP報(bào)文段分為頭部和數(shù)據(jù)兩部分。頭部的前20字節(jié)是固定的,選項(xiàng)部分最多為40字節(jié)。因此TCP報(bào)文段頭部的最小長(zhǎng)度是20字節(jié)。圖7-7TCP報(bào)文段格式7.4.3TCP連接管理TCP是面向連接的協(xié)議。TCP傳輸連接的建立和釋放是每一次面向連接的通信中必不可少的過(guò)程。TCP的傳輸連接包括三個(gè)狀態(tài):連接建立數(shù)據(jù)傳送連接釋放1.連接的建立第一步,A端的TCP首先向B端的TCP發(fā)送一個(gè)特殊的TCP報(bào)文段SYN,此報(bào)文段中的SYN標(biāo)志被置1,同時(shí)初始化一個(gè)起始序號(hào);1.連接的建立第二步,當(dāng)B端收到A端發(fā)來(lái)的SYN報(bào)文段,會(huì)為該TCP連接分配TCP緩存和變量,并向A端回復(fù)一個(gè)允許連接的報(bào)文段SYNACK;1.連接的建立第三步,在收到允許連接的報(bào)文段后,A端也要給該連接分配緩存和變量。然后向B端發(fā)送另一個(gè)報(bào)文段,用于對(duì)B端允許連接的SYNACK報(bào)文段進(jìn)行確認(rèn)。這種通信雙發(fā)進(jìn)行三次報(bào)文交換的過(guò)程被稱(chēng)為三次握手(three-wayhandshake)。2.?dāng)?shù)據(jù)傳輸一旦建立起TCP連接,兩個(gè)應(yīng)用進(jìn)程之間就可以相互發(fā)送數(shù)據(jù)了。通信雙方主機(jī)中的應(yīng)用進(jìn)程之間的數(shù)據(jù)傳輸是字節(jié)流方式的。發(fā)送方主機(jī)中的TCP將來(lái)自進(jìn)程的數(shù)據(jù)放到該連接的發(fā)送緩存里,然后TCP就會(huì)不時(shí)從發(fā)送緩存里取出一塊數(shù)據(jù)準(zhǔn)備發(fā)送。圖7-9TCP發(fā)送報(bào)文段的過(guò)程3.連接的釋放在數(shù)據(jù)傳輸結(jié)束后,通信雙方都可以發(fā)出釋放連接的請(qǐng)求?;诰W(wǎng)絡(luò)服務(wù)的不可靠性,必須考慮到在釋放連接時(shí),可能由于數(shù)據(jù)包的失序而使釋放連接請(qǐng)求的數(shù)據(jù)包會(huì)比其他數(shù)據(jù)包先到達(dá)目的端。此時(shí),如果目的端由于收到了釋放連接請(qǐng)求的數(shù)據(jù)包而立即釋放該連接,則勢(shì)必造成那些先發(fā)而后至的數(shù)據(jù)包丟失。為了解決這些問(wèn)題,可以把TCP連接看成是一對(duì)單工來(lái)處理連接的釋放,每個(gè)單工連接獨(dú)立的釋放。圖7-10TCP連接釋放過(guò)程7.5TCP流量控制與擁塞控制7.5.1TCP的流量控制TCP采用大小可變的滑動(dòng)窗口給應(yīng)用進(jìn)程提供流量控制服務(wù),用以消除接收緩存溢出的可能性。TCP通過(guò)讓發(fā)送方保留一個(gè)稱(chēng)為接收窗口(receivewindow)的變量來(lái)提供流量控制。發(fā)送窗口在連接建立時(shí)由雙方商定。但在通信過(guò)程中,接收方根據(jù)自己的資源情況,隨時(shí)動(dòng)態(tài)地調(diào)整對(duì)方的發(fā)送窗口上限值。圖7-11TCP利用可變窗口進(jìn)行流控收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送端要發(fā)送900字節(jié)長(zhǎng)的數(shù)據(jù),劃分為9個(gè)100字節(jié)長(zhǎng)的報(bào)文段,而發(fā)送窗口確定為500字節(jié)。發(fā)送端只要收到了對(duì)方的確認(rèn),發(fā)送窗口就可前移。發(fā)送TCP要維護(hù)一個(gè)指針。每發(fā)送一個(gè)報(bào)文段,指針就向前移動(dòng)一個(gè)報(bào)文段的距離。收到確認(rèn)即可前移1002003004005006007008009001012013014015016017018011可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011發(fā)送窗口可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送端已發(fā)送了400字節(jié)的數(shù)據(jù),但只收到對(duì)前200字節(jié)數(shù)據(jù)的確認(rèn),同時(shí)窗口大小不變?,F(xiàn)在發(fā)送端還可發(fā)送300字節(jié)。已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)已發(fā)送但未被確認(rèn)可發(fā)送不可發(fā)送指針1002003004005006007008009001012013014015016017018011已發(fā)送并被確認(rèn)可發(fā)送不可發(fā)送指針發(fā)送窗口前移發(fā)送窗口縮小發(fā)送端收到了對(duì)方對(duì)前400字節(jié)數(shù)據(jù)的確認(rèn),但對(duì)方通知發(fā)送端必須把窗口減小到400字節(jié)。現(xiàn)在發(fā)送端最多還可發(fā)送400字節(jié)的數(shù)據(jù)。利用可變窗口大小進(jìn)行流量控制

雙方確定的窗口值是400

SEQ=1SEQ=201SEQ=401SEQ=301SEQ=101SEQ=501ACK=201,WIN=300ACK=601,WIN=0ACK=501,WIN=200主機(jī)A主機(jī)B允許A再發(fā)送300字節(jié)(序號(hào)201至500)A還能發(fā)送200字節(jié)A還能發(fā)送200字節(jié)(序號(hào)301至500)A還能發(fā)送300字節(jié)A還能發(fā)送100字節(jié)(序號(hào)401至500)A超時(shí)重發(fā),但不能發(fā)送序號(hào)500以后的數(shù)據(jù)允許A再發(fā)送200字節(jié)(序號(hào)501至700)A還能發(fā)送100字節(jié)(序號(hào)501至700)不允許A再發(fā)送(到序號(hào)600的數(shù)據(jù)都已收到)SEQ=201丟失!7.5.2TCP的擁塞控制由于在TCP端到端擁塞控制中,網(wǎng)絡(luò)層沒(méi)有為運(yùn)輸層擁塞控制提供顯式的支持,即使在網(wǎng)絡(luò)中存在擁塞,端系統(tǒng)也必須通過(guò)端到端的方法處理?yè)砣刂?,因?yàn)镮P層不會(huì)向端系統(tǒng)提供有關(guān)網(wǎng)絡(luò)擁塞的反饋信息。TCP采用的方法是讓每一個(gè)發(fā)送方根據(jù)所感知的網(wǎng)絡(luò)擁塞,來(lái)限制其能向連接發(fā)送流量的速率。如果一個(gè)TCP發(fā)送方感知從它到目的地之間的路徑上沒(méi)有擁塞,則該發(fā)送方就會(huì)增加其發(fā)送速率;如果一個(gè)TCP發(fā)送方感知從它到目的地之間的路徑上有擁塞(例如TCP段的丟失等),則該發(fā)送方就會(huì)降低其發(fā)送速率。發(fā)送窗口、接收窗口和擁塞窗口發(fā)送方的發(fā)送窗口Swnd(senderwindow)應(yīng)按以下方式確定:發(fā)送窗口=Min[接收窗口,擁塞窗口]接收窗口Rwnd(receiverwindow)是接收方根據(jù)其接收能力確定的窗口值,是來(lái)自接收方的流量控制。擁塞窗口Cwnd(congestionwindow)是發(fā)送方根據(jù)網(wǎng)絡(luò)擁塞情況確定的窗口值,是由發(fā)送方的流量控制算法確定的。在沒(méi)有擁塞的穩(wěn)定工作狀態(tài)下,接收方的通知窗口和擁塞窗口應(yīng)該是一致的。為了更好的在運(yùn)輸層進(jìn)行擁塞控制,1999年公布的Internet建議標(biāo)準(zhǔn)RFC2581定義了四種算法,慢啟動(dòng)(slow-start)擁塞避免(congestionavoidance)快重傳(fastretransmit)快恢復(fù)(fastrecovery)使用這些技術(shù)的一個(gè)前提就是:由于通信線路帶來(lái)的誤碼而使分組丟失的概率很小。因此,當(dāng)TCP收到路由器發(fā)來(lái)的ICMP源抑制報(bào)文,或者發(fā)現(xiàn)連續(xù)的報(bào)文丟失現(xiàn)象或延遲過(guò)長(zhǎng)而引起超時(shí)重發(fā),就認(rèn)為發(fā)生了網(wǎng)絡(luò)擁塞。1.慢啟動(dòng)在主機(jī)剛剛開(kāi)始發(fā)送報(bào)文段時(shí)可先將擁塞窗口cwnd設(shè)置為一個(gè)最大報(bào)文段MSS的數(shù)值。在每收到一個(gè)對(duì)新的報(bào)文段的確認(rèn)后,將擁塞窗口增加至多一個(gè)MSS的數(shù)值。用這樣的方法逐步增大發(fā)送端的擁塞窗口cwnd,可以使分組注入到網(wǎng)絡(luò)的速率更加合理。

這個(gè)被稱(chēng)為慢啟動(dòng)(slowstart)的初始化階段期間,TCP發(fā)送方以很慢的速率(因此叫“慢啟動(dòng)”)開(kāi)始發(fā)送,但是以指數(shù)的速度快速增加其發(fā)送速率。2.擁塞避免在慢啟動(dòng)階段,可以發(fā)送的報(bào)文數(shù)量按指數(shù)級(jí)增加,為了防止擁塞窗口的增長(zhǎng)引起網(wǎng)絡(luò)擁塞,還需要一個(gè)狀態(tài)變量,即慢啟動(dòng)門(mén)限ssthresh(slowstartthreshold)。其用法如下:當(dāng)Cwnd<ssthresh時(shí),處于慢啟動(dòng)階段;當(dāng)Cwnd>ssthresh時(shí),進(jìn)入擁塞避免階段(使用擁塞避免算法);當(dāng)Cwnd=ssthresh時(shí),既可以使用慢啟動(dòng)算法,也可以使用擁塞避免算法。在慢啟動(dòng)階段,當(dāng)擁塞窗口大于慢啟動(dòng)門(mén)限時(shí),擁塞窗口按照線性增加,即發(fā)送方的擁塞窗口Cwnd每經(jīng)過(guò)一個(gè)往返時(shí)間RTT就增加一個(gè)MSS的大?。ǘ还茉跁r(shí)間RTT內(nèi)收到了幾個(gè)ACK)。當(dāng)發(fā)送方發(fā)現(xiàn)網(wǎng)絡(luò)出現(xiàn)擁塞,慢啟動(dòng)門(mén)限ssthresh設(shè)置為發(fā)生擁塞時(shí)發(fā)送窗口Swnd的一半。圖7-12擁塞避免過(guò)程“加性增,乘性減”(additiveincrease,multiplicativedecrease,也稱(chēng)為AIMD算法)。

3.快速重傳和快速恢復(fù)由于網(wǎng)絡(luò)擁塞導(dǎo)致某些報(bào)文段丟失,這樣在發(fā)送方可能會(huì)收到針對(duì)某一個(gè)報(bào)文段的重復(fù)確認(rèn)ACK。快速重傳算法規(guī)定,發(fā)送方只要一連收到三個(gè)重復(fù)的ACK即可判定有分組丟失了,就應(yīng)立即重傳丟失的報(bào)文段,而不必繼續(xù)等待為丟失的那個(gè)報(bào)文所設(shè)置重傳計(jì)時(shí)器的超時(shí)。不難看出,快速重傳并非取消重傳計(jì)時(shí)器,而是在某些情況下可以更早地重傳丟失的報(bào)文段,避免TCP連接會(huì)因?yàn)榈却貍饔?jì)時(shí)器的超時(shí)而空閑較長(zhǎng)的時(shí)間??熘貍髋e例M1,M2ACK2,ACK3M4主機(jī)A主機(jī)BB確認(rèn)M1

M2A發(fā)送M1和M2A收到了三個(gè)重復(fù)的確認(rèn)ACK3,就立即重傳M3,而不必等待超時(shí)重傳。M3丟失!A發(fā)送M3但丟失了A發(fā)送M4ACK3M5A發(fā)送M5ACK3B發(fā)送第二個(gè)重復(fù)確認(rèn)

ACK3M6A發(fā)送M6ACK3M3B發(fā)送第三個(gè)重復(fù)確認(rèn)

ACK3B只能再次確認(rèn)

M2(因?yàn)镸3

沒(méi)有收到)快速恢復(fù)算法與快速重傳配合使用的還有快速恢復(fù)算法。當(dāng)發(fā)送方收到3個(gè)連續(xù)重復(fù)的ACK時(shí),按“乘法減小”重新設(shè)置慢啟動(dòng)門(mén)限。與慢啟動(dòng)不同的是擁塞窗口Cwnd不是設(shè)置為1,而是設(shè)置為ssthresh+3×MSS同樣道理,假設(shè)發(fā)送方收到n個(gè)(n是大于3的自然數(shù)

)重復(fù)ACK,則將Cwnd設(shè)置為ssthresh+n×MSS若發(fā)送窗口還允許發(fā)送報(bào)文段,就按擁塞避免算

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論