提问者:小点点

TCP段重组PDU长度1


我在Oracle数据库中出现了超时错误,当我使用Wireshark嗅探它时,我得到了一个包含以下信息的数据包:重组PDU的TCP段。

它有TCP信息:

传输控制协议,Src端口:ncube-lm(1521),Dst端口:57861(57861),Seq: 1,Ack:1,Len:1

在第一个带有信息TCP重组PDU的片段的数据包之后,有9个相同的数据包:

2728 596.537143000 10. XX.XX 10.YY.YY.YYTCP55[TCPKeep-Alive]ncube-lm

然后我还有最后一个包:

2746 605.585011000 10. XX.XX.XX 10.YY.YY.YYTCP54 ncube-lm

最后一个数据包出现在数据库中发生超时的确切时间。

一个长度为1的数据包怎么会被重新组装?为什么它来自我们自己的本地机器时会被重新组装?

此数据包的来源是我们的Oracle数据库(端口1521)。为什么它发送一个包含一个字节数据(值为“00”)的数据包?

谢谢你!


共2个答案

匿名用户

默认情况下,保活(tcp_keepalive_probes)探测计数为9。机器发送了9个保活探测,但没有从另一端得到任何响应,因此它重置了连接。

匿名用户

通常,len为1的TCP数据包是控制数据包(确认字符、SYN、FIN、RST)。我猜这就是你遇到的情况。此外,Wireshark数据包额外信息(在你的例子中是“重组PDU的TCP段”)有时会错误地标记数据包,所以你不应该完全依赖它。

我不认为这些数据包是超时问题的原因。你能提供更多关于会话其余部分和数据包时间的信息吗?