TCP全局同步問題發生的原因


隨着網絡的普及,信息交流與信息共享成為人們日常生活中必不可少的一部分。而網絡中信息(數據包)的不斷增長,必然引起網絡擁塞。於是,擁塞避免顯得尤為重要,現在Internet上使用得比較廣泛的擁塞避免機制是丟尾(DropTail):當隊列的長度達到規定的最大長度時,所有到來的報文都被丟棄。這種丟棄策略會引發tcp 全局同步(global synchronization)現象——由於Internet上數據(Traffic)的突發本質,到達路由器的數據包也往往是突發的。如果隊列是滿的或者幾乎是滿的,就會導致在短時間內連續大量地丟封包。而TCP流具有自適應特性(Adaptiveness),來源端發現數據包丟失就急劇地減小發送窗口(congestion window,cwnd),數據包到達速率就會迅速下降,於是網絡擁塞得以解除。但來源端得知網絡不再擁塞后又開始增加發送速度,最終又造成網絡擁塞,而且這種現象常常會周而復始地進行下去,從而在一段時間內網絡處於網絡利用率(Network Utilization)很低的用狀態,降低了整體吞吐量(throughput),這就是所謂地"TCP全局同步"現象。

丟尾會造成TCP流量之間分配帶寬不均衡,一些"貪婪"的流量會占用大部分的帶寬,而普通的TCP流量分配不了帶寬而"餓死"。特別是網絡中既有TCP又有UDP流量的時候,TCP流量因為窗口機制(丟尾造成滑動窗口cwnd減小)而釋放帶寬,UDP流量沒有窗口機制,於是UDP流量會迅速占用TCP釋放的帶寬,最終造成UDP流量占用了所有帶寬而TCP流量因沒有帶寬分配而"餓死"。

轉載於:https://www.cnblogs.com/redsmith/p/5461519.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM