DatagramTunneler
1.0.0

简单的跨平台客户端/服务器程序通过 TCP 连接(又称隧道)转发 UDP 数据报。客户端加入多播组并将收到的数据报转发到服务器,服务器又在自己的子网上多播它们。
要求
安装
概要
示例
它是如何运作的?
DTEP 协议
许可
cd <path_to_the_repo>/DatagramTunneler
make
./bin/DatagramTunneler -h
有关如何运行它的更多信息,请查看下面的概要
为了使用 DatagramTunneler,您需要首先启动服务器端,然后启动客户端。如果不这样做,客户端将无法连接到服务器并立即退出。
dgramtunneler --server -i <udp_iface_ip> -t <tcp_listen_port> [-u <udp_dst_ip>:<port>]
dgramtunneler --client -i <udp_iface_ip> -t <tcp_srv_ip>:<tcp_srv_port> -u <udp_dst_ip>:<port>
(如果这个工具对你有用,别忘了给个小星星:])服务器端:
./bin/datagramtunneler --server -i 192.168.0.104 -u 228.14.28.52:1234 -t 28052
客户端:
./bin/datagramtunneler --client -i 192.168.0.105 -u 228.1.2.3:7437 -t 192.168.0.104:28052
DatagramTunneler 的目的是将多播数据从一个子网 A 传输到该多播通道不可用的另一子网 B。为了实现这一点,DatagramTunneler 分为 2 部分:客户端和服务器端,如下图所示: 
客户端应在可加入多播通道的子网中运行。一旦启动,它将执行以下操作:
服务器端应运行在不支持多播的子网中。一旦启动,它将执行以下操作:
数据报隧道协议(DTEP)是一个简单的二进制协议,如下图所示: 
DTEP 数据包有一个 1 字节标头,指定其包含的有效负载类型。
这种类型的数据包没有有效负载。它由客户端发送到服务器,有助于确保连接的两端都知道另一端是否处于活动状态。
该数据包封装了客户端观察到的数据报。这是它的完整描述: 
尽管此图应该是不言自明的,但以下是所有字段的细分:
比照许可证