如果您不能或不想将路由器配置为转发多播流量或以其他方式处理第三方协议,则需要通过单播链路传输多播流量。 UFTP能够通过使用 UFTP 代理服务器进行多播隧道。
从手册页:
代理可以以以下三种模式之一运行:服务器代理、客户端代理或响应代理。
服务器代理通常位于服务器本地,并充当多播隧道的上游端。它侦听公共多播地址(以及指定的私有多播地址)并将下游数据包转发到下游的特定地址。上游数据包被转发回公告的来源。
客户端代理通常位于一个或多个客户端的本地,并形成多播隧道的下游端。它从一个或多个服务器代理接收单播数据,并将下游流量转发到数据包标头中指定的多播地址。来自客户端的上游流量被收集并转发回公告来自的地方作为聚合响应。
下面是一个典型配置图,其中服务器向本地网络发送多播消息,一个或多个服务器代理将消息单播到相应的客户端代理,然后再将消息多播到其本地网络。
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
x Network A x
x ---------- x
x | Server | x
x ---------- x
x | x
x | multicast x
x | x
x |----------------------------------------- x
x | | | x
x v v v x
x ---------------- ---------------- ---------- x
x | Server Proxy | | Server Proxy | | Client | x
x ---------------- ---------------- ---------- x
x | | x
x | unicast | unicast x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
| |
| ------------
| |
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
x | Network B x x | Network C x
x v x x v x
x ---------------- x x ---------------- x
x | Client Proxy | x x | Client Proxy | x
x ---------------- x x ---------------- x
x | x x | x
x | multicast x x | multicast x
x | x x | x
x |------------- x x |------------ x
x | | x x | | x
x v v x x v v x
x ---------- ---------- x x ---------- ---------- x
x | Client | | Client | x x | Client | | Client | x
x ---------- ---------- x x ---------- ---------- x
x x x x
xxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxx
这些代理也能够在 NATed 环境中工作:
如果客户端代理位于防火墙后面,则代理可以向上游代理发送心跳消息,以在防火墙中形成一个针孔,上游服务器代理可以连接到该针孔。如果客户端代理也进行了 NAT,上游服务器代理可能不知道客户端代理的 IP/端口,因此可以将服务器代理配置为等待心跳消息,并使用心跳来自的 IP/端口作为其下游地址。如果服务器代理也在防火墙或 NAT 之后,则可以在第一个服务器代理和客户端代理之间插入具有可公开访问 IP 的计算机上的第二个服务器代理。在这种情况下,第一个服务器代理设置为使用第二个作为其下游地址,
我是这个软件的作者,所以如果您需要有关如何设置它的指示,请通过 UFTP 页面底部的链接给我发送电子邮件,我们会看看我们能做什么。
更新:
在 PGM 的情况下,它可以配置为在应用层(即在 UDP 之上)或在传输层(即直接在 IP 之上)运行。如果 PGM 在传输层运行,那么您可能需要担心路由器对其有特殊支持。相反,UFTP 严格运行在应用层。