交换式以太网上的多播
单播、多播、广播、组播、泛播概念区分

单播、多播、广播、组播、泛播概念区分假设X代表所有的机器,Y代表X中的一部分机器,Z代表一组机器,1代表一台机器,那么1:1 那就是单播;1:Y 那就是多播;1:X 那就是广播;1:Z 那就是组播;Y=X时,多播就是广播;Y=Z多播就是组播;泛播也叫任意播,是指某组中任意发送方对应拓朴结构中几个最接近的接收方之间的通信。
而组播是指单个发送方对应一组选定接收方的一种通信。
一、什么是组播1、组播的特点1)什么是组播?组播是一种数据包传输方式,当有多台主机同时成为一个数据包的接受者时,出于对带宽和CPU负担的考虑,组播成为了一种最佳选择。
2)组播如何进行工作?组播通过把224.0.0.0-239.255.255.255的D类地址作为目的地址,有一台源主机发出目的地址是以上范围组播地址的报文,在网络中,如果有其他主机对于这个组的报文有兴趣的,可以申请加入这个组,并可以接受这个组,而其他不是这个组的成员是无法接受到这个组的报文的。
3)组播和单播的区别?为了让网络中的多个主机可以同时接受到相同的报文,如果采用单播的方式,那么源主机必须不停的产生多个相同的报文来进行发送,对于一些对时延很敏感的数据,在源主机要产生多个相同的数据报文后,在产生第二个数据报文,这通常是无法容忍的。
而且对于一台主机来说,同时不停的产生一个报文来说也是一个很大的负担。
如果采用组播的方式,源主机可以只需要发送一个报文就可以到达每个需要接受的主机上,这中间还要取决于路由器对组员和组关系的维护和选择。
4)组播和广播的区别?如同上个例子,当有多台主机想要接收相同的报文,广播采用的方式是把报文传送到局域网内每个主机上,不管这个主机是否对报文感兴趣。
这样做就会造成了带宽的浪费和主机的资源浪费。
而组播有一套对组员和组之间关系维护的机制,可以明确的知道在某个子网中,是否有主机对这类组播报文感兴趣,如果没有就不会把报文进行转发,并会通知上游路由器不要再转发这类报文到下游路由器上。
计算机网络名词(全)

计算机⽹络名词(全)计算机⽹络名词01.TCP/IP(Transmission Control Protocol/Internet Protocol)传输控制协议/⽹际协议(⼜称Internet协议)02.UDP(User Datagram Protocol)⽤户数据报协议03.FTP(File Transfer Protocol)⽂件传输协议04.TFTP(Trivial File Transfer Protocol)简单⽂件传输协议05.SMTP(Simple Mail Transfer Protocol)简单邮件传输协议06.DNS(Domain Name System)域名系统07.STP(Spanning Tree Protocol)⽣成树协议08.RSTP(Rapid Spanning Tree Protocol)快速⽣成树协议09.VLAN(Virtual Local Area Network)虚拟局域⽹10.RIP(Routing Information Protocol)路由信息协议11.IGRP(Interior Gateway Routing Protocol)内部⽹关路由协议12.OSPF(Open Shortest Path First)开放式最短路径优先协议13.DVRP(Distence Vector Routing Protocol)距离⽮量路由协议14.LSRP(Link State Routing Protocol)链路状态路由协议15.IGP(Interior Gateway Protocol)内部⽹关协议16.BGP(Border Gateway Protocol)边界⽹关协议17.IS-IS(Intermediate System to Intermediate System Routing Protocol)中间系统到中间系统的路由选择协议18.PPP(Point to Point Protocol)点到点协议19.HDLC(High level Date Link Control)⾼级数据链路控制协议20.PAP(Password Authentication Protocol)⼝令验证协议21.CHAP(Challenge-Handshake Authentication Protocol)挑战-握⼿验证协议22.ARP(Address Resolution Protocol)地址解析协议23.RARP(Reverse Address Resolution Protocol)反向地址转换协议24.ICMP(Internet Control Message Protocol)Internet控制报⽂协议25.ADSL(Asymmetrical Digital Subscriber Line)⾮对称数字⽤户线路26.DHCP(Dynamic Host Configuration Protocol)动态主机配置协议27.HTTP(Hyper Text Transfer Protocol)超⽂本传输协议28.SNMP(Simple Network Management Protocol)简单⽹络管理协议29.SGMP(Simple Gateway Monitoring Protocol)简单⽹关监控协议30.CSMA/CD(Carrier Sense Multiple Access with Collision)载波侦听多路访问/冲突检测31.CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance)载波侦听多路访问/冲突避免32.ISP (Internet Service Provider)英特⽹服务器供应商32.STP(Shielded Twisted Pair)屏蔽双绞线33.ICS (Internet Connection Sharing)连接共享34.NOS (Network Operation System)⽹络操作系统35.UTP(Unshielded Twisted Pair)⾮屏蔽双绞线36.MAC(Medium Access Control)介质访问控制37.NAT(NetworkAddressTranslation)⽹络地址转换38.IDS(Intrusion Detection Systems)⼊侵检测系统39.MIB(Management Information Base)管理信息库40.IEEE(Institute of Electrical and Electronics Engineers)电⽓和电⼦⼯程师学会缩写TCP/IPUDPFTPTFTPSMTPDNSSTPRSTPVLANRIPIGRPOSPFDVRPLSRPIGPBGPIS-ISPPPHDLCPAPCHAPARPRARPICMPADSLDHCPHTTPSNMPSGMPCSMA/CDCSMA/CAISPSTPICSNOSUTPMACNATIDSMIBIEEE项⽬1习题1.下列属于⽹络应⽤的是(ABCD)。
基于局域网内部文件交换的可靠多播技术分析

