TCP内部的UDP封装
以下场景来自一个私人项目 设两个客户机:A和B。 让服务器是S。 A向S发送数据,S将数据转发给B。其发生方式如下: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数据包中。我读过一些工具,
- 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数据包。