tcp拥塞控制和流量控制

流量控制

  1. 流量控制:让发送方的发送速率不要太快,让接收方来得及接受数据。
  2. 利用滑动窗口机制可以在tcp连接上实现对发送方的流量控制。
  3. 滑动窗口单位是字节,不是报文段。
  4. 连接中存在锁死的状态,为了解决这种状态,tcp为每一个连接设置了持续计时器,只要tcp连接的一方收到对方的零窗口通知,就开始计时,时间到期,就发送一个零窗口探测报文段,对方在确认这个探测报文段时给出了现在的窗口值。

拥塞控制

  1. 原理:网络中某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要变化,这种情况叫做拥塞
  2. 拥塞问题往往指的是整个系统的各个部分不匹配,只有各个部分平衡了,问题才会得到解决。
  3. 拥塞问题是全局性的问题,针对整体,流量控制指的是点对点通信的控制,是端到端的问题。
  4. 拥塞控制的四种算法:慢开始、拥塞避免、快重传、快恢复
  5. 慢开始:连接建立时,拥塞窗口(cwnd)初始化为1个最大报文段(MSS)大小,发送端开始按照拥塞窗口大小发送数据,每当有一个报文段被确认,拥塞窗口就增加1个MSS大小,用这样的方法来逐步增大拥塞窗口。
  6. 拥塞避免:让拥塞窗口缓慢增长,每经过一个往返时间RTT就把发送方的拥塞窗口cwnd加1,而不是加倍,这样拥塞窗口按照线性规律缓慢增长。
  7. 无论是在慢开始阶段还是在拥塞避免阶段,只要发送方判断网络出现拥塞(其根据就是没有收到确认,虽然没有收到确认可能是其他原因的分组丢失,但是因为无法判定,所以都当做拥塞来处理),就把慢开始门限设置为出现拥塞时的发送窗口大小的一半。然后把拥塞窗口设置为1,执行慢开始算法。
  8. 快重传:发送方只要连续接收到三个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计时器时间到期
  9. 快恢复:当发送方连续接收到三个重复确认时,就执行乘法减小算法,把ssthresh门限减半,然后执行拥塞避免算法。
  10. 随机早期检测算法(RED):路由器的队列维持两个参数,即队列长度最小门限min和最大门限max,每当一个分组到达的时候,算法就计算平均队列长度
    1. 平均队列长度小于min,把新到达的分组放入队列排队
    2. 平均队列长度在min和max之间,按照某一概率将分组丢弃
    3. 平均队列长度大于max,丢弃新到达的分组

你可能感兴趣的:(日常笔记)