国男篮 而言 ,基于 3分 的得 分功效与 2分的作用基本 [] 中国篮球协会 . 2 篮球规则 [ ]北京: M. 光明 日 报出版社, 是 3分 的牵扯作用依然重要 ;在解决 好半场 紧逼防守 [] 20 年雅典奥运会 男子篮球比赛完全数据 [ ・ 5 04 J 篮球 , ]
. 一
: ”
型
r J。赛数来 [。呲 / 砌 。 . 6 锦世据 源E / .. ]- ii 。  ̄u 。4 , [- t- B ] :。 。 /. 。
作 者 简 介 :张 应 征 ( 9 0 ) 男 , 湖南 工程 职 业 技 术 学 院 讲 师 ,硕 士 ,研 究 方 向 :计 算 机 应 用 、数 据 库 。 i7 ,
2. 两 线”修改 中的 3分 线距 离 的扩大 后 ,对 中 “ 持平 ,因此 3分范 围的扩大对 中国男篮影响不大 ,但
后 小线 的增加 对 中国男 篮 影响不 大 。 3 2 s 1s 重 新 界 定 ,对 攻 防转 换 节 奏慢 、后 [] .4 和 4 的
/ w wfac , 08 / w .b. r 2 0 . i o n 20 ・ 08
20 ,(。 : 2 2 . 04 ) 2- 5 0。 北京 奥运会 男子篮球 比赛完全数据 [ ・ 0年 J 篮球 , ]
0 R平I CEO A H酬 RR E台
职 时 业 空
基 于 局域 网 内部 文 件 交 换 的 可 靠 多播 技 术 分 析
张 应 征 成 新 红
( 南工 程职 业 技术 学 院 ,湖 南 长 沙 湖 4l 0 4) 0 0
摘 要 : 目前 ,各 职 业 院校 教 学使 用 的计 算 机 房 都 靠性 ,但它不能进行多播 传输 ,对 网络的带 宽和服务 建 立 了局 域 网 , 但 对 于 局 域 网 内部 的文 件 传 输 而 言 , 器要 求 比较高 。为保 证可靠性 ,必须在 UDP传输服 如 何 保 证 文 件 传 输 可 靠 、 快 速 是 一 个 值 得 研 究 的课 务 之 上 应 用 层 完 成 数 据 的 可 靠 性 处 理 , 目 前 可 靠 多 题 。 文 章 主 要 针 对 机 房 局 域 网 的 可 靠 多 播 技 术 进 行 播 主 要 集 中在 以 下 三 个 方 面 进 行 研 究 :
单播、多播和广播经典详解

1什么是单播、多播和广播“单播”(Unicast)、“多播‘(tic忝T)广播'(Broadcast)这三个术语都是用来描述网络节点之间通讯方式的术语。
那么这些术语究竟是什么意思?区别何在?且听下文分解。
★单播^-网络节点之间的通信就好像是人们之间的对话一样。
如果一个人对另外一个人说话,那么用网络技术的术语来描述就是“单播,此时信息的接收和传递只在两个节点之间进行,参见图。
图单播一对一单播在网络中得到了广泛的应用,网络上绝大部分的数据都是以单播的形式传输的,只是一般网络用户不知道而已。
例如,你在收发电子邮件、浏览网页时,必须与邮件服务器、服务器建立连接,此时使用的就是单播数据传输方式。
但是通常使用“点对点通信”(ointto)o代替”单播,因为“单播一般与“多播”和“广播相对应使用。
-★多播十“多播”可以理解为一个人向多个人(但不是在场的所有人)说话,这样能够提高通话的效率。
如果你要通知特定的某些人同一件事情但是又不想让其他人知道,使用电话一个一个地通知就非常麻烦,而使用日常生活的大喇叭进行广播通知就达不到只通知个别人的目的了,此时使用“多播”来实现就会非常方便快捷但是现实生活中多播设备非常少。
多播如图所示图多播:一对多“多播”也可以称为“组播”,在网络技术的应用并不是很多,网上视频会议、网上视频点播特别适合采用多播方式。
因为如果采用单播方式,逐个节点传输,有多少个目标节点,就会有多少次传送过程,这种方式显然效率极低,是不可取的;如果采用不区分目标、全部发送的广播方式,虽然一次可以传送完数据但是显然达不到区分特定数据接收对象的目的采用多播方式,既可以实现一次传送所有目标节点的数据也可以达到只对特定对象传送数据的目的。
网络的多播一般通过多播地址来实现多播地址就是类地址即之间的DD地址。
DDDDDDDDDDDD 中的口皿管理器支持多播口口地址的自动分配。
口-★广播支“广播”可以理解为一个人通过广播喇叭对在场的全体说话Q这样做的好处是通话效率高0信息一下子就可以传递到全体,如图3所示。
多播和多播路由_3

