CH5-L14 擁塞控制-連接管理_第1頁
CH5-L14 擁塞控制-連接管理_第2頁
CH5-L14 擁塞控制-連接管理_第3頁
CH5-L14 擁塞控制-連接管理_第4頁
CH5-L14 擁塞控制-連接管理_第5頁
已閱讀5頁,還剩64頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第14講 擁塞控制;連接管理 【第5章 傳輸層 (第4講)】上講小結(jié)(快速提問1)上講的重點(diǎn)是什么?上講要點(diǎn)復(fù)習(xí)(快速提問2)TCP 的主要特點(diǎn) TCP 報(bào)文段首部的組成什么是面向字節(jié)流的控制方法序號、確認(rèn)序號、窗 口的作用如何計(jì)算加權(quán)平均往返時間RTTS如何計(jì)算超時重傳時間 RTO 流量控制的基本思想TCP如何實(shí)現(xiàn)流量控制TCP提高傳輸效率的措施本講內(nèi)容安排1. 擁塞控制 (5.8)1.1 擁塞控制的基本概念 (5.8.1) 1.2 TCP的擁塞控制方法(5.8.2) 1.2.1 擁塞窗口cwnd 1.2.2 慢開始和指數(shù)增長 1.2.3 線性增長的擁塞避免算法 1.2.4 提高效率的相關(guān)措

2、施:快重傳和快恢復(fù)1.3 IP層的擁塞控制方法:隨機(jī)早期檢測 RED丟包策略 5.8.32 TCP 的傳輸連接管理 (5.9)2.1 傳輸連接的三個階段 2.2 建立連接(5.9.1)2.3 TCP 的連接釋放(5.9.2) 2.4 TCP 的有限狀態(tài)機(jī) (5.9.3) 本講預(yù)習(xí)情況檢查(快速提問3)什么是擁塞、擁塞控制擁塞控制與流量控制的關(guān)系擁塞控制所起的作用閉環(huán)的擁塞控制的主要環(huán)節(jié)TCP的擁塞控制方法的要點(diǎn)擁塞窗口 cwnd概念:傳輸輪次、 ssthresh 值慢開始+指數(shù)規(guī)律增長“加法增大”的擁塞避免“乘法減小”的狀態(tài)轉(zhuǎn)換傳輸連接的三個階段 三次握手:連接請求、確認(rèn)報(bào)文、再次確認(rèn)TCP

3、的連接釋放1. 擁塞控制 (5.8)1.1 擁塞控制的基本概念 (5.8.1)1.1.1 什么是擁塞(congestion) :在某段時間,對網(wǎng)絡(luò)中某資源的需求超過該資源能提供的可用部分,整個網(wǎng)絡(luò)的吞吐量隨輸入負(fù)荷的增大而下降(網(wǎng)絡(luò)的性能變壞)產(chǎn)生了擁塞 輸入的負(fù)載吞吐量0擁塞輕度擁塞: 輸入負(fù)載增加的快,網(wǎng)絡(luò)吞吐量增長的慢擁塞:網(wǎng)絡(luò)的吞吐量隨著輸入負(fù)載的增加而下降死鎖:網(wǎng)絡(luò)的吞吐量降為0輕度擁塞輸入的負(fù)載吞吐量0死鎖(吞吐量 = 0)沒有擁塞控制的情況擁塞擁塞控制檢測、避免、緩解擁塞的措施檢測是否發(fā)生擁塞,如,記錄超時重傳的包的數(shù)目若較多,減少源站發(fā)送數(shù)據(jù)的速率合理調(diào)度資源,避免和緩解擁塞如

