如何在单个 TCP 数据包中分离来自不同文件的数据?

How to separate data from different files in a single TCP packet?

假设我传输了2个文件A.binB.bin的数据,因为一个TCP数据包可以从随机位置开始有多个文件的数据,在wireshark捕获后,我如何识别数据包的哪一部分数据属于哪个文件(假设我没有原始文件A.bin和B.bin)?

TCP是字节流。它没有固有的消息语义,即既不在数据包边界也不在数据包内部。任何消息语义都需要由应用层协议完成,或者必须以某种方式固有地存在于传输的数据中。

如果没有特定的应用程序协议以某种方式描述 A.bin 结束和 B.bin 开始的位置,并且如果这些信息不是这些文件固有的(例如具有特定的文件格式),那么它是不可能分开文件。但假设这是一个真实世界的应用程序,其中接收方知道如何分离文件,那么您必须将接收方拥有的相同知识应用到您的数据包捕获中。但是没有通用的魔术方法。