论文部分内容阅读
摘 要:主要阐述组播的基本概念、IGMP协议及IGMP Snooping的原理,并对IPTV直播业务中的二层设备上的IGMP Snooping进行了实现研究。
关键词:组播;IGMP Snooping;二层;IPTV
中图分类号:TP393.07
随着宽带网络的技术的快速发展,家庭宽带用户的逐渐普及,三网融合也已经逐步开始实施。IPTV业务是三网融合的一个重大切入点,是一种利用宽带IP网络,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。组播技术因为网络利用率高、时性好成为IPTV直播业务中一项关键技术。本文主要着重于阐述基于IGMP协议上的IGMP Snooping(组播侦听)二层组播技术在IPTV直播业务中的实现研究。
1 组播与IGMP
1.1 单播、广播与组播
IP通信有三种方式:单播、广播、组播。组播是一种单点到多点的协议体系,它将IP数据包从一个源地址传送到多个目的地,但数据拷贝只传输一份。组播传输方式下,即使用户数量成倍增长,主干带宽不需要随之增加。与单播相比,多播可以大大的节省网络带宽,提高了数据传送效率;与广播相比又减少了主干网出现拥塞的可能性,避免了广播的“泛洪”。
1.2 组播报文中的组播IP与组播MAC
对于组播报文来说,其目的IP是组播IP地址,而目的MAC是组播MAC。在三层IP层中,组播报文的目的IP地址采用D类IP地址,范围从224.0.0.0到239.255.255.255。组播MAC根据组播IP映射,强制MAC的头25bit为01-00-5e,后23位对应IP地址的后23bit,即IP地址前9个bit丢弃不用,前面加上01-00-5e得出的即是该组播IP地址对应的MAC。
1.3 IGMP协议
IGMP具有三种版本,IGMP v1、v2和v3。本文主要以IGMP v2为实现对象,IGMP协议报文主要分为加入(Report)、离开(Leave)、查询(Query)三种报文。主机可以向路由器或交换机请求加入(Report)或离开(Leave)某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。主机加入某个组之后会定期收到查询者发来的组播查询(Query)报文,主机定期回复Report以维持该组的加入状态。
2 IPTV直播业务中的IGMP Snooping
2.1 IGMP Snooping原理
IGMP Snooping是运行在二层设备上的组播约束机制,用于管理和控制组播组,是工作在二层的组播技术。简单来说,IGMP Snooping是为了防止二层设备上组播报文的泛洪,监听IGMP协议包并提取相应信息,形成组播转发表,然后对组播业务根据组播转发表将组播数据流转发到正确的端口。
2.2 IGMP Snooping实现研究
2.2.1 IGMP与IPTV业务研究
IPTV业务中,对于作为终端的机顶盒,通过发送IGMP协议的加入(Report)报文通知IPTV媒体服务器自己希望加入某个组(频道)并接收某个特定组播组的信息,服务器才会下发对应频道的组播流使用户能收看到该频道。机顶盒通过发送IGMP离开(Leave)报文通知服务器希望离开并不再接收某个组的信息,该频道组播流就会不再下发给该机顶盒。IPTV媒体服务器来通过IGMP协议查询(Query)报文周期性地查询所有组或某个组的成员是否处于活动状态,机顶盒收到查询报文(Query)时需要回复加入报文(Report)以维持加入状态使频道组播流一直持续。
2.2.2 框架
如下图,将二层设备上的控制平面和转发平面独立开,以减少相互影响。二层设备处在机顶盒与媒体服务器之间,在控制平面监听、分析IGMP协议报文,提取信息配置到组播转发表,而转发平面根据组播转发表对UDP组播数据流进行转发。
图1
对于Report加入和Leave离开报文,控制平面提取出报文中的目的IP(组播IP地址)、源端口(二层设备上从哪个端口收到这个报文)、源MAC(发出请求的设备源MAC地址),并将这些信息配置到组播转发表中。此外,二层设备透明的转发IGMP协议报文。
2.2.3 组播转发表
组播转发表的关键字为组播IP地址,一个组播地址对应一条组播转发条目,所有的组播条目可用哈希表或链表等形式组织起来。当一个下挂设备发来请求加入组播IP1,源端口为PortA,源MAC为Mac1,控制平面查看组播转发表中如果没有这个组播IP,则添加组播IP1到表中,并将源端口PortA挂到组播IP1下的端口链表中,再将源MAC地址Mac1挂到源端口下。如果另个下挂设备请求加入同一个组播组IP1,源端口PortB,源MAC为Mac2,因为IP1已经存在,则找到组播IP1的条目,将PortB挂到组播IP1的端口链表中PortA后面,并将Mac2挂到PortB的Mac链表中。此时,这条组播转发条目如下图所示。
图2
二层设备转发数据包时,如果碰到目的MAC为01-00-5e开头的报文,则认为是组播报文,进一步分析出目的组播IP地址,在组播转发表中根据组播IP查找应该往哪一个或哪些端口发送,如上图中如果是组播IP1的数据流则发送到PortA和PortB,其他端口不会转发,避免了组播流在各个端口的泛洪。
另外,对于一些二层设备上如果存在无线端口,需要通过组播转发表中记录的MAC地址来替换组播流的目的组播MAC地址,将其替换为单播MAC地址,再发送到无线端口,才能使另一端的无线设备收到组播流。
3 结束语
IGMP Snooping解决了二层设备上组播报文的泛洪,大大提高了二层设备上对组播报文的转发效率,并减少了网络拥塞。本文基于三网融合下的IPTV业务环境,阐述了IGMP Snooping在二层设备上的原理及具体实现,并通过实验验证了实现方案有效、可行。
参考文献:
[1]杜旭,张连靖,余江.IGMP Snooping协议实现方案[J].计算机应用,2004(z1):14-15.
[2]王军,吴志美.交换式以太网上的多播协议[J].软件学报,2003(03):496-502.
[3]W.Fenner.Internet Group Management Protocol,Version 2.RFC 2236.1997.
作者单位:贵州大学职业技术学院,贵州黔东南苗族侗族自治州 556000;黔东南民族职业技术学院,贵州黔东南苗族侗族自治州 556000
关键词:组播;IGMP Snooping;二层;IPTV
中图分类号:TP393.07
随着宽带网络的技术的快速发展,家庭宽带用户的逐渐普及,三网融合也已经逐步开始实施。IPTV业务是三网融合的一个重大切入点,是一种利用宽带IP网络,向家庭用户提供包括数字电视在内的多种交互式服务的崭新技术。组播技术因为网络利用率高、时性好成为IPTV直播业务中一项关键技术。本文主要着重于阐述基于IGMP协议上的IGMP Snooping(组播侦听)二层组播技术在IPTV直播业务中的实现研究。
1 组播与IGMP
1.1 单播、广播与组播
IP通信有三种方式:单播、广播、组播。组播是一种单点到多点的协议体系,它将IP数据包从一个源地址传送到多个目的地,但数据拷贝只传输一份。组播传输方式下,即使用户数量成倍增长,主干带宽不需要随之增加。与单播相比,多播可以大大的节省网络带宽,提高了数据传送效率;与广播相比又减少了主干网出现拥塞的可能性,避免了广播的“泛洪”。
1.2 组播报文中的组播IP与组播MAC
对于组播报文来说,其目的IP是组播IP地址,而目的MAC是组播MAC。在三层IP层中,组播报文的目的IP地址采用D类IP地址,范围从224.0.0.0到239.255.255.255。组播MAC根据组播IP映射,强制MAC的头25bit为01-00-5e,后23位对应IP地址的后23bit,即IP地址前9个bit丢弃不用,前面加上01-00-5e得出的即是该组播IP地址对应的MAC。
1.3 IGMP协议
IGMP具有三种版本,IGMP v1、v2和v3。本文主要以IGMP v2为实现对象,IGMP协议报文主要分为加入(Report)、离开(Leave)、查询(Query)三种报文。主机可以向路由器或交换机请求加入(Report)或离开(Leave)某个组,网络中的路由器和交换机有选择的复制并传输数据,即只将组内数据传输给那些加入组的主机。主机加入某个组之后会定期收到查询者发来的组播查询(Query)报文,主机定期回复Report以维持该组的加入状态。
2 IPTV直播业务中的IGMP Snooping
2.1 IGMP Snooping原理
IGMP Snooping是运行在二层设备上的组播约束机制,用于管理和控制组播组,是工作在二层的组播技术。简单来说,IGMP Snooping是为了防止二层设备上组播报文的泛洪,监听IGMP协议包并提取相应信息,形成组播转发表,然后对组播业务根据组播转发表将组播数据流转发到正确的端口。
2.2 IGMP Snooping实现研究
2.2.1 IGMP与IPTV业务研究
IPTV业务中,对于作为终端的机顶盒,通过发送IGMP协议的加入(Report)报文通知IPTV媒体服务器自己希望加入某个组(频道)并接收某个特定组播组的信息,服务器才会下发对应频道的组播流使用户能收看到该频道。机顶盒通过发送IGMP离开(Leave)报文通知服务器希望离开并不再接收某个组的信息,该频道组播流就会不再下发给该机顶盒。IPTV媒体服务器来通过IGMP协议查询(Query)报文周期性地查询所有组或某个组的成员是否处于活动状态,机顶盒收到查询报文(Query)时需要回复加入报文(Report)以维持加入状态使频道组播流一直持续。
2.2.2 框架
如下图,将二层设备上的控制平面和转发平面独立开,以减少相互影响。二层设备处在机顶盒与媒体服务器之间,在控制平面监听、分析IGMP协议报文,提取信息配置到组播转发表,而转发平面根据组播转发表对UDP组播数据流进行转发。
图1
对于Report加入和Leave离开报文,控制平面提取出报文中的目的IP(组播IP地址)、源端口(二层设备上从哪个端口收到这个报文)、源MAC(发出请求的设备源MAC地址),并将这些信息配置到组播转发表中。此外,二层设备透明的转发IGMP协议报文。
2.2.3 组播转发表
组播转发表的关键字为组播IP地址,一个组播地址对应一条组播转发条目,所有的组播条目可用哈希表或链表等形式组织起来。当一个下挂设备发来请求加入组播IP1,源端口为PortA,源MAC为Mac1,控制平面查看组播转发表中如果没有这个组播IP,则添加组播IP1到表中,并将源端口PortA挂到组播IP1下的端口链表中,再将源MAC地址Mac1挂到源端口下。如果另个下挂设备请求加入同一个组播组IP1,源端口PortB,源MAC为Mac2,因为IP1已经存在,则找到组播IP1的条目,将PortB挂到组播IP1的端口链表中PortA后面,并将Mac2挂到PortB的Mac链表中。此时,这条组播转发条目如下图所示。
图2
二层设备转发数据包时,如果碰到目的MAC为01-00-5e开头的报文,则认为是组播报文,进一步分析出目的组播IP地址,在组播转发表中根据组播IP查找应该往哪一个或哪些端口发送,如上图中如果是组播IP1的数据流则发送到PortA和PortB,其他端口不会转发,避免了组播流在各个端口的泛洪。
另外,对于一些二层设备上如果存在无线端口,需要通过组播转发表中记录的MAC地址来替换组播流的目的组播MAC地址,将其替换为单播MAC地址,再发送到无线端口,才能使另一端的无线设备收到组播流。
3 结束语
IGMP Snooping解决了二层设备上组播报文的泛洪,大大提高了二层设备上对组播报文的转发效率,并减少了网络拥塞。本文基于三网融合下的IPTV业务环境,阐述了IGMP Snooping在二层设备上的原理及具体实现,并通过实验验证了实现方案有效、可行。
参考文献:
[1]杜旭,张连靖,余江.IGMP Snooping协议实现方案[J].计算机应用,2004(z1):14-15.
[2]王军,吴志美.交换式以太网上的多播协议[J].软件学报,2003(03):496-502.
[3]W.Fenner.Internet Group Management Protocol,Version 2.RFC 2236.1997.
作者单位:贵州大学职业技术学院,贵州黔东南苗族侗族自治州 556000;黔东南民族职业技术学院,贵州黔东南苗族侗族自治州 556000