这两个TCP数据包捕获之间有什么区别?一个没有';行不通

这两个TCP数据包捕获之间有什么区别?一个没有';行不通,tcp,wireshark,packet-capture,Tcp,Wireshark,Packet Capture,Senario 1:包含“PV_MOTION_ON”的TCP字符串由一个简单的实用程序(如PacketSender)发送到一个自动程序,用于解析TCP字符串。它工作得很好 场景2:从IP摄像机发送完全相同的TCP字符串。TCP解析实用程序只看到正在建立的连接,然后在没有有效负载数据的情况下断开连接 我还不足以看出功能上的差异。有什么想法吗 注意:192.168.2.150是在两种情况下接收数据包的工具我不知道这个“TCP解析实用程序”是什么,但我假设它在普通TCP堆栈上不起作用,而是有一

Senario 1:包含“PV_MOTION_ON”的TCP字符串由一个简单的实用程序(如PacketSender)发送到一个自动程序,用于解析TCP字符串。它工作得很好



场景2:从IP摄像机发送完全相同的TCP字符串。TCP解析实用程序只看到正在建立的连接,然后在没有有效负载数据的情况下断开连接



我还不足以看出功能上的差异。有什么想法吗

注意:192.168.2.150是在两种情况下接收数据包的工具

我不知道这个“TCP解析实用程序”是什么,但我假设它在普通TCP堆栈上不起作用,而是有一些自定义堆栈(即一些具有最小堆栈的嵌入式系统)或者尝试捕获流量并手动处理,但这是错误的

这两个pcap之间的区别在于,PacketSender首先进行TCP握手,然后才发送数据,而Axis发送的数据已经在握手的最后一个数据包中:

    PacketSender            Axis

    > SYN                   > SYN
    < SYN+ACK               < SYN+ACK
    > ACK                   > ACK + "PV_MOTION_ON"
    > "PV_MOTION_ON"
PacketSender轴
>同步>同步
确认>确认+“PV\U运动打开”
>“PV_运动_ON”

轴的行为完全正确。这有点不同寻常,因为典型的socket编程技术并不像Axis那样容易发送数据包。问题仍然是“TCP解析实用程序”中关于TCP如何工作的错误假设

很抱歉。现在修好了。哇,这是一个很棒的答案-谢谢!“TCP解析实用程序”是一个在基于Windows的自动化软件中运行的模块,该软件设计用于处理TCP输入并基于字符串匹配触发事件。有趣的是,数据包也不能在一个完全独立的设备(工业PLC)上工作,该设备也接受/解析TCP数据包。事实上,在这种情况下,它实际上会禁用TCP侦听器,直到它被重置。到目前为止,只有PacketSender能够正确阅读它们。我会联系双方的供应商进行调查。再次感谢你!