【发布时间】:2016-11-28 11:07:36
【问题描述】:
我正在解析一个包含大量需要解析的 tcp 数据包的文件。问题是它们被分割了,我找不到任何迹象表明它们何时何地这样做。没有标志或任何其他指示,当前数据包的中间可能包含下一个数据包的开头。 tcp 上面的协议是 FIX(用于在线交易),但我希望我的代码能够使用任何协议(或者至少了解它是哪个协议)。 我正在用 C++ 编写代码,不能使用任何其他库。 那么,我如何弄清楚 tcp 之上的协议是什么以及它在哪里被分段?
【问题讨论】:
-
要重组 TCP 流,首先你必须学会如何重组 IP 片段。请参阅 RFC 815。
-
不清楚你在问什么。这些数据是如何获取的?
-
@Alnitak 我怀疑他在这里捕获原始数据。 RFC 815 发生在网络堆栈内部,而不是在用户级别之外。
-
@H.Guijt 除非你正在阅读 pcap 文件......(是的,目前还不清楚这些文件的来源)
-
@Alnitak 他可能也在他的示波器上查看电信号,但缺乏更多信息我认为假设普通用户级 API 是合理的......