组网基础之深入解析二层组播
转发项不是通过学习获得的,而是通过一些其他的组播协议,比如IGMP窥探,GMRP等协议获得的。至于为什么不能通过学习获得,是因为学习过程是分析一个数据帧的源地址,但组播地址在任何情况下不可能出现在源地址的位置(因为组播MAC地址是一个逻辑的MAC地址,网络上没有一个终端的MAC地址是一个组播MAC地址)。
下面我们分析二层组播协议,这些协议在构建组播网络的时候,有不可替代的重要地位。尤其是将来的流媒体应用会很广泛,在这种情况下,二层的组播将是必然的要求。 IGMP协议 在讲述IGMP窥探之前,先看一下IGMP协议,理解了IGMP协议,IGMP窥探就很容易了。 一般情况下,组播数据是从路由器的上游流下来的,而组播的接收端一般位于路由器的下游,典型的情况是,路由器通过一个以太网口连接企业网,另外通过一个串口连接Internet。组播数据源,比如流媒体服务器一般位于Internet上,组播数据流通过路由器到达企业网上的数据接收端。这种情况下,流媒体服务器是长时间工作的,也就是说,一天24小时,一周7天都在不停的发送媒体流信息,相当于电视频道。但企业网络中的数据接收端却不是这样,只有有限的时间接收端才接收数据,其他时间都是不接收数据的。这样,在企业网上没有数据接收端的时候,如果路由器也把大量的媒体流信息发到企业网内部,必然会浪费大量的资源,理想的情况是,如果企业网上没有数据接收端,则路由器就不转发媒体流,但如果只要有一个接收端,路由器就必须把媒体流引入企业网。这样必须有一种机制来保证路由器对企网上的数据接收端有一个清楚的了解,什么时候网络上有数据接收端,什么时候没有数据接收端,这种机制就是IGMP协议。 从上面的分析中,我们可以看出IGMP协议是数据接收端和路由器之间的交互协议,数据接收端使用该协议来通知路由器,自己是否想接收组播数据流。如果想接收的话,接收哪个组播组的数据流。 一般情况下,存在两种类型的IGMP消息:组成员报告和组成员查询,其中组成员报告消息由计算机发出,用来告诉路由器,自己想加入某个组播组,而组成员查询消息则由路由器发出,用来查询网络上是否存在相应组的成员。一个指导性的原则是,只要网络上有组播组的数据接收端,不管该接收端的数量是多少,路由器必须把该组播组的数据转发到网络上。 IGMP消息也是通过组播地址发出的,在IGMP加入消息中,该组播地址(IGMP消息的目的地址)就是该计算机想加入的组播组的组地址。比如,计算机想加入224.0.0.2这个组播组,则该计算机发出的IGMP加入消息的目的IP地址就是224.0.0.2。这样当路由器接收到该组播消息后,就知道网络上有一个主机,该主机想接收到组播组224.0.0.2的数据,于是,每当从上游接收到目的地址是该组地址的数据的时候,就把该数据包向企业网上转发。 还有一类消息就是组播组成员查询消息。在IGMP协议第一版中,没有规定主机的离开消息,即如果一个主机不想接收某一组播组的数据了,它也不会通过某种消息通知路由器,而是静悄悄的离开该组播组。这样如果路由器不采取某种措施来掌握网络上组播组接收端的数目情况,就会产生问题,假设网络上所有的主机都不想接收组播数据了,根据IGMP协议第一版,这些主机不会通知路由器,而是不做任何处理。这样路由器不知道这些原来接收组播数据的主机现在已经不接收数据了,而且还以为网络上有一大批的接收端,于是仍源源不断的发送组播数据,这样必然浪费带宽。而引入了组成员查询消息后,路由器可以每隔一段时间发出该消息,用来查询网络上还有没有主机在接收组播数据。注意的是,该查询消息跟成员加入消息一样,采用的目的IP地址也是查询的组的组播IP地址。假设路由器想查询245.2.2.1这样一个组播组是否还有成员,发出的查询消息的目的IP地 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |