1.2 以太网基本概念及原理(12)
BA000007 以太网技术 ISSUE1.0
第6章 二层组播
第6章 二层组播
6.1 二层组播基本概念
在前面以太网交换机的章节中,我们曾提到二层组播的概念。在本章中,我们详细介绍一下二层组播的一些基础概念。
至于为什么采用组播的形式发送数据而不采用广播的形式,其好处不言而喻,我们这里不赘述。需要说明一点的是,这里仅仅提到二层组播,还有三层组播,即所谓的IP组播。所谓二层组播,即数据报的转发是面向二层的,根据组播MAC地址来决定数据报的转发方向,而三层组播,则根据三层组播地址,即组播IP地址来进行数据报的转发。
6.1.1 组播MAC地址
在上面我们提到了组播MAC地址的概念,所谓组播MAC地址,是一类逻辑的MAC地址,该MAC地址代表一个组播组,所有属于该组的成员都接收以该组对应的组播MAC地址为目的地址的数据帧。
注意的是,组播MAC地址是一个逻辑的MAC地址,也就是说,在网络上,没有一个设备的MAC地址是一个组播MAC地址。组播MAC地址跟单播MAC地址(物理MAC地址)的区别是,组播MAC地址六个字节中,最高字节(第六字节)的最低位为1,而单播MAC地址则为0,如下图所示:
组播MAC地址,第六个字节的第一位为1xxxxx1xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
xxxxx0xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx单播MAC地址,第六个字节的第一位为0图6-12 MAC地址
为了更进一步了解组播的概念,我们先从MAC层的数据帧接收过程说起。
33
BA000007 以太网技术 ISSUE1.0
第6章 二层组播
6.1.2 MAC层数据帧的接收
在网卡的内部保留一张接收地址列表(可以理解为一个可读写的随机存储器),其中至少有两个MAC地址,即网卡的物理MAC地址和全1的广播MAC地址。每当计算机想接收一个多播数据,也就是说要加入一个多播组,那么上层软件会给网络层一个通知,网络层做完自己的处理后,也会发一个通知给数据链路层,于是,数据链路层根据网络层想加入的组播组的组地址(一般是一个组播的IP地址),根据一定的规则影射为一个组播的MAC地址,然后把该MAC地址加入接收地址列表。
每当数据链路层接收到一个数据帧的时候,就提取该数据帧的帧头,找出目的MAC地址,跟接收地址列表中的地址项目比较,在比较完整个接收地址列表之前,如果遇到一个地址,跟该数据帧的目的MAC地址是相同的,于是停止比较,接收该数据帧,并把该数据帧放到上层协议对应的接收队列中;如果比较完整个接收列表也没有找到一个匹配的MAC地址,则丢弃该数据帧。 现假设接收到的数据帧是发给自己的单播数据帧,于是该数据帧的目的MAC地址就是自己的硬件地址。数据链路层接收到该数据帧,跟接收列表中的地址比较,第一次比较就会通过,因为接收地址列表中的第一个MAC地址就是自己的硬件地址。所以在任何情况下,发给自己的数据帧一定能接收下来; 假设接收到的数据帧是一个广播数据帧,则在比较的时候,最后一项是匹配的,因为接收地址列表中肯定包含一个广播的MAC地址,这样就保证了任何广播数据报都会被正确接收;
假设上层软件想接收组播组G的数据,经过一番影射到数据链路层之后,数据链路层会在自己的接收数据列表中添加一项组播组G对应的MAC地址,假设为MAC_G,当计算机接收到一个数据帧,该数据帧的目的地址为MAC_G的时候,该数据帧会被接收并传递到上层,因为接收列表中有一项MAC_G记录。
6.1.3 组播转发表
在前面交换机的转发方式课程中讲述到,交换机在转发组播数据包的时候,也是根据一个转发表来进行的,但跟单播转发表不同的是,该组播转发表对应的出口不是一个元素,而是一组元素,即一个出口列表。在转发数据的时候,交换机根据组播数据帧的目的组播地址查找组播转发表,如果在组播转发表中查不到相应的转发项,则把该组播数据帧当做广播数据帧处理,向所有端口上转发该数据帧(如果实现了VLAN,则仅仅向接收端口所属同一个VLAN的端口上转发);如果能查找到一个结果,则结果肯定是一个接口列表,于是,交换机把这个组播数据报复制成许多份,每份提交到一个出接口,从而完成数据的交换。
34
BA000007 以太网技术 ISSUE1.0
第6章 二层组播
需要注意的是,这个组播转发项不象单播那样,是通过学习的方式获得的(在处理单播数据的时候,交换机每转发一个数据帧,会进行相应的学习过程,学习到一个单播转发项),而是通过一些二层的组播协议获得的,这些流行的组播协议有IGMP窥探,GMRP等。下面部分详细解释每一种二层组播协议。
6.2 二层组播协议
上面我们提到,用于转发组播数据帧的组播转发项不是通过学习获得的,而是通过一些其他的组播协议,比如IGMP窥探,GMRP等协议获得的。至于为什么不能通过学习获得,是因为学习过程是分析一个数据帧的源地址,但组播地址在任何情况下不可能出现在源地址的位置(因为组播MAC地址是一个逻辑的MAC地址,网络上没有一个终端的MAC地址是一个组播MAC地址)。
下面我们分析二层组播协议,这些协议在构建组播网络的时候,有不可替代的重要地位。尤其是将来的流媒体应用会很广泛,在这种情况下,二层的组播将是必然的要求。
6.2.1 IGMP协议
在讲述IGMP窥探之前,先看一下IGMP协议,理解了IGMP协议,IGMP窥探就很容易了。
一般情况下,组播数据是从路由器的上游流下来的,而组播的接收端一般位于路由器的下游,典型的情况是,路由器通过一个以太网口连接企业网,另外通过一个串口连接INTERNET。组播数据源,比如流媒体服务器一般位于INTERNET上,组播数据流通过路由器到达企业网上的数据接收端。这种情况下,流媒体服务器是长时间工作的,也就是说,一天24小时,一周7天都在不停的发送媒体流信息,相当于电视频道。但企业网络中的数据接收端却不是这样,只有有限的时间接收端才接收数据,其他时间都是不接收数据的。这样,在企业网上没有数据接收端的时候,如果路由器也把大量的媒体流信息发到企业网内部,必然会浪费大量的资源,理想的情况是,如果企业网上没有数据接收端,则路由器就不转发媒体流,但如果只要有一个接收端,路由器就必须把媒体流引入企业网。这样必须有一种机制来保证路由器对企网上的数据接收端有一个清楚的了解,什么时候网络上有数据接收端,什么时候没有数据接收端,这种机制就是IGMP协议。
从上面的分析中,我们可以看出IGMP协议是数据接收端和路由器之间的交互协议,数据接收端使用该协议来通知路由器,自己是否想接收组播数据流。如果想接收的话,接收哪个组播组的数据流。
35
BA000007 以太网技术 ISSUE1.0
第6章 二层组播
一般情况下,存在两种类型的IGMP消息(IGMP V1):组成员报告和组成员查询,其中组成员报告消息由计算机发出,用来告诉路由器,自己想加入某个组播组,而组成员查询消息则由路由器发出,用来查询网络上是否存在相应组的成员。一个指导性的原则是,只要网络上有组播组的数据接收端,不管该接收端的数量是多少,路由器必须把该组播组的数据转发到网络上。 IGMP消息也是通过组播地址发出的,在IGMP加入消息中,该组播地址(IGMP消息的目的地址)就是该计算机想加入的组播组的组地址。比如,计算机想加入224.0.0.2这个组播组,则该计算机发出的IGMP加入消息的目的IP地址就是 …… 此处隐藏:2855字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