4、,需要丟棄分組時,優(yōu)先丟棄哪些分組擁塞控制的作用 提供的負(fù)載吞吐量理想的擁塞控制實(shí)際的擁塞控制0死鎖(吞吐量 = 0)無擁塞控制擁塞輕度擁塞1.1.2 擁塞控制的一般原理 分析:出現(xiàn)資源擁塞的條件: 對資源需求的總和 可用資源 (5-7) 注意,簡單地增加資源,不一定能避免擁塞。如,只增加帶寬,造成緩存和CPU資源更缺乏。如,增加A站的緩存,大量分組到達(dá)A時,存儲等待時間很長,引起源站更多的超時重發(fā),使網(wǎng)絡(luò)中的負(fù)載更重。即,擁塞是全局性、綜合性問題擁塞控制的難度大是動態(tài)的、全局的、綜合的問題。擁塞具有“惡性循環(huán)”的可能:與交通類似:開始輕度堵車車速降低占用更多的道路資源堵車加劇部分資源的不足,

5、引起其它資源消耗增加如,高速網(wǎng)絡(luò),出現(xiàn)緩存不夠而造成丟包 重發(fā)需要更多的緩存和帶寬(資源的不足)擁塞控制需要開銷,占用網(wǎng)絡(luò)資源, 本身可能引起或惡化擁塞,甚至死鎖檢測是否發(fā)生擁塞反饋擁塞信息二類擁塞控制開環(huán)控制閉環(huán)控制開環(huán)控制開環(huán)控制方法:設(shè)計(jì)網(wǎng)絡(luò)時,事先考慮有關(guān)發(fā)生擁塞的因素,力求網(wǎng)絡(luò)在工作時不產(chǎn)生擁塞。 何時接受新的流量何時開始丟棄分組,丟棄哪些分組流量如何分配,等如,通信量整形法:數(shù)據(jù)包到達(dá)較快時,最多以一種預(yù)定的速率轉(zhuǎn)發(fā)。閉環(huán)控制 基于反饋的思想:網(wǎng)絡(luò)運(yùn)行時,檢測是否發(fā)生或可能將發(fā)生擁塞,相應(yīng)地采取必要措施預(yù)防或緩解擁塞。三個主要步驟: 監(jiān)測網(wǎng)絡(luò)系統(tǒng),檢測何時、何處發(fā)生擁塞,如:檢測平

6、均包延遲、平均隊(duì)列長度;檢測超時重傳的包的數(shù)目、重傳次數(shù);檢測缺乏緩沖區(qū)造成的丟包率;將擁塞發(fā)生的信息傳送到可采取行動的地方。如:發(fā)送擁塞通知到源站;調(diào)整網(wǎng)絡(luò)系統(tǒng)的運(yùn)行以解決出現(xiàn)的問題。如, 源站放緩發(fā)送數(shù)據(jù)注意:檢測擁塞信息、反饋擁塞信息,都占用網(wǎng)絡(luò)資源,處理不好,可能又引起、或惡化擁塞。擁塞控制與流量控制的關(guān)系 類似降低發(fā)包速率:既是流量控制的主要措施, 也是擁塞控制的重要措施區(qū)別:流量控制是給定的發(fā)送端和接收端之間的點(diǎn)對點(diǎn)通信量的控制??刂瓢l(fā)送PDU的速率,使接收端來得及接收。 擁塞控制是一個全局性的過程,涉及到所有的主機(jī)、所有的路由器多種資源(信道帶寬、緩存、處理能力)1.2 TCP的

