2019-06-13

TCP拥塞控制的基本原理:
发送方限制发送速率:
lastByteSent-lastByteAcked<=CongWin(拥塞窗口)
通过动态设置拥塞窗口来调整速率的大小

CongWin:
动态调整以改变发送速率
反应锁感知到的网络拥塞

如何感知?:
Loss事件=timeout或者受到3个重复的ACK
发生loss事件之后,发送方降低速率

如何合理第调整发送速率?
加性增-乘性减:AIMD(add increase mul des)
慢启动:SS

AIDM:
原理:逐渐增加发送速率,谨慎探测可用带宽,知道发生loss
方法:
1.Additive increase:每个RTT将CongWin增大一个MSS(最大段的长度)---拥塞避免
2.Multiplicative Decrease:发生loss后将CongWin减半

SS:
TCP建立连接时,CongWin设置为1
原理:当连接开始时,指数型增长,每个RTT将CongWin翻倍,
初始速率很慢,但是快速攀升

如图:

通过AIDM和SS的动态切换,来进行拥塞控制

如何进行切换?当CongWin达到loss时间前值的1/2时

实现方法:
设置变量Threshold
当loss事件发生时,threshold被设置为loss时间前CongWin值的1/2

对loss事件的处理
3个重复的ack:
CongWin切到一半,然后线性增长
Timeout事件:
CongWin直接设置为1个MSS
然后指数增长
达到Threshold后,再线性增长

原理:3个重复的ACKs表示网络还能传输一些segments
timeout事件表明拥塞更为严重

TCP拥塞控制算法:

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 3.1传输层服务 3.1.1传输层服务概述 传输层服务和协议 ■传输层协议为运行在不同Host上的进程提供了一种逻...
    龟龟51阅读 4,114评论 0 0
  • 拥塞(Congestion)给一个非正式定义就是:“太多发送主机发送了太多数据或者发送速度太快,以至于网络无法处理...
    六尺帐篷阅读 8,384评论 0 17
  • 运输层协议概述 从通信和信息处理的角度看,运输层向它上面的应用层提供通信服务,它属于面向通信部分的最高层,同时也是...
    srtianxia阅读 7,445评论 0 2
  • 拥塞控制原理 在学习TCP拥塞控制之前,首先看看拥塞控制的基本原理拥塞控制非正式定义:“太多发送主机发送了太多数据...
    桔子满地阅读 4,813评论 0 0
  • 如果对网络工程基础不牢,建议通读《细说OSI七层协议模型及OSI参考模型中的数据封装过程?》 下面就是TCP/IP...
    zhoulujun阅读 8,591评论 1 10

友情链接更多精彩内容