TCP限流是因为让接收方充分接受完消息,保证数据安全,不会丢失
一、窗口机制介绍
发送端和接收端都拥有一个窗口,当发送端发送数据时,落进窗口的数据被发送,当接受端接受数据时,落进接收端窗口的数据将会被接受。由此可见可以通过窗口大小限制流量
二、滑动窗口技术(限流使用到的技术)
1 TCP滑动窗口技术通过动态改变窗口大小来调节两台主机间的数据传输。每个TCP/IP主机支持全双工数据传输,因此TCP有两个滑动窗口:
一个用于接收数据,另一个用于发送数据.TCP使用确定技术,其确定号指的是下一个所期待字节.假定发送方设备以每次三个数据包发送数据,也就是说,窗口大小为3.
发送方发送序列号的1,2,3的三个数据包,接收方成功接收数据包,用序列号4确认.发送方设备收到确认,继续以窗口大小3发送数据.当接收方设备要求降低或者增大网络流量时,
可以对窗口大小进行减小或者增加.本例降低窗口大小为2,每一次发送两个数据包.当接收方设备要求窗口大小为0,表示接收方已经接受全部数据,或者接收方应用程序没有时间读取数据,
要求暂停发送,发送方接受到携带窗口号为0的确认,停止这一方向的传输.
三、举例说明
过程分析:
1、初始状态,发送方没有帧发出,发送窗口前后相位重合。接收方0号窗口打开,等待就接收0号帧;
2、发送方打开0窗口,表示已发出0帧但尚未确认返回信息。此时接收窗口状态不变;
2、发送方再打开1号窗口,表示0,1号帧都在等待确认之列。至此发送方打开的窗口数已达到规定限度,在未接受新的确认返回帧之前,发送方将暂停发送新的数据帧。此时接收窗口状态仍未改变
4、接收方收到0号帧,0号窗口关闭,1号窗口打开,表示准备接受一号帧,此时发送窗口不变,
5、发送方收到接收方发来的0号确认返回信息,关闭0号窗口,表示从重发表中删除0号帧。此时接收方窗口不变。
6、发送方删除0号帧以后,没有达到最大限制,将2号窗口打开,,准备发送2号帧,此时待确认之列中有1号帧和2号帧。此时2号帧加入发送窗口又已达到规定限度,在未接收到新的确认返回帧之前,发送方暂停数据帧的发送,此时接收窗口状态不变
7、接收方已收到1号帧,一号窗口关闭,2号窗口打开,表示准备接收2号帧。此时发送窗口不变
8、发送方收到接收