APP下载

IPv6物联网层次转发体系中的地址压缩

2016-06-30陈文龙肖永康魏云刚

计算机研究与发展 2016年4期
关键词:物联子网IP地址

肖 融 孙 波 陈文龙 肖永康 魏云刚

1(北京师范大学信息科学与技术学院 北京 100875)2(首都师范大学信息工程学院 北京 100048)(xiaorong@bnu.edu.cn)

IPv6物联网层次转发体系中的地址压缩

肖融1孙波1陈文龙2肖永康1魏云刚1

1(北京师范大学信息科学与技术学院北京100875)2(首都师范大学信息工程学院北京100048)(xiaorong@bnu.edu.cn)

摘要作为“互联网+”计划的重要组成部分,物联网广泛应用于人类社会的各个方面.IPv6节点标识是物联网大规模部署的基础.然而,128 b的IPv6地址却给资源受限的物联网增加了存储、带宽等代价.面向物联网层次转发体系,设计了IACH地址压缩机制,包括:去除尾部无效寻径信息、地址剥离、地址扩展等.接着,提出了地址映射机制,将外部无规律的IPv6地址映射成物联子网虚拟地址,使其可应用上述IACH机制进行压缩.该机制与现有6LoWPAN兼容.实验及性能分析表明:IACH可大幅提升物联网报文传输的有效负载比例.对于相同长度的IP上层负载,IACH转发时延略低于标准6LoWPAN.

关键词物联网;层次转发;地址压缩;IPv6;地址映射

“互联网+”计划正迅速推动社会各行业的互联网进程,而物联网是“互联网+”最核心的技术之一,它在智慧城市、物流管理、环境监测等多个方面发挥重要作用.物联网部署与现有互联网的广泛融合[1],对物联网体系结构的统一性及规范性提出了更高的要求.一体化节点标识是物联网技术规范化、标准化的基础,IPv6地址充当物联网节点标识是大势所趋.然而,IPv6地址也给资源受限的物联网带来了新的难题,128 b的地址格式使得物联网节点在存储、处理、协议带宽等多个方面增加了代价.所以,物联网环境中的IPv6地址压缩机制研究极为重要.现有6LoWPAN[2]的地址压缩技术虽能有效压缩IPv6地址存储,但其在压缩对象的范围及可扩展等方面略显不足.

IPv6物联网转发体系以层次树为主,例如RPL协议[3],它已在典型物联网操作系统中实现[4-5].文献[6]为了提升自愈、可扩展等路由性能,设计了一种IPv6轻量级树型层次转发模型TFAD.本文针对TFAD提出了层次结构地址压缩机制(IPv6 address compression based on hierarchical structure, IACH).它利用层次结构中父子节点IPv6地址的继承关系,设计转发过程中IP地址的压缩存储机制,以最经济的代价提供IPv6节点标识.主要压缩方法包括:去除尾部“0”值无效寻径信息;下行传输时的IPv6地址剥离技术;上行传输时的IPv6地址扩展技术.另一方面,由于访问物联子网的外部IPv6地址范围大、无特定规律,导致IP地址压缩困难.提出了基于网关的地址映射机制,将外部IPv6地址映射成物联子网虚拟地址,再应用前述IPv6地址压缩机制对虚拟地址进行压缩.地址映射只在资源丰富、处理能力较强的的网关(根节点)实施,对于通信过程中的其它物联网节点完全透明.而且,IACH机制基于6LoWPAN协议扩展设计实现,兼容现有6LoWPAN功能.基于真实节点的实验及性能分析表明:IACH地址压缩机制大幅增加了物联网数据传输的有效负载比例;对于相同长度的IP上层负载,IACH转发处理时延略低于标准6LoWPAN.

1相关研究

IEEE 802.15.4标准[10]描述了低速无线个域网(low-rate wireless personal area network, LR-WPAN)的物理层及媒体接入控制层协议规范,其协议复杂度较低、运行成本小,适合传感节点间的低带宽传输.基于802.15.4的IPv6报文传输面临的一个重要问题是:链路层传输的每个数据帧承载的有效数据太少.802.15.4协议帧长度不超过127 B,链路层MAC帧头最大为25 B,MAC安全头最大为21 B.每个数据帧中IP报文只有少量的存储空间.考虑40 B的IPv6报头以及传输层头部信息(TCP为20 B、UDP为8 B),应用层协议所能传输的信息就极为有限.所以,基于802.15.4的IPv6报文传输必须使用压缩技术提高传输性能.