7、擁塞控制方法(5.8.2)主要包括擁塞窗口 cwnd的概念擁塞窗口的基本控制算法慢開始和指數(shù)增大擁塞避免:加法增大線性增長乘法減小(閾值的變化)改進(jìn)快重傳快恢復(fù)本節(jié)是難點(diǎn),注意理解一些概念:擁塞窗口 cwnd傳輸輪次ssthresh 值乘法減小1.2.1 擁塞窗口cwnd (congestion window)對比通知窗口:描述差錯控制、流量控制的狀態(tài)變量(上節(jié)介紹)擁塞窗口:描述擁塞控制的狀態(tài)變量。擁塞窗口大小隨網(wǎng)絡(luò)擁塞程度動態(tài)變化,原則是:網(wǎng)絡(luò)沒有出現(xiàn)擁塞,增大擁塞窗口 (允許發(fā)送更多的報(bào)文)只要網(wǎng)絡(luò)出現(xiàn)擁塞,就減小擁塞窗口 (減少注入到網(wǎng)絡(luò)中的報(bào)文數(shù))。 發(fā)送方最終的發(fā)送窗口min(擁塞

8、窗口,通知窗口)區(qū)別:通知窗口:由接收端根據(jù)接收能力調(diào)整(以字節(jié)為單位)擁塞窗口:由發(fā)送方根據(jù)擁塞狀態(tài)調(diào)整(以MSS為單位)為了便于討論,現(xiàn)在假定通知窗口足夠大, 即:發(fā)送窗口大小取決于擁塞窗口擁塞窗口congestion window ,記為:cwnd如何發(fā)現(xiàn)網(wǎng)絡(luò)發(fā)生擁塞“猜測”:發(fā)送方超時(沒有按時收到確認(rèn)), 就認(rèn)為網(wǎng)絡(luò)出現(xiàn)擁塞即:信道誤碼率足夠小時, 超時的主要原因是由于擁塞沒有及時到達(dá)動態(tài)調(diào)整擁塞窗口的基本思想初始保守開始:cwnd很?。ㄈ?):慢開始算法( 避免擁塞:避免新的TCP連接向網(wǎng)絡(luò)大量發(fā)送數(shù)據(jù))網(wǎng)絡(luò)沒有出現(xiàn)擁塞時,應(yīng)該增大擁塞窗口,提高發(fā)送效率, 二種情況:快速增長:指數(shù)

9、增長慢速增長:線性增長設(shè)一個狀態(tài)變量(閾值)ssthresh,稱為慢開始門限, 控制cwnd的增長方式ssthresh初值為M,單位:報(bào)文段(MSS),例,M16當(dāng)cwnd較小(cwnd 門限)時,采用“線性增長” 擁塞避免網(wǎng)絡(luò)出現(xiàn)擁塞時,應(yīng)該減小擁塞窗口,消除擁塞, 二個操作:調(diào)整門限ssthreshcwnd*0.5 (乘法減小)急速減小擁塞窗口: cwnd重新回到1(慢開始算法)“傳輸輪次” (transmission round)的概念傳輸層通信:一般情況發(fā)送時間小于往返時間 RTT傳輸輪次:把發(fā)送窗口所允許發(fā)送的報(bào)文都連續(xù)發(fā)送出去,并收到了對這些報(bào)文的最后一個字節(jié)的確認(rèn),為一個傳輸倫次

10、。一個傳輸輪次經(jīng)歷的時間大約是往返時間 RTT。即:一個輪次可以且只能傳輸一個窗口的數(shù)據(jù)發(fā)送方接收方發(fā)送 M1 確認(rèn) M1cwnd = 1 發(fā)送 M8M15cwnd = 8 tt輪次 1發(fā)送 M2M3 確認(rèn) M2M3 cwnd = 2 輪次 2發(fā)送 M4M7 確認(rèn) M4M7 cwnd = 4 輪次 3一個輪次可以傳輸一個窗口的數(shù)據(jù)2216控制過程初覽:每個周期二個階段“乘法減小”24681012141618200048122024擁塞窗口 cwnd新的 ssthresh 值網(wǎng)絡(luò)擁塞ssthresh 初始值慢開始慢開始指數(shù)增長擁塞避免“加法增長”擁塞避免“加法增長”傳輸輪次慢開始指數(shù)增長一個調(diào)整

11、周期的二個階段一個調(diào)整周期1.2.2 慢開始和指數(shù)增長 221624681012141618200048122024擁塞窗口 cwndssthresh 的初始值傳輸輪次慢開始擁塞窗口 cwnd 置為 1,發(fā)送第一個報(bào)文段 M0。 慢開始和指數(shù)增長(續(xù))發(fā)送端每收到一個報(bào)文的確認(rèn) , cwnd 加 1 (增加一個報(bào)文大小)。 221624681012141618200048122024擁塞窗口 cwnd指數(shù)規(guī)律增長ssthresh 的初始值傳輸輪次慢開始擁塞窗口 cwnd 置為 1,發(fā)送第一個報(bào)文段 M0。 難點(diǎn):窗口門限時,cwnd是指數(shù)增長(續(xù))發(fā)送端每收到一個確認(rèn) , cwnd 加 1:C

