首页 > 编程知识 正文

组播机制,组播通信原理

时间:2023-05-04 15:03:49 阅读:173423 作者:3416

为什么要使用组播:

当网卡从网络接收到与连接目标物理地址对应的所有位都为1的数据报时,网卡接收该消息并将其传递给驱动程序。 网卡的这种工作模式称为广播模式,网卡的默认工作模式包括直接模式和广播模式。 用户数据协议(UDP )还利用这一特性将广播包发送到多个目的地地址。 广播数据从工作站发送。 如果将数据包的目标物理地址对应的所有位都设置为1,则局域网中的所有工作站NIC都会接收该消息并将其发送给驱动程序。 此特性适用于无连接协议,因为局域网(LAN )上的所有机器都可以获取和处理广播消息。 使用广播消息的不利之处在于,所有的机器都必须处理该消息。 例如,如果用户在局域网上广播消息,则每台计算机上的网卡都会接收该消息并将其上载到网络堆栈。 然后,堆栈将该消息的目标端口号与在该主机上运行的所有网络APP应用程序中指定的端口号依次进行比较,查看它们是否相等,并确定哪个网络APP应用程序将接收该消息通常,这个局域网上的很多机器对这个消息不感兴趣,像草一样被抛弃了。 但是,每台机器都需要花一些时间在驱动程序上处理这个数据包,并确定APP应用程序是否感兴趣。 因此,高广播通信流会使LAN上的机器陷入困境,因为每个工作站都会检查此数据包。

有些特殊的物理地址不能用作网卡的实际物理地址,但可以将网卡设置为不过滤从网络接收到的以这些物理地址中的一个或多个为目标的帧。 这些物理地址称为多播传输地址,网卡的这种工作模式称为多播传输模式。

“组播”也称为“组播”(multicast ),能够由其他多个合格主机同时接收从一个主机发送的包。 这个主机和合格的主机形成一个小组,他们小组内的通信是广播式的。 组播机制是通过将某个网络上的部分主机的网卡设定为组播转发工作模式,并指定不过滤以某个组播转发地址为目的地物理地址的数据帧, 使这些主机的驱动器能够同时接收以其多播转发地址为目的地物理地址的数据帧,但不能被其他主机的驱动器接收,这些主机在逻辑上形成“多播”组。 通过采用该技术,可以有效地减轻网络上“多播”组以外的主机对广播的负担。 发送到“多播”组的数据不会传输到驱动程序进行处理,从而避免资源浪费。 最初,我们设计该技术是为了弥补“广播”(Broadcasting )通信的不足。 组播有两种实现方式:

1 .将网卡设定为混合模式,过滤通过驱动器接收到的所有数据包,保留指定组播地址的数据包。

该方式效率低,适用于不支持组播模式的网卡。

2 .将网卡设置为多播模式。 网卡本身有组播过滤器,网卡本身可以判断进入的数据包是否属于组播数据。

组播过滤是由硬件完成的,所以很有效率。

网卡仅接收目的地地址是网卡自身的物理地址和多播地址(广播或多播的一种)的帧。 对于以太网,多播地址的最高有效字节的最低有效位为1 (01:003360003360003360003360003360003360003360000 )

对于IP多播,IP多播地址将转换为以太网多播地址,一个以太网多播地址可以支持多个IP多播地址。

因此,设备驱动程序或IP层必须过滤数据报,因为NIC可能会接收到主机不希望接收的多播数据帧。 如果网卡不能提供足够的多播数据帧过滤功能,则必须将网卡设置为“混合模式”,并检查主机是否需要驱动程序收到的数据帧。

这意味着多播的两种实现模式都需要驱动程序参与过滤。 但是,首先通过网卡进行过滤可以减少驱动程序的工作量。

多播地址(multicast address )是加入多播组的一组主机的标识符。 在以太网上,多播地址是一个48位标识符,用于命名在此网络上接收数据包的一组站点。 在IPv4中,历史上称为d类地址,是一种IP地址,范围在224.0.0.0到239.255.255.255之间。 D类地址用于多播。

广播地址是专门用于同时发送到网络上的所有工作站的地址。 在使用TCP/IP协议的网络中,主机标识段的所有host ID为1的IP地址或广播地址,广播的数据包将被传输到host ID段中涉及的所有计算机。 例如,10.1.1.0 (255.255.255.255 )网段的广播地址是10.1.1.255 (255是二进制的11111111 ) ),目的地地址是10.255.1.255

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。