青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Prayer

在一般中尋求卓越
posts - 1256, comments - 190, trackbacks - 0, articles - 0
  C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

TCP的流量控制

Posted on 2009-04-20 13:12 Prayer 閱讀(1699) 評論(0)  編輯 收藏 引用 所屬分類: SOCKET
本文檔的Copyleft歸yfydz所有,使用GPL發布,可以自由拷貝,轉載,轉載時請保
持文檔的完整性,嚴禁用于任何商業用途。
msn: yfydz_no1@hotmail.com
來源:http://yfydz.cublog.cn
參考文獻: RFC2581, RFC3390
 
1. 前言
 
TCP是具備流控和可靠連接能力的協議,為防止TCP發生擁塞或為提高傳輸效率,在網
絡發展早期就提出了一些相關的TCP流控和優化算法,而且也被RFC2581規定是每個
TCP實現時要實現的。
 
本文中,為求方便把將“TCP分組段(segment)”都直接稱為“包”。
 
2. 慢啟動(slow start)和擁塞避免(Congestion Avoidance)
 
慢啟動和擁塞避免是屬于TCP發送方必須(MUST)要實現的,防止TCP發送方向網絡傳入大量的突發數據造成網絡阻塞。

先介紹幾個相關參數,是在通信雙方中需要考慮但不在TCP包中體現的一些參數:

擁塞窗口(congestion window,cwnd),是指發送方在接收到對方的ACK確認前向允許網絡發送的數據量,數據發送后,擁塞窗口縮?。唤邮盏綄Ψ降腁CK后,擁塞窗口相應增加,擁塞窗口越大,可發送的數據量越大。擁塞窗口初始值的RFC2581中被規定為不超過發送方MSS的兩倍,而且不能超過兩個TCP包,在RFC3390中更新了初始窗口大小的設置方法。

通告窗口(advertised window,rwnd),是指接收方所能接收的沒來得及發ACK確認的數據量,接收方數據接收后,通告窗口縮小;發送ACK后,通告窗口相應擴大。

慢啟動閾值(slow start threshold, ssthresh),用來判斷是否要使用慢啟動或擁塞避免算法來控制流量的一個參數,也是隨通信過程不斷變化的。

當cwnd < ssthresh時,擁塞窗口值已經比較小了,表示未經確認的數據量增大,需要啟動慢啟動算法;當cwnd > ssthresh時,可發送數據量大,需要啟動擁塞避免算法。

擁塞窗口cwnd是根據發送的數據量自動減小的,但擴大就需要根據對方的接收情況進行擴大,慢啟動和擁塞避免算法都是描述如何擴大該值的。

在啟動慢啟動算法時,TCP發送方接收到對方的ACK后擁塞窗口最多每次增加一個發送方MSS字節的數值,當擁塞窗口超過sshresh后或觀察到擁塞才停止算法。

啟動擁塞避免算法時,擁塞窗口在一個連接往返時間RTT內增加一個最大TCP包長度的量,一般實現時用以下公式計算:
      cwnd += max(SMSS*SMSS/cwnd, 1)            (2.1)
SMSS為發送方MSS。

TCP發送方檢測到數據包丟失時,需要調整ssthresh,一般按下面公式計算:
      ssthresh = max (FlightSize / 2, 2*SMSS)    (2.2)
其中FlightSize表示已經發送但還沒有被確認的數據量。
 
3. 快速重傳(fast retransmit)和快速恢復(fast recovery)

TCP接收方收到錯序的TCP包時要發送復制的ACK包回應,提示發送方可能出現網絡丟包;發送方
收到連續3個重復的ACK包后啟動快速重傳算法,根據確認號快速重傳那個可能丟失的包而不必等
重傳定時器超時后再重傳,普通的重傳是要等到重傳定時器超時還沒收到ACK才進行的。這個算
法是TCP發送方應該(SHOULD)實現的,不是必須。TCP發送方進行了快速重傳后進入快速恢復階段
,直到沒再接收重復的ACK包。

快速重傳和快速恢復具體過程為:
1. 當收到第3個重復的ACK包時,ssthreh值按公式2.2重新設置;
2. 重傳丟失的包后,將擁塞窗口cwnd設置為sshresh+3*SMSS,人工擴大了擁塞窗口;
3. 對于每個接收到的重復的ACK包,cwnd相應增加SMSS,擴大擁塞窗口;
4. 如果新的擁塞窗口cwnd值和接收方的通告窗口值允許的話,可以繼續發新包;
5. 當收到下一個ACK確認了新數據時,將cwnd大小調整為sshresh,減少窗口;對接收方
   來說,接收到重發的TCP包后就要發此ACK確認當前接收的數據。
 
4. 結論
這些算法重點在于保持網絡的可靠性和可用性,防止網絡阻塞造成的網絡崩潰,是相對
比較保守的。

