(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf_第1页
(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf_第2页
(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf_第3页
(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf_第4页
(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf_第5页
已阅读5页,还剩66页未读 继续免费阅读

(计算机应用技术专业论文)igmp代理协议的设计与实现.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

丕些盘生塑鲎焦造塞揎熹 g m p 代理协议的设计和实现 摘要 随着宽带网络设施的日益完善,许多高带宽的多播应用层出不穷。传统的防火 墙由于缺乏对多播数据转发的支持,成为了多播应用中的阻碍。因此迫切需要一种 能够按需转发多播数据流、提供过滤控制的解决方案。 本文根据防火墙所处网络位置的拓扑特征提出了基于i g m pp r o x y 协议和多 播规则相结合方案。结合千兆防火墙的硬件特点,采取了三层软件架构,每个层面 完成最适合本层硬件的功能。在i g m pp r o x y 协议的设计中采用了基于事件驱动 的机制,将网络行为抽象成事件,再通过事件触发有限状态机的执行,不但更加清 晰地描述了协议的行为并且简化了协议的实现。为了减少协议和系统其他部分的藕 合度,将通过一个运行在用户空间的守护进程来完成协议的功能。守护进程即使出 错退出了也不会影响系统总体的运行。多播规则实现了防火墙对多播数据流的控制 功能。在设计时采用了操作接口和存储结构分开的作法,存储结构发生改变,只要 维持接口的统一,其他模块不需任何变动。在实现时,选择了l i n u x 平台,并采用 了c 语言作为开发工具。最后,功能和性能测试表明防火墙对多播数据的转发达到 了预期的目标。 关键词:i g m p 代理;多播协议;多播规则;事件驱动机制:有限状态机 i i , 盔韭左生墅圭生焦盈圭 b 5 篮监! t h ed e s i g na n di m p l e m e n to fi g m p p r o x yp r o t o c o l a b s t r a c t f o l l o w i n gt h ec o n s t r u c t i o no fn e t w o r ki n f r a s t r u c t u r e ,m a n ym d f i c a s ta p p l i c a t i o n s t h a tr e q u i r eh i 曲b a n d w i d t ha r ee m e r g i n g b u tt h et r a d i t i o n a lf i r e w a l lc a n n o tp r o v i d et h e f u n c t i o na b o u tm u l t i c a s tp a c k e tf o r w a r d i n ga n db e c o m et h eh a m p e rf o rm u l t i c a s t a p p l i c a t i o n s s oas o l u t i o nt h a tf o r w a r dm t f l t i c a s td a t as t r e a mb a s e do nr e q u e s ta n d p r o v i d e sf i l t e rc o n t r o li sn e e d e d c o n s i d e r i n gt h et o p o l o g i c a lc h a r a c t e r i s t i co ff i r e w a l l ,t h i sp a p e rp u tf o r w a r ds c h e m e , w h i c hb a s eo ni g m pp r o x y p r o t o c o la n dm u l t i c a s tr u l e s t a k i n gt h ec h a r a c t e r i s t i co f f i r e w a l l sh a r d w a r ei n t oa c c o u n t ,w ee m p l o yt r i l e v e ls o f t w a r ea r c h i t e c t u r ea n de a c hl e v e l f u l f i l l st h ef u n c t i o nm o s ts m t m gt oh a r d w a r e e v e n t d r i v e nm e c h a n i s mi su s e dd u r i n g d e s i g no fi g m pp r o x y w ea b s t r a c te v e n tf r o mn e t w o r ka c t i o na n dt h e nd r i v ee x e c u t e o ff i n i t es t a t em a c h i n e t h r o u g ht h i sw a y , w ec a l lh a v eab e t t e ru n d e r s t a n d i n ga b o u tt h e p r o t o c o la n di m p l e m e n ti tm o r ee a s i l y i no r d e rt or e d u c i n gt h ec o n t a c tw i t ho t h e rp a r to f s y s t e r r ,at h r e a dr u n n i n gi nu s e rs p a c ew i l lb et h ee x e c u t o ro ft h ep r o t o c 0 1 e v e nt h e t h r e a de x i td u et os o m em i s t a k e ,i tg i v e sn oi m p a c tt ot h eo t h e rp a r to fs y s t e m m u l t i c a s t r u l er e a l i z et h ef u n c t i o na b o u tc o n t r o lm u l t i c a s tp a c k e tf o rf r r e w a l l i n t e r f a c ei ss e p a r a t e d f r o mt h ed a t as t r u c t u r ed u r i n gd e i g n w h e nt h ed a t as t r u c t u r ec h a n g ea n dt h ei n t e r f a c e k e e pt h es a m e ,o t h e rp a r tn e e dt oc h a n g en o t h i n g l a s t ,t h er e s u l to ff u n c t i o nt e s ta n d p e r f o r m a n c et e s ts h o wt h a ti ta c h i e v et h ed e s i g ng o a l k e yw o r d s :i g m pp r o x y ;m u l t i c a s tp r o t o c o l ;m u l t i c a s tr u l e ;e v e n t d r i v e nm e c h a n i s m ; f s m i i i 独创- | 生声明 本人声明,所呈交的学位论文是在导师的指导下完成的。论文中 取得的研究成果除加以标注和致谢的地方外,不包含其他人己经发表 或撰写过的研究成果,也不包括本人为获得其他学位而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确 的说明并表示谢意。 ,i 、 学位论文作者签名:、雷、函 日 期: c ce - ? 、7 学位论文版权使用授权书 本学位论文作者和指导教师完全了解东北大学有关保留、使用学 位论文的规定:即学校有权保留并向国家有关部门或机构送交论文的 复印件和磁盘,允许论文被查阅和借阅。本人授权东北大学可以将学 位论文的全部或部分内容编入有关数据库进行检索、交流。 ( 如作者和导师同意网上交流,请在下方签名;否则视为不同意。) 学位论文作者签名: 签字日期: 导师签名: 签字日期: 丕d e 盘生题鲎焦煎圭 筮= 主绪主 1 1 课题研究背景 第一章绪言弟一早三百茜 “十五”计划纲要中首次明确提出,我国要大力发展高速宽带信息网,重点 建设宽带接入网,适时建设第三代移动通信网。在短短几年内,全国经历了建设宽 带网络的高潮,基础电信运营商和新兴的宽带接入商纷纷大举进军社区宽带网。与 此同时,随着网络带宽的增加,使许多高带宽的i p 应用成为可能,也带来了带宽的 急剧消耗和网络拥塞问题。如果采用单播方式通信,将极大地浪费带宽,并且有些 应用将不可能实现。应用i p 多播技术能够有效缓解这些应用引起的带宽瓶颈。因此, 它能在p 层面减少主干网络的流量,从而成为一种日益重要的理应用。 网络迅速普及,在给人们带来便利的同时,安全问题己摆在面前。防火墙一般 布置在企业内部网( i n t r a n e t ) 和外部公共网( i n t e m e t ) 之间的接口处,起着不同域之间 信息过滤的作用【ij 。多播数据包相对单播来说在转发或路由的机制方面差别较大。 并且由此引发许多令人棘手多播安全问题 2 1 。因此,许多老式防火墙不支持多播协 议,多播数据流无法正常穿透防火墙,造成了许多的域间多播应用无法进行。目前 各大防火墙厂商采取的解决办法一般是:当防火墙工作在交换机模式时,采用i g m p s n o o p i n g ( i g m p 监听) 协议解决多播数据包的转发;当防火墙工作在路由器模式 时,采用多播路由协议来传输数据包。考虑到防火墙所处的网络拓扑通常具有树形 特征,本文根据这种拓扑特征提出一种新的解决方案,通过采用i g m pp r o x y 协 议加上相应的多播安全策略来替代多播路由协议。i g m p p r o x y 协议的工作原理较 为简单。通过接收下游主机的多播组成员关系报道报文和上游路由器的查询报文, 建立好多播路由表。多播路由表建立好之后,可以据此转发多播数据包,给上游路 由器发送成员关系报道报文。 随着宽带网的普及,连接企业内部网和外部公共网之间的带宽提升到千兆级别。 传统的基于x 8 6 工控机的防火墙是不可能达到线速的,因此国内防火墙厂商纷纷把 目光投向网络处理器。基于网络处理器的防火墙从硬件组成到软件的架构与传统的 基于x 8 6 工控机的防火墙差别很大。传统x 8 6 防火墙与普通p c 机结构相同,硬件 主要包括1 0 1 0 0 m b i t s 自适应网卡,主板和通用c p u 。相应的软件主要分为位于操 作系统内核的核心模块以及运行在用户态的守护进程和服务程序。而基于网络处理 器的的防火墙硬件包括m a c ( m e d i a a c c e s sc a r d ) 、微引擎、c o l e 处理器、通用处理 器川。软件架构包括三个层次:数据层面、控制层面和管理层面。因此,i g m pp r o x y 协议实现的时候充分考虑了硬件和软件构架的这种变化,采取了分层设计的办法来 实现。通过把不同的功能分布到不同的层面,让每一层完成最适合自己的任务。 盎些盘生塑鲎焦迨塞墓= 童缱主 1 2 课题研究意义 三层多播采取的方案一般如下:多播接收者使用i g m p 协议向本地路由器注册 需要接收的多播组,路由器使用多播路由协议来构造多播转发树。多播源只传送多 播包的一个副本,路由器接收到数据后,只有在有需要的下游接口上,才会再复制 一个副本进行传送。由于数据包仅针对每个注册接收者复制,因此这种通信方式其 带宽利用效率很高。但是对于某些拓扑结构,没有必要运行一个多播路由协议。像 在一个简单的树形拓扑结构完全可以通过运行i g m pp r o x y 协议来学习和代理 组成员关系,并基于这种组成员关系转发多播数据包。而防火墙一般部署在企业内 部网和外部公共网之间的接口处,这种情况下具有明显的树形拓扑特征。 相对于多播路由协议,i g m pp r o x y 协议具有下面的优势【4 j 。基于i g m p 协议 来确定多播数据的转发关系,可以在不影响功能的前提下,简化防火墙的设计和实 现。在部署多播安全规则时,可以避免由于协议过分复杂而引发的安全问题。相对 p r o t o c o li n d e p e n d e n tm u l t i c a s t ( p i m ) 和d i s t a n c ev e c t o rm u l t i c a s tr o u t i n gp r o t o c o l ( d v m r p ) 来说,i g m pp r o x y 功能容易理解,配置简单。除此之外,i g m pp r o x y 协议独立于与之相连的路由器上配置的多播路自协议,因此,可以更加容易布置在 任何的多播网络中。 1 3 国内外的研究情况 本课题主要研究的多播协议是i g m pp r o x y 协议。在国外贝尔实验室的b i l l f e n n e r 学者提出了i g m pp r o x y 的草案【4 】,该文档中提出了在网络拓扑为树形结构 环境下可以使用i g m p p r o x y 来替代多播路由协议。以及多播转发c a c h e 项的组成。 但该协议在维持组成员关系时,所应用的方法需要的代价较大,同时并没有提出多 播c a c h e 项的构造方法。至于不同版本之间的相互操作,该文章没有提及。n o r t e l n e t w o r k s 的h a i x i a n g 等学者在m i x e dp r o x y l n o ( 混合代理) 中提出了关于不同 i g m p 版本之间的互操作【5 】。但只是一个建议性的提议,缺乏具体的可实施性。至 于i g m pp r o x y 的实现目前只有g i r i s h k u m a r 提出的r f c 草案怕j 。在该草案中详 细介绍了多播c a c h e 的结构,协议在上下游接口上的行为以及安全方面的考虑。但 是在组成员关系的维持方面该草案存在缺陷,并且不适合工作在基于网络处理器的 防火墙上。在国内有关i g m pp r o x y 协议的论文很少。各大网络设备厂商都声称 自己的产品支持i g m pp r o x y 协议,但是有关的资料却鲜为人知。 1 4 论文主要研究工作 论文的主要工作包括三个部分。首先是i g m pp r o x y 协议设计和实现。首先 通过查阅相关草案,在结合防火墙本身的要求完成需求分析:接下来就是系统设计, 2 一 塞a 盘芏塑茎壁逢支茎二主堂宣 1 2 课题研究意义 三层多播采取的方案一般如下:多播接收者使用i g m p 协议向本地路由器注册 需要接收的多播组,路由器使用多播路由协议来构造多播转发树。多播源只传送多 播包的一个副本,路由器接收到数据后,只有在有需要的下游接口上,才会再复制 一个副本进行传送。由于数据包仪针对每个注册接收者复制,因此这种通信方式其 带宽利用效率很高。但是对于某些拓扑结构,没有必要运行一个多播路由协议。像 在一个简单的树形拓扑结构,完全可以通过运行i g m pp r o x y 协议来学习和代理 组成员关系,并基于这种组成员关系转发多播数据包。而防火墙一般部署在企业内 部嘲和外部公共网之间的接口处,这种情况下具有咀显的树形拓扑特征。 相对于多播路由协议,i g m pp r o x y 协议具有下面的优势1 4 j 。基于i g m p 协议 来确定多播数据的转发关系,可以在不影响功能的前提下,简化防火墙的设计和实 现。在部署多播安全规则时,可以避免由于协议过分复杂而引发的安全问题。相对 p r o t o c o li n d e p e n d e n tm u l t i c a s t ( p i m ) 和d i s t a n c ev e c t o rm u l t i c a s tr o u t i n gp r o t o c o l ( d v m r p ) 来说,i g m pp r o x y 功能容易理解,配置简单。除此之外,i g m pp r o x y 协议独立于与之相连的路由器上配置的多播路由协议,因此,可以更加容易布置在 任何的多播网络中。 1 3 国内外的研究情况 本课题主要研究的多播协议是i g m pp r o x y 协议。在国外贝尔实验室的b i l l f e n n e r 学者提出了i g m p p r o x y 的草案州,该文档中提出了在网络拓扑为树形结构 环境下可以使用i g m p p r o x y 来替代多播路由协议。以及多播转发c a c h e 项的组成。 但该协议在维持组成员关系时,所应用的方法需要的代价较大,同时并没有提出多 播c a c h e 项的构造方法。至于不同版本之间的相互操作,该文章没有提及。n o r t e l n e t w o r k s 的h a i x i a n g 等学者在m i x e dp r o x y i n g ( 混合代理冲提出了关于不同 i g m p 版本之间的互操作”j ,但只是一个建议性的提议,缺乏具体的可实施性。至 于i g m pp r o x y 的实现目前只有g i r i s hk u m a r 提出的r f c 草案。在该草案中详 细介绍了多播c a c h e 的结构,协议在上卜游接口上的行为以及安全方而的考虑。但 是在组成员关系的维持方面该草案存在缺陷,并且不适合工作在基于网络处理器的 防火墙上。在国内有关i g m pp r o x y 协议的论文很少。备大网络设各厂商都声称 自己的产品支持i g m pp r o x y 协议,但是有芙的资料却鲜为人知。 1 4 论文主要研究工作 论文的主要工作包括三个部分。首先是i g m pp r o x y 协议设计和实现。首先 通过杳阅相关草案,在结合防火墙本身的要求完成需求分析;接下来就是系统设计, 通过查阅孝甘关草案,在结合防火墙本身的要求完成需求分析;接下来就是系统设计, 一2 一 盔i e 盘鲎塑堂焦硷塞筮= 室绪主 包括系统软硬件平台构架和系统结构设计。详细设计中包括二层接口管理模块、多 播组管理模块、i g m p 数据包处理模块、定时器链表管理模块、配置管理模块、事 件生成与调度模块、协议报文成文与发送模块、有限状态机模块。其次是设计和实 现多播规则。包括多播规则节点的储存结构,以及添加、删除和查阅操作接口。在 设计上采用了储存结构和操作接口相分离的原则,在改变储存的数据结构后可以维 持接口不变。再次是在千兆网环境中对i g m pp r o x y 协议和规则进行测试,覆盖 主要的功能点。测试结果基本符合预期目标。 1 5 论文内容安排 本课题的主要研究内容是设计并实现i g m p p i x y 协议,并结合防火墙的多播 规则实现防火墙对多播数据流的控制和转发。具体工作涉及以下几方面的内容: 第一章:引言,包括课题研究背景,课题研究意义,国内外的研究情况等内容。 第二章:多播体系概述,包括p 多播地址范围,i g m p 协议,二层多播协议, 多播路由协议等内容。 第三章:详细介绍了i g m pp r o x y 协议。通过同多播路由协议的对比,显示其 优缺点。 第四章:系统总体设计,包括系统需求分析,系统软硬件平台的介绍,系统结 构设计等内容。 第五章:系统详细设计。包括多播规则和i g m pp r o x y 协议两个部分。i g m p p r o x y 协议包括功能模块如下:三层接口管理模块,多播组管理模块,协议数据 包处理模块,定时器链表管理模块,配置管理模块,有限状态机模块。详细列举出 各个模块的核心功能,主要的数据结构和函数接口。 第六章:测试,介绍了测试环境所使用的软硬件和网络拓扑;测试设计中包含 了功能测试和性能测试两个部分。 第七章:总结工作成果以及不足和改进之处。 一3 盎韭盘堂墅星焦逢塞 筮兰童墨搔焦盘褪姿 2 1 综述 第二章多播体系概述 i p 多播也称为多点传送,是次将数据包发送给多个接收者的t c p i p 技术。 与单播的最大差别是:数据包的目的d 地址不是某台主机的口地址,而是一一个d 类i p 地址。该d 类地址标识的不是哪个主机所在网络拓扑中的具体位置,而是标 识一个信息群【7 】。多播数据源可以发送数据到该信息群,接收者可以申请加入该信 息群从而获得数据。群信息的接收者和发送者都叫做群的参与者,参与者可以自由 申请加入或者离开该群。 通过i n t e r a c t g r o u p m a n g e m e n t p r o t o c o l ( i g m p ) ,主机可以向路由器申请加入某 一多播组;同样路由器通过发送查询报文,可以获得接口上的组成员关系表。路由 器在收到多播数据包时,按照组成员关系列表在需要的接口转发。路由器之间通过 运行多播路由协议,建立和维护针对某一多播源子网的多播分发树。当多播源开始 发送多播数据包时,可以在己建立好的多播分发树上,层层开始往下转发。 对于网络中某些二层( 链路层) 设备,在缺省的情况下,多播数据包在v l a n 内部 是用广播方式转发数据流的。可以采用i g m ps n o o p i n g 、c g m p 、g m r p 使得在v l a n 内部多播数据流只向有需求的接口转发,减少了数据包的流量。 2 2l p 多播基本概念 2 2 1 多播组地址 多播地址在i p v 4 中是一个d 类i p 地址,范围从2 2 4 0 0 0 到2 3 9 2 5 5 2 5 5 2 5 5 。 被划分为局部链接多播地址、预留多播地址和管理权限多播地址三大类1 8 j 。其中, 局部链接多播地址范围是从2 2 4 0 ,0 0 到2 2 4 ,0 0 2 5 5 ,这些地址是为路由协议和其它 用途保留,路由器并不转发属于此范围的i p 包;预留多播地址是从2 2 4 0 1 。0 到 2 3 8 2 5 5 2 5 5 2 5 5 ,可用于全球范围或网络协议;管理权限多播地址是从2 3 9 0 0 ,0 到 2 3 9 2 5 5 2 5 5 2 5 5 ,可供组织内部使用,不能用于i n t e r a c t ,限制了多播范围。 组地址有两种分配方式:动态分配方式和静态分配方式p j 。当为新成立的多播 组进行动态地址分配时,通过应用会话目录工具( s d r ) ,能够检测到地址的冲突, 从而选择一个未用的地址。s d r 能h 很z 好地应用在老的m b o n e ,因为当时i n t e m e t 上 的多播组数量少。当多播组的数量增加时,s d r 就有很严重的可扩展性问题。 m u l t i c a s ta d d r e s ss e tc l a i m ( m a s c ) 是由i e t f 提出的,是一个新的动态地址分配协 议【1 0 。该协议以等级的方式来动态分配全局i p 多播地址。i p 多播地址只能从p a r e n t 4 蠢韭盘鲎塑芏焦逢塞笠三童墨播堡亟扭壅 域中租借。在租界期内,该i p 多播地址是有效的。当租期结束,可以续租。这是一 种很重要的机制,有很强的实用价值。当m a s c 还未完全具体化,充分发展之前, 只好使用静态分配的方法来暂时满足i n t e m e t 上的许多服务提供商的需要。 2 2 2 多播分布树 为了向所有接收主机传送多播数据,用多播分布树来描述l p 多播在网络中传输 的路径。多播分布树有两个基本类型:有源树和共享树。 r e c e i v e r l r e c e i v e r 2 图2 1 最短路径树或者源分发树 f i g 2 1s h o r t e s tp a t ho rs o u r c ed i s t r i b u t i o nt r e e 有源树是以多播源作为有源树的根,有源树的分支形成通过网络到达接收主机 的分布树,因为有源树以最短的路径贯穿网络,所以也常称为最短路径树( s p t ) 1 u o 每一个子网建立起一颗单独的有源树,如图2 1 所示。 r e c e i v e r lr e c e i v e r 2 图2 2 共享分发树 f i g 2 2s h a r e dd i s t r i b u t i o nt r e e 5 壅i i 盘堂墅茔焦监圭蔓三童 壹整整盘垫鲨 如图2 2 所示,共享树以多播网中某些可选择的多播路由器中的一个作为共享 树的公共根,这个根被称为汇合点( r p ) 。共享树又可分为单向共享树和双向共享 树1 ”。单向共享树中多播数据流首先发送到汇合点,再由以汇合点为根的共享树发 送到多播接收者。双向共享树指多播数据流可以不经过共享树。 2 2 3 逆向路径转发 逆向路径转发( r e v e r s ep a t hf o r w a r d 简称r p f ) 是多播路由协议中多播数据转 发过程的基础 1 2 1 。其工作机制是当多播信息通过有源树时,多播路由器检查到达的 多播数据包的多播源地址,以确定该多播数据包所经过的接口是否在有源的分支上, 如果在,则r p f 检查成功,多播数据包被转发;如果r p f 检查失败,则丢弃该多 播数据包。如图2 3 所示。 m u l t i c a s tp a c i c e 镕+ 图2 3 逆路径检酉 f i g 2 3r e v e r s ep a t hf o r w a r d 2 3i n t e r n e t 组管理协议 i g m p 协议运行于主机和与之直接相连的多播路由器之间,它提供了主机和多 播路由器之间用于维护组成员关系的机制。i g m p 协议实现的功能分为多播路由器 部分和主机部分。如果主机想加入某个多播组,首先主动向本网段的路由器发送多 播组成员关系报道报文,该报文中包含了多播组的地址:在接收到路由器的查询报 文后,如果想继续接收某些多播组的数据包,便发送报道报文响应多播路由器的查 询。多播路由器部分的主要功能是周期性在所连接的物理网络上发送查询,以获得 组成员关系列表,并对组成员关系列表进行维护。如果同一网段上存在多个多播路 由器,只需要一个路由器定期发送查询便可,这时会产生查询者选举,口地址低的 路由器获胜。其他路由器监听担当查询者角色的路由器的状态,一旦发现该路由器 失效( 例如,死机了) ,便进行新一轮的查询者选举。目前i g m p 共有三个版本:i g m :p 一6 一 盔韭盘生亟主茔笪逢蛊笠三童童搔奎盘拯堡 v l 、i g i v i p v 2 、i g m p v 3 。高版本提供向上兼容的功能。i g m p v l 已经不再使用,仅 被高版本的协议提供了对它的兼容1 1 3 i 。目前的多播设备中广泛使用的是i g m p v 2 。 i g m p v 3 是最新标准,支持的系统不多。由于i g m p p r o x y 采用的是在上游接口模 仿i g m p 主机部分的功能,在下游接v i 模仿多播路由器部分的功能,因此我们将重 点阐述i g m p 协议,并且着重介绍i g m p v 2 。 2 3 1l g m p v l 介绍 i g m p v l 的工作原理是:多播路由器定期向所连接的所有网段上发送多播组成 员关系查询报文,探测每个网段上存在哪些多播组成员;主机如果想加入某个多播 组,就向路由器发送多播组成员关系报告报文;主机如果想离开该多播组,不必响 应路由器的查询,经过一定时间,路由器便知道子网内没有组成员了。因为路由器 不能马上得知每个网段上是否存在多播组成员,所以会有这样一种情况:当网段上 所有的主机都不需要某一多播组的数据包了,当路由器还会继续向该网段转发一段 时间。 i i g m p v l 的报文格式 i g m p 报文利用p 数据包的格式发送的。在p 数据报文中协议字段的值为2 , 表示承载的是i g m p 报文;同时,将t t l 字段置为1 ,表示i g m p 报文不能跨越路 由器。可以在i p 头部添加路由警告选项。告知路由器不过转发该数据包。i g m p v l 报文格式如图2 4 所示,其主要内容包括: 夺版本字段4 b i t s ,表示l 咖协议的版本号,在i g m p v l 中置为1 。 夺类型字段4 b i t s ,表示报文的类型。在i g m p v l 中,该字段只有两个值:取 值为l 时,即表示该报文为成员关系查询( m e m b e r s h i pq u e r y ) ,由路由器使 用;取值为2 时,即表示该报文为成员关系报告( m e m b e r s h i pr e p o r o ,由 主机使用。 夺校验和字段1 6 b i t s 。用于数据报文的校验,校验的范围包括整个i g m p 报文。 夺组地址字段。当用于成员关系查询时,本字段置为0 ,并被主机忽略;当用 于成员关系报告时,本字段包含主机想加入的多播组地址。 f i g 2 4i g g pp a c k e t i i i g m p v l 查询一响应过程 在i g m p v l 中,路由器利用查询一响应过程来确定在本地子网中是否有加入某 个多播组的主机存在。多播路由器根据主机发送的组成员关系的报告报文,建立起 7 塞a e 盘茎题茎堡造圭 箜三童壹接堡丞扭姿 多播组与物理接口的转发关系。具体的过程如图2 5 所示。 m u l t i c a s tr o u t e r 图2 5 查询一相应过程 f i g 2 5q u e r y r e s p o n s ep r o c e s s 夺路由器在所连接的物理接口上周期性地发送多播成员关系查询报文,报文 的目的口地址是a l l s y s t e m s ( 2 2 4 0 0 1 ) ; 夺主机接收到查询报文之后,希望加入某个多播组( 如2 2 4 ,2 3 ,2 。5 6 ) 就响应该查 询,在接收到查询报文的接口上发送多播成员关系报告报文,在i g m p 报 文的多地址地段中加入想要加入的多播组的地址; 夺路由器接收到来自主机的多播组成员关系报告报文后,就知道了在该接口 上有主机要加入多播组,多播组地址在报文中可以获得。接下来,多播路 由器上的多播路由协议就会根据该物理接口上的多播组成员关系,建立起 相应的转发关系。 i i i 报告响应抑制 当一个网段上有多台主机想加入同一个多播组时,就主机可以利用报告响应抑 制功能,来减少网段中的重复的报告报文。当a 和b 两台主机都想要加入同一多播 组( 2 2 4 3 4 3 ) 时,如果两台主机分别向多播路由器发送成员关系报告报文的话, 实际上路由器只要收到一个该多播组的报告报文,便可得知要向该网段转发该组的 数据包。重复的报文严重侵占网络带宽。采用报告响应抑制机制后,处理流程如下: 主机接收到i g m p 成员关系查询报文后,便为每个加入的多播组启动一个成员关系 报告定时器,该定时器的超时时间是某个指定时间范围内的随机值;当定时器超时 的时候,主机发送i g m p 成员关系报告报文,通知路由器该网段内仍有该多播组的 接收者。在定时器超时之前,假如主机接收到来自其他主机发送的同一多播组成员 关系报告报文,那么就撤消该多播组成关系报告定时器,取消该报文的发送。因而 避免了发送同一个多播组成员关系报告报文给路由器。通过报告响应抑制机制,有 助于将子网中i g m p 报文数量减少到最小。如图2 6 所示。 一8 一 丕a 盘生题主垡迨查 簋三室垒揸生垂拯遣 2 图2 6 报告响应抑制机制 f i g ,2 6r e s p o n s es u p p r e s s i o nm e c h a n i s m i v i g m p v l 查询路由器选举 如果在一个网段中有多个多播路由器时,那么多个路由器都发送i g m p 查询报 文是一种浪费,所以应当确定一个路由器作为指定查询路由器就可以了。但是在 i g m p v l 中,没有提供选举指定查询路由器的机制,而是把这一任务留给了p i m 、 d v m r p 等多播路由协议。由于不同的协议使用不同的选举机制,会造成在一个子 网中出现多个查询路由器,这也是i g m p v l 的缺点之一。 v 主机加入组和离开组的过程 当一个主机想要加入某个多播组的时候,不必等待路由器发出查询报文,而是 可以直接向路由器发送成员关系报告报文,这样就缩短了加入时间。i g m p v l 缺乏 显式的离开方式。当一台主机想要离开一个多播组时,并不显式地表示出来。而是 采取不响应路由器的查询报文的方式。有可能出现这样的情况,当网段中某个主机 是该多播组的最后一个成员,当该主机要退出这个多播组时,路由器并不知道,会 继续向这个网段转发该多播组的数据包,直到路由器认为该网段中所有该多播组成 员都超时为止。 2 3 2i g m p v 2 介绍 i g m p v l 的主要缺点是离开延迟过大和选择查询路由器需要依赖多播路由协议 才能进行。针对这些缺点,i g m p v 2 做了相应的改进【1 4 j 。在i g m p v 2 中,增加了离 开组的报文格式,当主机想要离开时,只需向路由器发送离开报文即可,这样可以 有效地缩短离开延迟。另外在i g m p v 2 中,还明确提出查询路由器的选举机制。除 此之外,i g m p v 2 的工作原理i g m p v l 基本一致。 i i g m pv 2 的报文格式 i g m p v 2 的报文格式如图2 7 所示,它在i g m p v l 的基础上,进行了两处改动: o 壅j b 盘生塑茎焦缝塞 苤兰童奎i 堡垒挺堡 一一个是将v 1 的版本字段和类型字段进行了合并;另一个是增加了最大响应时间字 段( m a xr e s p o n s et i m e ) 。同时添加了两种报文类型。 夺类型字段8 b i t s 。在兼容v 1 的基础上,v 2 中新增了两种报文类型。 0 x l l :成员关系查询。与v 1 不同,v 2 的查询分为两种类型:通用查询 ( g e n e r a lq u e r y ) ,组地址字段置为全0 ,对所有的组进行组成员查询: 特定组查询( g r o u ps p e c i f i cq u e r y ) 。针对特定组进行组成员查询,组地 址字段置为特定组的地址。 0 x 1 2 :i g m p v l 成员关系报告( 为了向后兼容v 1 ) 。 0 x 1 6 :i g m p v 2 成员关系报告。 0 x 1 7 :离开组。 夺最大响应时间字段8 b i t s 。只有在成员关系查询报文中有效,主机必须在最 大响应时间到达之前发出成员关系报告报文。通过该值,路由器可以调节 组成员的离开延迟。 夺校验和字段1 6 b i t s 。与v l 中的一样。 夺组地址地段3 2 b i t s 。与v l 中的基本一样,当采用特定组查询时,该字段存 放要查询的多播组的地址。 圈2 7i g m t 2 报文格式 f i g 2 7i g m p v 2p a c k e t 查询一响应过程 与v 1 相比。工作原理基本相同,但是有两点变动。首先增加了特定组查询,特 定组查询的目的是为了让路由器知道一个特定组在子网内是否还有组成员,以便判 断是否还需要转发该组的数据报文。其次是v 2 的成员关系报告的类型代码不一样。 i i i 主机加入组和离开组的过程 v 2 中的组成员加入与v 1 中的完全一样。v 2 中的离开过程与v 1 相比有了较大的改 进。主机离开一个组时,需要显式地发送个离开报文给路由器。其过程如下:要 离开的主机发送一个离开报文给子网上的所有路由器( 目的地址为2 2 4 0 0 2 ) 。查 询路由器接收到离开报文后,会立即发送一个特定组查询。如果子网上还有该组的 成员,则会发回一个响应报文;如果子网上已经没有该组的成员,则没有主机回应, 于是路由器就知道已经没有该组成员了,就停止转发该组的数据。如图2 8 所示。 1 0 蠢i 盘望塑堂焦垒塞笠三熏墨搔堡叠垫姿 图2 8 特殊组查询过程 f i g 2 8g r o u ps p e c i a lq u e r yp r o c e s s i v 查询路由器选举 在v l 中,选择查询路由器依赖于多播路由协议。而在v 2 中,明确了查询路由器选择 的机制,如图2 9 所示。其过程如下: 图2 9 查询者选举过程 f i g 2 9q u e r i e re l e c t i o np r o c e s s 夺开始时,子网上的每个路由器都假定自己就是查询路由器,发送一个通用 查询报文给所有主机( 目标地址为2 2 4 0 0 1 ) ; 夺每个路由器都可以接收到来自其他路由器的报文,然后进行i p 地址的比较, 具有最低i p 地址的路由器就成为查询路由器; 夺非查询路由器启动一个定时器,接收到来指定查询路由器的通用查询报文, 就将计时器复位。如果定时器超时,就认为当选的查询路由器发生故障。 本路由重新假定自己是查询者路由器,接下来重复上述过程。 v i g m p v l 与i g m p v 2 的互操作性 在实际的网络环境中,主机和路由器有可能使用了不同版本的i g m p ,因此需 要考虑两个版本的互操作性。 情况一:主机使用i g m p v 2 而路由器使用i g m p v l 。v l 路由器不能识另l j v 2 类型的成员 一1 1 盔韭盔茎塑茔焦途塞 箜三童墨搔堡亟拯姿 报告报文。因此。当子网中的查询路由器运行的是v l 时,v 2 主机需要发送v i 类型的 成员报告报文。主机可以根据路由器查询报文的最大响应时间字段来判断路由器的 版本,因为v l 的查询报文中,该字段被置为0 ,而在v 2 的查询报文中,该字段值非o 。 情况二:主机使用i g m p v l ,路由器使用i g m p v 2 。在这种情况下,组加入不会有问 题,因为i g m p v l 格式的组加入报文可以被运行i g m p v 2 的路由器接收。但是组退出 时会有问题,当i g m p v l 主机加入某个组后,路由器必须忽略该组的任何组离开报 文,因为运行1 g m p v l 的主机不能识别来自路由器的特定组查询报文,这样会使路 由器以为没有组成员而停止转发该组的数据。 情况三:同一网段上既有i g m p v l 路由器,也有i g m p v 2 路由器。同一网段上的所有 路由器必须运行同一版本的i g m p 协议。这种情况下,必须将运行i g m p v 2 的路由器 手工配置为运行i g m p v l 。 2 3 3i g m p v 3 介绍 i g m p v 3 中主要提出了特定源多播的概念【1 5 】。特定源多播( s o u r c e s p e c i f i c m u l t i c a s ts s m ) 是一种区别于传统多播的新的业务模型【l6 】,它使用多播组地址和多播 源地址同时来标志一个多播会话。而不是像传统的多播服务那样只使用多播组地址 来标志一个多播会话。主机可以向路由器发送带源过滤列编的组报告报文,来指明 自己想接收的特定源多播组。这项新功能的出现使得i g m p v 3 协议比前两个版本要 复杂的多;另外i g m p v 3 中的消息格式与上两个版本中有显著的差别,下面我们将 详缅阐述i g m 3 7 v 3 协议规范。 i i g m pv 3 的消息类型及格式 i g m p v 3 的消息格式较前两版本有较大的变化,前两版本中消息长度是固定长 度,v 3 版本中消息格式长度不固定;另外在消息格式和结构上也扩充了很多字段。 同样,i g m p v 3 消息也是封装在具有路由通告选项且丌l 值为1 的l p 数据包中发送, 并用协议号2 来标识为i g m p 协议。 i g m p v 3 中主要有两种消息类型: 0 x 1 1 :组成员关系查询: 夺0 x 2 2 :i g m p v 3 的成员关系报告; 另外,为了提供对前两版本的兼容,i g m p v 3 还支持下列消息类型: 夺0 x 1 2 :t g 口v 1 的成员关系报告: 夺o x 】6 :晒m p v 2 的成员关系报告; 夺o x l 7 :i g m p v 2 的离开组消息; 后三种消息的格式,在前两节中我们已经讨论过。虽然组成员关系查询报告在 前两版本中都存在,但i g m p v 3 中其格式有很大的变化,下面我们将对其详述。 1 2 壅i ! 盘璺墅圭茎焦逢圭 墓三室墨搔焦垂拯垫 成员关系查询报文 i g m p v 3 中组成员关系查询共有3 类,如图2 1 0 所示。 夺g e n e r a lq u e r y :一般查询,路由器利用这类查询来收集其接口所连网段上 所有多播组成员的信息。 夺g r o u ps p e c i f i cq u e r y :特殊组查询,用来查询某一特定多播组在其接口所连 网段上的接收者的情况。 夺g r o u p a n d s o u r c e s p e c i f i cq u e r y :特定组和源的查询,用来查询是否有主机 要接收某一特定组中某些特定多播源发送来的多播数据。 这三类组成员关系查询消息的类型代码均为0 x 1 1 ,其消息的具体格式如下图: 0671s1 63 1 类型最大响应时间校验和 组地址 r e s vsq r v q q i c n u m b e ro f s o u r c e s ( n ) s o u r c e a d d r e s s 1 】 s o u r c ea d d r e s s 刚 图2 1 0 组成员关系查询消息格式 f i g 2 1 0m e s s a g e sf o r m a to f m e m b e rq u e r y 新添加的字段含义如下: 夺r e s v :保留

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论