拥塞控制算法

TCP BIC

BIC-TCP(Binary Increase Congestion Control)由North Carolina State University的网络研究实验室提出,该算法在提出不久后就成为了当时Linux内核中的TCP默认拥塞算法。

拥塞控制实现

发送窗口

对于TCP会话的发送方,任何时候在其发送缓存内的数据都可以分为四类:

  • 已经发送,并得到了对端的ACK。
  • 已经发送,但是仍未得到对端ACK。
  • 未发送,但是对端允许进行发送。
  • 未发送,但是对端不允许进行发送。

对于第二类和第三类数据,即“已经发送,未收到对端ACK”和“未发送,但是对端允许进行发送”合称为发送窗口

窗口只能通过以下方式进行滑动:

  • 当接收到新的ACK时,窗口滑动。

接收窗口

对于接收方,在某一时刻他的接收缓存只有三种:

  • 已经接收,并且已经回复了ACK。
  • 已经接收,但是仍未回复ACK。
  • 未接收,但是已经准备好接收。
  • 未接收,也仍未准备好进行接收。

未接收,准备进行接收,即第二类,被称为接收窗口

拥塞窗口调整的本质

找到最适合当前网络的一个发送窗口。

实现方式

基本思想为二分查找法。

TCP CUBIC

CUBIC是一种TCP的实现,他有着最优化的拥塞控制算法。

转载于:https://juejin.im/post/5c6657f8f265da2d9b5e0153

你可能感兴趣的:(拥塞控制算法)