滑动窗口机制的作用:
滑动窗口机制实现了流量控制(接收方控制发送方的发送速度),如果发送方发送大量的数据可能会占满接收缓冲区,这样就会导致后续发送的数据无法存放在缓冲区中而丢弃,导致发送方产生了大量的丢包重传。
通过流量控制可以避免发送方发送数据过多而导致的丢包重传
滑动窗口机制如何实现
16为窗口大小是实现滑动窗口机制的关键信息
接收方接收到每条数据之后,会进行确认回复,在确认回复的窗口中接收方会填入一个值,这个值不能大于接收方剩余缓冲区的大小,发送方在收到这个回复后,通过窗口大小就知道自己最多能发送多少数据,进而实现流量控制。
通信双方,在三次握手时,通过选项字段,协商MSS(最大数据段大小,应用数据的大小),不管缓冲区中有多少数据,每次最多从缓冲区中取出不大于MSS的数据大小进行封装发送
滑动窗口的实现是靠发送端和接收端的发送窗口和接受窗口
发送窗口:窗口大小不能大于对方回复数据中窗口大小字段的值
窗口后沿:发送数据的起始序号,移动取决于是否收到了对方的回复
窗口前沿:取决于响应中的窗口大小
接受窗口
窗口后沿:就是要接收的起始数据序号,进行包序管理
窗口前沿:接收数据的位置结束,随着缓冲区中剩余空间大小而改变