TCP协议中的重传机制

时间:2013-04-01 03:25:17

标签: tcp ip

有人可以简单地描述TCP中的重传机制吗? 我想知道它在这种情况下是如何处理的?

A向B发送数据包:

  1. 发送数据包。
  2. B接收并发送确认,但此确认丢失。
  3. 超时并重新发送。
  4. 在这种情况下,B将收到2个相同的数据包,B怎样才能避免再次处理同一个数据包?

    感谢。

1 个答案:

答案 0 :(得分:2)

每个数据包都有一个与之关联的序列号。在发送数据时,序列号增加数据包中的原始数据量。您可以将序列号视为数据包中第一个字节从数据流开头的偏移量,尽管它可能不会(可能不会)从零开始。当A发送重试时,它将使用它第一次使用的相同序列号。 B在接收数据时跟踪序列号,并且可以知道它之前已经看过重试的序列号。如果它已经将该数据提供给(上层)客户端,那么它知道它不应该再次这样做。