将UDP标头转换为TCP标头

时间:2015-04-09 06:48:52

标签: linux tcp

我有一个典型的要求,我希望有一个转换器模块,可以将UDP数据包转换为TCP数据包。 我需要在IP层中处理数据包之前进行此操作。

我将使用示例

解释这个完整的场景

假设我们有3台机器A,B和C.

  1. 发送UDP数据包
  2. B收到UDP数据包
  3. 在B,当数据包被提供给IP层(来自链路/ MAC /以太网层)时,我想获取数据包。我想删除数据包中的UDP和IP头。我想添加TCP和IP头(假设C是目标主机)。
  4. 现在从B机器,数据包被发送到C机器
  5. 有人可以帮助我如何做到这一点。 我正在使用linux机器。

    虽然libpcap可以作为选项之一(来自wireshark),但由于性能原因它不适合我。 我想要一个非常轻量级的解决方案来解决这个问题。

2 个答案:

答案 0 :(得分:1)

无法完成。 TCP是一种有状态,可靠,面向连接的字节流协议。 UDP是一种无状态,不可靠,未连接的数据包协议。

您可以做的最好的事情是,在机器B上,打开与C的新套接字/ TCP连接,接受来自A的套接字/ UDP数据包,并将这些数据包的内容写入TCP流。流向另一个方向的数据有点困难,因为您必须创建一个不大于系统支持的最大UDP数据包大小的UDP数据包。

答案 1 :(得分:0)

你不能直接这样做,但如果你使用 UDP VPN ,你可以很容易地做到。

只需使用 UDP VPN 网络连接系统/ PC,它就可以正常工作。

在我的图片下方查看更多信息,我也在使用它。

enter image description here