干网出现拥塞的可能性。组播组中的主机可以是在同一个物理网 络 , 也可以来自不同的物理网络(如果有组播路由器的支持)。
• 广播(Broadcast)传输:是指在IP子网内广播数据包,所有
在子网内部的主机都将收到这些数据包。 广播意味着网络向子网 主 机都投递一份数据包,不论这些主机是否乐于接收该数据包。 然而广播的使用范围非常小, 只在本地子网内有效,因为路由器 会封锁广播通信。广播传输增加非接收者的开销。
IP组播
1
应用
• 访问分布式数据库 • 信息传播(例如软件更新) • 地址新闻分发 • 电视会议 • 远程学习
2
TCP/IP传送方式
• 单播(Unicast)传输:在发送者和每一接收者之间需要单独
的数据信道。 如果一台主机同时给很少量的接收者传输数据,一 般 没有什么问题。但如果有大量主机希望获得数据包的同一份拷 贝时 却很难实现。 这将导致发送者负担沉重、延迟长、网络拥塞;为保 证一定的服务质量需增加硬件和带宽。
– 以发送者为树根,到每一个接收者的最短路径构成 一棵转发树。 – 可以用二元组(s, g)标示一棵源树。 – 从发送者到接收者的路径最优,但需要维护较多状 态信息。
• 组共享树ST
– 以某个路由器为根(RP或Core)到所有接收者的树。 – 可以用(*,g)标示一棵共享树。 – 一棵树被多个发送者共享,维护较少的状态信息, 但转发路径未必最优。树根的位置很重要。
– 多播路由器用IGMP轮询群组
16
监视成员关系操作
• 路由器定期轮询群组(典型125秒一次) • 查询请求所有群组的信息
– E.g 用作查询的地址:0.0.0.0 – IGMP通信量不会随网络上群组增加而增加
计算机网络谢希仁版考试判断题

课程名称:《计算机网络》判断题(共226小题)1、002110,(A)。
计算机网络是现代计算机技术和通信技术密切结合的产物。
( ) 2、002210,(A)。
计算机网络是将地理位置不同且具有独立功能的多个计算机系统通过通信线路和通信设备相互连接在一起,通过网络操作系统及网络协议软件进行管理,以实现资源共享和相互通信的系统。
( )3、002310,(A)。
从逻辑上讲,一个计算机网络是由通信子网和资源子网构成的。
( ) 4、002410,(B)。
计算机网络发展阶段经历了近程联机系统、初期计算机网络和开放式标准化网络。
( )5、002510,(B)。
在计算机网络中负责节点间的通信任务的那一部分称为资源子网。
( )6、002610,(A)。
网络的发展趋势必将导致计算机网络、通信网络、广播电视网络三网合一,网络安全、服务质量、多媒体信息的快速传送将成为网络性能的关键问题。
( )7、002710,(A)。
网络拓扑结构是指节点相连形成的几何形状。
网络常见的拓扑结构有星型结构、总线型结构、环型结构、树型结构、网状结构、总线星型混合结构等。
( ) 8、002810,(B)。
按地理分布范围为标准,计算机网络可分为局域网、城域网和校园网3种。
( )9、002910,(A)。
网络软件包括网络操作系统、通信协议、网络管理及应用软件3类。
()10、003010,(A)。
通信介质分为有线介质和无线介质两类,有线介质一般包括双绞线、同轴电缆、光纤3种。
()11、003110,(A)。
计算机网络产生的基本条件是通信技术及计算机技术的结合。
( ) 12、004910,(A)。
21世纪的一些重要我处就是数字化、网络化和信息化,它是一个以网络为核心的信息时代。
()13、005010,(A)。
因特网虽然非常复杂,但从其工作方式上看,可以划分为两大块,即边缘部分和核心部分。
()14、005110,(A)。
总时延=发送时延+传播时延+处理时延+排队时延。
华为三层以太网交换机基本原理及转发流程

华为三层以太⽹交换机基本原理及转发流程华为三层以太⽹交换机基本原理及转发流程1.1. MAC地址介绍MAC 地址是48 bit ⼆进制的地址,如:00-e0-fc-00-00-06。
能够分为单播地址、多播地址和⼴播地址。
单播地址:第⼀字节最低位为0,如:00-e0-fc-00-00-06多播地址:第⼀字节最低位为1,如:01-e0-fc-00-00-06⼴播地址:48 位全1,如:ff-ff-ff-ff-ff-ff注意:1)⼀般设备⽹卡或者路由器设备路由接⼝的MAC 地址⼀定是单播的MAC 地址才能保证其与其它设备的互通。
2)MAC 地址是⼀个以太⽹络设备在⽹络上运⾏的基础,也是链路层功能实现的⽴⾜点。
1.2. ⼆层转发介绍交换机⼆层的转发特性,符合802.1D ⽹桥协议标准。
交换机的⼆层转发涉及到两个关键的线程:地址学习线程和报⽂转发线程。
学习线程如下:华为认证技术⽂章21)交换机接收⽹段上的所有数据帧,利⽤接收数据帧中的源MA C 地址来建⽴MAC 地址表;注意:⽼化也是按照源MAC 地址进⾏⽼化。
报⽂转发线程:1)交换机在MAC 地址表中查找数据帧中的⽬的MAC 地址,如果找到,就将该数据帧发送到相应的端⼝,如果找不到,就向所有的端⼝发送;2)如果交换机收到的报⽂中源MAC 地址和⽬的MAC 地址所在的端⼝相同,则丢弃该报⽂;3)交换机向⼊端⼝以外的其它所有端⼝转发⼴播报⽂。
1.3. VLAN⼆层转发介绍报⽂转发线程:引⼊了VLAN 以后对⼆层交换机的报⽂转发线程产⽣了如下的阻碍:1)交换机在MAC 地址表中查找数据帧中的⽬的MAC 地址,如果找到(同时还要确保报⽂的⼊VLAN 和出VLAN 是⼀致的),就将该数据帧发送到相应的端⼝,如果找不到,就向(VLAN 内)所有的端⼝发送;2)如果交换机收到的报⽂中源MAC 地址和⽬的MAC 地址所在的端⼝相同,则丢弃该报⽂;3)交换机向(VLAN 内)⼊端⼝以外的其它所有端⼝转发⼴播报⽂。
基于以太网的第2代分布式列车网络控制系统(DTECS-2)