12、wnd1時,一個 “傳輸輪次”只能發(fā)送一個報(bào)文,只能收到一個確認(rèn)cwnd從 1 增大到2Cwnd2時,一個 “傳輸輪次”可以發(fā)送二個報(bào)文,可以收到二個確認(rèn)cwnd從 2增大到4Cwnd4時,一個 “傳輸輪次”可以發(fā)送四個報(bào)文,可以收到四個確認(rèn)cwnd從 4增大到8cwnd 隨著“傳輸輪次”按指數(shù)規(guī)律增長。 慢開始和指數(shù)增長(續(xù))發(fā)送端每收到一個報(bào)文的確認(rèn) , cwnd 加 1 (增加一個報(bào)文大?。?。 221624681012141618200048122024擁塞窗口 cwnd指數(shù)規(guī)律增長ssthresh 的初始值傳輸輪次慢開始1.2.3 線性增長的擁塞避免算法 當(dāng) cwnd 增長到門限值 時

13、,轉(zhuǎn)入擁塞避免算法,每個“傳輸輪次” cwnd 加 1,cwnd按線性規(guī)律增長。221624681012141618200048122024擁塞窗口 cwnd比較:指數(shù)規(guī)律增長ssthresh 的初始值慢開始擁塞避免“加法增大”傳輸輪次加法增大(additive increase) 比較發(fā)送端每收到一個確認(rèn) , cwnd 加 1指數(shù)增長一個往返時間,收到cwnd個確認(rèn),所以, cwnd增大一倍發(fā)送端收到cwnd內(nèi)所有確認(rèn) , cwnd 加 1 一個傳輸倫次,cwnd 加 1 線性增大防止網(wǎng)絡(luò)過早出現(xiàn)擁塞說明:“擁塞避免”不可能完全能夠避免了擁塞。按線性規(guī)律增長,減小擁塞的可能性22162468

14、1012141618200048122024擁塞窗口 cwnd超時,認(rèn)為出現(xiàn)擁塞ssthresh 的初始值慢開始指數(shù)增長擁塞避免+“加法增大”發(fā)現(xiàn)擁塞時的調(diào)整:退回慢開始 網(wǎng)絡(luò)出現(xiàn)超時,表明網(wǎng)絡(luò)擁塞了,二個操作: 1)“乘法減小”更新 ssthresh (取cwnd當(dāng)前值的一半, 即,乘0.5 );2)擁塞窗口cwnd重新設(shè)置為 1,轉(zhuǎn)入慢開始算法傳輸輪次新的 ssthresh 值ssthresh 值“乘法減小”重新慢啟動221624681012141618200048122024擁塞窗口 cwnd新的 ssthresh 值網(wǎng)絡(luò)擁塞指數(shù)規(guī)律增長ssthresh 的初始值慢開始慢開始擁塞避免“加

