




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第09章 傳輸層一 傳輸層概述AP1 AP2 1 AP3 AP4 2 3 4 5 1 2 3 4 5 AP1 AP2 AP4 AP3 router router LAN WAN LAN 運(yùn)輸層提供進(jìn)程到進(jìn)程的交付服務(wù) IP的作用范圍 運(yùn)輸層協(xié)議TCP / UDP的作用范圍 主機(jī)A 主機(jī)B 1 傳輸層的功能n 提供端到端的交付服務(wù)n 分段和重組n 提供端到端的可靠通信保證(檢錯機(jī)制、應(yīng)答機(jī)制、超時重發(fā)機(jī)制)n 按序交付(緩沖機(jī)制)n 流量控制(窗口機(jī)制)n 擁塞控制2 什么是端到端的交付端到端的交付實(shí)際是一個多路復(fù)用和多路分解的過程,下面的例子有助于我們理解傳輸層的多路復(fù)用和多路分解功能我們先考
2、察公司之間通過郵政系統(tǒng)互發(fā)信件的情景:公司的收發(fā)室為每個部門分配了一個信箱,各個部門都把要發(fā)出去的信件放到各自的信箱里,并從信箱里取走發(fā)給本部門的信件;收發(fā)室的工作人員負(fù)責(zé)從各部門的信箱里收集要發(fā)出去的信件,然后交給每天到家門口來的郵政車,以及從郵政車上取下發(fā)往本公司各部門的信件并分投到各部門的信箱之中主機(jī)之間通信的情景跟公司間通信的情景很相似:主機(jī)中各個應(yīng)用進(jìn)程將要發(fā)出去的數(shù)據(jù)塊放到各自的傳輸層服務(wù)訪問點(diǎn)(TSAP)中,并從各自的TSAP中取走發(fā)給本進(jìn)程的數(shù)據(jù)塊;傳輸層從各個進(jìn)程的TSAP中收集要發(fā)出去的數(shù)據(jù)塊,給它們加上傳輸層首部,構(gòu)成報文段,交給網(wǎng)絡(luò)層(這叫做多路復(fù)用);傳輸層接收來自網(wǎng)
3、絡(luò)層的報文段,根據(jù)報文段的首部信息將它們分別定向各到目標(biāo)進(jìn)程的TSAP(這叫做多路分解)公司 = 主機(jī)部門 = 應(yīng)用進(jìn)程收發(fā)室 = 運(yùn)輸層郵政系統(tǒng) = 網(wǎng)絡(luò)層信箱 = 傳輸層服務(wù)訪問點(diǎn)TSAP3 端口(Port)和套接字(Socket)2TFTP客戶進(jìn)程 2TPDU TFTP服務(wù)器進(jìn)程 端口 51000 端口 69 應(yīng)用層 出隊列 入隊列 出隊列 入隊列 n 端口就是傳輸層服務(wù)訪問點(diǎn)TSAP,每個網(wǎng)絡(luò)應(yīng)用進(jìn)程都有1到多個端口,其作用相當(dāng)于信箱:網(wǎng)絡(luò)應(yīng)用進(jìn)程將要發(fā)送的數(shù)據(jù)塊放在各自的端口中;傳輸層從各網(wǎng)絡(luò)應(yīng)用進(jìn)程的端口中收集數(shù)據(jù)塊,給它們加上源、目端口號等控制字段,構(gòu)成報文段,然后交網(wǎng)絡(luò)層傳送;
4、傳輸層接收來自網(wǎng)絡(luò)層的數(shù)據(jù)報,根據(jù)它們的目的端口號字段將它們包含的數(shù)據(jù)定向到恰當(dāng)?shù)亩丝谥校痪W(wǎng)絡(luò)應(yīng)用進(jìn)程從各自的端口中取走發(fā)給它們的數(shù)據(jù)塊;端口通常就是報文隊列,如上圖所示n 端口號 在一個端系統(tǒng)內(nèi)有多個端口,端口號就是端口標(biāo)識,也就是傳輸層地址n 端系統(tǒng)中的端口總是和運(yùn)行于其上的一個網(wǎng)絡(luò)應(yīng)用進(jìn)程相關(guān)聯(lián),從這個意義上講,在一個端系統(tǒng)內(nèi),端口號同時也是網(wǎng)絡(luò)應(yīng)用進(jìn)程的標(biāo)識n 有兩類端口號 :一類是周知端口號,編號范圍是0 1023,每當(dāng)開發(fā)一種新的網(wǎng)絡(luò)服務(wù)程序,必須給它分配一個周知端口號,比如FTP服務(wù)器的端口號是21,HTTP服務(wù)器的端口號是80,等等;另一類是一般端口號,用來隨時分配給請求通信的
5、客戶進(jìn)程n 端口號僅具有本地意義,在一個端系統(tǒng)上運(yùn)行的多個網(wǎng)絡(luò)應(yīng)用進(jìn)程的端口號不能重疊,運(yùn)行在不同的端系統(tǒng)上的網(wǎng)絡(luò)應(yīng)用進(jìn)程的端口號可以重疊,比如運(yùn)行在多個端系統(tǒng)上的HTTP服務(wù)器進(jìn)程的端口號都是80。為了唯一地標(biāo)識一個網(wǎng)絡(luò)應(yīng)用進(jìn)程的端口,除端口號外,還必須加上IP地址,IP地址加端口號就是所謂的套接字;在TCP / IP協(xié)議中,UDP套接字是一個2元組:(IP地址,端口號);TCP套接字是一個4元組:(源IP地址,源端口號,目的IP地址,目的端口號)二 互聯(lián)網(wǎng)的傳輸層協(xié)議1 互聯(lián)網(wǎng)的兩個傳輸層協(xié)議互聯(lián)網(wǎng)的傳輸層協(xié)議 網(wǎng)絡(luò)接口層網(wǎng)絡(luò)層傳輸層應(yīng)用層TCP UDP 互聯(lián)網(wǎng)的傳輸層協(xié)議有兩個傳輸控制協(xié)
6、議TCP和用戶數(shù)據(jù)報協(xié)議UDP。TCP提供可靠的、面向連接的運(yùn)輸服務(wù),UDP提供不可靠的、無連接的運(yùn)輸服務(wù)兩個對等的傳輸層實(shí)體在通信時傳送的數(shù)據(jù)單元叫作傳輸層協(xié)議數(shù)據(jù)單元 TPDU;TCP傳送的協(xié)議數(shù)據(jù)單元是 TCP 報文段;UDP 傳送的協(xié)議數(shù)據(jù)單元是 UDP 報文或用戶數(shù)據(jù)報2 用戶數(shù)據(jù)報協(xié)議UDP1)UDP概述n UDP提供不可靠的、無連接的運(yùn)輸服務(wù)n UDP 只在 IP 的數(shù)據(jù)報服務(wù)之上增加了很少一點(diǎn)的功能,也就是端口的功能和差錯檢測的功能。UDP不提供差錯恢復(fù)、流量控制和擁塞控制功能,不保證按序交付n 發(fā)送數(shù)據(jù)時無須事先建立連接,收到一個UDP報文時無須應(yīng)答n UDP的優(yōu)點(diǎn):UDP的
7、主機(jī)無須維護(hù)復(fù)雜的連接狀態(tài)表;UDP用戶數(shù)據(jù)報只有8字節(jié)的首部開銷;網(wǎng)絡(luò)出現(xiàn)擁塞時不會使源主機(jī)的發(fā)送速率降低。這對某些實(shí)時應(yīng)用是很重要的2)UDP用戶數(shù)據(jù)報的格式目的端口號 源端口號 長度 檢查和 應(yīng)用層報文 UDP用戶數(shù)據(jù)報格式 3 傳輸控制協(xié)議TCP1)TCP概述TCP 發(fā)送緩存 端口 應(yīng)用進(jìn)程1 TCP 接收緩存 端口 應(yīng)用進(jìn)程2 報文段 報文段 報文段 n TCP是面向連接的協(xié)議,即位于兩個端系統(tǒng)中的一對應(yīng)用進(jìn)程在交換數(shù)據(jù)前,這兩個端系統(tǒng)中的TCP必需事先交換一系列用于控制目的的報文段,目的是為那一對進(jìn)程建立一個TCP連接。建立TCP連接實(shí)質(zhì)就是兩個端系統(tǒng)中的TCP為連接的雙方分配資源
8、,初始化若干狀態(tài)變量n 一個TCP連接包含以下要素:一臺主機(jī)上的緩存、一組變量、與一個進(jìn)程關(guān)聯(lián)的套接字,以及另一臺主機(jī)上的緩存、一組變量、與一個進(jìn)程關(guān)聯(lián)的套接字n TCP連接既不是電路交換網(wǎng)絡(luò)中的端到端TDM或FDM電路,也不是一條虛電路,原因在于TCP連接狀態(tài)僅保存在端系統(tǒng)中,中繼結(jié)點(diǎn)不會維持TCP連接狀態(tài)n TCP連接的雙方以全雙工方式通信,圖中為了簡潔只表現(xiàn)了一個方向上的數(shù)據(jù)流。TCP連接僅支持點(diǎn)對點(diǎn)方式,不支持多點(diǎn)方式,因此TCP不支持廣播和多播n 一旦建立起TCP連接,兩個應(yīng)用進(jìn)程就可以交換數(shù)據(jù)了,大致的過程如上圖所示,同樣是為了簡潔沒有表現(xiàn)出IP和鏈路層的動作n 發(fā)送進(jìn)程發(fā)送數(shù)據(jù)的
9、速度和接收進(jìn)程接收數(shù)據(jù)的速度不相同,TCP需要緩存暫存數(shù)據(jù)。每個方向上都有兩個緩存,發(fā)送緩存和接收緩存,緩存的數(shù)據(jù)結(jié)構(gòu)可能是環(huán)形字節(jié)隊列,如下圖所示。發(fā)送緩存中的的位置分為3類:白色為空位置,發(fā)送進(jìn)程可以將數(shù)據(jù)填入到空位置;淺灰色位置存放的是TCP將要要發(fā)送的字節(jié);深灰色位置存放的字節(jié)已發(fā)送出去,但還沒被確認(rèn),一旦其中的字節(jié)被確認(rèn),存放被確認(rèn)字節(jié)的位置即可被發(fā)送進(jìn)程再利用。接收緩存中的位置分為2類:白色表示空閑位置,從網(wǎng)絡(luò)接收的數(shù)據(jù)存放到這個區(qū)域;灰色位置存放已接收的字節(jié),這些字節(jié)可以被接收進(jìn)程讀取,當(dāng)其中的字節(jié)接收進(jìn)程被讀取后,其位置可被再利用發(fā)送進(jìn)程 TCP 接收進(jìn)程 TCP 字節(jié)流 發(fā)送
10、 緩存 接收 緩存 下一個要 寫入的字節(jié) 下一個要 發(fā)送的字節(jié) 未發(fā)送 未讀取 已發(fā)送等待確認(rèn)的字節(jié) 下一個要 讀取的字節(jié) 下一個要 接收的字節(jié) 2)TCP報文段首部格式源端口號目的端口號序號確認(rèn)號數(shù)據(jù)偏移保留 URG ACK PSH RST SYN FIN 窗口檢驗(yàn)和緊急指針選項(長度可變)填充n 源端口號(2B)和目的端口號(2B) 源端口號就是發(fā)放方進(jìn)程的端口號,目的端口號就是接收方進(jìn)程的端口號。TCP借助于這兩個字段實(shí)現(xiàn)多路復(fù)用和多路分解功能n 序號(4B) 序號字段的值指示本報文段所攜帶的數(shù)據(jù)的首字節(jié)序號。比如A、B兩個進(jìn)程建立了TCP連接,A通過該連接向B發(fā)送了500000B,假設(shè)
11、TCP這50000B數(shù)據(jù)分成500個片段,每個片段段長度為1000B,第一個片段的首字節(jié)編號為0,第二個片段的首字節(jié)編號為1000,第三個片段的首字節(jié)編號為2000,。然后TCP會將這500個片段封裝成500個報文段交網(wǎng)絡(luò)層發(fā)送,則第一個報文段的序號字段填入0,第二個報文段的序號字段填入1000,第三個報文段的序號字段填入2000 ,n 確認(rèn)號(4B) 期望收到對方的下一個報文段的數(shù)據(jù)的首字節(jié)序號n 首部長度(4b) 由于存在選項字段,所以要設(shè)首部長度字段指示TCP首部的字節(jié)數(shù)。需要強(qiáng)調(diào)的是該字段的單位是32比特字n 保留(6b) 留著以后使用,目前應(yīng)置為0n 緊急比特URG(1b) 為1表示
12、緊急指針字段有效。它告訴系統(tǒng)此報文段中有緊急數(shù)據(jù)(相當(dāng)于高優(yōu)先級數(shù)據(jù))應(yīng)盡快傳送n 確認(rèn)比特ACK(1b) 為1表示確認(rèn)號字段有效n 急迫比特PSH(1b) 接收方TCP收到PSH位置1的報文段后,會立即交付接收方應(yīng)用進(jìn)程,而不是等接收緩存滿后再上交n 復(fù)位比特RST(1b) 為1表示TCP連接出現(xiàn)嚴(yán)重錯誤,需立即釋放連接,然后重建TCP連接n 同步比特SYN(1b) 為1表示是一個連接請求或連接接受報文段n 終止比特FIN(1b) 為1表示此報文段的發(fā)送方已發(fā)完數(shù)據(jù),請求釋放連接n 窗口(2B) 用來控制對方發(fā)送的數(shù)據(jù)量,單位是字節(jié)。TCP 連接的一端根據(jù)設(shè)置的緩存空間大小確定自己的接收窗口
13、大小,然后通知對方以確定對方的發(fā)送窗口的上限n 檢查和(2B) 檢驗(yàn)和字段檢驗(yàn)的范圍包括首部和數(shù)據(jù)這兩部分n 緊急指針(2B) 指出本報文段中緊急數(shù)據(jù)的最后一個字節(jié)的序號n 選項 TCP 只規(guī)定了一種選項,即最大報文段長度 MSS ,該字段旨在告訴對方 TCP,我的緩存所能接收的報文段的數(shù)據(jù)字段的最大長度是 MSS 個字節(jié)3)TCP如何確保傳輸?shù)目煽啃訲CP確保傳輸可靠性的措施包括計算校驗(yàn)和、給要發(fā)送的數(shù)據(jù)以字節(jié)為單位編號、在報文段中捎帶確認(rèn)信息、重傳TCP如何計算檢查和?TCP通過計算檢查和提供檢錯功能,校驗(yàn)的范圍包括首部、數(shù)據(jù)和偽首部;偽首部長度為12B,其中包括了源IP地址(4B)、目的
14、IP地址(4B)、協(xié)議號、報文段長度等字段,偽首部僅僅用于計算檢查和;在計算檢查和時,臨時將TCP首部中的檢查和字段置0;如果數(shù)據(jù)部分的長度是奇數(shù)個字節(jié),則在其后臨時補(bǔ)一個全0字節(jié),計算完檢查和后刪除該字節(jié);將偽首部、首部、數(shù)據(jù)看成是一個16位長的字序列,將所有的字進(jìn)行二進(jìn)制反碼求和,即最高位上有進(jìn)位時不進(jìn)位,而是在和的最低位上加1,然后將求和的結(jié)果取反,得到的結(jié)果就是檢查和TCP如何給要發(fā)送的數(shù)據(jù)編號?TCP把一個連接中發(fā)送的所有數(shù)據(jù)字節(jié)都編了號,且兩個方向上的數(shù)據(jù)流中的字節(jié)編號是彼此獨(dú)立的。編號不一定總是從0開始,TCP生成一個0232-1之間的隨機(jī)數(shù)作為第一個字節(jié)的編號。比如主機(jī)A中的進(jìn)
15、程1通過TCP連接向主機(jī)B中的進(jìn)程2一共發(fā)送了50000字節(jié)的數(shù)據(jù),這些數(shù)據(jù)被主機(jī)A中的TCP看成是一個字節(jié)流,字節(jié)流的首字節(jié)序號是0,其后的字節(jié)序號依次是1、2、3、49999假設(shè)主機(jī)A中的TCP將這50000B數(shù)據(jù)等分成500個的數(shù)據(jù)塊,每個數(shù)據(jù)塊的大小是1000B,則第一個數(shù)據(jù)塊的首字節(jié)序號是0,第二個數(shù)據(jù)塊的首字節(jié)序號是1000,第三個數(shù)據(jù)塊的首字節(jié)序號是2000,依次類推主機(jī)A中的TCP將這500個數(shù)據(jù)塊封裝成500個報文段交網(wǎng)絡(luò)層發(fā)送,它將在第一個報文段的序號字段填入0,在第二個報文段的序號字段填入1000,在第3個報文段的序號字段中填入2000,依次類推。一言蔽之,報文段中的序號
16、字段的值就是它所攜帶的數(shù)據(jù)塊的首字節(jié)序號TCP如何對收到的數(shù)據(jù)進(jìn)行確認(rèn)?規(guī)則1 一方向另一方發(fā)送報文段時,通過報文段的確認(rèn)號字段告訴對方它期待的下一個數(shù)據(jù)字節(jié)的序號是多少。比如主機(jī)A中的進(jìn)程1和主機(jī)B中的進(jìn)程2通過TCP連接交換數(shù)據(jù),在某一時刻,主機(jī)B中的TCP收到一個報文段,其中包含了進(jìn)程1發(fā)給進(jìn)程2的數(shù)據(jù),假設(shè)該報文段的確認(rèn)號字段的值為ACKN,于是主機(jī)B中的TCP就明白了:進(jìn)程2發(fā)給進(jìn)程1的數(shù)據(jù)中,序號為ACKN -1的字節(jié)以及在它之前的字節(jié)已經(jīng)被主機(jī)A中的TCP收到,正期待接收序號為ACKN的字節(jié)規(guī)則2 如果一方?jīng)]有數(shù)據(jù)要發(fā)送,并且它接收到對方一個按序到達(dá)的報文段,同時前一個按序到達(dá)的
17、報文段已經(jīng)確認(rèn)過了,它會等待500毫秒,如果500毫秒內(nèi)沒有收到對方下一個按序到達(dá)的報文段,它會向?qū)Ψ桨l(fā)一個不包含數(shù)據(jù)的ACK報文段,通過其中的確認(rèn)號字段告訴對方它期待的下一個數(shù)據(jù)字節(jié)的序號;ACK報文段不攜帶數(shù)據(jù),不消耗序號,也不用確認(rèn)規(guī)則3 如果一方收到按序到達(dá)的報文段,前一個按序到達(dá)報文段還沒有確認(rèn),它立即向?qū)Ψ桨l(fā)送ACK報文段Seq = 1201, 1201 1400, Ack =4001 Seq = 4001, 4001 5000, Ack =1401 Ack =5001 Seq = 5001, 50016000, Ack =1401 Seq = 6001, 60017000, Ac
18、k =1401 Ack =7001 客戶機(jī) 服務(wù)器 <500ms 規(guī)則1、2、3的圖示500ms 規(guī)則4 接收端收到一個失序到達(dá)的報文段,使得接收到的數(shù)據(jù)中產(chǎn)生空隙,接收端立即發(fā)送ACK報文段,以告訴對方它期待收到的下一個數(shù)據(jù)字節(jié)的序號規(guī)則5 接收端收到一個能補(bǔ)空隙的報文段,接收端立即發(fā)送ACK報文段,以告訴對方它期待的下一個數(shù)據(jù)字節(jié)的序號規(guī)則6 接收端收到一個重復(fù)到達(dá)的報文段,接收端立即發(fā)送ACK報文段,以告訴對方它期待的下一個數(shù)據(jù)字節(jié)的序號Seq =501, 501 600, Ack =xAck =701 發(fā)送方 接收方 超時 Seq =601, 601 700, Ack =xSeq
19、 =701, 701 800, Ack =xSeq =801, 801 900, Ack =xAck =701 接收方緩存Seq =701, 701 800, Ack =xAck =901 規(guī)則4和規(guī)則5的圖示 Seq =501, 501 600, Ack =xAck =701 發(fā)送方 接收方 Seq =601, 601 700, Ack =xSeq =501, 501 600, Ack =xAck =701 超時 規(guī)則6圖示 TCP的重傳機(jī)制TCP設(shè)置了一個定時器和最久未被確認(rèn)的報文段關(guān)聯(lián),另外TCP設(shè)置了一個SendBase變量記錄最久未被確認(rèn)的、最小的字節(jié)序號;TCP會重傳引發(fā)超時的報文
20、段,以期糾正傳輸錯誤;我們通過一個簡化的TCP發(fā)送方進(jìn)程理解TCP的超時重傳機(jī)制NextSeqNum = InitiaSeqNumberSendBase = InitialSeqNumberLoop(forever)Switch(event)event :data received from Application above create TCP segment with sequence number NextSeqNumif (timer currently not running)start timerpass segment to IPNextSeqNum = NextSeqNum
21、+ length(data)break;event :timer timeoutretransmit not-yet-acknowledged segment with smallest sequence numberstart timerbreak;event :ACK received,with ACK field value of yif(y > SendBase)SendBase = yif(there are currently not-yet-acknowledged segment)start timer break;Seq =101, 101 200, Ack =xAck
22、 =301 發(fā)送方 接收方 Seq =201, 201 300, Ack =xSeq =301, 301 400, Ack =xSeq =401, 401 500, Ack =x接收方緩存Ack =301 Seq =501, 501 600, Ack =xAck =301 Seq =601, 601 700, Ack =xAck =301 Seq =601, 601 700, Ack =xAck =701 快速重傳圖示 除了超時引發(fā)重傳外,還有一種情況會引發(fā)重傳,即當(dāng)發(fā)送方收到3個重復(fù)的ACK報文段時,發(fā)送方會立即重傳跟在被重復(fù)確認(rèn)的報文段之后的報文段,而不用等到計時器超時,這種情況叫快速重傳
23、。如上圖所示5)TCP的流量控制機(jī)制n-1n n+1m m+1m+2 m-1合攏展開窗口大小左沿右沿數(shù)據(jù)字節(jié)序號 回縮流量控制就是接收方對發(fā)送方發(fā)送數(shù)據(jù)的速率進(jìn)行控制,目的是為了避免發(fā)送方發(fā)送數(shù)據(jù)太快以至于使接收方的緩存溢出TCP采用滑動窗口機(jī)制提供流量控制功能。TCP為建立了TCP連接的兩個進(jìn)程分別設(shè)置了一個名為發(fā)送窗口的變量,可以把發(fā)送窗口理解為一個序號集合,序號落在窗口內(nèi)的數(shù)據(jù)字節(jié)允許發(fā)送,序號落在窗口之外的數(shù)據(jù)字節(jié)不允許發(fā)送。如上圖所示窗口可以合攏、展開以及回縮 :合攏指窗口左沿向右移動,這意味著某些已發(fā)送的字節(jié)得到確認(rèn);展開指窗口右沿向右移動,這意味著可以從發(fā)送緩存中取更多新的字節(jié)發(fā)
24、送;回縮右沿向左移動,這意味著本來可以發(fā)送的字節(jié)現(xiàn)在不允許發(fā)送了,這是最不希望出現(xiàn)的一方的發(fā)送窗口的大小為MIN(對方接收窗口的大小rwnd,擁塞窗口的大小cwnd);對方接收窗口的大小通常代表對方還有多少接收緩存可用;一方向另一方發(fā)送報文段時,通過窗口字段告訴對方我的接收窗口的大小是多少,窗口的工作機(jī)制如下圖所示SEQ = 1 SEQ = 101 SEQ = 201 ACK = 201 , WIN = 300 SEQ = 301 SEQ = 401 ACK = 501 , WIN = 200 SEQ = 201 SEQ = 501 ACK = 601 , WIN = 0 服務(wù)器客戶機(jī)服務(wù)器還
25、能發(fā)300B服務(wù)器還能發(fā)200B允許服務(wù)器再發(fā)300B,序號201至500服務(wù)器還能發(fā)100B,序號401至500發(fā)送窗口已滿,不允許再發(fā)送500以后的數(shù)據(jù)服務(wù)器超時重發(fā),不允許再發(fā)送500以后的數(shù)據(jù)允許服務(wù)器再發(fā)200B,序號501至700服務(wù)器還能發(fā)100B,序號601至700窗口關(guān)閉,不允許服務(wù)器再發(fā)送利用可變窗口大小進(jìn)行流量控制,雙方事先確定的窗口大小為400B6)TCP的擁塞控制機(jī)制當(dāng)網(wǎng)絡(luò)中的端系統(tǒng)向網(wǎng)絡(luò)中注入了太多的分組,以至于網(wǎng)絡(luò)中交換機(jī)和路由器的緩沖區(qū)溢出,擁塞便發(fā)生了。當(dāng)發(fā)生擁塞時,分組時延會急劇增加,而網(wǎng)絡(luò)的吞吐量會急劇下降擁塞控制機(jī)制分為兩大類:開環(huán)擁塞控制和閉環(huán)擁塞控制
26、開環(huán)擁塞控制技術(shù)用于預(yù)防擁塞,包括n 在端系統(tǒng)中應(yīng)用能預(yù)防擁塞的重傳策略n 在端系統(tǒng)中應(yīng)用能預(yù)防擁塞的確認(rèn)策略n 在中繼結(jié)點(diǎn)上應(yīng)用恰當(dāng)?shù)膩G包策略等閉環(huán)控制技術(shù)用于消除擁塞,包括n 當(dāng)一個路由器發(fā)生擁塞時,通知其上游路由器降低分組發(fā)送速率n 當(dāng)路由器發(fā)生擁塞時,向源端系統(tǒng)發(fā)一個分組,告知源點(diǎn)發(fā)生了擁塞n 讓端系統(tǒng)能感知擁塞的發(fā)生的征兆,如端系統(tǒng)推遲收到已發(fā)分組的確認(rèn),從而降低發(fā)送分組的速率n 中繼結(jié)點(diǎn)將分組中的某些位置1,以此告知發(fā)送方或接收方發(fā)生了擁塞TCP的擁塞控制機(jī)制分為3個階段:慢開始、擁塞避免和擁塞檢測n 慢開始 指數(shù)增加 開始時擁塞窗口為1個MSS,在收到確認(rèn)前僅能發(fā)送一個報文段;在
27、超時發(fā)生前收到第一個報文段的確認(rèn)后,擁塞窗口增至2個MSS,即在收到確認(rèn)前允許發(fā)送2個報文段;在超時發(fā)生前收到第2、3個報文段的確認(rèn)后,擁塞窗口增至4個MSS,即在收到確認(rèn)前允許發(fā)送4個報文段;在超時發(fā)生前收到第4、5、6、7個報文段的確認(rèn)后,擁塞窗口增至8個MSS; ;即擁塞窗口以指數(shù)方式增長;當(dāng)擁塞窗口達(dá)到慢開始門限值時,便進(jìn)入到擁塞避免階段n 擁塞避免 加法增加 進(jìn)入擁塞避免階段后,擁塞窗口以線性方式增長,即當(dāng)窗口中的報文段的確認(rèn)全部收到后,擁塞窗口加1個MSSn 擁塞檢測 乘法減少 端系統(tǒng)是在要重發(fā)一個報文段時意識到擁塞發(fā)生了;重發(fā)報文段有兩種情況,一種是發(fā)生超時,另一種是收到3個重復(fù)
28、的ACK;如果發(fā)生超時,TCP將慢開始門限值設(shè)為發(fā)送窗口的一半,擁塞窗口設(shè)為1,重新進(jìn)入慢開始階段;如果收到3個重復(fù)的ACK,TCP將慢開始門限值設(shè)為發(fā)送窗口的一半,擁塞窗口設(shè)為慢開始門限值,進(jìn)入擁塞避免階段7)TCP的連接管理傳輸層的連接有3個階段:連接建立、數(shù)據(jù)傳輸和連接釋放之所以要有連接建立過程,目的在于n 使連接的雙方知道對方的存在n 使得雙方能協(xié)商一些參數(shù),如最大報文長度、窗口大小、服務(wù)質(zhì)量等n 對運(yùn)輸層實(shí)體的資源進(jìn)行分配,如緩存、連接表中的項目等。連接表包含以下字段:連接號、連接狀態(tài)、本地IP、本地端口號、遠(yuǎn)端IP、遠(yuǎn)端端口號使用TCP協(xié)議進(jìn)行通信的兩個網(wǎng)絡(luò)應(yīng)用進(jìn)程通常采用客戶機(jī)/服務(wù)器架構(gòu),即其中的一個進(jìn)程充當(dāng)客戶機(jī)的角色,另一個進(jìn)程充當(dāng)服務(wù)器的角色。客戶機(jī)進(jìn)程主動發(fā)起連接建立請求,服務(wù)器進(jìn)程監(jiān)聽并響應(yīng)來自客戶進(jìn)程的連接建立請求客戶端的TCP 服務(wù)器端的TCP SYN,SEQ=XSYN,ACK,SEQ=Y,ACK=X+1ACK ,ACK=Y+1FIN,SEQ=UACK=U+1FIN,ACK,SEQ=V,ACK=U+1ACK,SEQ=U+1,ACK=V+1雙向的數(shù)據(jù)傳輸SYN_SENTESTABLISHEDESTAB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年證券從業(yè)資格考試高效復(fù)習(xí)技巧試題及答案
- 醫(yī)消毒與滅菌技術(shù)試題及答案
- 大班安全教育《保護(hù)五官》
- 人教版生物七年級下冊 第四單元第五章《人體內(nèi)廢物的排出》教學(xué)設(shè)計
- 免疫學(xué)課件比賽
- 班級親子活動的組織與實(shí)施計劃
- 快樂游戲幼兒園小班班級工作計劃
- 學(xué)校年度班級工作計劃同心協(xié)力
- 身心健康教育與維護(hù)計劃
- 美術(shù)教育課堂氛圍的營造計劃
- 醫(yī)院品管圈(QCC)活動成果報告書-基于QFD 潤心服務(wù)改善 ICU 患者及家屬就醫(yī)體驗(yàn)
- 安全風(fēng)險分級管控清單(大全)
- 2024版國開電大專科《管理英語1》在線形考(單元自測1至8)試題及答案
- 有效溝通技巧(適用于工廠)PPT幻燈片
- 教科版四年級科學(xué)下冊實(shí)驗(yàn)報告
- 高標(biāo)準(zhǔn)農(nóng)田假設(shè)檢驗(yàn)批表格
- HCCDP 云遷移認(rèn)證理論題庫
- DIN - ISO - 2768-MK-E的公差標(biāo)準(zhǔn)(德國)中文翻譯
- GB/T 467-2010陰極銅
- 檢驗(yàn)科標(biāo)本采集手冊(新版)
- 六年級上冊科學(xué)課件-第3單元 機(jī)械好幫手 復(fù)習(xí)課件-粵教版(共39張PPT)
評論
0/150
提交評論