我有一个接收多个 IP 数据包的程序。明确地说,我的程序接收的数据从数据包的源 IP 和目标 IP 开始,然后是网络标头(例如 TCP、UDP),最后是应用程序数据。其中一些数据包包含 TCP 数据,我想重建其应用程序数据。可以做到这一点的最容易使用的 C++ 库是什么?我查看了 Netfilter 的 libipq(已弃用)和 libnetfiler_queue,以及 Wireshark 使用的 Epan 库。这些似乎没有满足我的要求(在 Netfilter 库的情况下),和/或没有足够好的文档让我弄清楚如何正确利用它们(Epan/Wireshark)。
背景信息:我的程序正在从运行 VpnService 的 Android 设备接收这些 IP 数据包,该设备从设备转发封装的 IP 数据包。我在服务器上接收它们,并通过 TUN 接口转发它们。