Networking UDP多播体系结构注意事项

Networking UDP多播体系结构注意事项,networking,architecture,routing,multicast,Networking,Architecture,Routing,Multicast,我想知道以下面描述的方式设计一个类似于多播发布订阅的系统是否有缺点: 问题 大约有30个应用程序需要监听某些事件 有1台服务器正在通过网络接收事件[我们称之为PRODUCER] 30个应用程序可能对30个事件中的一个或多个感兴趣 解决方案 我们可以将每个主题分配给一个多播组(由多播IP范围内的IP定义) 对于制作人接收到的每个事件,它在相关频道/组上进行多播 订阅者订阅他们感兴趣的每个多播组/频道 我的问题是 与让每个订阅者监听所有事件并让制作者发送到单个通道相比,这种设计是否有任何开

我想知道以下面描述的方式设计一个类似于多播发布订阅的系统是否有缺点:

问题
  • 大约有30个应用程序需要监听某些事件
  • 有1台服务器正在通过网络接收事件[我们称之为PRODUCER]
  • 30个应用程序可能对30个事件中的一个或多个感兴趣
解决方案
  • 我们可以将每个主题分配给一个多播组(由多播IP范围内的IP定义)
  • 对于制作人接收到的每个事件,它在相关频道/组上进行多播
  • 订阅者订阅他们感兴趣的每个多播组/频道
我的问题是
  • 与让每个订阅者监听所有事件并让制作者发送到单个通道相比,这种设计是否有任何开销?换句话说,在多个通道上发送是否有缺点

  • 对于UDP多播,我的理解是组由IP地址(而不是端口)定义。那么,端口在指定组/端点时的相关性是什么


如果您打算跨网络进行多播,则需要启用多播路由(与单播路由不同)。此外,默认情况下,多播的TTL为1。或者多播路由器需要为您解决这个问题,或者您的多播源将需要为数据包提供更大的TTL。@RonMaupin是的,我知道,但感谢您的提及。@RonMaupin我主要关心的是在不同的多播组上发送相同数据包的开销,以及更清楚地了解组的组成-端口扮演什么角色?不。主机正在侦听多播组将接收和处理多播组的所有流量,就像它将接收和处理其单播IP地址的所有流量一样。应用程序是否正在侦听特定端口是另一个问题。应用程序告诉第4层它想要监听特定的协议和端口(例如UDP 5000)。IP地址上任何到该端口的流量都将发送到该应用程序。任何进入没有应用程序侦听的协议/端口的流量都将被丢弃,但主机浪费了资源来确定这一点。当第2层获得帧时,它会查看MAC地址(包括多播MAC地址)是否适用于它。它拒绝它,或者它剥离帧并将生成的数据包传递给第3层。在第三层,IP查看数据包是否是为它准备的。它拒绝它,或者剥离数据包并将生成的数据报传递到第4层协议。第4层协议查看数据报以查看目标端口。如果没有为该端口注册的应用程序,它将删除该端口,否则它将剥离layer-4头并将结果数据传递给应用程序。