1、1 IGMP Snooping 组播协议开发 摘 要 随 着 网络技术的发展,传统的 Internet 点对点传输的单播方式面对大量的信息交互传输已经 显得力不从心。组播技术则正是为解决此类问题应运而生的。目前以太网交换机 等二层网络设备 在构建网络时己得到越来越广泛的应用,在以太网 二层 上实现组播已显得十分必要。本文主要探讨在以太网 二层 上的一种组播协议 :组播侦听协议 1。 本文首先分析了组播技术和以太网设备的发展形势和用户需求,介绍了国内外几种组播技术的特点,强调在以太网 二层 上实现组播技术的必要性 ;然后 ,详细讨论了二层 设 备 上组播侦听协议的实现技术,并对所实现的组播控制功
2、能提出了自己的测试方法,给出了几种测试实例 ;最后,通过阐述当前以太网二层的组播技术实现的方法和动向,为今后在以太网二层上组播技术的进一步完善和发展给与启示。 本文设计实现的组播侦听协议代码量很小,与底层协议平台的 结 合度也非常小,此外还具有很强的可伸缩性,并提供了方便的配置接口。因此,本实现不仅适用于而二层网络设备,而且可以非常轻易的移植到其它更高级的网络设备如三层交换机。测试 的结果 证明了软件实现的正确性和完整性。 关键词 : 因特网 组管理协议 因特网 组管理协议 监听 组播 ; 2 3 Abstract With the development of Network technol
3、ogy, Conventional unicast of point to point on internet has not enough capability to support the exchange of information. The technology multicast just can resolve these problems. Ethernet switches have been used widely in constructing networks now. And it is very necessary to realize multicast on E
4、thernet 2 layer. In this paper, the multicast protocol (IGMP Snooping) on Ethernet 2 layer is discussed. The paper firstly describes the development position and the users requirement of the multicast and the Ethernet devices, introduces several foreign multicast technologies, and emphasizes the nec
5、essity of Implementing the multicast to the Ethernet 2 layer. Secondly, it discusses how to carry out IGMP Snooping on the layer 2 devices in detail. And gives the testing method and several examples. Finally, Through deep analysis, it can gasp the current methods and directions of realization multi
6、cast on Ethernet 2 layer devices, and give some inspire for more consummation for technology of multicast on Ethernet 2 layer. The IGMP Snooping of this design, its code size is little, and also has the features of little coupling with the lower protocol flat, good scalability, and convenient config
7、uration interface. So, it applies not only the 2 layer network devices, but also can be porting to other network devices, eg.Layer3 switch easily. The result of the testing proves its correctness and integrity. Key words: Internet Group Management Protocol IGMP Snooping Multicast4 5 目录 第一章 引论 .9 1.1
8、 网络组播技术的需求与发展 .9 1.2 国内外同类产品综述 .10 1.3 本文的主要工作 . 11 第二章 IP 组播技术 .12 2.1 组播概述 .12 2.2 组播地址 .12 2.2.1 IP D 类地址 . 12 2.2.2 组播地址分配 . 13 2.3.3 组播 MAC 地址 . 13 2.3 IGMP 协议简介 .13 2.3.1 IGMP 报文 . 13 2.3.2 IGMPv3 的源过滤机制 . 15 2.4 IGMP Snooping 简介 .15 2.4.1 IGMP Snooping 的含义 . 15 2.4.2 IGMP Snooping 的作用 . 16 第三
9、章 IGMP Snooping 的总体设计描述 .18 3.1 开发环境说明 .18 3.2 IGMP Snooping 在网络协议栈中的位置 .18 3.3 IGMP Snooping 的实现原理 .18 3.4 IGMP Snooping 的总体模块设计 .19 3.5 接口说明 .19 3.5.1 用户接口 . 19 3.5.2 外部接口 . 20 3.6 模块的运行视图 .20 3.6.1 数据报判断和处理模块流程 . 20 3.6.2 数据转发模块和数据结构操作模块流程 . 21 3.7 IGMP 报文和 IGMP 定时器设计 .21 3.7.1 IGMP 报文 . 21 6 3.7
10、.2 IGMP 定时器 . 22 第四章 IGMP Snooping 的详细设计描述 .23 4.1 组播转发链表的实现 .23 4.2 IGMP Snooping 处理数据包的流程 .24 4.3 对 IGMP 报文的处理 .25 4.3.1 对 IGMP 组成员关系查询报文的处理 . 25 4.3.2 对 IGMP 组成员离开报告的处理 . 25 4.3.3 对 IGMP 第一版本成员关系报告的处理 . 25 4.3.4 对 IGMP 第二版本成员关系报告的处理 . 25 4.3.5 对 IGMP 第三版本成员关系报告的处理 . 25 4.4 对组播转发链表的操作 .27 4.4.1 查找
11、一个组播转发项 . 27 4.4.2 更新转发项的时间戳 . 28 4.4.3 增加一个组播转发项 . 28 4.4.4 删除一个组播转发项 . 28 4.5 定时器的实现 .28 4.6 各模块中接口函数的实现 .29 4.6.1 网桥转发数据包模块详细设计说明 . 29 4.6.2 网桥组播转发链表操作详细设计说明 . 32 4.6.3 数据报判断和处理详细设计说明 . 36 第五章 功能测试的方法 .38 5.1 测试目的 .38 5.2 测试环境和测试拓 扑图 .38 5.3 测试过程及结果 .38 5.3.1 报文处理和组播数据转发功能的测试 . 38 5.3.2 定时器功能的测试
12、. 40 5.4 测试小结 .40 第六章 结论 .42 致谢 语 .43 参考文献 .44 附 录 .45 7 Contents Chapter 1 Model-based Diagnosis .9 1.1 Multicast network technology needs and development .9 1.2 Summary of similar products at home and abroad .10 1.3 The main work of this paper . 11 Chapter 2 IP Mutilcast Technology.12 2.1 Multicas
13、t summarize .12 2.2 Multicast Address.12 2.2.1 IP Address of kind D . 12 2.2.2 Multicast Address Distribution . 13 2.3.3 Multicast MAC Address . 13 2.3 IGMP Introduction .13 2.3.1 IGMP Report . 13 2.3.2 IGMPv3 source filtering mechanisms . 15 2.4 IGMP Snooping Introduction.15 2.4.1 The meaning of IG
14、MP Snooping . 15 2.4.2 The effect of IGMP Snooping . 16 Chapter 3 Describes the overall design IGMP Snooping.18 3.1 Development environment Note .18 3.2 IGMP Snooping in the network protocol stack in the position .18 3.3 IGMP Snooping the principle of achieving .18 3.4 IGMP Snooping the overall modu
15、lar design.19 3.5 interface Note .19 3.5.1 user interface . 19 3.5.2 external interfaces . 20 3.6 The operation of Module view .20 3.6.1 data reported judgement and processing module processes . 20 3.6.2 modules and data transmitted data structure operation module processes . 21 3.7 IGMP Report Desi
16、gn and IGMP timer .21 8 3.7.1 IGMP Report . 21 3.7.2 IGMP timer . 22 Chapter 4 IGMP Snooping describe the detailed design .23 4.1 Multicast forwarding the chain to achieve .23 4.2 The data process of IGMP Snooping .24 4.3 IGMP report processing .25 4.3.1 the handling of IGMP_HOST_MEMBERSHIP_QUERY .
17、25 4.3.2 the handling of IGMP_HOST_LEAVE_MESSAGE. 25 4.3.3 the handling of IGMPV1_HOST_MEMBERSHIP_REPORT . 25 4.3.4 the handling of IGMPV2_HOST_MEMBERSHIP_REPORT . 25 4.3.5 the handling of IGMPV3_HOST_MEMBERSHIP_REPORT . 25 4.4 Multicast forwarding chain operations .27 4.4.1 find a multicast forward
18、ing entry. 27 4.4.2 update forward entry of the timestamp . 28 4.4.3 add a multicast forwarding entry . 28 4.4.4 delete a multicast forwarding entry. 28 4.5 Timer to achieve.28 4.6 Module interfaces Function of the realization .29 4.6.1 Bridge transmitted data packets module detailed design Note . 2
19、9 4.6.2 Bridge Multicast forwarding chain operations that the detailed . 32 4.6.3 judgement and processing data on the detailed design note . 36 Chapter 5 Functional test methods.38 5.1 The purpose of testing .38 5.2 Test environment and test topology .38 5.3 Testing process and results.38 5.3.1 mul
20、ticast report processing and data forwarding test . 38 5.3.2 timer function tests. 40 5.4 Summary test.40 Chapter 6 Conclusion.42 Acknowledgement .43 References .44 Supplement.45 9 第一章 引论 1.1 网络组播技术的需求与发展 近年来,随着网络技术的发展,使得各种单一媒体相继成为网络传输中的数据,进而各种媒体的融合使得网络多媒体运用层出不穷。目前,在 Internet 上产生了许多新的应用,其中不少是高带宽的多媒体应用,譬如网络视频会议(可视化 IP 电话会议系统)、网络音频视频广播、多媒体远程教育、远程会诊,而传统网络最初是为数据传输而设计的,是典型的点点通信模式,是为保证 数据可靠传输而设计的,所用的传输协议多为点到点的协