5. 附錄討論

A君: 這些算法都是針對通信雙方的事, 但如果從開發防火墻等中間設備的角度來看,
     中間設備有必要考慮這些么?
端木: 這個...我好象也看不出必要性,因為算法的參數都是在雙方內部而不在TCP數據包
      中體現...但應該會讓中間設備輕松點,這個就象在馬路開車,這些算法就是交規
      讓你開得規矩點,交警只關心你開車的情況,而不管你開的是什么車,開得好交警
      也輕松。好車可以讓你很容易開好,但差車也可以開好。

A君: 這些算法原型提出也很早了, 最早是88年的事, 當時網絡都處于初級階段, 有個
     9600bps的貓就很牛了, 計算機性能也很差, 因此實施這些算法還有點用; 但現
     在過了快20年了, 百兆都快淘汰, 千兆, 萬兆網絡都快普及了, 即使PC機的內存
     也都上G了,再規矩這種幾K級別的數據量有意思么? 就好象現在噴氣式戰斗機都到
     第4代了, 再研究螺旋槳戰斗機還有意思么?
端木: 這個...這個就象病毒庫了, 里面不也有無數的DOS時代的病毒, 你以后這輩子估計
      都見不著的,但沒有哪個防病毒廠商會把這些病毒從庫中剔除,庫是只增不減的。
      有這么個東西也是一樣,正因為平時沒用,誰也不注意,知道了就可以吹一吹,
      尤其拿去唬唬人是很有效的!

A君: 你真無聊!
端木: You got it! 不無聊干嗎寫博客啊!

端木: 搞技術有時候是很悲哀的一件事,必須牽扯七大姑八大姨的很多老東西,也就是向下
      兼容,到一定程度將成為進一步發展的最大障礙,講一個從smth看到的不是笑話
      的笑話:

    現代鐵路的鐵軌間距是4英尺8點5英寸,鐵軌間距采用了電車輪距的標準,而電車輪距
的標準則沿襲了馬車的輪距標準。
    馬車的輪距為何是4英尺8點5英寸?原來,英國的馬路轍跡的寬度是4英尺8點5英寸。
