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

下載本文檔

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

文檔簡(jiǎn)介

1、第14講 擁塞控制;連接管理 【第5章 傳輸層 (第4講)】上講小結(jié)(快速提問(wèn)1)上講的重點(diǎn)是什么?上講要點(diǎn)復(fù)習(xí)(快速提問(wèn)2)TCP 的主要特點(diǎn) TCP 報(bào)文段首部的組成什么是面向字節(jié)流的控制方法序號(hào)、確認(rèn)序號(hào)、窗 口的作用如何計(jì)算加權(quán)平均往返時(shí)間RTTS如何計(jì)算超時(shí)重傳時(shí)間 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 慢開(kāi)始和指數(shù)增長(zhǎng) 1.2.3 線性增長(zhǎng)的擁塞避免算法 1.2.4 提高效率的相關(guān)措

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

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

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

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

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

7、擁塞控制方法(5.8.2)主要包括擁塞窗口 cwnd的概念擁塞窗口的基本控制算法慢開(kāi)始和指數(shù)增大擁塞避免:加法增大線性增長(zhǎng)乘法減?。ㄩ撝档淖兓└倪M(jìn)快重傳快恢復(fù)本節(jié)是難點(diǎn),注意理解一些概念:擁塞窗口 cwnd傳輸輪次ssthresh 值乘法減小1.2.1 擁塞窗口cwnd (congestion window)對(duì)比通知窗口:描述差錯(cuò)控制、流量控制的狀態(tài)變量(上節(jié)介紹)擁塞窗口:描述擁塞控制的狀態(tài)變量。擁塞窗口大小隨網(wǎng)絡(luò)擁塞程度動(dòng)態(tài)變化,原則是:網(wǎng)絡(luò)沒(méi)有出現(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ā)生擁塞“猜測(cè)”:發(fā)送方超時(shí)(沒(méi)有按時(shí)收到確認(rèn)), 就認(rèn)為網(wǎng)絡(luò)出現(xiàn)擁塞即:信道誤碼率足夠小時(shí), 超時(shí)的主要原因是由于擁塞沒(méi)有及時(shí)到達(dá)動(dòng)態(tài)調(diào)整擁塞窗口的基本思想初始保守開(kāi)始:cwnd很?。ㄈ?):慢開(kāi)始算法( 避免擁塞:避免新的TCP連接向網(wǎng)絡(luò)大量發(fā)送數(shù)據(jù))網(wǎng)絡(luò)沒(méi)有出現(xiàn)擁塞時(shí),應(yīng)該增大擁塞窗口,提高發(fā)送效率, 二種情況:快速增長(zhǎng):指數(shù)

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