此前的IP压缩技术研究,如ROHC[11],主要基于有状态的数据流进行压缩,核心思想是去除报文中属于同一数据流的公共信息.这种压缩技术只对生存期较长的数据流有意义,不适用数据传输少且不太频繁的低功耗有损网络.最初基于802.15.4的IP压缩技术由文献[12]提出,包括HC1和HC2算法.之后,压缩技术又由文献[13]优化扩展:使用共享上下文对全局地址压缩、对流量类别和流标签单独压缩.6LoWPAN工作组针对IPv6头部提出的LOWPAN_IPHC编码格式是目前最被各界认可的压缩算法.

6LoWPAN压缩技术主要实施3个方面的工作:1)去除不同协议层之间的冗余信息;2)省略IPv6头部中基本不变化的字段或压缩取值范围较小的字段;3)利用共享上下文信息,压缩部分传输内容.

6LoWPAN存在如下局限或不足:1)只对无状态自动生成的全局IPv6地址或本地链路地址(Link local地址)压缩效果较好.Link local地址只在单跳链路传输时使用,使用范围很小;而无状态自动全局IPv6地址没有层次性,在物联子网中无法基于子树进行地址聚合,无法支撑高效的层次路由.2)没有提供物联子网外部IPv6地址的压缩方法.LOWPAN_IPHC规范中,对于外部地址,如果基于上下文状态可压缩至64 b,否则就只能携带128 b完整地址传输,压缩效果不理想.3)压缩机制的可扩展性不强.该规范对主机位给出了典型长度的限制,如64 b或16 b,不支持更灵活的长度变化.本文工作在以上3个方面进行了改进或优化.

无论是早期的无线传感器网络还是现在的物联网,层次体系都是最广泛使用的路由转发结构[14].层次结构中,物联网节点被划分成多个小组,每组的组员节点与组头节点严格遵循层次隶属关系,组员总是通过组头与外部进行通信.RPL路由体系[2]与广泛使用的分簇路由[15]都属于层次路由.作者前期完成的轻量级树型层次转发模型TFAD[5],支持IPv6地址在子树范围内高度聚合,并提供了故障后快速恢复机制,本文工作正是基于TFAD展开.

2地址压缩模型

首先对TFAD模型进行简要介绍.TFAD层次转发树中,根节点被称为网关节点,如图1中的节点1.网关节点的层数为0,各节点的层数等于其父节点的层数加1.层数为最大层次数Lmax的节点称为底层节点,否则称为非底层节点.每一层兄弟节点的IPv6地址通过层次比特位(layer bit,LB)进行标识.图1是一个层次转发结构示例,该转发树的层次比特位为8 b,通过层次比特位的不同取值来标识各自的子树.如节点2~4的层次比特位为IPv6地址的第65~72位,分别取值0x01,0x02,0xFF标识不同的子树;节点5,6的层次比特位为IPv6地址的第73~80位.另外,每个节点继承了父辈节点的地址范围,在父节点地址范围的尾部加上自己的层次比特位,就是该节点的地址范围.例如,节点3的子树地址范围为“2500::0200:0:0:072”,节点5继承父节点3的地址范围,再加上自身的层次比特位0x01,其子树地址范围为“2500::0201:0:0:080”.每个节点的地址是在自己的地址范围后面加0补足128位即可自动生成,节点3地址为“2500::0200:0:0:064”,节点5地址为“2500::0201:0:0:064”.

Fig. 1 Example of hierarchical forwarding tree.图1 层次转发树示例

定义1. 有效寻径地址位.层次转发树中,从网关节点到节点Ni各级层次比特位组成的部分被称为节点Ni地址的有效寻径地址位VA(valid address bits for routing),它在层次转发树中可唯一标识节点.VA占用的位数被称为有效寻径地址位数VAN(VAnumber).本文地址体系中,有:0

图1中,节点3的VA=0x02,VAN=8;节点12的VA=0x020101FF,VAN=32.图2是图1的简化图,只保留了节点的有效寻径地址位.

Fig. 2 Simplified structure of hierarchical forwarding tree.图2 层次转发树简化结构

对节点有效寻径地址位的长度进行分析,令物联子网节点转发树所支持的最大层次数为Lmax,任一节点Ni所在层数为Ni.lay,令第j层的层次比特位为LB[j].n,则节点Ni的有效寻径地址位数为

(1)

显然,层次转发树中层数越小的节点,对应VAN值越小,底层节点(层数为Lmax)的VAN值最大.

节点标识的核心功能就是网络寻径,为确保物联子网内针对节点的寻径能正常进行,给出地址压缩的基本原则:1)针对源地址,需确保最终收到该报文的节点能获得源节点全部有效寻径地址位,保证反向寻径能正常完成;2)针对目的地址,报文首次出现在物联子网时,目的地址拥有目的节点完整的有效寻径地址位,确保报文顺利传输到达目的节点.

