网络tcp流控制和拥塞控制

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络tcp流控制和拥塞控制相关的知识,希望对你有一定的参考价值。

名词解释

MTU:最大传输单元(硬件规定),指的是ip头+data的最大字节数(数据包超过该值会分片,主要为UDP协议)
TTL:数据报的寿命(经过一个路由器减1,工作在ip层)
RTO:重传超时时间
cwnd:发送窗口
rwnd:接受窗口

流控制

目的:
    防止发送方速率太快,接受端承受不了(点对点流空)

原理:
    a. 通过滑动窗口实现(滑动窗口协议工作在传输层)
    b. 发送方根据收到ack中下一字节的序号n和接受方窗口大小m,以及目前发送字节序号x,算出还可以发送的字节数
    发送窗口的第一个字节序号 = ack中期望的下一个字节序号

总结:
    a. 发送窗口只有收到接受端的确认,才会移动发送窗口的左边界
    b. 接受窗口只有在前面所有数据报都确认,才会移动接受窗口的左边界
    c. 应用程序可以通过api接口更改rwnd大小;tcp协议栈在下次发送时将新窗口大小发给发送方,对端按照新窗口大小设置发送窗口大小,减缓发送速率

拥塞控制

以上是关于网络tcp流控制和拥塞控制的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络:可靠传输的实现 (tcp窗口滑动以及拥塞控制)

TCP拥塞控制

tcp协议头窗口,滑动窗口,流控制,拥塞控制关系

网络拥塞控制 TCP拥塞控制算法

TCP拥塞控制及BBR原理分析

计算机网络 | 谈谈TCP的流量控制与拥塞控制