拟 制 人时 间
IGMP 协议详解与测试方法
1 基本信息
1.1 摘要
本文主要介绍IGMP协议与我司终端产品IGMP的测试方法。
1.2关键字
IGMP,SNOOPING
1.3 缩略语
IGMP Internet Group Management Protocol Internet 组管理协议SMB SmartBits 思博伦通信网络分析仪CPE Customer Premise Equipment 用户侧设备
2 协议解释
2.1 IGMP 作用
¾ 实现一对多数据流业务,有很多种实现方式,如广播,但是浪费带宽,会造成广播风暴:
¾ 如果用IGMP 的话,根据成员的需要去接受数据流业务:
组播成员2
组播成员1
2.2 IGMP协议
¾IGMP协议用于IPv4系统向任何邻居组播路由器报告其组播成员资格。IP组播路由器自己本身也可以是一到多个组播组的成员。这时,组播路由器要实现协议的组播路由器部分和组成员部分。
¾报文格式
IGMP V1 报文格式
Ver Type Reserved Checksum
Group Address
IGMP V2 报文格式
Type Max Resp Time Checksum
Group Address
Membership Query: 成员关系查询(0x11)
V1 Membership Report: 版本 1 成员关系报告(0x12)
V2 Membership Report: 版本 2 成员关系报告(0x16)
Leave Group: 离开组报告(0x17)
¾IGMP组播地址
组播IP地址用于标识一个IP组播组。IANA把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。如下图所示(二进制表示),IP组播地址前四位均为1110。
八位组(1)八位组(2)八位组(3)八位组(4)
1110XXXX XXXXXXXX XXXXXXXX XXXXXXXX
组播地址的分类:
保留——224.0.0.0 - 224.0.0.255
用户组播地址——224.0.1.0 - 238.255.255.255
本地管理组——239.0.0.0 - 239.255.255.255 (用于私人组播领域,类似私有IP地址)
¾IGMP组播地址
2层的MAC地址是如何与3层的IP地址进行映射的呢?
通过将MAC地址的前25位强行规定位01.00.5e,而后23位对应IP地址的后23位,而组播IP地址的前4位均相同如:
IP地址: 1110yyyy.yxxxxxxx.xxxxxxx.xxxxxxxx
MAC地址: 00000001.00000000.01011110.0xxxxxxx.xxxxxxx.xxxxxxxx
2.3 IGMP版本
¾IGMP的不同版本
Version 1:在[RFC-1112]中声明,是第一个广泛使用的IGMP版本。
Version 2:在[RFC-2236]中声明,添加了“低离开延迟”和特定组查询功能。
Version 3:在[RFC-3376]中声明,添加了“源过滤”机制,允许系统选择想要接收的特定组播源或者排除不想接收的特定组播源。
2.4 IGMP工作
¾IGMP V1
¾IGMP V2 :解决了V1时延问题
¾IGMP V3:只接受特定组播源的数据流:
2.5 SNOOPING
¾IGMP SNOOPING 功能
对交换机端口接收到的Report报文进行分析,并在交换机中建立相应的组播MAC地址与端口的对应表项,从而实现组播数据包的二层快速转发。
¾IGMP SNOOPING 工作过程
3 测试方法
3.1 用SMB测试
¾CPE设置:
CPE设置静态IP方式:
IP:70.1.1.10/24 GW:70.1.1.1
¾SMB设置
注意:上图中Server端发送的一定要是UDP报文;
Client端添加Group时选择要测试的版本。
¾测试IGMP SNOOPING时,应建立两个Group,分别join到一个组播源,查看此时各客户端对此组播流的接收情况:如果一个客户端加入时,另一客户端也可以收到组播流,证明IGMP SNOOPING没有开启或此功能失效。
¾IGMP SNOOPING只限四口的CPE,单口的不支持。
3.2 实际环境测试
¾网络拓扑
¾测试设置
CPE设置:PPPoE拨号到BRAS,开启IGMP Proxy及IGMP SNOOPING;
VLC设置:在Media Server打开VLC,以打开“文件“(视频格式)方式,并填写组播UDP地址;
在PC1、PC2打开VLC,以打开“网络串流”方式;
¾版本设置
如果要测试IGMP V1或V2(默认发的IGMP Report报文是V3),那就要修改服务端及客户端PC的注册表:
1.click Start ,click Run ,type regedit ,and then click OK 。
2.locate and then click in registry following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
3.在编辑菜单上, 指向新建,然后单击DWORD 值。
4.键入IGMPVersion ,然后按 ENTER 键。
5.在编辑菜单上, 单击修改。
6.键入3 ,然后单击确定。
7.IGMPVersion registry key takes following values:
值IGMP 版本支持
2 1
3 2
4 3 (默认值)