10、。一個(gè)傳輸輪次經(jīng)歷的時(shí)間大約是往返時(shí)間 RTT。即:一個(gè)輪次可以且只能傳輸一個(gè)窗口的數(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一個(gè)輪次可以傳輸一個(gè)窗口的數(shù)據(jù)2216控制過(guò)程初覽:每個(gè)周期二個(gè)階段“乘法減小”24681012141618200048122024擁塞窗口 cwnd新的 ssthresh 值網(wǎng)絡(luò)擁塞ssthresh 初始值慢開(kāi)始慢開(kāi)始指數(shù)增長(zhǎng)擁塞避免“加法增長(zhǎng)”擁塞避免“加法增長(zhǎng)”傳輸輪次慢開(kāi)始指數(shù)增長(zhǎng)一個(gè)調(diào)整

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

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

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

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

15、法增大”重新開(kāi)始下一趟調(diào)整cwnd ssthresh (12) 時(shí),慢開(kāi)始算法,指數(shù)增長(zhǎng)。cwnd = ssthresh (12) 時(shí),又改為執(zhí)行擁塞避免算法。傳輸輪次擁塞避免“加法增大”“乘法減小”1.2.4 提高效率的相關(guān)措施:快重傳和快恢復(fù)接收方每收到一個(gè)失序的報(bào)文段后就立即發(fā)出重復(fù)確認(rèn),讓發(fā)送方及早知道有報(bào)文段沒(méi)有到達(dá)對(duì)方。 發(fā)送方收到連續(xù)三個(gè)重復(fù)確認(rèn)時(shí)快重傳:立即重傳對(duì)方尚未收到的報(bào)文段。不等到“超時(shí)”時(shí)間到才重發(fā) 快恢復(fù):執(zhí)行“乘法減小”算法,把慢開(kāi)始門(mén)限 ssthresh 減半cwnd置為 ssthresh 減半后的數(shù)值(不置為 1)直接進(jìn)入“加法增大”的擁塞避免階段 (沒(méi)有指數(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收到三個(gè)連續(xù)的對(duì) M2 的重復(fù)確認(rèn)立即重傳 M3丟失 M2 M1 M3 M4 M5 M6 M7 M3 24快恢復(fù):從連續(xù)收到三個(gè)重復(fù)的確認(rèn)轉(zhuǎn)入擁塞避免 2468101214161820220048121620傳輸輪次擁塞窗口 cwnd慢開(kāi)始ssthresh 的初始值擁塞避免“加法增大”TCP Tahoe 版本(已廢棄不用)慢開(kāi)始收到 3 個(gè)重復(fù)的確認(rèn)執(zhí)行快重傳算法比較“乘

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

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

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

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

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

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

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

24、SYN-SENTA進(jìn)入“同步已發(fā)送”狀態(tài)B進(jìn)入“監(jiān)聽(tīng)”狀態(tài) TCP 的連接建立:第二次握手SYN = 1, seq = xCLOSEDCLOSED主動(dòng)打開(kāi)被動(dòng)打開(kāi)AB客戶服務(wù)器SYN = 1, ACK = 1, seq = y, ack= x 1LISTENSYN-SENTSYN-RCVDB 收到連接請(qǐng)求報(bào)文段,如同意,則發(fā)回確認(rèn)報(bào)文: SYN = 1、 ACK = 1,確認(rèn)號(hào)ack = x 1,序號(hào) seq = y。B進(jìn)入“同步已收到”狀態(tài) TCP 的連接建立:第三次握手SYN = 1, seq = xCLOSEDCLOSED主動(dòng)打開(kāi)被動(dòng)打開(kāi)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)號(hào) ack = y 1。A 的 TCP 通知上層應(yīng)用進(jìn)程,連接已經(jīng)建立。A進(jìn)入連接已建立(ESTABLISHED)狀態(tài) TCP 的連接建立:第三次握手SYN = 1, seq = xCLOSEDCLOSED主動(dòng)打開(kāi)被動(dòng)打開(kāi)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é)束后,通信的雙方都可釋放連接。提出釋放的一方為客戶端。兩個(gè)方向需要分別釋放一個(gè)方向釋放后,稱為半關(guān)閉狀態(tài)。FIN = 1, seq = uCLOSED主動(dòng)關(guān)閉數(shù)據(jù)傳送ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器CLOSED 現(xiàn)在 A 不再發(fā)送數(shù)據(jù),主動(dòng)關(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主動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器 B 發(fā)出確認(rèn):確認(rèn)號(hào) ack = u 1,序號(hào) seq = v。 TCP 服務(wù)器進(jìn)程通知高層應(yīng)用進(jìn)程。 從 A 到 B 這個(gè)方向的連接就釋放了,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主動(dòng)關(guān)閉被動(dòng)關(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主動(dòng)關(guān)閉被動(dòng)關(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)號(hào) ack w 1,序號(hào) 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)過(guò)時(shí)間 2MSL 后才真正釋放等待 2MSLA 必須等待 2MSL 的時(shí)間保證 A 發(fā)送的最后一個(gè) ACK 報(bào)文段能夠到達(dá) B如果該報(bào)文丟失。B會(huì)重傳FIN+ACK報(bào)文,A在2MSL時(shí)間內(nèi)可以收到這個(gè)重傳報(bào)文,重發(fā)ACK 報(bào)文防止 “已失效的連接請(qǐng)求報(bào)文段”出現(xiàn)在本連接中。2MSL約4分鐘,是較長(zhǎng)的時(shí)間。經(jīng)過(guò) 2MSL時(shí)間,本連接持續(xù)的時(shí)間內(nèi)所產(chǎn)生的所有報(bào)文段,都將從網(wǎng)絡(luò)中消失。這樣就使下一個(gè)新的連接中不會(huì)出現(xiàn)這種舊的連接請(qǐng)求報(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主動(dòng)關(guān)閉被動(dòng)關(guān)閉數(shù)據(jù)傳送通知應(yīng)用進(jìn)程ESTAB-LISHEDESTAB-LISHEDAB客戶服務(wù)器數(shù)據(jù)傳送CLOSEDTCP 的連接釋放 TCP 連接釋放過(guò)程中狀態(tài)的變化 自學(xué):TCP 的有限狀態(tài)機(jī) (5.9.3)有限狀態(tài)機(jī)是一種用來(lái)進(jìn)行對(duì)象行為建模的工具,描述對(duì)象在它的生命周

31、期內(nèi)所經(jīng)歷的狀態(tài)序列,以及如何響應(yīng)來(lái)自外界的各種事件,狀態(tài)之間如何轉(zhuǎn)換。由一組狀態(tài)、一個(gè)初始狀態(tài)、輸入和根據(jù)輸入及現(xiàn)有狀態(tài)轉(zhuǎn)換為下一個(gè)狀態(tài)的轉(zhuǎn)換函數(shù)組成TCP的有限狀態(tài)機(jī) CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2CLOSINGTIME_WAITSYN_SENTLAST_ACK主動(dòng)打開(kāi)被動(dòng)打開(kāi)被動(dòng)關(guān)閉主動(dòng)關(guān)閉起點(diǎn)被動(dòng)打開(kāi)主動(dòng)打開(kāi) 發(fā)送 SYN同時(shí)打開(kāi)收到 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、閉或超時(shí)收到 ACK 收到 SYN, ACK發(fā)送 ACK收到 ACK收到 ACK收到 FIN發(fā)送 ACK收到 FIN, ACK 發(fā)送 ACK收到 FIN發(fā)送 ACK同時(shí)關(guān)閉收到 FIN發(fā)送 ACK發(fā)送 SYN定時(shí)經(jīng)過(guò)兩倍報(bào)文段壽命后關(guān)閉 每一個(gè)方框都是可能具有的狀態(tài); 方框中的大寫(xiě)英文字符串:狀態(tài)名狀態(tài)之間的箭頭:表示可能發(fā)生的狀態(tài)變遷。粗線箭頭:表示對(duì)客戶進(jìn)程的正常變遷。虛線箭頭:表示對(duì)服務(wù)器進(jìn)程的正常變遷。細(xì)線箭頭:表示異常變遷。箭頭旁邊的文字: 表明引起變遷的原因或,表明發(fā)生狀態(tài)變遷后又出現(xiàn)什么動(dòng)作。TCP的有限狀態(tài)機(jī) CLOSEDESTABLISHEDLISTENCLOSE_WAITFIN_WAIT_1SYN_RCVDFIN_WAIT_2TIME_WAITSYN_SENTLAST_ACK主動(dòng)打開(kāi)被動(dòng)打開(kāi)被動(dòng)關(guān)閉主動(dòng)關(guān)閉起點(diǎn)被動(dòng)打開(kāi)主動(dòng)打開(kāi) 發(fā)送 SYN收到 ACK數(shù)據(jù)傳送 階段 關(guān)閉發(fā)送 FIN ACK 關(guān)閉發(fā)送 FIN 收到 S

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論