欢迎来到天天文库
浏览记录
ID:5929841
大小:30.00 KB
页数:8页
时间:2017-12-29
《一种支持多播家庭网关设计和实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一种支持多播家庭网关设计和实现 摘要:现代的家庭网关的需求,除了基本上网功能,还要求具备播放IPTV等。这促成普通的家庭网关扩展成多播路由。通过简单地架设IGMP代理的方式实现了支持多播的家庭网关,并且在二层为了防止泛洪,实现了嗅探snooping功能。本文在最后给出了实验架构与测试的结果。关键词:家庭网关;多播;IGMP代理;泛洪;嗅探中图分类号:TP393文献标识码:A0引言Internet群组管理协议,IGMP是IPv4协议栈中用来向相邻组播路由器报告群组关系的协议。IGMPv3增加了源地址过滤功能,也就是对指定源地址,
2、或者对所有除了指定源地址才可以发送到特定的组播地址。组播路由协议可以通过这些信息来避免转发组播包到一些没有对组播数包感兴趣的接收端口的网络中。IGMPsnooping用来监控主机与组播路由器之间的IGMP流量。二层交换机用snooping学习到的信息来转发IGMP流量到连接有对这些流量感兴趣的接收器的接口上。本文通过学习文献[1-5],给出了带有snooping功能的多播路由的IGMP代理的实现方案和实验结果。1IGMP介绍8IGMPv1[1]主要基于查询和响应机制来完成对组播成员的管理。过程如下:1.主机主动发送IGMP成员关
3、系报告报文申明加入,不必等待IGMP查询报文;2.多播路由器定期发送IGMP查询报文;3.在收到查询报文后,主机会发送各自的群组成员报告;4.经过以上查询和响应过程,组播路由器就知道本网段有哪些群组的组播成员,就会转发发往这些组的组播数据。但是,IGMPv1没有专门定义离开组播组的报文。当运行IGMPv1的主机离开某组播组时,将不会向其要离开的组播组发送报告报文。当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP路由器在一段时间之后便删除该组播组所对应的组播转发项。这就有后来的IGM
4、Pv2[2]。与IGMPv1相比,IGMPv2增加了离开组机制。在IGMPv1中,主机离开组播组时不会向组播路由器发出任何通知,导致组播路由器只能依靠组播组成员查询的响应超时来获知组播组成员的离开。而在IGMPv2中,当一个主机离开某组播组时:(1)该主机向本地网段内的所有组播路由器发送离开组报文;8(2)当发送查询报文的路由器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询报文;(3)如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间内发送成员关系报告报文;(4)
5、如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,组播路由器就会继续维护该组播组的成员关系;否则,组播路由器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。IGMPv3[3]在兼容和继承IGMPv1和IGMPv2的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。1.主机控制能力的增强IGMPv3增加了针对组播源的过滤模式,使主机在加入某组播组G的同时,能够明确要求接收或拒绝来自某特定组播源S的组播信息。当主机加入组播组时:INCLUDE:若要求只接收来自指定组播源如S1、S2
6、、……的组播信息,则其报告报文中可以标记为INCLUDESources(S1,S2,……);EXCLUDE:若拒绝接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为EXCLUDESources(S1,S2,……)。82.查询和报告报文功能的增强(1)携带源地址的查询报文IGMPv3不仅支持IGMPv1的普遍组查询和IGMPv2的特定组查询,而且还增加了对特定源组查询的支持。(2)包含多组记录的报告报文IGMPv3报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组
7、地址和组播源地址列表。组记录可以分为如下六种类型:IS_IN、IS_EX、TO_IN、TO_EX、ALLOW和BLOCK。各种类型含义及转换关系请参阅文献[3]。2IGMPProxy与snooping原理2.1IGMPProxy代理主机转发成员关系报告报文和响应查询报告,如加入,离开特定的群组。概念上有一个上行接口和多个下行接口,如图1所示:Proxy除了维护所有LAN口IGMP客户端和转发Join/Leave包外,还需要维护多播路由,以便多播包通过多播路由器。2.2IGMPSnooping一般默认情况下,二层的Lan口Swit
8、ch会广播多播包,如图2,也就是通常说的flood。8Snoop就是建立了端口与群组之间的映射关系,也就是通过学习建立端口与组播MAC地址之间的映射,从而仅仅需要向连接有该群组主机的端口转发数据包。如图3,仅需向HostA和HostB的端口转发数据,就防止了fl
此文档下载收益归作者所有