基于以太网的第2代分布式列车网络控制系统(DTECS-2)赵冬;杨奇科;叶彪【摘要】长沙市轨道交通1号线车辆采购项目的其中1列车被要求采用基于以太网的第2代分布式列车网络控制系统.介绍了该系统的功能需求、系统架构、系统性能,并与传统的基于MVB(多功能车辆总线)的分布式列车网络控制系统进行了比较.【期刊名称】《城市轨道交通研究》【年(卷),期】2016(019)001【总页数】5页(P69-73)【关键词】地铁列车;分布式列车网络控制系统;以太编组网【作者】赵冬;杨奇科;叶彪【作者单位】中国中车株洲电力机车有限公司,412001,株洲;中国中车株洲电力机车有限公司,412001,株洲;中国中车株洲电力机车有限公司,412001,株洲【正文语种】中文【中图分类】U231.6Author's address CRRC Zhuzhou Electric Locomotive Co.,Ltd.,412001,Zhuzhou China随着经济和社会发展,现代轨道交通装备制造业正向着高速化、智能化、集成化进行跨越式的高速发展。
分布式网络控制技术由于拥有集成化高、智能化高、维护简便、成本低等优势,已成为现代轨道交通装备制造特别是车辆集成制造的关键技术之一,且随着大量使用分布式网络控制技术的轨道交通车辆得到越来越多的用户使用,该技术变得日趋成熟、稳定,成为轨道交通车辆的标准配置。
然而,用户对该技术提出了更加复杂的要求,如希望能够实现更加快速的响应、更加高的集成化、更加高的性价比等,要求实现网络远程诊断与维护、旅客信息与舒适性支持、统一高效的智能化决策支持等。
近年,工业交换式以太网技术异军突起。
由于具有优异的高速传输性能、开放的网络协议栈、几乎任意的扩展性能、多样的产品设计制造商、丰富的测试验证手段等优势,其逐渐垄断了工业自动化和过程控制市场。
在轨道交通用户和业内专家组织的共同推动下,IEC TC 9(The International Electrotechnical Commission Technical Committee 9:Electrical Equipment and Systems for Railways)起草,并于2014年3月正式发布IEC 61375-3-4《轨道交通电气设备—列车通信网络—以太编组网》标准(以下简称“ECN标准”),为实现市场对轨道交通装备制造业提出的更高要求注入了新的技术力量。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
V ol.14, No.3 ©2003 Journal of Software 软 件 学 报 1000-9825/2003/14(03)0496 交换式以太网上的多播协议∗王 军+, 吴志美(中国科学院 软件研究所,北京 100080) Multicast Protocol over Switch EthernetWANG Jun +, WU Zhi-Mei(Institute of Software, The Chinese Academy of Sciences, Beijing 100080, China)+ Corresponding author: Phn: 86-10-62645407, E-mail: wyj@Received 2001-10-16; Accepted 2002-04-10Wang J, Wu ZM. Multicast protocol over switch Ethernet. Journal of Software , 2003,14(3):496~502.Abstract : Many services, including video conference, whiteboard and video broadcasting, have been running over LANs. However, most of LANs, such as Ethernet, treat multicast just as broadcast, and they all have few supports for multicast. In this paper, a multicast protocol in an LAN switch, named IGMP snooping, is implemented based on VLAN and IGMP. IGMP snooping will be applied to the IP multicast stream control on the switch Ethernet. The basic idea, syntax and semantics of this protocol are given in this paper, and the verification and test procedure is also provided.Key words : IGMP snooping; multicast; IGMP; CGMP; GMRP摘 要: 目前,桌面会议、电子白板和视频广播等多播服务大都运行在局域网环境中,而绝大多数局域网结构,如以太网,都采用广播方式处理多播数据,对多播的支持有限.采用IGMP Snooping 的方法,在二层交换机中设计一个基于VLAN 和IGMP 的多播协议,用于控制交换以太网中不断增长的IP 多播流.描述了该协议的基本思想、语法和语义以及一个该协议验证和测试的过程.关键词: IGMP snooping;多播;Internet 组管理协议;Cisco 组管理协议;多播组注册协议中图法分类号: TP393 文献标识码: A目前,在宽带网上的许多新兴业务,例如数据分发、远程学习和分布式数据库等都需要底层网络支持多播通信,在促进有线电视网和计算机网融合的过程中,计算机网也需要提供类似于传统电视网的多点通信能力.现在以太网是最有发展前途的宽带接入方式,在以太网上实现多播通信就成为网络发展的一个必然趋势.传统的以太网由于其通信采用共享介质,多播数据被当作广播来处理,浪费了网络带宽和主机资源.在交换式以太网中,由于引入了VLAN,可以将通信划分为几个区域,隔离不同的接收者,从而使真正的多播成为可能.实现交换式以太网上的多播与实现IP 多播相比,只需要实现支持动态组的组管理协议,不需要路由协议.∗ Supported by the National Grand Fundamental Research 973 Program of China under Grant No.G1998030405 (国家重点基础研究发展规划(973)); the Beijing Committee of Science and Technology under Grand No.H011710010123 (北京市科学技术委员会资助项目)第一作者简介: 王军(1976-),男,河南汤阴人,博士生,主要研究领域为多媒体数据压缩,网络通信.王军等:交换式以太网上的多播协议497Cisco公司提出了Cisco组管理协议(Cisco group management protocol,简称CGMP)[1].它是在路由器和交换机之间使用的一种通信协议,主要工作方式是由路由器通过CGMP消息通知交换机它所得到的IGMP表信息,交换机上的CGMP模块会把IGMP中的组-主机对转换为组-VLAN对,并依照这个关系转发多播数据.在IEEE 802.1D中定义了GMRP(GARP multicast registration protocol),它依赖于GARP(generic attribute registration protocol)的传输功能,可以用来解决完全二层的多播通信.它是一个纯二层的协议,主机通过GMRP向交换机注册多播的MAC地址,由交换机维护主机MAC和多播MAC地址的对应表.本文提出了一种基于VLAN的二层组管理协议,它利用IP组管理协议IGMP和VLAN实现二层和三层多播组的映射,在3层组管理协议的基础上实现交换式以太网上的多播.1 以太网上的多播实现方法在使用第3层多播的情况下,多播接收者使用IGMP向本地路由器注册接收IP多播数据,路由器使用多播路由协议来构造多播转发树.多播源只传送IP多播包的一个副本,路由器接收到数据后,只有在遇到转发树的树叉时,才会再复制一个副本进行传送.由于数据包仅针对每个注册接收者复制,因此这种通信方式其带宽利用效率很高.但是,一旦数据包到达在网络边缘的第2层交换机,由于二层交换机无法得到主机与多播组的对应关系,所以它们只能向所有连接的客户机和工作站发送多播数据,使整个LAN被广播数据拥塞.如果需要实现以太网上的多播能力,就需要在以太网交换机中部署新的协议,使它能够得到主机与多播组的对应关系,并将多播组对应到交换端口.目前被明确规范定义的以太网组播实现有CGMP和GMRP.CGMP的优点是实现简单,交换机不参与组管理;其缺点是路由器和交换机都需要配置CGMP.GMRP的优点是不依赖于路由器,可以和IP,IPX,AppleTalk或其他网络层协议协同工作,可扩展性好,转发速度快,支持的组数量多.其缺点也很明显,在使用GMRP时,主机的网络接口卡和二层交换机中必须提供对GMRP的支持,而现有设备和系统的协议栈对GMRP的支持并不充分,并且如果有3层多播加入,还必须提供GMRP和IGMP之间的映射方法.如果采用CGMP,路由器和交换机需要部署新的协议,而且必须相互配合一起使用,不利于对现在网络拓扑进行多播扩展.使用GMRP,目前最大的困难是协议栈并不完善,主机和交换机对GMRP的支持不够充分,而且传统多播软件都是在IGMP基础上编制的,如果实现二层的多播,还需要实现IGMP到GMRP的迁移.在不改动原有主机和路由器上的设备和软件的前提下,如何提供二层多播能力,并与原有3层多播实现无缝连接是我们要解决的主要问题.基于上述分析,我们提出使用IGMP Snooping的二层多播方法,其基本思想是利用VLAN划分多播域,侦听IGMP消息用来维护多播VLAN表.主要工作方式是:交换机探测以太网包中IP包头的协议类型,提取IGMP信息包;交换机利用侦听到的IGMP信息决定哪一个端口有主机在哪一个组中,为每一个组创建一个VLAN,创建多播地址和VLAN的映射表,并将它添加到VLAN表中;交换机向所有的端口(除接收)转发侦听到的IGMP查询信息,向属于同一组中的端口转发IGMP报告消息,保证路由器和主机之间的IGMP协议状态与原来一致;交换机根据VLAN表转发多播数据.采用IGMP Snooping的好处在于,主机和路由器的软硬件设备不需要进行任何修改,只需在二者之间加一个支持IGMP Snooping的交换机即可提供3层多播在二层的实现,将多播的范围扩展到边缘子网.表1是3种实现方法的比较.Table 1Comparison of layer-II multicast表1 两层组播比较CGMPIGMPsnoopingGARP/GMRPVLAN Create/configure VLANby router’s infoCreate/configure VLAN byIGMP infoCreate/configure VLAN bymulticast MAC addressDevice Router and switch Switch Switch and host Response delay <2s <1s <200ms MAX groups 228228245Multicast address Mapped from IP multicastaddressMapped from IP multicastaddressDefined by GARP PDUProduct Cisco products Most of swtich A few498 Journal of Software 软件学报 2003,14(3) 2 IGMP SnoopingIGMP Snooping 应用的基础是多播IP 地址与MAC 地址存在对应关系,以及二层交换机具有VLAN 功能.VLAN 功能是指交换机能够根据目的MAC 地址向指定的端口集转发数据.IGMP Snooping 应用的系统协议结构如图1所示.HostRouter SwitchFig.1 The protocol stack of application system图1 应用系统的协议栈IGMP Snooping 的任务是维护VLAN 与组地址的对应关系,并且能够与多播组的变化同步更新,这样二层交换机就可以按照多播组的拓扑结构转发数据.其功能主要包括侦听IGMP 报文、维护组地址和VLAN 的对应表,保持主机IGMP 协议实体和路由器IGMP 协议实体的状态一致性,解决“report flooding”问题.(1) 侦听IGMP 信息报文和根据VLAN 转发数据一般由Switch 底层提供支持.(2) IGMP Snooping 分析IGMP 主机报告,可以得到数据包的源端口和多播地址,然后创建VLAN,每个VLAN 包含所有对应于同一个多播地址的端口,从而得到VLAN 和多播地址的一一对应关系.IGMP Snooping 根据动态组变化和组成员变化更新VLAN 表和VLAN 的端口列表,维护VLAN 和多播地址的一一映射.(3) 在原有的IGMP 协议中,当且仅当存在主机处于“成员”状态时,路由器处于“有成员”的状态.这个断言保证了组管理协议的正确性.IGMP Snooping 通过截获主机和路由器的IGMP 报文,分析其协议状态,然后更新本身数据或状态,产生对应的IGMP 报文发给对应的协议实体,保证IGMP 通信双方协议状态转换的正确性,同时实现基于交换机端口的多播.因此IGMP Snooping 需要保证:当且仅当存在与端口相连的主机处于“成员”状态时,交换机端口处于“有成员”的状态;当且仅当存在交换机端口处于“有成员”状态时,路由器处于“有成员”的状态.(4) 传统IGMP 协议是针对共享的通信信道,所有的IGMP 主机协议中都有“报告抑制”的机制,可以解决“report flooding”的问题.即若有多个主机收到查询报告时,多个主机都会启动发送过程(启动随机定时器,等到Timeout 时再发送报告),先发送的主机报告会抑制其他主机的发送过程(中断其他主机的发送定时器)[1].在交换以太网中,交换机的端口与主机通信使用不同的信道,所以交换机的IGMP Snooping 实体会收到针对一次查询的多份IGMP 主机报告.如果都发给路由器(尽管路由器此时只需要一份报告来表明多播组的存在),路由器会认为是针对多份查询出发的报告,会导致协议状态转换出错.另外,大量的主机报告会耗费路由器端口的带宽.因此,IGMP Snooping 在收到另一次IGMP 查询报文之前,只向路由器转发第1个收到的主机报告,其他主机报告只会引起IGMP Snooping 本身对端口状态的修改,而不会转发给路由器,从而防止在路由器端出现“report flooding”的现象.3 协议描述3.1 基本数据类型(1) IGMP 消息的报文格式[1~3]0 7 8 15 16 31 类型 最大RTime校验和多播组地址 类型:0x11=成员资格查询;0x12=IGMP 版本1成员资格报告;0x16=IGMP 版本2成员资格报告;0x17=离开组 报告.王军等:交换式以太网上的多播协议499最大RTime:规定主机响应成员资格查询前可以等待的最大时间,单位是0.1s.校验和:对8字节的IGMP消息补码之和求16位补码.多播组地址:32位IP组播地址.当“类型”字段为0x11时,多播组地址为全0,表示“常规成员资格查询”报文;当“类型”字段为0x11时,多播组地址为32位IP组播地址,表示“组资格查询”报文,多播组地址是被查询的多播组的地址.当“类型”字段为0x12时,多播组地址是被报告的组的IP多播地址;当“类型”字段为0x17时,多播组地址是要离开的组的IP多播地址.在IGMP中,某些组地址具有特定的含义,例如:224.0.0.1(对应于本子网上的所有主机和路由器系统),224.0.0.2(对应于本子网上的所有路由器).(2) VLAN表,每个表项格式VLAN号端口号T portVLAN号:此VLAN在VLAN表中的序号(0~4095),16位.端口号:在此VLAN中的交换机端口号(0~255),8位.T port:端口属于此VLAN的生存期(单位:s),32位.(3) VLAN与多播组的对应表,每个表项格式多播地址 VLAN号T group 多播地址:多播组的地址,32位.VLAN号:与该组相对应的VLAN的VLAN号,16位.T group:多播组的生存期(单位:秒),32位.3.2 时间常量与定时器查询间隔QI(query interval):125秒〈为路由器启动查询过程的时间间隔〉.查询响应间隔QRI(query response interval):10秒〈为主机产生报告的最大时间间隔〉.组成员资格查询GMI(group membership interval):缺省为260秒.最后组成员查询间隔LMQI(last member query interval):缺省为1秒.最后组成员查询计数LMQC(last member query count):缺省为2.组计数器GT(group timer):=LMQI*LMQC,为2秒.T port:用于判断端口的成员资格.收到“常规成员资格查询”报文时启动,此时T port=min(T port,R),R等于“常规成员资格查询”报文中“最大RTime”字段的值*10,在T port范围内端口必须收到“成员资格报告”,否则将该端口从多播组中删除.每个T port隶属于一个指定组中的一个指定端口(缺省=188s).T group:用于多播组的生存期,收到“成员资格报告”时启动和更新,如果超时,意味着没有成员希望收到指定多播组的通信,将该多播组删除.每个T group隶属于一个指定组(缺省=260s).3.3 协议的运行机制和过程为了维护多播组和VLAN的对应过程,IGMP Snooping还使用4个通信过程来处理IGMP消息和超时事件,通信过程中的主体是路由器(router)、交换机(switch)和n台主机(host).这里,假设交换机的每个端口连接一台主机.对交换机端口来说,处理多台主机连接在同一个端口的情况,与处理一台主机的情况完全一致,连接到同一端口的主机之间仍然遵循传统的IGMP协议.(1) 初始化过程初始时,IGMP Snooping创建全部主机的组(224.0.0.1,all port)和路由器组(224.0.0.2,与路由器相连端口),设置所有的T port和T group为无穷大.(2) 查询和报告过程在传统的“查询和报告过程”中,路由器会定时发送“常规成员资格查询”,主机收到该消息后会启动本身的计数器,计数器的值为0到最大响应时间(报文中的最大RTime)之间的随机数.在计数器减到0时,发送“成员资格报告”.在计数器减到0之前,如果收到对应组的“成员资格报告”消息,主机就会停止计数器和发送过程.路由500 Journal of Software软件学报2003,14(3)器在收到“成员资格报告”之后,会重置该组计数器的值,如果在该计数器有效期间,没有收到“成员资格报告”,则该计数器会减到0,这意味着网络上没有主机在该组中,路由器将不再转发该组的数据.在IGMP Snooping的应用环境中,Switch在收到路由器发送的“常规成员资格查询”之后,更新VLAN表中所有表项中的T port=min(T port,R),其中R是“常规成员资格查询”消息中的最大响应时间(一般为QRI),然后向“224.0.0.1”组转发该消息.Switch在收到“成员资格报告”之后,向“224.0.0.2”组转发第1个报告,直到下次查询过程开始前,不转发其他报告.这种处理减少了路由器需要处理的报告数,而且不影响路由器对多播组的存在进行正确判断.除了转发第1个报文以外,每收到一个report报文,IGMP Snooping都要更新端口的T port为缺省值,并且设置T group为缺省值.主机和路由器的处理与原有IGMP Snooping协议一致.协议流程如图2所示.Fig.2 ‘Query Process’of IGMP Snooping图2 IGMP Snooping的“查询过程”图中Router发送的“常规成员资格查询”被Switch转发给每个主机H i,H1,H2和H3在t0时刻收到消息并启动定时器来发送“成员资格报告”.H1的定时器在t1时刻超时,发送“成员资格报告”,Switch接收后转发.H2和H3分别在t2和t3发送报告,Switch接收后不会转发.(3) 离开过程传统的“离开”过程,希望离开组的主机向路由器发送“离开组报告”,路由器在接收到该消息后,每隔一段时间(=LMQI)发出一条“组资格查询”消息(由LMQC决定发出的消息条数),在报文中的最大RTime字段中指定了最后响应时间(=LMQI),并且设置组计数器(=LMQI*LMQC),如果没有主机响应查询,组计数器减为0,路由器将认为没有主机在这个组中,否则在收到主机报告后,路由器会转入正常的查询和报告过程.在IGMP Snooping的应用环境中,Switch收到“离开组报告”后,向“224.0.0.2”组转发.随后Switch会收到路由器发送的“组资格查询”报文,在设置T port=报文中的最大RTime后,向对应组转发该报文.主机和路由器的处理与原有IGMP Snooping协议一致.(4) 超时过程每过一个时间片,T port和T group都会递减,减为0时产生超时消息,在收到主机或路由器的消息时更新T port 和T group的值.T port超时的处理:意味着在给定响应时间内,该端口相连的网段没有主机在该组中,因此将对应端口从VLAN表中删除.如果对应VLAN不包含任何端口,即VLAN表中没有该VLAN的表项,则表明整个网络没有在该组中的主机,可以将VLAN与多播对应表中的VLAN和多播表项删除,并停止该组的T group定时器.T group超时的处理:意味着在给定响应时间内,整个网络没有主机对查询报文进行响应,即该多播组中没有成员,因此从VLAN和VLAN与多播对应表中删除对应VLAN的所有表项.3.4 状态和状态转换图主机和路由器上IGMP的状态转换图以IGMPv2中的描述为准,详细内容参见文献[1,2].王军等:交换式以太网上的多播协议501交换机上部署的IGMP Snooping实体针对每一个组播组的状态转换图如图3所示,其中使用了256个T port 和一个T group定时器,有7个子过程,触发状态改变的事件有:初始化信号、接收“常规成员资格查询”、接收“组资格查询”、接收“成员资格报告”、接收“离开组报告”、T port超时和T group超时.Fig.3 State flowchart of IGMP snooping图3 IGMP snooping协议的状态流程图Action 0:添加所有端口到组“224.0.0.1”对应的端口集中,添加路由器所连接的端口到组“224.0.0.2”中,设置所有的T group和T port为无穷大.Action 1:向组“224.0.0.1”包含的端口集转发“常规成员资格查询”报文,设置端口的T port为min(T port,R),其中R是IGMP消息中的最大响应时间.清除所有组的组报告标志.Action 2:设置报文来源端口在对应组中的T port为缺省值.判断是否设置了组报告标志,如果没有,则向组“224.0.0.2”包含的端口集转发“成员资格报告”报文,设置T group为缺省值(对应组由报文中的多播组地址标示),设置组报告标志.Action 3:对应“T port超时”的处理过程.Action 4:对应“T group超时”的处理过程.Action 5:向组“224.0.0.2”包含的端口集转发“离开组”报文.Action 6:向对应组转发该“组资格查询”报文,设置对应组的T port=最后响应时间.注意:转发是指向除报文来源端口之外的端口发送,因为与该端口相连的主机已经收到了该报文,无须再次发送.4 验证与测试因为IGMP控制消息也作为组播数据传输,仅依赖二层帧的头信息无法区分IGMP和其他组播包,所以交换机必须检查每一个组播数据包以防止漏掉IGMP控制消息.如果在低端交换机上使用一个较慢的CPU实现IGMP Snooping,组播数据在高速传输时,对交换机性能和网络状况会带来严重的影响,所以IGMP Snooping一般用于带有ASICs模块的高速交换机上,采用硬件进行IGMP检查.我们为了准确地测试IGMP Snooping的可靠性和有效性,在一台二层千兆交换机中设计和实现了IGMP Snooping协议,采用ASIC芯片进行IGMP报文的检查,将所有IGMP控制消息从组播数据中提取出来报告给处理器.采用这台二层千兆交换机,我们组建了如图4所示的试验网进行实验分析和验证.频道服务器提供两套节目,一路来自于文件节目源A,另一路来自于卫星节目源 B.交换机中部署了IGMP Snooping协议.测试可以通过侦听网络中数据报和检查设备上的日志,得到动态组变化时数据交换和协议状态变迁的过程.下面是在一段时间内产生的点播过程,表中列出了产生的协议消息、交换机状态和数据交换过程.实验过程中主机A连接交换机端口1,主机B连接交换机端口2,主机C连接端口3,主机D连接端口4,路由器连接端口15,频道1的组播服务地址是224.5.5.112.在表中对应的MAC组播地址用M112表示,端口号用数字表示,频道1用C1表示.502 Journal of Software软件学报2003,14(3)(Fig.4 The network topology maps of experiment图4 实验环境网络拓扑图A点播C1之前,与A相连的端口1不会收到C1组播的数据,而在A加入C1所在组之后,数据被转发到端口1,同样情况出现在B,C和D.当B离开C1组后,交换机停止转发C1数据到端口2.这说明IGMP Snooping协议可以用在交换机中,配合路由器和主机实现二层的多播功能,实现动态组加入和离开的功能,防止交换机向不在组播组中的网段转发数据.Table 2Description of the testing process表2测试过程描述Demand IGMP messages Status of switch Data flowInitial NULLNULLNULL Host A demand channel C1 General membership report (1−>15) (M112,(15,1)) 15−>1Host B demand channel C1 General membership report (2−>15) (M112,(15,1,2)) 15−>1, 2Host C demand channel C1 General membership report (3−>15) (M112,(15,1,2,3)) 15−>1,2,3Host D demand channel C1 General membership report (4−>15) (M112,(15,1,2,3,4)) 15−>1,2,3,4NULL General membership query (15−>1,2,3,4)General membership report (1,2,3,4−>15)(M112,(15,1,2,3,4)) 15−>1,2,3,4Host B leave channel C1Leave group report (2−>15)Group membership query (15−>2)(M112,(15,1,2,3)) 15−>1,2,35 结束语本文描述了IGMP Snooping协议的设计思想和实现方法,并且在一个二层交换机上设计和实现了整个协议,在实验网环境中进行了正确性验证和测试.由上述陈述和实现可见,IGMP Snooping协议的设计和实现以非常简单、有效的手段解决了目前在交换式以太网中多播应用的网络传输问题,它适合在接入网络交换机中部署,外部通过接入路由器连入Internet,内部采用高速交换式以太网结构,通过VLAN划分虚拟网段.针对智能小区接入中的多播应用IGMP Snooping提供了一种有效而可靠的接入网方案,使计算机网络可以很方便地移植有线电视网中提供的一系列广播服务,促进了三网的融合.当然,在IGMP Snooping协议中还存在着一些不足:(1) 如何准确地发现多播路由器所在端口的问题[4],目前采用的方法是通过嗅探路由协议IP包来确认路由器,或者在交换机和路由器上部署路由器发现协议,由路由器向交换机报告自己的身份;(2) 考虑在IGMP Snooping中加入对IGMPv3的支持[5,6],支持基于源的组播;(3) 针对IGMP离开组的处理过程,需要优化处理过程,减小离开组的延迟.References:[1] Parkhurst WR. Cisco Multicast Routing And Switching. McGraw Hill, 1999. 25~42, 43~53.[2] Deering S. Host extensions for IP multicasting. RFC 1112, Stanford University, 1989.[3] Fenner W. Internet group management protocol. Version 2, RFC 2236, Xerox PARC, 1997.[4] Biswas S, Haberman B, Cain B. IGMP multicast router discovery. Nortel Networks and Cereva Networks. Internet-Draft, 2001.[5] Cain B, Deering S, Fenner B, Kouvelas I, Thyagarajan A. Internet group management protocol. Version 3, Mirror Image Internet,Cisco Systems, AT&T Labs-Research and Ericsson. Internet-Draft, 2001.[6] Fenner B, He HX, Haberman B, Sandick H. IGMP-Based multicast forwarding (IGMP proxying). AT&T-Research, NortelNetworks, Internet-Draft, 2001.。