LACH压缩机制的相关定义如下:

定义2. 地址剥离.将16进制原始地址信息AB,剥离高位部分信息A,定义为Addr_strip(AB,A).例如Addr_strip(0x1234,0x12)=0x34.

定义3. 地址扩展.在16进制原始地址信息A的前面增加16进制信息B,定义为Addr_extend(A,B).例如Addr_extend(0x3456,0x12)=0x123456.

定义4. 去除尾部0值.将16进制原始地址信息A末尾的k个位的0值去掉,定义为Addr_tail0_del(A,k).例如:

Addr_tail0_del(0x12340000,16)=0x1234.

定义5. 补足尾部0值.在16进制原始地址信息A的末尾,添加k个位的0值,定义为Addr_tail0_add(A,k).例如Addr_tail0_add(0x1234,16)=0x12340000.

定义6. 顶点转发.树型结构的物联子网内部传输时,由上行转为下行的转发处理,被称为顶点转发.

基于上述定义,提出了报文在物联子网传输过程中的3种IPv6地址压缩机制.

压缩技术2:报文中目的IPv6地址剥离技术.包括以下规则:1)IPv6报文在树型拓扑下行传输(向叶子节点方向)过程中,每经过1个转发节点,报文目的IPv6地址便可去除1段层次比特位;2)若外部报文经过网关(即根节点)向子网内部转发,则剥离目的IPv6地址的64位物联子网网络前缀;3)顶点转发(上行转下行)时,报文目的IPv6地址要剥离顶点节点的有效寻径地址位.

层次转发树的下行传输寻径,本质上就是逐层根据报文目的IPv6地址中的层次比特位定位子树.对于已经完成匹配的地址信息,后续传输中可以将其从IP信息中剥离出来,从而实现IPv6传输的实时地址压缩.可以看出,层次转发树下行传输中,某节点Ni收到报文的目的IPv6地址信息中,只包含节点Ni及后续子孙节点的层次比特位.

以图2举例,节点8向节点12发送报文,初始报文的目的地址为节点12的完整有效寻径地址位:0x020101FF.节点5做顶点转发,剥离目的地址中节点5的有效寻径地址位0x0201,变为0x01FF.此后,节点7转发时从目的IP中剥离其层次比特位0x01,节点12收到报文的目的IP为0xFF.

压缩技术3:报文IPv6源地址扩展技术.包括以下规则:1)IPv6报文在树型拓扑上行传输(向根节点方向)过程中,每经过1个转发节点,源IPv6地址扩展1段层次比特位;2)若经根节点向子网外部转发,则对源IPv6地址增加64位物联子网前缀;3)顶点转发时,报文源IPv6地址需扩展顶点节点的有效寻径地址位.

报文的上行传输是逐层向父节点转发报文的过程,发送节点的IP地址正是由这些祖辈节点的层次比特位组成.所以,报文源IP地址可以在上行传输过程中由祖辈节点逐级扩展,从而实现IP地址信息的最小化存储.

图2中,节点12向节点8发送报文,上行传输时初始源IPv6地址为0xFF.经节点7转发后,报文源地址扩展为0x01FF.接着,在节点5实施顶点转发,源地址需增加节点5的有效寻径地址,扩展为0x020101FF.

3算法设计

物联子网内部通信时,可直接使用尾部0值已去除的地址进行节点标识及寻径.所以,去除尾部0值只发生在报文经网关转发到物联子网时实施.去除尾部0值,关键是计算报文目的IP的有效寻径地址位数,算法中通过寻找第1个等于0的层次比特位来确定有效寻径地址位的最后位置.相反,网关节点将物联子网内的报文转发到外部时,需要补足尾部的0比特位.

上述IPv6地址压缩技术通过实施在不同设备的算法来完成.

算法1. 网关实施地址压缩.

令物联子网64位前缀为PFX64,LB[j].b为第j层节点的层次比特位在128位IPv6地址中的起始位置.算法1核心思想如图3所示.

Fig. 3 Address compression in gateway.图3 网关实施地址压缩

步骤1. 接收报文,根据目的IPv6地址查转发表确定报文处理行为.

步骤3. 实施目的IP去除尾部0值操作.

步骤3.1. 初始化j=2.因为第1层层次比特位不为0,只有后续描述的虚拟地址的第1层层次比特位为0,但它并不是尾部0值,不能去除.

步骤3.2. 取IPdst中的第j层的层次比特位为A,它是IPdst从LB[j].b位开始的连续LB[j].n位.

