我有一个客户端和服务器程序在TCP上进行通信,在应用层实现IEC-60870-5-104协议。我在嗅他们之间的所有流量的副本, 如何在C?中从libpcap嗅探的数据包中完全复制IP和TCP层功能?例如 IP-reassembly ,管理无序段,重新传输和重复 TCP段和分离PDU,这样我就可以获得相同的数据包,就像我在服务器上的应用程序层上嗅探一样。 (另请建议任何框架 - 有助于这样做)。
答案 0 :(得分:1)
这是一项非常困难且涉及的任务。这就是网络入侵检测/深度数据包检测系统所做的事情,而AFAIK没有可以处理它的插入式库。
您最好的选择是建立在现有的系统上,例如Bro或Suricata(或者可能是wireshark内部),这些系统已经在进行会话跟踪,状态管理,重新组装,重新排序,重复检测等等。您可以然后添加您自己的应用程序层解码,以对提供的重组数据流进行操作。