我的服务器和客户端软件都在 Linux 上运行。
服务器广播多播,客户端监听多播。
我的客户必须迁移到另一个站点,
但不幸的是两个站点之间不允许进行多播 :-(
如何在两个站点之间传达多播?
- 通过 TCP 还是 UDP?
- 您推荐什么工具?
- 延迟如何?
我收到了关于思科配置(GRE),
但其中一个网络团队不想监控/维护它,
=> 当传输中断时,支持团队将花费大量时间来了解和修复。
=> 那么,GRE 的最佳替代品是什么?
有没有基于的解决方案Linux 内核功能
或者网卡功能?(低延迟很重要)
欢迎提供使用示例 :-)
现在:服务器和客户端位于同一站点
未来:服务器和客户端,分别位于不同的站点
多播频道:225.1.0.1:6666
相关问题
- UPD 多播(D 类)= 如何通过互联网进行路由?
- Linux 中的 IGMP/多播路由
- 跨子网多播并回复
- 多个 GRE NAT 路由器和“多个 VPN 限制”链接
- ...
答案1
我不确定您是否理解了问题中的图形,但据我了解,您需要通过 TCP 转发多播数据包?面向工具的解决方案可能涉及socat
:
例如多播频道是224.1.0.1:6666。
在服务器主机(IP=SS.SS.SS.SS)上:
$socat -v UDP4-RECVFROM:6666,ip-add-membership=224.1.0.1:CC.CC.CC.CC,fork TCP:destination.hostname:4444
在客户端主机(IP=CC.CC.CC.CC)上:
$socat -v TCP-LISTEN:4444,fork UDP4-DATAGRAM:224.1.0.1:6666,range=SS.SS.SS.SS/24
我让你查看如何用socat
手册调整参数。一旦你知道了 MULTICAST GROUP 和网络接口的 IP 地址,一切都会变得非常简单。:-)
答案2
一些路由器允许多播流量通过 IP 网络链路进行隧道传输。隧道的两端都必须进行相应的配置。思科尤其支持通过 GRE 链路进行多播流量隧道传输。这里有一篇关于如何实现这一点的文章思科
答案3
这是可能的,但是使用像 TCP 这样的流协议并不是一个好主意,因为会出现多次拥塞(一次来自 TCP,另一次来自试图以智能方式利用 UDP 的程序)[1]。
您可以选择隧道解决方案,例如 OpenVPN+TAP(使用 UDP 传输)或 GRE,甚至 L2TP 之类的东西。[我想知道 IPIP/IP6IP6 隧道是否也能正常工作。]
答案4
Steve Miller 发表了一篇好文章教程您的问题。希望这能帮到您!