任何人都可以让我知道关闭tcp连接时发生的过程。
假设A(客户端)和B(服务器)A建立TCP连接
A 正在使用 B
创建 TCP连接在打开连接时,如果来自A的SYN数据包到达B,即使你进行了一些重传,会发生什么。
如果B将数据包发送到A,如果SYN + ACK在网络中丢失会发生什么。
如果网络中的ACK从A下降到B,会发生什么。
A 正在关闭 B 的连接。
答案 0 :(得分:3)
初始SYN数据包以指数退避重新传输,通常从2秒开始。即2s,4s,8s,16s等
对于重新发送的SYN-ACK数据包也是如此(尽管有一些奇怪的实现,你真的不想知道)。
不会盲目地重新传输ACK。如果另一方重新发送数据包,则会发送另一个ACK。
以上情况也适用于FIN,只需替换FIN,即可看到SYN。当然,起始重发时间不是2秒,而是计算为会话过程中的往返时间。
关于重传和可靠性,SYN / FIN分组被视为与数据分组相同。这些标志甚至会占用序列号,因此可以正确跟踪它们。