步骤3.3. 若A≠0,执行步骤3.4;若A=0,则可去除IPdst中从第LB[j].b位到末尾的所有0值,即Addr_tail0_del(IPdst,(128-LB[j].b)),执行步骤4.

步骤3.4. 若j=Lmax(最后的层次比特位),表示IPdst尾部并没有无效的0值,执行步骤4;否则,j++,跳转执行步骤3.2.

步骤4. 将报文目的IP地址的64位前缀剥离:IPdst=Addr_strip(IPdst,PFX64),将源IP转换为物联子网内部虚拟地址(见算法3地址映射),算法结束.

步骤5. 报文目的IP地址转换为外部IP地址(见算法3地址映射).

步骤6. 将报文源IP地址扩展64位前缀:IPsrc=Addr_extend(IPsrc,PFX64),获取IPsrc的位数为k,Addr_tail0_add(IPsrc,128-k),算法结束.

算法2. 非网关节点实施地址压缩.

令该节点Ni的有效寻径地址位为VA(i),所占比特位数为VAN(i),层次比特位的值为Ni.val,子树地址范围为ARST[i].len.本算法不分析报文目的地址为Ni的情况,这由传统处理完成,算法核心思想如图4所示.

Fig. 4 Address compression in forwarding node.图4 转发节点地址压缩

步骤1. 节点Ni接收IP报文,根据源MAC地址判断上一跳身份,如报文来自父节点则执行步骤2,如报文来自子节点则执行步骤3.

步骤2. 此时为下行传输,将Ni的层次比特位从报文的目的IP地址中剥离:IPdst=Addr_strip(IPdst,Ni.val),算法结束.

步骤3. 此时为上行传输,如果节点的所辖地址范围ARST[i]与报文目的地址的前ARST[i].len位相等,表示该节点将实施顶点转发,上行转下行,执行步骤4;否则继续上行传输,执行步骤5.

步骤4. 将Ni的有效寻径地址位扩展到报文源IP地址中:IPsrc=Addr_extend(IPsrc,VA(i)),将Ni的有效寻径位从报文目的IP地址中剥离:IPdst=Addr_strip(IPdst,VA(i)),算法结束.

步骤5. 将Ni的层次比特位扩展到报文源IP地址中:IPsrc=Addr_extend(IPsrc,Ni.val),算法结束.

4报文格式设计

上述3种地址压缩技术面临的一个问题是:各物联网节点IPv6地址的长度是可变的,而且同一报文在传输过程中地址长度也不断发生改变.因此,IACH机制需要在报文中设计专门的地址长度字段.

物联子网内部传输时,节点地址长度大于0且小于等于64 b.压缩后地址的长度以8 b(1 B)为单位进行描述,3个比特足以存储压缩后的IPv6地址长度,但为了处理方便,我们用半个字节(即4 b)来存储压缩后的IPv6地址长度.所以报文中源、目的地址长度总共需要1 B的描述.例如,长度字段为0x35,表示报文中源IPv6地址长度为3 B(24 b),目的IPv6地址长度为5 B(40 b).

考虑与现有典型系统的兼容,设计了基于6LoWPAN协议的IACH报文存储格式.6LoWPAN机制中,IPHC压缩格式有8 b的固定字段:1) CID(1 b)是上下文标识符位,当CID位为1时在DAM字段后存储8 b的上下文索引值(源、目的IP各4 b);2)SAC(1 b)与SAM(2 b)共同描述源IPv6地址压缩状态;3)DAC(1 b)与DAM(2 b)共同描述目的IPv6地址压缩状态;4)M(1 b)表示目的IPv6地址是否为组播地址.IACH机制中,修改协议格式实现本文压缩技术,如图5所示:

Fig. 5 Compression address format in 6LoWPAN packet.图5 6LoWPAN报文中地址压缩存储格式

SAC为0且SAM为00表示报文实施了IACH机制的源地址压缩,4 b的SAL存储源地址的长度,报文携带变长的源IP地址.

DAC为0且DAM为00表示报文实施了IACH机制的目的地址压缩,4 b的DAL存储目的地址的长度,报文携带变长的目的IP地址.

在原有IPHC压缩格式中,上述SAC为0且SAM为00和DAC为0且DAM为00的描述均表示无状态压缩情况时携带完整的128 b源、目的地址.本文IACH机制中,已不需要携带128 b地址,所以利用该标志表示IACH压缩.例如,图2中节点12向节点9发送报文,IACH机制导致报文在传输过程中地址也不断发生改变,变化过程如图6所示.方框描述了传输过程源目的地址长度及内容.第1项为SAL,第2项为DAL,第3项为压缩后的源IPv6地址,第4项为压缩后的目的IPv6地址.例如,转发第1跳,节点12向节点7发出的报文中,源地址为0xFF且长度为1 B,目的地址为0x02FF01且长度为3 B,所以6LoWPAN报文中的源、目的地址可存储为:0x1 3 FF 02FF01.