15、法增大”重新開始下一趟調(diào)整cwnd ssthresh (12) 時,慢開始算法,指數(shù)增長。cwnd = ssthresh (12) 時,又改為執(zhí)行擁塞避免算法。傳輸輪次擁塞避免“加法增大”“乘法減小”1.2.4 提高效率的相關(guān)措施:快重傳和快恢復(fù)接收方每收到一個失序的報(bào)文段后就立即發(fā)出重復(fù)確認(rèn),讓發(fā)送方及早知道有報(bào)文段沒有到達(dá)對方。 發(fā)送方收到連續(xù)三個重復(fù)確認(rèn)時快重傳:立即重傳對方尚未收到的報(bào)文段。不等到“超時”時間到才重發(fā) 快恢復(fù):執(zhí)行“乘法減小”算法,把慢開始門限 ssthresh 減半cwnd置為 ssthresh 減半后的數(shù)值(不置為 1)直接進(jìn)入“加法增大”的擁塞避免階段 (沒有指數(shù)

16、增大階段)(TCP Reno版本)快重傳舉例發(fā)送方接收方發(fā)送 M1 確認(rèn) M1t 確認(rèn) M2 發(fā)送 M2發(fā)送 M3發(fā)送 M4 ?發(fā)送 M5發(fā)送 M6 重復(fù)確認(rèn) M2 立即重傳 M3 重復(fù)確認(rèn) M2 重復(fù)確認(rèn) M2 t發(fā)送 M7收到三個連續(xù)的對 M2 的重復(fù)確認(rèn)立即重傳 M3丟失 M2 M1 M3 M4 M5 M6 M7 M3 24快恢復(fù):從連續(xù)收到三個重復(fù)的確認(rèn)轉(zhuǎn)入擁塞避免 2468101214161820220048121620傳輸輪次擁塞窗口 cwnd慢開始ssthresh 的初始值擁塞避免“加法增大”TCP Tahoe 版本(已廢棄不用)慢開始收到 3 個重復(fù)的確認(rèn)執(zhí)行快重傳算法比較“乘

17、法減小”新的 ssthresh 值擁塞避免“加法增大”TCP Reno版本快恢復(fù)說明:發(fā)送方監(jiān)測到“超時”時,仍然采用慢啟動算法(即:只有TCP連接建立時和超時,才采用慢啟動算法)發(fā)送窗口的上限值接收方窗口 rwnd 、擁塞窗口 cwnd 最終的發(fā)送窗口的上限值 Min rwnd, cwnd (5-8)當(dāng) rwnd cwnd 時, 是接收方的接收能力限制發(fā)送窗口的最大值。當(dāng) cwnd rwnd 時, 是網(wǎng)絡(luò)的擁塞限制發(fā)送窗口的最大值。 1.3 隨機(jī)早期檢測 RED丟包策略 5.8.3擁塞控制是復(fù)雜問題,要從多層加以控制傳輸層如,TCP的擁塞窗口網(wǎng)絡(luò)層路由協(xié)議:有擁塞控制功能的路由選擇算法IP層

18、的丟包策略:隨機(jī)早期檢測 RED (Random Early Discard/Drop/Detection):網(wǎng)絡(luò)層的FIFO隊(duì)列+尾部丟棄策略的問題網(wǎng)絡(luò)層的FIFO隊(duì)列+尾部丟棄策略的不足:一連串分組的丟失多個TCP連接同時將發(fā)送窗口縮小為1全網(wǎng)通信量大幅下降網(wǎng)絡(luò)迅速恢復(fù)當(dāng)網(wǎng)絡(luò)恢復(fù)后,通信量又突然大幅增加。改進(jìn):IP層將“尾部丟棄策略”改為“隨機(jī)早期丟棄 ”當(dāng)隊(duì)列超過一定長度之后,開始將包少量丟棄以概率 p 丟棄RED 將路由器的到達(dá)隊(duì)列劃分成為三個區(qū)域 當(dāng)隊(duì)列超過一定長度之后,開始將包少量丟棄從隊(duì)首發(fā)送隊(duì)列最大長度分組到達(dá)排隊(duì)丟棄以概率 p 丟棄隨機(jī)早期丟棄 RED每個隊(duì)列保持二個參數(shù)隊(duì)列

19、長度最小門限THmin隊(duì)列長度最大門限THmax經(jīng)驗(yàn)數(shù)據(jù):THmax = 2*THmin 每到達(dá)一個數(shù)據(jù)報(bào)計(jì)算平均隊(duì)列長度LAV丟包策略若LAV THmax ,丟棄分組,丟棄概率 p = 1若THmin LAV THmax, 0 丟棄概率 p pmax (按概率p丟棄,1p的概率將分組存入隊(duì)列)RED 將路由器的到達(dá)隊(duì)列劃分成為三個區(qū)域 效果:隊(duì)列超過THmin之后,少量丟包,使少量TCP連接減小擁塞窗口,避免發(fā)生擁塞從隊(duì)首發(fā)送最小門限 THmin最大門限 THmax分組到達(dá)平均隊(duì)列長度 Lav排隊(duì)丟棄以概率 p 丟棄為什么用平均隊(duì)列長度計(jì)算機(jī)通信的“突發(fā)性”, 按瞬時隊(duì)列長度丟包可能引起不必

