打开和关闭TCP连接的过程

时间:2011-05-19 08:39:24

标签: tcp

任何人都可以让我知道关闭tcp连接时发生的过程。

假设A(客户端)和B(服务器)A建立TCP连接

A 正在使用 B

创建 TCP连接
  1. 在打开连接时,如果来自A的SYN数据包到达B,即使你进行了一些重传,会发生什么。

  2. 如果B将数据包发送到A,如果SYN + ACK在网络中丢失会发生什么。

  3. 如果网络中的ACK从A下降到B,会发生什么。

  4. A 正在关闭 B 的连接。

    1. 在关闭连接时,如果来自A的FIN数据包在到达B时下降,即使你做了一些重传,也会发生什么。
    2. 如果B将数据包发送到A,如果网络中的FIN + ACK丢失,会发生什么。
    3. 如果网络中的ACK从A下降到B,会发生什么。

1 个答案:

答案 0 :(得分:3)

初始SYN数据包以指数退避重新传输,通常从2秒开始。即2s,4s,8s,16s等

对于重新发送的SYN-ACK数据包也是如此(尽管有一些奇怪的实现,你真的不想知道)。

不会盲目地重新传输ACK。如果另一方重新发送数据包,则会发送另一个ACK。

以上情况也适用于FIN,只需替换FIN,即可看到SYN。当然,起始重发时间不是2秒,而是计算为会话过程中的往返时间。

关于重传和可靠性,SYN / FIN分组被视为与数据分组相同。这些标志甚至会占用序列号,因此可以正确跟踪它们。