需要说明:IACH压缩机制中,当层次比特位小于8时,报文中IP地址长度可能不是整数个字节,此时报文中的地址信息需要增加填充位.

Fig. 6 Changes of content and length of packets during transmission.图6 报文传输过程中地址内容及长度的变化

5外部地址动态映射

地址剥离、地址扩展等技术能高效压缩物联子网范围的IPv6地址.然而,当外部系统与物联网节点通信时,现有机制难以针对物联子网外部IPv6地址实施压缩传输,因为外部地址范围太大,不但64 b主机位杂乱无规律,64 b前缀也完全无章可循.

本文提出了基于地址映射的外部地址压缩方法,网关节点将物联子网外部IPv6地址映射成规则的、易压缩的内部IPv6地址,确保物联子网内传输报文时地址压缩的高效性.IACH机制预留部分内部IPv6地址形成“地址池”,专用于外部地址映射.外部IPv6地址在物联子网传输时临时映射到“地址池”中的某一个地址,本文称这些预留的内部地址为虚拟IPv6地址(V_Addr).

设计虚拟地址集合为层次转发树中第1层层次比特位为0x00的子树所辖节点对应的地址(真实物联网节点不使用这些地址),对应节点被称为虚拟节点(V_Node).层次转发模型中虚拟地址没有被分配给真实节点,该类地址的数量可达256.图7中椭圆范围内的着色节点就是虚拟节点,对应的地址为虚拟地址.例如,虚拟节点V_NodeA对应地址PFX64:0001::64(压缩后为0x0001),虚拟节点V_NodeD对应地址PFX64:0002:0100::64(压缩后为0x000201).

Fig. 7 Virtual address in IoT subnet.图7 物联子树中的虚拟地址

当然,用于映射的虚拟地址数量并不需要太多,而且也不是越多越好,主要有2个方面考虑:

1) 虚拟地址数量只需支撑同一时刻与物联子网节点通信的外部系统IPv6地址数量.假如地址为IP6ex的外部系统同时与多个物联网节点通信,只需使用1个虚拟地址,也只会产生1条地址映射项.

2) 地址池容量可根据实际情况配置,容量太大会给地址映射的实现带来过多负载.虚拟地址的获取、释放以及映射项查找等操作的效率,都与地址池的容量成反比.

定义7. 外部地址映射.物联网网关构建的外部IPv6地址IP6ex与物联子网内部IPv6虚拟地址V_Addr的对应关系,称为外部地址映射(external address mapping,EAM),记为

EAM:V_Addr↔IP6ex.

不同时间可能有多个外部地址对应同一个虚拟地址,但某一时刻该映射必定是一对一映射关系.

地址映射相关的处理都在网关实施,描述如下:

算法3. 网关实施外部地址映射.

令全部虚拟地址集合为Sall(默认255个地址),当前可用的虚拟地址集合为Savl,映射项集合为Seam;初始时有:Savl=Sall,Seam=∅.本算法不分析报文目的地址为网关的情况,核心思想如图8所示:

Fig. 8 External Address mapping.图8 外部地址映射

步骤1. 物联网网关接收IP报文,根据目的IP查表确定报文处理行为.

步骤2. 若是将物联子网外部报文向内部转发,执行步骤3;若是将物联子网内部报文向外部转发(此时目的IP为虚拟地址,形如0x00…),执行步骤5.

步骤3. 取出报文源IP为IP6src,从集合Savl中获得任一地址V_Addr,并生成映射项V_Addr↔IP6src;同时,Savl=Savl-{V_Addr},Seam=Seam+{V_Addr↔IP6src}.

步骤4. 修改报文的源IP地址为V_Addr,并继续后续转发处理,算法结束.

步骤5. 取出报文目的IP地址,令其为IP6dst(一个虚拟IPv6地址),在Seam中查找其对应的映射项.

步骤6. 若查找失败,报错,算法结束;否则,找到映射项IP6dst↔IP6ex,执行步骤7.

步骤7. 将报文目的IPv6地址由IP6dst更改为IP6ex,继续后续转发处理,算法结束.

说明,外部地址映射和物联子网地址压缩都在网关融合实施,但为了便于理解,本文分别进行了描述.

上述地址映射处理性能主要与地址映射项查找关联,由于虚拟地址数量不多,映射表以一维数组形式存储.如图9所示,一次内存访问可完成映射项查询.当然,特殊场景中如有较大的并发外部访问数据流,则需要优化上述映射表结构,简单的HASH存储就可完成,本文不做详述.

