TCP内部的UDP封装

TCP内部的UDP封装,tcp,udp,tunnel,Tcp,Udp,Tunnel,以下场景来自一个私人项目 设两个客户机:A和B。 让服务器是S。 A向S发送数据,S将数据转发给B。其发生方式如下: S正在侦听端口,例如20000/udp A连接到20000/udp B连接到20000/udp A在端口20000/udp向S发送添加数据 S创建从任意端口(例如48000/udp)到B上任意端口(例如50000/udp)的连接 A向S发送数据。S处理数据并发送给B 我想做的是让所有的通信都使用TCP而不改变应用程序。最好是将udp数据包封装在tcp数据包中。我读过一些工具,

以下场景来自一个私人项目

设两个客户机:A和B。 让服务器是S。 A向S发送数据,S将数据转发给B。其发生方式如下:

  • S正在侦听端口,例如20000/udp
  • A连接到20000/udp
  • B连接到20000/udp
  • A在端口20000/udp向S发送添加数据
  • S创建从任意端口(例如48000/udp)到B上任意端口(例如50000/udp)的连接
  • A向S发送数据。S处理数据并发送给B

我想做的是让所有的通信都使用TCP而不改变应用程序。最好是将udp数据包封装在tcp数据包中。我读过一些工具,比如
udptunnel
,但它们似乎在以前已知的端口上工作。是否有任何通用机制可以在
tcp
内部封装从A到B的所有
udp
数据包,而不考虑端口。

您不能通过逐个数据包封装udp数据包来建立tcp连接(如何管理序列号和ACK?);您必须通过tcp连接对它们进行隧道传输。如果你真的不需要使用tcp,一件简单的事情就是建立一个gre隧道,然后通过隧道路由udp数据包。