如果馬車改用其他尺寸的輪距,輪子很快就會在英國的老馬路上撞壞。
    英國馬路的轍跡寬度又從何而來?這可以上溯到古羅馬時期。整個歐洲(包括英國)的老路都是羅馬人為其軍隊鋪設的,4英尺8點5英寸正是羅馬戰車的寬度。
    羅馬戰車的寬度又是怎么來的?答案很簡單,它是牽引一輛戰車的兩匹馬的屁股的總寬度。
    段子到這里還沒有結束。美國航天飛機的火箭助推器也擺脫不了馬屁股的糾纏———火箭助推器造好之后要經過鐵路運送,而鐵路上必然有一些隧道,隧道的寬度又是根據鐵軌的寬度而來。代表著尖端科技的火箭助推器的寬度,竟然被兩匹馬的屁股的總寬度決定了。
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美三区在线| 久久三级视频| 欧美激情一区二区三区在线视频观看 | 性欧美xxxx视频在线观看| 久久精品一区二区三区中文字幕| 欧美韩日一区二区三区| 亚洲欧美日韩中文播放| 国产精品久久久久一区二区三区 | 亚洲国产精品va| 欧美精品久久久久久久久久| 国产自产女人91一区在线观看| 欧美大片在线看| 欧美日韩一区二区三区高清| 免费成人你懂的| 欧美日韩亚洲综合一区| 亚洲免费伊人电影在线观看av| 一区二区高清在线| 国产一区二区三区在线免费观看 | 亚洲日本电影在线| 在线中文字幕不卡| 亚洲精品裸体| 亚洲影视在线| 亚洲一级黄色av| 欧美日韩另类在线| 国产在线欧美日韩| 欧美在线观看视频| 国产日韩高清一区二区三区在线| 亚洲欧美日韩国产成人精品影院 | 日韩一区二区久久| 久久爱www.| 妖精成人www高清在线观看| 亚洲一区二区三区四区在线观看| 亚洲激情另类| 欧美国产视频日韩| 欧美在线视频不卡| 国产精品亚洲综合天堂夜夜| 欧美国产成人精品| 91久久一区二区| 欧美激情一级片一区二区| 欧美三级网页| 欧美激情精品久久久久久变态| 欧美性大战久久久久久久蜜臀| 亚洲国产导航| 亚洲国产成人在线播放| 欧美在线www| 久久久久久久精| 国产日韩精品一区| 午夜视频在线观看一区二区| 亚洲国产精品一区二区www| 久久av老司机精品网站导航| 久久精品免视看| 国产精品乱码妇女bbbb| 亚洲精品视频二区| 亚洲精品社区| 欧美日韩一本到| 亚洲日本成人在线观看| 在线亚洲观看| 国内精品久久久久久久果冻传媒| 久久精品一二三区| 亚洲一区二区免费看| 亚洲国产精品成人| 国产欧美日韩91| 欧美日韩一区在线观看| 欧美成ee人免费视频| 久久黄色影院| 亚洲成人在线视频网站| 性做久久久久久| 亚洲一区观看| 一区二区高清在线| 亚洲欧洲日本在线| 亚洲黑丝在线| 91久久国产综合久久| 国产一区二区三区在线免费观看| 久久这里只有精品视频首页| 午夜一区不卡| 欧美一级专区| 久久久久久久一区| 久久国产精品99国产精| 午夜国产一区| 午夜久久久久| 久久综合色8888| 欧美成人午夜激情视频| 免费观看在线综合| 亚洲大胆人体视频| 欧美激情亚洲| 正在播放亚洲一区| 欧美制服丝袜| 欧美阿v一级看视频| 国产精品theporn| 国产真实乱偷精品视频免| 在线精品国精品国产尤物884a| 亚洲欧洲精品一区| 欧美一区二视频在线免费观看| 性亚洲最疯狂xxxx高清| 亚洲成人资源网| 亚洲午夜高清视频| 久久婷婷蜜乳一本欲蜜臀| 欧美激情精品久久久久久久变态 | 午夜日韩视频| 久久久精彩视频| 老妇喷水一区二区三区| 亚洲精品网站在线播放gif| 夜夜嗨网站十八久久 | 亚洲制服丝袜在线| 亚洲在线免费观看| 欧美一区二区三区在线免费观看| 欧美 日韩 国产 一区| 中文av一区二区| 欧美另类变人与禽xxxxx| 国产精品视频福利| 99v久久综合狠狠综合久久| 久久精品国产亚洲高清剧情介绍| 欧美激情第一页xxx| 性8sex亚洲区入口| 欧美三级特黄| 午夜精品视频在线观看| 亚洲自拍偷拍麻豆| 欧美系列精品| 日韩亚洲视频在线| 欧美激情第三页| 欧美aⅴ一区二区三区视频| 狠狠色噜噜狠狠色综合久| 午夜日韩在线观看| 亚洲一区日韩| 亚洲成在人线av| 亚洲大胆视频| 国产精品video| 欧美一区亚洲| 久久精品免费看| 99亚洲精品| 亚洲一区二区少妇| 国产在线观看一区| 国产偷自视频区视频一区二区| 午夜精品在线观看| 午夜亚洲性色视频| 亚洲大片一区二区三区| 亚洲日本电影在线| 国产精品一区二区在线观看网站 | 欧美国产亚洲精品久久久8v| 免费毛片一区二区三区久久久| 99人久久精品视频最新地址| 亚洲欧美日韩天堂| 黑丝一区二区| 99精品免费| 在线观看一区欧美| 亚洲欧美日韩一区在线| 亚洲国产精品免费| 亚洲素人一区二区| 国语自产在线不卡| 亚洲男同1069视频| 洋洋av久久久久久久一区| 久久久www成人免费无遮挡大片| 一区二区三区四区五区视频 | 麻豆国产精品一区二区三区| 这里只有精品丝袜| 蜜臀久久久99精品久久久久久| 久久aⅴ国产紧身牛仔裤| 欧美日韩国产在线看| 91久久久亚洲精品| 一区二区电影免费观看| 欧美精品一区二区三区很污很色的| 麻豆精品视频| 樱花yy私人影院亚洲| 久久综合中文字幕| 免费久久久一本精品久久区| 亚洲第一网站免费视频| 午夜精品999| 久久国产精品一区二区三区四区| 欧美日韩一区二区免费视频| 亚洲精品视频在线看| 亚洲欧美成人网| 伊人精品久久久久7777| 久久综合九色综合欧美狠狠| 亚洲第一综合天堂另类专| 亚洲六月丁香色婷婷综合久久| 欧美视频在线观看一区| 久久国产日韩欧美| 亚洲精品国产视频| 亚洲欧美日本在线| 在线观看精品| 欧美亚洲第一区| 欧美一区二区三区在线| 亚洲第一精品福利| 欧美一区二区女人| 99综合精品| 国内精品久久久久久影视8 | 亚洲狼人精品一区二区三区| 亚洲一区国产一区| 一区二区三区在线免费播放| 欧美国产大片| 欧美成人精品在线播放| 午夜影院日韩| 亚洲欧美激情一区| 亚洲欧洲在线播放| 欧美电影免费观看高清完整版| 欧美一区二区视频在线观看2020| 一区二区久久久久| 一区二区三区国产精品| 亚洲毛片在线观看.| 最新精品在线|