A发送端,B接收端,假设只在一个方向进行
以字节为单位的滑动窗口
发送端A根据收到B发送的确认来调整自己的发送窗口,也就是说A的窗口是动态可调的,发送窗口的大小根据前沿和后沿来共同决定。
后沿的变化
后沿的变化分为两种,1.不动:不动的情况a.没有收到新的确认,对方通知的窗口大小也不变;b.收到了新的确认,但是通知窗口变小了,此时需要后移前沿。2.前移:收到了新的确认,通知的窗口大小没有变化,标识数据已经安全到达,可以发送后面的数据。
缓存的概念
应用程序将字节流写入TCP的发送缓存,接收方的应用程序从TCP的接收缓存中读取字节流。发送窗口通常只是发送缓存的一部分,且窗口的后沿适合发送缓存重合的。
发送端的缓存和窗口
发送端的缓存用来存放:1.发送应用程序传送给发送方TCP准备发送的数据;2.TCP已发送但未收到确认的数据
接收端的缓存和窗口
接收端的缓存用来存放:1.按序到达、但尚未被接收应用程序读取的数据;1.为按序到达的数据