Fig. 9 Storage of mapping table for virtual address.图9 虚拟地址映射表存储

此外,针对地址映射项需要有超时删除及保活机制.设定单条地址映射项的空闲超时时间为Ttm,若Ttm时间段无数据流匹配该映射项就将其删除.另外,也需设定映射项保活机制,只要转发过程中使用了某映射项,其超时时间就恢复到Ttm.

动态地址映射特征包括:1)虚拟地址与真实物联子网节点的地址属于同一个64 b前缀,使得物联子网内的协议报文全部属于同一个网络前缀,所有传输只需关注IP地址的后64 b主机位;2)地址映射项存储和地址转换都在网关处理,映射机制对普通物联网节点透明;3)使用的虚拟地址压缩效果极高,128 b的外部地址通常只占用16 b的存储,可获得高达8的压缩比;4)支持地址动态映射,可以使用相对较少的虚拟地址实现其与更多外部地址的转换,从而提升网关中地址映射模块的实现效率.

总结IACH机制中各角色的工作如下:

1) 上行转发节点.源IP地址扩展层次比特位.

2) 下行转发节点.目的IP地址剥离层次比特位.

3) 顶点转发节点.源IP地址扩展有效寻径地址位,目的IP地址剥离有效寻径地址位.

4) 网关.向物联子网内部转发流量时,目的IP去尾部0值及剥离前缀,源IP实施地址映射; 向物联子网外部转发流量时,源IP实施补尾部0值及前缀扩展,目的IP进行地址映射.

6实验及性能分析

IACH机制中,除了8 b IPHC格式的固定字段[6],新增了SAL和DAL字段(共8 b).当然,现有互联网中传统非压缩的IPv6地址存储占用固定长度,源、目的地址各128 b,共256 b.

IACH机制主要面向非本地链路地址的通信,其压缩性能分析主要涉及以下传输场景:

1) CASE1(内外通信).物联子网节点与物联子网外部系统通信时,报文在物联子网传输时的地址压缩分析.源为外部地址,目的为物联子网内部地址;或是目的为外部地址,源为物联子网内部地址.

首先,分析CASE1的地址压缩比.6LoWPAN机制中必须存储上述8 b固定字段.另外,由于物联子网可接受任意外部IPv6地址访问,无法利用上下文标识符进行压缩,须存储完整的128 b外部IPv6地址.同时,对于物联子网内部IPv6全局地址,有2种可能:1)存储128 b地址信息;2)根据上下文标识省略64 b网络前缀信息,需要8 b的上下文索引值.所以,上述2种情况的地址压缩比分别为

令2种情况发生概率相同,则平均压缩比为1.1.

Fig. 10 Address compression ratio for communication between IoT nodes and external system.图10 物联子网节点与外部通信的地址压缩比

IACH机制中,假设与外部通信的物联子网节点为Ni,则地址压缩最好情况发生在Ni向其父节点发送或Ni父节点向Ni发送时;最差情况发生在第1层节点和物联子网根节点之间的报文传输时,此时需要存储节点Ni整个有效寻径地址位.例如,图2中节点12向外部系统发送报文,最好情况发生在节点12到节点7的传输,只需存储节点12的层次比特位0xFF;最坏情况发生在节点3到节点1的传输,需存储节点12的有效寻径地址位0x020101FF.

图10给出了IACH和6LoWPAN机制在内外通信时地址压缩比分析.IACH地址压缩比最大为8,最小为3.55,且平均压缩比随着通信节点的层数增加而减小,但相对6LoWPAN却有明显的优势.

接着,分析CASE2的地址压缩比.物联子网内部通信时的地址压缩分析更为复杂,先给出关于最近公共祖先节点的定义.

(2)

(3)

其中,0

报文上行传输时的目的IPv6地址及下行传输时的源IPv6地址都需存储对应节点的整个有效寻径地址位.针对节点Ni的地址,其作为源地址出现在第k层向k-1层传输的报文中的比特位数,与其作为目的地址出现在第k-1层向第k层传输的报文中的比特位数相等.当然,这2种情况存储Ni地址的具体内容也相同.所以,有式(4)成立:

(4)

Fig. 11 Communication topology inside IoT subnet.图11 物联子网内部通信拓扑图

不失一般性,针对图11计算物联子网内部通信时地址压缩比.Ni上行传输时目的IP地址存储长度不变,一直为Nj的有效寻径地址位,即:

(5)

继而,图11中Ni到Nj传输时,上行传输是Ni到Np,源IP地址存储长度共为

(6)

