本文最后更新于:2020年6月30日 晚上

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

  1. 滑动窗口的定义
  • TCP滑动窗口以字节为单位

  • 根据接收方的窗口值调整发送方的发送窗口

    • 发送窗口表示,在没有收到接收方的确认时,发送方可以把窗口内的数据都发送出去发送过的数据在未收到确认之前都必须暂时保留,以便超时重传使用
  • 发送窗口的位置由窗口前沿和后沿共同决定。

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

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

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

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

  • 发送窗口指针

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

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

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

  1. 缓存和窗口的关系
  • 发送缓存和发送窗口的关系

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

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

  • 接收缓存和接收窗口的关系

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

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

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