TCP可靠传输——滑动窗口

*TCP协议保证可靠的数据传输。。使用哪些方法来保证呢。。?来瞧瞧滑动窗口。。→_→*

  1. 滑动窗口的定义

    • TCP滑动窗口以字节为单位

    • TCP可靠传输——滑动窗口

    • 发送窗口表示,在没有收到接收方的确认时,发送方可以把窗口内的数据都发送出去发送过的数据在未收到确认之前都必须暂时保留,以便超时重传使用

    • 发送窗口的位置由窗口前沿和后沿共同决定。

    • 后沿不动——没有收到新的确认

    • 后沿前移——收到了新的确认

    • 前沿前移——没有收到新的确认,接收方的窗口大小不变

    • 前沿不动——收到了新的确认,接收方的窗口缩小

    • TCP可靠传输——滑动窗口

    • P3 - P1 = A的发送窗口(通知窗口)

    • P2 - P1 = 已发送但尚未收到确认的字节数

    • P3 - p2 = 允许发送但尚未发送的字节数(可用窗口或有效窗口)

  2. 缓存和窗口的关系

    • TCP可靠传输——滑动窗口

    • 发送缓存存放:应用程序传送给TCP的准备发送的数据和TCP已发送但尚未收到确认的数据

    • 发送窗口只是发送缓存的一部分,发送缓存和发送窗口的后沿是重合的

    • TCP可靠传输——滑动窗口

    • 接收缓存存放:按序到达、但尚未被应用程序读取的数据和未按序到达的数据

    • 如果应用程序不及时读取缓存数据,那接收缓存最终就会被填满,使接收窗口减小到零

    • 如果应用程序即使读取缓存数据,接收窗口就可以增大,但最大不超过接收缓存的大小