同理,分析Ni到Nj下行传输过程.最终,可推导得到IP地址平均存储长度为

(7)

所以,IACH模型物联子网内部,Ni和Nj通信中,源目的IP地址平均存储长度与如下因素相关:

1) 最低公共祖先节点的层数Np.lay.其它因素不变,其值越小,IP地址平均存储长度越小.

2)Ni和Nj到最近公共祖先节点的跳数距离和D(i,j).其它因素不变,其值越小,IP地址平均存储长度越小.

基于表1所述真实节点进行实验,并将IACH与现有6LoWPAN进行比较分析.

Table 1 Parameters of IoT Nodes for Experiments

Fig. 12 Experiment topology.图12 实验拓扑图

实验拓扑如图12所示,物联子网层数为6.

1) 测试不同压缩机制下IP上层数据的最大负载长度.由于物联子网内部IP地址与其它IP地址在结构上具有明显的差异,实验分别针对2种场景进行:CASE1,物联网节点与外部互联网设备通信;CASE2,物联网内部节点间通信.实验结果如表2所示,IEEE 802.15.4链路层帧所能承载的最大字节数都是125,而IACH机制在2种场景下都比原始6LoWPAN获得更大的IP上层数据负载长度,IACH机制的最差情况也好于6LoWPAN最好情况.

Table 2Max Payload of IP-upper Data in Different

Compression Mechanism

表2 不同压缩机制下IP上层数据的最大负载

Fig. 13 Forwarding delay.图13 转发时延

2) 测试不同压缩机制的报文转发时延.无论6LoWPAN或IACH压缩机制,报文中的链路层和6LoWPAN适配层长度都不固定,所以实验针对不同的IP上层数据长度测量转发性能.实验结果如图13所示,对于相同长度的IP上层负载,无论内外通信或内部通信,IACH机制下的报文转发时延都略小于原有6LoWPAN机制.图13中,转发时延的陡然升高是报文分片导致的,因为此时传输内容超过了最大IP上层负载.所以,相对现有6LoWPAN 机制,IACH机制能在不增加转发时延的前提下,明显提升网络带宽利用率,起到绿色节能的功效.

7总结

IPv6作为物联网节点的统一标识已得到广泛认可.然而,128 b的IPv6地址格式在存储、协议带宽等方面给物联网节点带来了不小的负担.而且,物联网典型链路层控制协议IEEE 802.15.4所能承载的帧长度较小,这给IPv6头部压缩研究提出了很高的要求.本文提出了新型地址压缩机制IACH,通过地址压缩提升物联网报文传输的有效带宽比例.IACH主要包括3种地址压缩技术:1)去除IPv6地址末尾的无效寻径信息,即尾部“0”值;2)下行传输时针对目的IPv6地址的地址剥离技术;3)上行传输时针对源IPv6地址的地址扩展技术.IACH机制还面向物联子网节点与子网外部互联网节点的通信提出了基于网关实施的虚拟地址映射机制,确保外部地址在物联子网传输时的高效压缩存储.IACH机制突破了现有6LoWPAN压缩范围的局限,大幅增加了数据包中IP上层数据的最大负载长度.而且,IACH机制基于6LoWPAN协议扩展实现,与6LoWPAN已有功能兼容.基于真实节点的实验表明IACH转发处理时延略低于标准6LoWPAN.

参考文献

[1]Xie Kaibin, Chen Haiming, Cui Li. PMDA: A physical model driven software architecture for Internet of things[J]. Journal of Computer Research and Development, 2013, 50(6): 1185-1197 (in Chinese)(谢开斌, 陈海明, 崔莉. PMDA: 一种物理模型驱动的物联网软件体系结构[J]. 计算机研究与发展, 2013, 50(6): 1185-1197)

[2]Kim E, Kaspar D, Gomez C, et al. RFC 6606: Problem statement and requirements for IPv6 over low-power wireless personal area network (6LoWPAN) routing[S]. The Internet Society, 2012

[3]Winter T, Thubert P, Hui J, et al. RFC 6550: RPL: IPv6 routing protocol for low-power and lossy networks[S]. The Internet Society, 2012

[4]Dunkels A, Gronvall B, Voigt T. Contiki-a lightweight and flexible operating system for tiny networked sensors[C] //Proc of the 29th Annual IEEE Int Conf on Local Computer Networks (LCN’04). Los Alamitos, CA: IEEE Computer Society, 2004: 455-462

[5]Levis P, Madden S, Polastre J, et al. TinyOS: An operating system for sensor networks[G] //Ambient Intelligence. Berlin: Springer, 2005: 115-148

