3

如果 A 和 B 之间有 tcp 连接,A 发送一些数据包,然后发送 TCP RST(或 TCP FIN/ACK)来关闭连接,让我说?

     PKT1, PKT2, PKT3, TCP_RST

或者

     PKT1, PKT2, PKT3, TCP_FIN/ACK

但是数据包到达是乱序的

    PKT1, TCP_RST(or TCP_FIN/ACK), PKT2, PKT3

那么B会如何反应呢?

根据TCP_RST和TCP_FIN/ACK的序号,B知道有一些数据包丢失(PKT2和PKT3),B会在关闭连接之前等待PKT2和PKT3,或者B收到TCP_RST后立即关闭连接(或TCP_FIN/ACK)?

谢谢

4

2 回答 2

1

TCP 协议将在将数据包进一步向上发送之前对数据包进行重新排序。这意味着它将根据序列号等待乱序数据包,如果需要则请求重传等,并在关闭连接之前等待最后一个 ack。

您可以在此处找到 TCP 状态图: http ://www.ssfnet.org/Exchange/tcp/tcpTutorialNotes.html#ST

于 2013-05-01T22:35:39.767 回答
0

TCP 保证顺序。这包括 EOS 的序列。它必须在所有数据之后交付。

于 2013-05-01T22:52:40.470 回答