什么是“TCP乱序”和“TCP端口号重用”问题?

6
我正在从IP_ADDR1向IP_ADDR2发送HTTP请求。我注意到HTTP请求没有到达应用程序层。当我查看Wireshark日志时,我发现TCP层有一些问题。这些问题是什么?它们何时发生?如何解决?这里附上Wireshark快照。

嗨Dhiraj,你解决了这个问题吗?如果是的话,请告诉我怎么解决。因为我也遇到了类似的问题。 - NIKHIL CHAURASIA
1个回答

6
“TCP端口号重用”意味着它看到了一个成功的连接握手,然后客户端发送了另一个具有相同端口号的SYN数据包。如果客户端还没有确认SYN-ACK,则会报告为重传。但是由于已经确认了SYN-ACK,则不需要重新传输SYN。这可能意味着您网络中的某些内容正在复制数据包。
“TCP乱序”意味着数据包未按照其序列号指示的顺序接收。这可能是导致重用端口号错误的重复数据包的副作用 - 可能会将序列号重置为连接的开头。否则,数据包看起来是有序的;在连接握手之后,HTTP命令应该是下一步操作。

1
你能告诉我,什么原因会导致数据包重复发送? - Dhiraj Neve
也许是开关出了故障?如果在客户端机器上捕获数据包,您是否看到了重复项? - Barmar
我的服务器正在向2个不同的客户端发送HTTP请求。对于发送到客户端1的每个HTTP请求都会出现此问题。但是对于客户端2,它可以完美地工作。 - Dhiraj Neve
如果您在客户端1上进行捕获,您能看到它吗?从客户端到服务器的路径对两个客户端来说是相同的吗? - Barmar
是的,当我在客户端1上进行捕获时,我看到了它。从客户端到服务器的路径是不同的。两个客户端位于不同的城市。 - Dhiraj Neve
如果您在客户端看到它,那么这是客户端的TCP/IP堆栈问题。如果已经收到确认信息,则不应重新发送数据包。 - Barmar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接