一种支持多播的家庭网关的设计与实现

来源 :教育科学博览 | 被引量 : 0次 | 上传用户:mythology_leonie
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要: 现代的家庭网关的需求,除了基本上网功能,还要求具备播放IPTV等。这促成普通的家庭网关扩展成多播路由。通过简单地架设IGMP代理的方式实现了支持多播的家庭网关,并且在二层为了防止泛洪,实现了嗅探snooping功能。本文在最后给出了实验架构与测试的结果。
  关键词: 家庭网关;多播;IGMP代理;泛洪;嗅探
  中图分类号:TP393 文献标识码:A
  0引言
  Internet群组管理协议,IGMP是IPv4协议栈中用来向相邻组播路由器报告群组关系的协议。IGMPv3增加了源地址过滤功能,也就是对指定源地址,或者对所有除了指定源地址才可以发送到特定的组播地址。组播路由协议可以通过这些信息来避免转发组播包到一些没有对组播数包感兴趣的接收端口的网络中。
  IGMP snooping用来监控主机与组播路由器之间的IGMP流量。二层交换机用snooping学习到的信息来转发IGMP流量到连接有对这些流量感兴趣的接收器的接口上。
  本文通过学习文献[1-5],给出了带有snooping功能的多播路由的IGMP代理的实现方案和实验结果。
  1 IGMP介绍
  IGMPv1[1]主要基于查询和响应机制来完成对组播成员的管理。过程如下:
  1. 主机主动发送IGMP成员关系报告报文申明加入,不必等待IGMP查询报文;
  2. 多播路由器定期发送IGMP查询报文;
  3. 在收到查询报文后,主机会发送各自的群组成员报告;
  4. 经过以上查询和响应过程,组播路由器就知道本网段有哪些群组的组播成员,就会转发发往这些组的组播数据。
  但是,IGMPv1没有专门定义离开组播组的报文。当运行IGMPv1的主机离开某组播组时,将不会向其要离开的组播组发送报告报文。当网段中不再存在该组播组的成员后,IGMP路由器将收不到任何发往该组播组的报告报文,于是IGMP路由器在一段时间之后便删除该组播组所对应的组播转发项。这就有后来的IGMPv2[2]。
  与IGMPv1相比,IGMPv2增加了离开组机制。在IGMPv1中,主机离开组播组时不会向组播路由器发出任何通知,导致组播路由器只能依靠组播组成员查询的响应超时来获知组播组成员的离开。而在IGMPv2中,当一个主机离开某组播组时:
  (1)该主机向本地网段内的所有组播路由器发送离开组报文;
  (2)当发送查询报文的路由器收到该报文后,向该主机所声明要离开的那个组播组发送特定组查询报文;
  (3)如果该网段内还有该组播组的其它成员,则这些成员在收到特定组查询报文后,会在该报文中所设定的最大响应时间内发送成员关系报告报文;
  (4)如果在最大响应时间内收到了该组播组其它成员发送的成员关系报告报文,组播路由器就会继续维护该组播组的成员关系;否则,组播路由器将认为该网段内已无该组播组的成员,于是不再维护这个组播组的成员关系。
  IGMPv3[3]在兼容和继承IGMPv1和IGMPv2的基础上,进一步增强了主机的控制能力,并增强了查询和报告报文的功能。
  1. 主机控制能力的增强
  IGMPv3增加了针对组播源的过滤模式,使主机在加入某组播组G的同时,能够明确要求接收或拒绝来自某特定组播源S的组播信息。当主机加入组播组时:
  INCLUDE:若要求只接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为INCLUDE Sources(S1,S2,……);
  EXCLUDE:若拒绝接收来自指定组播源如S1、S2、……的组播信息,则其报告报文中可以标记为EXCLUDE Sources(S1,S2,……)。
  2. 查询和报告报文功能的增强
  (1)携带源地址的查询报文
  IGMPv3不仅支持IGMPv1的普遍组查询和IGMPv2的特定组查询,而且还增加了对特定源组查询的支持。
  (2)包含多组记录的报告报文
  IGMPv3报告报文的目的地址为224.0.0.22,可以携带一个或多个组记录。在每个组记录中,包含有组播组地址和组播源地址列表。组记录可以分为如下六种类型:IS_IN、IS_EX、TO_IN、TO_EX、ALLOW和BLOCK。各种类型含义及转换关系请参阅文献[3]。
  2 IGMP Proxy与snooping原理
  2.1 IGMP Proxy
  代理主机转发成员关系报告报文和响应查询报告,如加入,离开特定的群组。
  概念上有一个上行接口和多个下行接口,如图1
  所示:
  Proxy除了维护所有LAN口IGMP客户端和转发Join/Leave包外,还需要维护多播路由,以便多播包通过多播路由器。
  2.2 IGMP Snooping
  一般默认情况下,二层的Lan口Switch会广播多播包,如图2,也就是通常说的flood。
  Snoop就是建立了端口与群组之间的映射关系,也就是通过学习建立端口与组播MAC地址之间的映射,从而仅仅需要向连接有该群组主机的端口转发数据包。如图3,仅需向Host A和Host B的端口转发数据,就防止了flood。
  3 IGMP Proxy与Snooping的实现
  3.1 IGMP在系统中的位置与启动
  系统在图形用户接口GUI 上有两处配置项:
  1. WAN配置页面上对应是否启动IGMP,可以看成是总开关;
  2. 在高级-〉多播页面上,还设定有是否开启proxy与snooping,如图4所示。   配置在提交页面时生效。
  3.2. IGMP Proxy的实现
  IGMP proxy实现为一个守护进程,用来处理来自Lan口的IGMP的报文,并且向Wan口汇报Lan口IGMP信息。事实上,proxy还有2.1中提到的另一个作用:维护组播路由来决定是否转发Wan口来的多播数据流到Lan口。Proxy的流程图5如下所示,
  如图5所示,在守护进程进入主循环前,做一些登记pid、初始化多播路由、计时器及设置Wan口和Lan口的多播参数。最后进入消息处理主循环igmpv3_accept。消息处理函数igmpv3_accept进一步分解的流程图如图6所示,
  从图6中看出对群组成员报告的消息处理中,Proxy完成了两项重要工作:向Wan口方向汇报了成员关系;添加了多播路由给内核使用。
  除了用户层的守护进程,还需要kernel层的支持,图7是kernel层中IGMP报文处理流程图,
  3.3. IGMP Snoop的实现
  Snoop作为实现IGMP的一个新增功能:由用户态的配置与核心态的包处理和多播群组的维护构成。
  配置部分包括:a)Enable 还是disable Snoop;
  b)增加或删除静态组播群组。前者通过proc文件系统来决定是否使能IGMP Snoop;后者通过Ioctl来设定群组到kernel中,因为snoop工作在核心态。
  当kernel从LAN口收到IGMP报文,就会解析并记录下收到报文的端口,并维护多播组与端口的映射关系。
  当多播组要转发给LAN口时,就通过Snoop模块来按照多播组和端口的映射关系,转发给合适的LAN口。
  4 实验结果与分析
  4.1 环境搭建
  实验中,我们搭建了图8所示的简单拓扑图,图中,群组中仅有两个成员,一个作为IPTV的服务器端,另一个作为客户端来播放网路视频流。
  4.2 测试步骤与实验结果
  4.2.1 测试步骤
  1.在PC2上用VLC media player在向导的帮助下运行多播服务器,播放视频。
  2.在PC1上用VLC media player作为客户端,播放网络视频流。
  注意事项:上面步骤中,两者的多播地址设置必须一致,而且是D类非保留IP,如228.1.2.3。
  4.2.2 测试结果
  在PC1上能顺利的播放PC2上播放的视频,说明多播路由成功实现。图9是关闭客户端leave包截图:
  5 结论
  通过在一般路由器上添加IGMP proxy成功地实现了组播路由器。这对于研究和学习IGMP协议有重要的实践意义,也为将IGMP协议实现在其他类似设备上提供了指导方向。
  参考文献(References)
  [1] S.E. Deering,http://www.cse.ohio-state.edu/cgi-bin/ rfc/rfc1112.html
  [2] W. Fenner,http://www.cse.ohio-state.edu/cgi-bin/rfc /rfc2236.html
  [3] B. Cain, S. Deering, I. Kouvelas, B. Fenner, A. Thyagarajan, http://www.cse.ohio-state.edu/cgi-bin/rfc/ rfc3376.html
  [4]Douglas E.Comer, 用TCP/IP进行网际互联 第一卷[M]. 电子工业出版社,2001,5 (第一版) : 221~243.
  [5] Douglas E.Comer, 用TCP/IP进行网际互联 第二卷[M]. 电子工业出版社,2001,4 (第一版) : 119~137.
  作者简介
  束国伟(1981-),男,江苏盐城人,本科,助教,无锡南洋职业技术学院信息系,研究方向为软件技术、信息安全;
  苏亚娟(1978-),女,青海西宁人,硕士,讲师,无锡南洋职业技术学院信息系,研究方向为网络与信息安全、嵌入式设备。
