【正文】
9。 ?發(fā)送端只為最小的未被確認的報文段啟動一個超時定時器,每收到一個ACK,執(zhí)行一次復位 。 ? 擁塞導致的現(xiàn)象: 分組丟失,時延加大,網絡吞吐量下降 10 Mbps 100 Mbps Mbps 2021/6/21 Yang WuJun,xi39。但沒有提供網絡的擁塞狀況。 2021/6/21 Yang WuJun,xi39。 即每收到一個 Ack,執(zhí)行 Cwin= Cwin+ 1。 ? 慢啟動的思想是: TCP連接建立后,從一個較慢的速率開始,但以指數(shù)方式增加發(fā)送速率,直到達到慢啟動門限SSTH。 2021/6/21 Yang WuJun,xi39。 2021/6/21 Yang WuJun,xi39。 ? Cwin的變化在慢啟動和擁塞避免階段是不同的。an University of Post and Telemuniations 35 Cwin與 SSTH初始值的確定 ? 通常情況下, TCP連接建立開始, Cwin= 1 or2分組,但對于高速網絡( 100Mbps,1Gbps等),開采用更大的值。而當發(fā)生丟失事件后,則將 Cwin減半 2021/6/21 Yang WuJun,xi39。 ? TCP的擁塞控制算法: ? 加性增,乘性減 AIMD( additiveincrease and multiplicativedecrease) ? 慢啟動( slow- start) ? 超時反應 2021/6/21 Yang WuJun,xi39。 ? 在任何時候,發(fā)送方實際的窗口大小應為 CWin和 RcvWin中的最小值,即滿足: LastByteSentLastByteAcked=min{CWin,RcvWin}. ? 為分析方便,我們忽略 RcvWin,則得到發(fā)送方的發(fā)送速率 R=CWin/RTT。an University of Post and Telemuniations 30 TCP擁塞控制要解決 的 3個問題 1)如何限制一個已發(fā)生擁塞的連接的發(fā)送速率? 2) TCP發(fā)送方如何確定發(fā)生了擁塞? 3)當確定發(fā)生了擁塞后,采用什么算法來改變發(fā)送速率? 2021/6/21 Yang WuJun,xi39。an University of Post and Telemuniations 28 5 TCP的擁塞控制 概述 ? 原因 :流進網絡的數(shù)據(jù)量超過了網絡的處理能力 ? 信源不能知道網絡的實時狀態(tài)。an University of Post and Telemuniations 27 TCP 丟失重傳 - 2 Host A loss timeout Cumulative ACK scenario Host B X time SendBase = 120 結論: ? 實際中, RTO的值一般為 1秒左右。) DevRTT+ 223。 ? 問題的關鍵:如何設定超時定時器 RTO? 顯然, RTO必須大于 RTT,否則會造成不必要的重傳。an University of Post and Telemuniations 23 結論: TCP的窗口值 ? 在發(fā)送一側, TCP的窗口 W=min{Cwin,RcvWin},其中 RcvWin由接收方在ACK中給出, 而 Cwin由發(fā)送方根據(jù)網絡的狀態(tài)確定。因此 TCP采用觀察最近的報文段的往返時延的方法來估計 RTT,然后設定一個大一些的值。 直觀上, W與 RTT成正比。an University of Post and Telemuniations 21 TCP的窗口大小 ? 確定合理的 W值是實現(xiàn)高效率流量控制的關鍵。an University of Post and Telemuniations 19 TCP中的信用量流控機制 ? 確認與流控分離的思想: ? 涉及三個字段: 順序號 SN,確認號 AN,窗口尺寸 W ? 傳輸?shù)拿總€字節(jié)均分配一個 SN。證實 0~ i- 1的分組被正確接受,累計證實策略。 ? 為什么要引入這種復雜性? 2021/6/21