20、要的丟包。如短時的突發(fā)數(shù)據(jù),瞬時隊(duì)列長度可能超過THmin, 但實(shí)際的上不會使隊(duì)列溢出LAV=(1- )* LAV+ *當(dāng)前隊(duì)列長度 (0 1)隊(duì)列長度時間瞬時隊(duì)列長度平均隊(duì)列長度瞬時隊(duì)列長度和平均隊(duì)列長度的區(qū)別丟棄概率 p 與 THmin 和 Thmax 的關(guān)系 最小門限 THmin最大門限 THmax平均隊(duì)列長度 Lav分組丟棄概率 p1.00pmax按線性規(guī)律變化,從 0 變到 pmax ( pmax可以實(shí)現(xiàn)設(shè)定)概率 p的計(jì)算方法改進(jìn)之一(p215)改進(jìn)思路:使丟棄概率不僅與平均隊(duì)列長度有關(guān),還與“連續(xù)沒有被丟棄的數(shù)據(jù)報(bào)的個數(shù)count”有關(guān)避免分組的丟棄過于集中改進(jìn)前,過渡期的計(jì)算公

21、式重寫如下:ptemp= pmax*(Lav-THmin)/(THmax-THmin)改進(jìn)算法:p= ptemp /(1-count* ptemp)2 TCP 的傳輸連接管理 (5.9)2.1 傳輸連接的三個階段 可靠通信有三個階段: 連接建立、數(shù)據(jù)傳送和連接釋放。連接建立過程中要解決三個問題:使每一方能夠確知對方的存在。允許雙方協(xié)商一些參數(shù),如,最大報(bào)文段長度,最大窗口大小,服務(wù)質(zhì)量等。為傳輸實(shí)體分配資源,如,緩存大小,連接表中的項(xiàng)目等。 傳輸連接管理: 使傳輸連接的建立和釋放都能正常地進(jìn)行。 客戶服務(wù)器方式 TCP 連接的建立都是采用客戶服務(wù)器方式。主動發(fā)起連接建立的應(yīng)用進(jìn)程叫做客戶(cl

22、ient)。被動等待連接建立的應(yīng)用進(jìn)程叫做服務(wù)器(server)。TCP首部20字節(jié)固定首部目 的 端 口數(shù)據(jù)偏移檢 驗(yàn) 和選 項(xiàng) (長 度 可 變)源 端 口序 號 seq 緊 急 指 針窗 口確 認(rèn) 號 ack保 留FINSYNRSTPSHACKURG位 0 8 16 24 31填 充同步 SYN = 1 :表示這是一個連接請求或連接接受報(bào)文。 終止 FIN (FINis)1:要求釋放傳輸連接。2.2 建立連接(5.9.1)數(shù)據(jù)鏈路層相鄰二點(diǎn)建立連接,可以估計(jì)連接請求幀延時,能準(zhǔn)確判斷是否丟失。在傳輸層不相鄰二點(diǎn)建立連接,連接請求在一個甚至多個網(wǎng)絡(luò)中存轉(zhuǎn),二次(聯(lián)絡(luò))握手建立連接存在的問題

23、延時難以估計(jì):延遲的重復(fù)連接請求錯誤的連接二次握手建立連接的問題主機(jī)A請求建立連接cq1超時,主機(jī)A再次請求建立連接主機(jī)A收到主機(jī)B的應(yīng)答, 連接成功主機(jī)A,B之間通信主機(jī)A請求釋放連接主機(jī)A收到主機(jī)B的應(yīng)答 釋放成功主機(jī)B收到主機(jī)A的、遲到的第一次建立連接請求主機(jī)B 接受建立連接請求主機(jī)B 發(fā)送報(bào)文段,主機(jī)A不接受主機(jī)A主機(jī)BTCP 的連接建立:第一次握手SYN = 1, seq = xCLOSEDCLOSED主動打開被動打開AB客戶服務(wù)器A 的 TCP 向 B 發(fā)出連接請求報(bào)文段:同步位 SYN = 1,請求建立連接序號 seq = x,本站將傳送的第一個數(shù)據(jù)字節(jié)的序號是 x。LISTEN