其他文献
摘要: 伴随着社会的高速发展,基础教育和其他领域一样,取得了辉煌的成绩。化学课堂教学随着新教材的出现、现代教育理念的形成、教育功能的改变也在发生着变化。理论性知识作为高中化学知识的精髓,是整个化学知识的基础,是教学的重点,也是教学的难点。本文着重从新课标下化学课堂中的理论知识方面进行探析,探索、实践并总结出了新教材中化学概念、化学原理和化学规律教学的不同方式和多种策略。  关键词: 新教材;理论知
期刊
摘要: 烹饪过程是指将原料加工烹制成色、香、味、形、质俱佳的食物,又能使食物易于人体消化吸收,达到合理营养,保障食用者身体健康,满足其在饮食方面物质和精神的享受过程。本文介绍了烹饪过程中食物营养成分的保护做法,详细介绍了做米饭等食品烹饪中防止营养素的丢失的具体做法,对指导改进烹饪过程食物营养保护有一定的指导意义。  关键词: 烹饪过程 食物营养成分 保护措施  0 引言  一般来说,食物中营养是被
期刊
后勤士官队伍是我军士官队伍的重要组成部分,是后勤保障的骨干力量。全面建设现代后勤,适应士官制度改革发展,建设和培养一支规模适度、结构合理、素质优良、创新能力较强的后勤士官队伍,迫切需要在弄清当前后勤士官培训的现状、问题的基础上,研究提出加强后勤士官培训的对策。  一、后勤士官培训的现状  我军士官培训是随着我军士官制度的建立而建立,随着士官制度改革而发展,随着士官制度改革深入而逐步完善的一种教育形
期刊
目的分析深圳市免费孕前优生健康检查育龄女性的TORCH筛查结果,以期指导科学备孕。方法对2013年1月至2019年12月期间参加深圳市免费孕前优生健康检查的330 115例育龄女性的TORCH筛查结果进行横断面研究,通过χ2检验分析TORCH筛查结果在不同年份、不同行政区域以及不同人口学特征育龄女性间的差异。结果深圳市育龄女性风疹病毒(rubella virus,RV)-IgG、巨细胞病毒(cyt
摘要: 大唐湘潭发电有限责任公司二期2*600MW汽轮发电机组使用双流环式密封瓦,在本次#4机大修中对该瓦进行更换,本文主要探讨双流环密封瓦加工的工艺方法。  关键词: 双流环;密封瓦;加工;工艺  中图法分类号:TK 文献标识码:A  一、基本情况  大唐湘潭发电有限责任公司二期2*600MW机组系国产超临界汽轮发电机组,其发电机为上海汽轮发电机有限公司引进西门子公司技术制造的QFSN-600-
期刊
随着科技的发展,国内中波广播发射基本实现了全固态化,取代了原来的电子管发射机,但全固态机的防雷能力远不及电子管发射机。因此,防雷击仍是发射台必须考虑的重点问题。  一.雷电的特点及种类  雷电是一种自然界常见的放电现象,它具有极大的破坏力。在雷雨季节,地面上的空气受热上升,空气中的水蒸气到高空遇冷凝结成小水滴,这种浮悬的水滴逐渐聚集形成了雷云,水滴在分裂过程中所形成的小水滴带负电,其余的大水滴带正
期刊
脉宽调制(Pulse-Duration Modulation,PDM)发射机与乙类屏调机比较,脉宽调制机更具有高效率、高质量、高稳定、数字化、固态化、自动化等优点。脉宽调制机与乙类屏调机一样都属于屏调机。其调制原理没有原则性的区别,两者的区别仅在于调制器。乙类屏调机的调制器是用工作于乙类(甲乙类)的电子管推挽功放将音频信号放大到所需的功率电平,然后通过调幅变压器、调幅阻流圈将其叠加到高末级功放的屏
期刊
目的研究多瘤促活化因子3(PEA3)在高氧诱导的Ⅱ型肺泡上皮细胞(AEC Ⅱ)损伤中的作用及其机制。方法体外培养AEC Ⅱ,分为高氧组和常氧组。给予高氧或空气后24 h、48 h及72 h,收取各组细胞,选取最佳造模时间为48 h。将AEC Ⅱ分3大组:空白组、阴性对照组(转染空载)、过表达质粒组(转染PEA3),每大组均分为高氧亚组和常氧亚组。给予高氧或空气后48 h,收取各组细胞。检测活性氧(