我发布于堆栈溢出并被告知这里可能更合适。
我无法理解多播地址的工作原理。
首先,如果我有 N 个客户端或对等点在不同的网络上工作,他们都订阅同一个多播组,并且该组允许任何源发送消息,那么这些对等点/主机都可以通过该组相互通信吗?(听起来像黑魔法!)
其次,我听说 IANA 控制/监管多播地址。那么,您是否必须为您的项目/公司向 IANA 申请/请求一个特定的多播地址?这是如何运作的?我错了吗?您能为我解释一下多播网络吗?
非常感谢!
答案1
是的,您的理解在某种程度上是正确的。理论上,它的工作原理是这样的:您的应用程序绑定到多播地址,操作系统获取该地址并将计算机订阅到多播组中。当其他计算机向该地址发送数据包时,它们会到达您的计算机,直到所有应用程序都从该地址解除绑定,并且操作系统将计算机从多播组中删除。
魔法是组播管理协议和私有信息协议IGMP 用于操作系统和最近的路由器之间,它允许操作系统告诉路由器它正在进入或离开多播组,并且它有兴趣接收该地址的数据包。PIM 用于路由器之间,以发现和交换多播组数据,并在传输发往该组的数据包时查找并到达多播组的所有订阅者。
IANA 负责管理多播地址(以及互联网上的几乎所有其他内容)。如果您想在互联网上使用多播,您需要分配多播地址,就像分配单播地址一样:
如果你想在本地网络中使用多播,而不路由到外部互联网,那么你可以在管理上定义私有使用范围,定义在RFC 2365。地址范围是239.192.0.0/14。
答案2
多播的工作原理和您想象的一样,只是网络上的所有交换机都必须“了解”客户端想要什么。这意味着它只适用于私有网络,并且您不需要涉及 IANA。这也意味着您需要设置交换机以使多播正常工作;如果您只有一个交换机或一个交换机堆栈,这通常相当容易。如果您有多个堆栈,尤其是如果您有不同的品牌,这可能会变得非常复杂。