这两个 TCP 数据包捕获有什么区别?一个不行
What is the difference between these 2 TCP packet captures? One doesn't work
场景 1:包含 "PV_MOTION_ON" 的 TCP 字符串由一个简单的实用程序(如 PacketSender)发送到用于解析 TCP 字符串的自动化程序。它完美运行。
Scenario 1 WireShark PCAP File
场景 2:从网络摄像机发送完全相同的 TCP 字符串。 TCP 解析实用程序只看到正在建立的连接,然后在没有有效负载数据的情况下丢弃。
Scenario 2 WireShark PCAP File
我看不出功能上的差异。对发生的事情有什么想法吗??
注意:192.168.2.150 是两种情况下都在接收数据包
我不知道这个 "TCP parsing utility" 是什么,但我认为它在普通 TCP 堆栈上不起作用,而是有一些自定义堆栈(即一些具有最小堆栈的嵌入式系统)或尝试捕获流量并手动处理它 - 但错误。
这两个 pcap 的区别在于 PacketSender 首先进行 TCP 握手,然后才发送数据,而 Axis 发送的数据已经在握手的最后一个数据包中:
PacketSender Axis
> SYN > SYN
< SYN+ACK < SYN+ACK
> ACK > ACK + "PV_MOTION_ON"
> "PV_MOTION_ON"
Axis 的行为完全符合 TCP。这有点不寻常,因为典型的套接字编程技术不能像 Axis 那样轻松地发送数据包。问题仍然是 "TCP parsing utility" 内部关于 TCP 工作原理的错误假设。
场景 1:包含 "PV_MOTION_ON" 的 TCP 字符串由一个简单的实用程序(如 PacketSender)发送到用于解析 TCP 字符串的自动化程序。它完美运行。
场景 2:从网络摄像机发送完全相同的 TCP 字符串。 TCP 解析实用程序只看到正在建立的连接,然后在没有有效负载数据的情况下丢弃。
我看不出功能上的差异。对发生的事情有什么想法吗??
注意:192.168.2.150 是两种情况下都在接收数据包
我不知道这个 "TCP parsing utility" 是什么,但我认为它在普通 TCP 堆栈上不起作用,而是有一些自定义堆栈(即一些具有最小堆栈的嵌入式系统)或尝试捕获流量并手动处理它 - 但错误。
这两个 pcap 的区别在于 PacketSender 首先进行 TCP 握手,然后才发送数据,而 Axis 发送的数据已经在握手的最后一个数据包中:
PacketSender Axis
> SYN > SYN
< SYN+ACK < SYN+ACK
> ACK > ACK + "PV_MOTION_ON"
> "PV_MOTION_ON"
Axis 的行为完全符合 TCP。这有点不寻常,因为典型的套接字编程技术不能像 Axis 那样轻松地发送数据包。问题仍然是 "TCP parsing utility" 内部关于 TCP 工作原理的错误假设。