24、SYN-SENTA進(jìn)入“同步已發(fā)送”狀態(tài)B進(jìn)入“監(jiān)聽”狀態(tài) TCP 的連接建立:第二次握手SYN = 1, seq = xCLOSEDCLOSED主動打開被動打開AB客戶服務(wù)器SYN = 1, ACK = 1, seq = y, ack= x 1LISTENSYN-SENTSYN-RCVDB 收到連接請求報(bào)文段,如同意,則發(fā)回確認(rèn)報(bào)文: SYN = 1、 ACK = 1,確認(rèn)號ack = x 1,序號 seq = y。B進(jìn)入“同步已收到”狀態(tài) TCP 的連接建立:第三次握手SYN = 1, seq = xCLOSEDCLOSED主動打開被動打開AB客戶服務(wù)器SYN = 1, ACK = 1,

25、seq = y, ack= x 1LISTENSYN-SENTSYN-RCVDACK = 1, seq = x + 1, ack = y 1ESTAB-LISHEDA 收到確認(rèn)報(bào)文后向 B 給出確認(rèn)首部 ACK = 1、確認(rèn)號 ack = y 1。A 的 TCP 通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。A進(jìn)入連接已建立(ESTABLISHED)狀態(tài) TCP 的連接建立:第三次握手SYN = 1, seq = xCLOSEDCLOSED主動打開被動打開AB客戶服務(wù)器SYN = 1, ACK = 1, seq = y, ack= x 1LISTENSYN-SENTSYN-RCVDACK = 1, seq

26、= x + 1, ack = y 1ESTAB-LISHEDB 的 TCP 收到主機(jī) A 的確認(rèn)后,也通知其上層 應(yīng)用進(jìn)程:TCP 連接已經(jīng)建立。進(jìn)入連接已建立(ESTABLISHED)狀態(tài)ESTAB-LISHED數(shù)據(jù)傳送2.3 TCP 的連接釋放(5.9.2)數(shù)據(jù)傳輸結(jié)束后,通信的雙方都可釋放連接。提出釋放的一方為客戶端。兩個方向需要分別釋放一個方向釋放后,稱為半關(guān)閉狀態(tài)。FIN = 1, seq = uCLOSED主動關(guān)閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器CLOSED 現(xiàn)在 A 不再發(fā)送數(shù)據(jù),主動關(guān)閉 TCP連接。 A 在連接釋放報(bào)文段首部的 FIN =

27、 1,等待 B 的確認(rèn)。TCP 的連接釋放(5.9.2)FIN = 1, seq = uACK = 1, seq = v, ack= u 1主動關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器 B 發(fā)出確認(rèn):確認(rèn)號 ack = u 1,序號 seq = v。 TCP 服務(wù)器進(jìn)程通知高層應(yīng)用進(jìn)程。 從 A 到 B 這個方向的連接就釋放了,TCP 連接 處于半關(guān)閉狀態(tài)。B 若發(fā)送數(shù)據(jù),A 仍要接收。TCP 的連接釋放FIN = 1, seq = uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1, seq = w, ack=

28、 u 1主動關(guān)閉被動關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送 若 B 也不需向 A 發(fā)送的數(shù)據(jù), 也要釋放連接:FIN1。 TCP 的連接釋放FIN = 1, seq = uACK = 1, seq = v, ack= u 1FIN = 1, ACK = 1, seq = w, ack= u 1主動關(guān)閉被動關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送 A 收到連接釋放報(bào)文段后,必須發(fā)出確認(rèn)報(bào)文段: ACK = 1,確認(rèn)號 ack w 1,序號 seq = u + 1 。 ACK = 1, s

