流量控制

  • TCP的流量控制有两种方式:
    • 一种是基于速率流量的控制
    • 一种是基于滑动窗口的流量控制

一、基于速率流量的控制

  • 这种方式比较简单:它是给发送方指定某个速率,同时确保数据永远不能超过这个速率发送
  • 这种类型的流量控制最\适合流应用程序**,可被用于广播和组播发现

二、基于滑动窗口的流量控制

发送窗口

  • 发送窗口主要分为4部分:
    • 已发送的并确认的
    • 已经发送的但是还未确认的
    • 即将发送的
    • 不允许发送的

img

接收窗口

  • 发送窗口主要分为3部分:
    • 已接收的并确认的
    • 未接收的但是准备接收的
    • 不能接收的

img

  • 基于滑动窗口的流量控制大致流程为:
    • 接收端在接收到数据之后会给发送端发送一个ACK(TCP报文),ACK的IP头部中有一个窗口大小字段(见下图的IP头部图),这个大小字段表明接收端自己可用的缓冲大小
    • 当发送端接收到接收端的ACK之后会获取IP头部中的窗口大小,从而知道接收端的数据缓冲区大小
    • 之后发送数据使就会受到这个缓冲区大小的限制

img

三、附加链接