19.3 延迟确认

图19-2 中涉及一些与时间相关的细节,将在本节进行讨论。图19-3 展示了图19-2 中数据交换的时间序列(该序列省略了所有窗口通告,并添加了标记以指示正在传输的数据类型)。我们将从 bsd i 发送到 srv 4 的 7 个 ACK 标记称为“延迟确认”。通常,TCP 在接收到数据后不会立即发送 ACK;相反,它会推迟发送,以便将 ACK 与需要沿相同方向发送的数据一起发送(有时称为“数据捎带 ACK”)。大多数实现使用的延迟时间为 200 毫秒,这意味着 TCP 将等待最多 200 毫秒,看看是否有数据可以一起发送。如果观察 bsd i 接收数据和发送 ACK 之间的时间差,会发现它们看似随机:1、2、3.5 毫秒等。