[6]Xiao Rong, Chen Wenlong, Sun Bo. Light weight and tree-based forwarding model in IPv6 IoT subnet[J]. Journal of Software, 2014, 25(8): 1729-1742 (in Chinese)(肖融, 陈文龙, 孙波. 面向IPv6物联子网的轻量级树型转发模型[J]. 软件学报, 2014, 25(8): 1729-1742)

[7]Vasseur J P, Dunkels A. Interconnecting Smart Objects with IP-the Next Internet[M]. San Francisco, CA: Morgan Kaufmann, 2010: 29-38

[8]Meyer D, Zhang L, Fall K. RFC 4984: Report from the IAB workshop on routing and addressing[S]. The Internet Society, 2007

[9]Deering S, Hinden R. RFC 2460: Internet protocol version 6 (IPv6) specification[S]. The Internet Society, 1998

[10]Gutierrez J A, Naeve M, Callaway E, et al. IEEE 802.15.4: A developing standard for low-power low-cost wireless personal area networks[J]. IEEE Network, 2001, 15(5): 12-19

[11]Pelletier G, Sandlund K. RFC 5225: Robust header compression version 2 (ROHCv2): Profiles for RTP, UDP, IP, ESP and UDP-Lite[S]. The Internet Society, 2008

[12]Montenegro G, Kushalnagar N, Hui J. RFC 4944: Transmission of IPv6 packets over IEEE 802.15.4 networks[S]. The Internet Society, 2007

[13]Hui J, Thubert P. RFC 6282: Compression format for IPv6 datagrams over IEEE 802.15.4-based networks[S]. The Internet Society, 2011

[14]Singh S, Singh M, Singh D. A survey of energy-efficient hierarchical cluster-based routing in wireless sensor networks [J]. International Journal of Advanced Networking and Application, 2010, 2(2): 570-580

[15]Shen Bo, Zhang Shiyong, Zhong Yiping. Cluster-based routing protocols for wireless sensor networks[J]. Journal of Software, 2006, 17(7): 1588-1600 (in Chinese)(沈波, 张世永, 钟亦平. 无线传感器网络分簇路由协议[J]. 软件学报, 2006, 17(7): 1588-1600)

Xiao Rong, born in 1974. Master, lecturer. Her research interests include Internet of things and Internet architecture.

Sun Bo, born in 1966. PhD, professor. His research interests include computer application technology.

Chen Wenlong, born in 1976. PhD, associate professor. His research interests include network protocol and network architecture.

Xiao Yongkang, born in 1974. PhD, associate professor. His research interests include computer network.

Wei Yungang, born in 1981. PhD, senior engineer. His research interests include computer network.

Address Compression for Hierarchical Forwarding Architecture in IPv6 IoT

Xiao Rong1, Sun Bo1, Chen Wenlong2, Xiao Yongkang1, and Wei Yungang1

1(CollegeofInformationScienceandTechnology,BeijingNormalUniversity,Beijing100875)2(CollegeofInformationEngineering,CapitalNormalUniversity,Beijing100048)

AbstractAs one of the most significant parts of “Internet +”, Internet of things (IoT) is being widely applied in various aspects of human society. IPv6 identification is the base of large-scale deployment and interconnection of IoT. Nevertheless, the 128-bit IPv6 address brings more storage and bandwidth consumptions for resource-constrained IoT. A novel compression mechanism-named IACH is proposed for the hierarchical IoT forwarding architecture, which mainly includes: removing invalid routing message at the end of IPv6 address, address stripping, and address extension. Moreover, the irregular outside IPv6 addresses can be translated into virtual addresses of IoT subnets by means of address mapping, which is compressed according the described mechanism. IACH is fully compatible with 6LoWPAN. Experiments and performance analysis show that IACH can significantly increase the real upper payload in packets transmission. In particular, the forwarding delay of IACH is shorter than standard 6LoWPAN for packets with the same length of IP-upper payload.

Key wordsInternet of things (IoT); hierarchical forwarding; address compression; IPv6; address mapping

收稿日期:2015-12-21;修回日期:2016-02-04

基金项目:国家自然科学基金项目(61373161,61272446,61300171)

中图法分类号TP393

This work was supported by the National Natural Science Foundation of China (61373161,61272446,61300171).

猜你喜欢

物联子网IP地址
一种简单子网划分方法及教学案例*
《智能物联技术》征稿启事
王永岗:改造物联服务链助力现代农业
《智能物联技术》征稿启事
铁路远动系统几种组网方式IP地址的申请和设置
子网划分问题研究及应用
创享物联时代新风潮
IP地址切换器(IPCFG)
基于SNMP的IP地址管理系统开发与应用
公安网络中IP地址智能管理的研究与思考