捕获数据包上的网络和传输层功能

时间:2018-01-22 13:05:49

标签: linux network-programming tcp-ip libpcap packet-capture

我有一个客户端和服务器程序在TCP上进行通信,在应用层实现IEC-60870-5-104协议。我在嗅他们之间的所有流量的副本, 如何在C?中从libpcap嗅探的数据包中完全复制IP和TCP层功能?例如 IP-reassembly ,管理无序段,重新传输重复 TCP段和分离PDU,这样我就可以获得相同的数据包,就像我在服务器上的应用程序层上嗅探一样。 (另请建议任何框架 - 有助于这样做)。

1 个答案:

答案 0 :(得分:1)

这是一项非常困难且涉及的任务。这就是网络入侵检测/深度数据包检测系统所做的事情,而AFAIK没有可以处理它的插入式库。

您最好的选择是建立在现有的系统上,例如Br​​o或Suricata(或者可能是wireshark内部),这些系统已经在进行会话跟踪,状态管理,重新组装,重新排序,重复检测等等。您可以然后添加您自己的应用程序层解码,以对提供的重组数据流进行操作。