29、eq = u + 1, ack = w 1TCP 的連接釋放 B 收到A 確認(rèn)報(bào)文段,釋放完成,進(jìn)入CLOSED狀態(tài)。但,A發(fā)出確認(rèn)報(bào)文后 ,必須經(jīng)過時間 2MSL 后才真正釋放等待 2MSLA 必須等待 2MSL 的時間保證 A 發(fā)送的最后一個 ACK 報(bào)文段能夠到達(dá) B如果該報(bào)文丟失。B會重傳FIN+ACK報(bào)文,A在2MSL時間內(nèi)可以收到這個重傳報(bào)文,重發(fā)ACK 報(bào)文防止 “已失效的連接請求報(bào)文段”出現(xiàn)在本連接中。2MSL約4分鐘,是較長的時間。經(jīng)過 2MSL時間,本連接持續(xù)的時間內(nèi)所產(chǎn)生的所有報(bào)文段,都將從網(wǎng)絡(luò)中消失。這樣就使下一個新的連接中不會出現(xiàn)這種舊的連接請求報(bào)文段。CLOSEDF

30、IN = 1, seq = uACK = 1, seq = v, ack= u 1ACK = 1, seq = u + 1, ack = w 1FIN = 1, ACK = 1, seq = w, ack= u 1FIN-WAIT-1CLOSE-WAITFIN-WAIT-2LAST-ACK等待 2MSLTIME-WAIT主動關(guān)閉被動關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送CLOSEDTCP 的連接釋放 TCP 連接釋放過程中狀態(tài)的變化 自學(xué):TCP 的有限狀態(tài)機(jī) (5.9.3)有限狀態(tài)機(jī)是一種用來進(jìn)行對象行為建模的工具,描述對象在它的生命周

31、期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應(yīng)來自外界的各種事件,狀態(tài)之間如何轉(zhuǎn)換。由一組狀態(tài)、一個初始狀態(tài)、輸入和根據(jù)輸入及現(xiàn)有狀態(tài)轉(zhuǎn)換為下一個狀態(tài)的轉(zhuǎn)換函數(shù)組成TCP的有限狀態(tài)機(jī) CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主動打開被動打開被動關(guān)閉主動關(guān)閉起點(diǎn)被動打開主動打開 發(fā)送 SYN同時打開收到 SYN,發(fā)送 SYN, ACK收到 ACK數(shù)據(jù)傳送 階段 關(guān)閉發(fā)送 FIN 關(guān)閉發(fā)送 FIN 關(guān)閉發(fā)送 FIN收到 RST 收到 SYN發(fā)送 SYN, ACK 關(guān)

32、閉或超時收到 ACK 收到 SYN, ACK發(fā)送 ACK收到 ACK收到 ACK收到 FIN發(fā)送 ACK收到 FIN, ACK 發(fā)送 ACK收到 FIN發(fā)送 ACK同時關(guān)閉收到 FIN發(fā)送 ACK發(fā)送 SYN定時經(jīng)過兩倍報(bào)文段壽命后關(guān)閉 每一個方框都是可能具有的狀態(tài); 方框中的大寫英文字符串:狀態(tài)名狀態(tài)之間的箭頭:表示可能發(fā)生的狀態(tài)變遷。粗線箭頭:表示對客戶進(jìn)程的正常變遷。虛線箭頭:表示對服務(wù)器進(jìn)程的正常變遷。細(xì)線箭頭:表示異常變遷。箭頭旁邊的文字: 表明引起變遷的原因或,表明發(fā)生狀態(tài)變遷后又出現(xiàn)什么動作。TCP的有限狀態(tài)機(jī) CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2TIME_WAITSYN_SENTLAST_ACK主動打開被動打開被動關(guān)閉主動關(guān)閉起點(diǎn)被動打開主動打開 發(fā)送 SYN收到 ACK數(shù)據(jù)傳送 階段 關(guān)閉發(fā)送 FIN ACK 關(guān)閉發(fā)送 FIN 收到 S

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論