2011-05-19 64 views
2

任何人都可以让我知道在关闭tcp连接时发生的过程。打开和关闭TCP连接的程序

假设有A(客户端)和B(服务器),其甲建立一个TCP连接

被创建具有

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

  2. 如果SYN + ACK滴在网络中当B发送该分组到A.

  3. 如果ACK从A网络中下降到B.

A发生什么会发生什么正在关闭与B的连接。

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

回答

3

初始SYN分组被重传,会发生什么具有指数回退,通常从2秒开始。即2s,4s,8s,16s等

重传SYN-ACK数据包也是一样(虽然有一些奇怪的实现你真的不想知道)。

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

以上对于FIN也是如此,只是将FIN替换成您看到SYN的地方。当然,重新开始传输的时间不是2秒,但是会话期间的往返时间已经被计算出来。

在重传和可靠性方面,SYN/FIN数据包被视为与数据包相同。这些标志甚至占用一个序列号,以便可以正确跟踪它们。