组播管理

编程入门 行业动态 更新时间:2024-10-24 20:18:50

组播概述

在网络中,存在着三种发送报文的方式:单播、广播、组播。数据采用单播(Unicast)方式传输时,服务器会为每一个接收者单独传输一份信息,如果有多个接收者存在,网络上就会重复地传输多份相同内容的信息,这样将会大量占用网络资源。数据采用广播(Broadcast)方式传输时,系统会把信息一次性的传送给网络中的所有用户,不管他们是否需要,任何用户都会接收到广播来的信息。

当前,诸如视频会议和视频点播等单点发送、多点接收的多媒体业务正在成为信息传送的重要组成部分。在一点发送多点接收的前提下,单播方式适合用户较少的网络,而广播方式适合用户稠密的网络,当网络中需求某信息的用户量不确定时,单播和广播方式效率很低。这时组播(multicast)应运而生,它实现了网络中单点到多点的高效数据传送,能够节约大量网络带宽,降低网络负载。组播传输信息的方式如图所示。

组播的特点是:

服务对象不固定,通常是一对多的关系;

把服务对象看成一个组,发送端只需要发送一次数据到相关网络设备即可;

每个用户可以随时加入或退出组播组;

实时性要求较高,允许一定的丢帧现象发生。

组播地址

组播IP地址:

根据IANA(Internet Assigned Numbers Authority,因特网编号授权委员会)规定,组播报文的IP地址使用D类IP地址,组播IP地址范围是224.0.0.0~239.255.255.255。其中,几个特殊组播IP地址段的范围及说明如下:

组播MAC地址:

以太网传输单播IP报文的时候,目的MAC地址使用的是接收者的MAC地址。但是在传输组播报文时,传输目标不再是一个具体的接收者,而是一个成员不确定的组,所以需要使用组播MAC地址作为目的地址,组播MAC地址是一个逻辑的MAC地址。

IANA规定,组播MAC地址的高24bit位是以01-00-5E开头,低23bit为组播IP地址的低23bit,映射关系如图所示:

由于IP组播地址的高4bit是1110,标识了组播组,而低28bit中只有23bit被映射到组播MAC地址上,这样IP组播地址中就会有5bit没有使用,从而出现了32个IP组播地址映射到同一MAC地址上的结果。

组播地址表

交换机在转发组播数据时是根据组播地址表来进行的。由于组播数据不能跨越VLAN传输,因此组播地址表的第一部分是VLAN ID,当交换机收到组播数据包时,数据包只能在接收端口所在的VLAN内转发。组播地址表对应的出口端口不是一个,而是一组端口列表。转发数据时,交换机根据组播数据的目的组播地址查找组播地址表,如果在组播地址表中查不到相应的条目,则把该组播数据广播,即向接收端口所在VLAN内的所有端口上转发;如果能查找到对应的条目,则目的地址应该是一组端口列表,于是交换机把这个组播数据复制成多份,每份转发到一个端口,从而完成组播数据的交换。组播地址表一般格式如图所示。

IGMP侦听

网络中的主机通过发送IGMP(Internet Group Management Protocol,互联网组管理协议)报文向临近的路由器申请加入(或离开)组播组,当上层路由设备将组播数据转发下来后,交换机负责将组播数据转发给主机。IGMP侦听(IGMP Snooping)是组播约束机制,交换机用他来完成组播组的动态注册,运行IGMP侦听的交换机通过侦听和分析主机与组播路由器之间交互的IGMP报文来管理和控制组播组,从而可以有效抑制组播数据在网络中扩散。

IGMP侦听的工作过程

交换机侦听用户主机与路由器之间的交互IGMP报文,跟踪组播信息及其申请的端口。当交换机侦听到主机向路由器发出报告报文(IGMP Report)时,交换机便把该端口加入组播地址表中;当交换机侦听到主机发送的离开报文(IGMP Leave)时,路由器会发送该端口的特定组查询报文(Group-Specific Query),若还有其它主机需要该组播,则将回应报告报文,若路由器收不到任何主机的回应,交换机便把该端口从组播地址表中删除。路由器会定时发查询报文(IGMP Query),交换机收到查询报文后,如果在一定的时间段内没有收到主机的报告报文,便把该端口从组播表中删除。





以下内容来自:https://www.zhihu/question/49335649 车小胖的回答

网络分层的原则:每一层独立于其他层完成自己的工作,而不需要相互依赖,上下层之间通过标准接口来互相通信,简单易用又具有扩展性。

以太网位于数据链路层,它是一种多路访问网络,换句话说:一个广播帧发出去,这个广播域里任何一台主机都可以接收。如果以太网没有属于自己的地址,难道都靠广播的方式传播出去?比如有两台主机A与B,互相知道对方IP,如果没有MAC地址,它们之间的通信帧到达交换机(交换机属于二层设备),由于以太网头部没有MAC地址信息,交换机也只有从各个接口flooding 出去,结果就是这个广播域里的每台主机都会接收,由于网卡没有MAC地址,这些包会一直到达IP层,只有AB会接收,其它主机统统丢弃,这是对通信资源最大的浪费。

所以以太网必须有自己的MAC地址,以方便在数据链路层来标示自己的唯一存在。

一般以太网通信有这么几种方式: 

1)unicast

A与B通信,A(10.1.1.1)知道B的IP为 10.1.1.2 ,需要通过ARP Request 广播的方式发送出去,B是广播域里的一员,所以也会接收到ARP,于是以ARP Reply的方式告诉A自己的MAC地址,于是A就知道B的MAC地址,并缓存在 ARP table 里。于是A与B就可以互相通信了。


2)multicast

既然IP层有组播地址,比如 239.1.1.1,那二层也要有对应的MAC地址。这个MAC地址需要ARP吗?不需要!只需要计算就可以得到,计算方法如下:

01:00:5e + 组播IP低23位 = 01:00:5e:01:01:01


细心的童鞋一定会发现 224.1.1.1,225.1.1.1 …239.1.1.1 所对应的MAC 都为01:00:5e:01:01:01,这是历史原因造成的,因为申请组播MAC地址时,IANA只给了23位。


3)broadcast

IP层的广播地址为:255.255.255.255

以太网对应的MAC: FF:FF:FF:FF:FF:FF



一般链路层是多路访问的网络一定会有自己的标识符ID 或MAC地址,比如Frame Relay、ATM、Ethernet;而点对点通信,PPP、HDLC则不需要地址标识符。

另外第二层的 MAC地址,第三层的IP地址,第四层的Port Number提供了三次筛子(filter )的机会。

筛子(MAC地址)如果不是本机的MAC地址、也没有匹配到 组播MAC,也不是广播地址,则网卡拒绝接收;否则进入第二个筛子

筛子二(IP地址)依据Unicast / Multicast / Broadcast 做出判断

A Unicast 

A.1 匹配本地IP ,依据协议号提交给TCP/UDP,则进入第三个筛子

A.2 没有匹配,查询路由表,找到下一跳,发送出去


B Multicast

提交给已注册加入该multicast group 的进程


C Broadcast

提交给已注册接收broadcast 的进程


筛子三(Port号)依据Port Number 将数据提交给特定的进程



from:http://service.tp-link/detail_article_158.html

更多推荐

组播管理

本文发布于:2023-06-14 02:45:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1428614.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:组播

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!