IPv6组播技术研究
源特定组播路由协议 P IM - SSM[ 4 ]保留了传统 组播路由协议 P IM - SM 模式中的主机显示加入组 播组的高效性 , 但是跳过了 P IM - SM 模式中的共 享树和集合点 RP规程 。在传统 P IM - SM 模式中 , 共享树和 RP规程使用 ( 3 , G) 来表示一个组播 会话 , 其中 G表示一个特定的 IP组播组 , 而 3 表 示发向组播组 G的任何一个源 。 SSM 直接建立由 ( S, G) 标识的一个组播最短路径树 SPT。
与 ASM 相比 , SSM 避免了流量交叉 , 从而提 高了组播的可靠性 ; 避免了组播地址的协商 ; 简化 了路由协议的复杂度 , 提高了路由器工作效率 。 SSM 凭借其更加实用的特性 , 已经成为当前组播中 的典型应用 。
3 实施 IPv6组播的相关协议
IPv6组播根据协议分两部分 : ( 1 ) 主机 —路 由器协议 : 主要功能是管理组成员的加入和离开
主机到路由器之间运行组管理协议 。组管理协 议的作用是当主机运行的进程加入到某个组播组中 时 , 主机向子网中的所有组播路由器发送组成员报 告消息 , 告诉路由器凡是发送到这个组播组的组播 报文都必须发送到本地的子网中 , 这样主机的进程 就可以接收到报文了 。同时 , 子网中的组播路由器 还要定期向其子网中所有主机发送组成员查询消 息 , 查询是否有组成员存在于该子网中 。
IPv6 环 境 下 的 组 管 理 协 议 包 括 MLD v1[ 6 ] 和 MLD v2[ 7 ]协议 。其中 , MLD v2 协议是对 MLDv1 协 议的扩展 , 主要增加了 SSM / SFM 的功能 。
组播侦听者发现协议 MLD 专门用于 IPv6组播 组的管理 。其主要功能为 : IPv6 路由器利用 MLD 协议发现直接相连的链路上是否有组播组成员 , 以 及相邻的路由器正在监听哪些组播地址 。 IPv6 路 由器上运行的组播路由协议根据这些信息 , 保证组 播报文能发送给正确的接收者 。为此组播路由器和 接收主机必须进行组成员关系的交互 , 这种功能是 通过 MLD 来实现的 。
0 引言
1 IPv6组播地址
1988年 , Deering提出了组播 (M ulticast) 的 基本概念 [ 1 ] , 从此 , 组播技术得到了广泛的关注 。 组播的基础是组播组 。一个组播组就是一组希望接 收特定数据流的接收者 。这个组播组没有物理或者 地理的边界 , 组内的主机可以位于互联网或者专用 网络的任何地方 。希望接收特定流向的组数据的所 有主机都必须通过组播成员管理协议后加入该组 。
组播标识 (112位 )
图 1 IPv4、 IPv6地址格式
与 IPv4 相比 , IPv6 提供了更大的地址空间 , 改进了 IP报文头部的结构以提高转发节点的处理 速度 , 支持 QoS, 提供主机的自动配置功能 , 方便 部署和管理 , 对组播提供更好的支持 , 对移动节点 的支持也大大增强了 。除此之外 , IPv6 也增强了 安全性能 , IPSec成为 IPv6 必需具备的安全协议 , IPv6协议中的其他模块都可以利用 IPSec提供的安 全功能 。 IPv6对组播作了进一步的增强 , 并对各 组播地址使用范围作了更明确的规定 。
·75·
© 1994-2011 China Academic Journal Electronic Publishing House. All rights reserved.
韩 华 蒋占卿 冯朝晖 : IPv6组播技术研究
等 ; (2) 组播路由协议 : 主要功能是网络如何将 组播信息从发送端转发到接收端 [ 5 ] 。 311 主机 —路由器协议
G) 来接收该报文 。 源过滤组播 SFM: 是 ASM 服务模型的一个变
种 , 使用与 ASM 相同的地址空间 。它对 ASM 服务 模型作了如下修改 : 每一个上层协议模块现在都可 以请求来自特定组播源发送的组播数据 , 或者可以 请求除了某些特定组播源之外的所有组播源发送的 数据 。MLDv2作为 IPv6 组播环境下的成员管理协 议 , 具有源过滤功能 。虽然从接收者的角度而言 SFM 和 ASM 是两个不同的模型 , 但对于发送者来 说二者之间没有任何差别 。
韩 华 蒋占卿 冯朝晖 : IPv6组播技术研究
(1) 标志字段 ( Flags) : 长度为 4比特 。目前 只指定了第 4位 , 用来表示组播地址是永久的 , 还 是临时的 。如果该比特为 0, 那么对应组播地址是 由因特网 IP 地址编号分配机构 IANA 指定的永久 组播地址 ; 如果该比特为 1, 那么对应组播地址是 临时组播地址 。
组播通信 IP数据包只需要发送一次 , 路由器 会根据组播分发树自动地分发到位于不同网段上的 每一位接收者 , 由于在同一链路上只有一个同样的 组播报文 , 从而可以使在网络中传输的组播报文的 拷贝数最小 。组播技术的出现解决了一个主机向特 定的多个接收者发送信息的问题 。采用组播技术可 以减少不必要的重复发送 , 有效地利用网络带宽 。 这虽然增加了路由器对组播相关协议的处理过程 , 但相对于多次相同的点到点的传输来说 , 减少了大 量路由器和主机对数据包的处理时间 。组播技术减 少了带宽占用 , 从一定程度上减少传输延迟 , 同时 还可以节省发送者的处理时间 、存储容量和网络的 带宽资源 , 改善通信性能 。组播凭借出色的性能 , 在 IPv6中已经取代了广播 , 成为必不可少的协议 。
(11中国人民公安大学网络信息中心 , 北京 100038; 21中国人民公安大学信息安全工程系 , 北京 100038)
摘 要 组播技术随着高带宽一对多多媒体应用的普及而逐渐成为人们关注的技术 。 IPv6 中通 过组播代替了 IPv4中的广播 , 更加坚定了组播技术的地位 。研究 IPv6 下组播技术的有关问题 , 主要包括组播地址 , 组播管理协议 , 组播路由协议 , 以及有关组播安全等 , 从而为 IPv6环境下 实施组播技术提供理论和应用基础 。 关键词 IPv6; 组播 ; 组管理协议 ; 组播路由协议 ; 组播安全 中图分类号 TN915
(2) 范围字段 ( Scope) : 长度为 4 比特 , 用 来表示组播范围 。
(3) 组标识符字段 ( Group ID ) : 长度为 112 比特 , 用于标识组播组 。根据组播地址的标志位 (是临时的还是指定的 ) 以及其地址范围 , 同一组 播标识符可以表示不同的组 。组播地址既依赖于组 标识符 , 又依赖于组播的地址范围 。
MLDv1消息类型分为三种 : (1) 组 播 监 听 查 询 (MLDv1 消 息 类 型 值 为 130) : 包括一般查询 ( General Query) 和特定组播 地址查询 (M ulticast - Address - Specific Query) ; (2) 组 播 监 听 报 告 (MLDv1 消 息 类 型 值 为
中国人民公安大学学报 (自然科学版 )
2007年第 4期 No14 2007 Journal of Chinese Peop leπs Public Security University ( Science and Technology) 总第 54期 Sum54
I Pv6组播技术研究
韩 华 1 , 蒋占卿1 , 冯朝晖 2
根据 IPv6的组播地址结构可知 , 可能有 2112 个组 ID。然而由于 IPv6 组播地址映射到以太网组 播 MAC地址的方式 , RFC3513[ 2 ]推荐从 IPv6 组播 地址的低 32比特分配 Group ID , 将余下的组 ID 比 特设置 为 0; 通 过 只 使 用 低 端 的 32 比 特 , 每 个 Group ID 映射到一个唯一的以太网组播 MAC地址 。
111 组播地址格式
IP组播地址即指定的一个 IP主机的集合 , 集
合内的主机都加入了一个指定的组播组并希望接收发向该组的组播信息 。IPv4组播地址结构 :
1110
组播组 (28位 )
IPv6组播地址结构 :
1 1 1 1 1 1 1 1 标志 (4位 ) 范围 (4位 )
IPv6组播地址中 , 除了第 1字节之外的剩余部 分包括三个字段 , 见图 1。
作者简介 韩华 (1977— ) , 男 , 河北人 , 系统分析师 。 ·74·
© 1994-2011 China Academic Journal Electronic Publishing House. All rights reserved.
ASM 组播体系的部署有很多问题 , 因为 ASM 组播体系并没有提供一种可部署的解决方案来防止 多个应用之间地址冲突 。另外 , 由于缺乏访问控制 和难以管理等原因 , 使得 ASM 的部署很难得以广 泛的商业应用 。同时 , 现实生活中大量的多媒体业 务都是确定组播源的 , 而且当存在多个发送者时也 可以采取几个一对多模型来实现 。于是 IETF提出 了源特定组播模型 。它采用一到多的业务模式 , 能 较好地解决任意源组播中的问题 。
从 IPv6 的 组播 地址 格式 定义 可 见 其 相 对 于 IPv4所具有的优越性 : 具有足够的地址空间 ; 范 围字段的应用使 IPv6 组播很方便划分组播域 , 从 而减少范围重叠的情况 。 112 IPv6组播地址到数据链路层地址的映射
当前由 IPv6组播地址映射到以太网 MAC地址 的方 法 是 , MAC 组 播 地 址 的 高 16 位 规 定 为 0x3333, 取 IPv6组播地址的低 32比特 , 并用它来 创建 MAC组播地址 。小于或等于 32比特的 Group ID 将会产生唯一的 MAC地址 。
路由器周期性地发送通用请求 ( General Que2 ry) 报文 , 以查询该链路上是否存在某组播地址的 组成员 。节点收到路由器发送的通用请求报文后 , 经过随机时延后发出组播监听报告 。这样是为了防 止所有的节点都在同一时间发出报告报文 , 从而造 成网络的突发性阻塞 。当路由器收到链路上的报告 报文时 , 如果报告地址不在路由器的列表上 , 则加 入该项 , 否则计时器重新置位 。如果某个地址的计 时器过期 , 则从地址列表中删除 。 ·76·