Ip报头压缩的方法及装置的制作方法

文档序号:8004381阅读:299来源:国知局
专利名称:Ip报头压缩的方法及装置的制作方法
技术领域
本发明涉及无线通信技术领域,尤其涉及一种基于6LoWPAN(IPv6over Low powerWPAN)的传感器网络的IP报头压缩的方法及装置。
背景技术
近年来随着微电子技术、计算机技术、无线通信技术以及传感器技术的快速进步,极大的推动了无线传感器网络技术的高速发展。无线传感器网络是由一组按需随机分布的集成有传感器、数据处理单元和通信模块的微型传感器节点以自组织方式构成的无线网络。其目的是协作地感知、采集和处理网络覆盖范围内感知对象的信息,并传送给信息获取者。目前,传感器网络技术已经被广泛地应用于国防军事、国家安全、环境监测、交通管理、医疗卫生、制造业、反恐抗灾等领域,具有重要的研究价值和应用前景。部署在监测区域的传感器网络往往由数目庞大的传感器节点组成,正是由于传感器网络节点的这种高密度性,迫切需要实现网络化。为了能够实现与不同设备制造商的设备之间的互联,也需要统一的网络层标准。IPv6 (Internet Protocol Version 6)作为下一代网络协议,具有地址资源丰富、地址自动配置、安全性高等优点,可以满足IEEE802.15.4网络在IP地址方面的需求。同时,如果IEEE802.15.4设备使用IPv6网络协议可以实现传感器网络与现有Internet的互联互通。因此,IETF成立了 6LoWPAN工作组,研究IPv6在IEEE802.15.4网络上的应用方案。对于6LoWPAN网络来说,IEEE802.15.4标准规范的物理层的最大帧为127字节,加上帧的负载和链路层加密算法的开销,最大开销情况下只留下81字节给上层应用。而完整的IPv6报头需要40个字节,UDP (用户数据包协议)报头需要8个字节,这样应用层可用的字节数只有33字节。显然报头压缩具有非常重要的现实意义。RFC4944中定义了一种IPv6报头压缩方法,这种方法对于本地链路地址最好的情况下,可以将IPv6报头由40个字节压缩到两个字节,如图1所示。RFC4944中定义的报头压缩方案在最理想的情况下,可以将IPv6报头完整的40个字节压缩到2个字节(HCl+hop limit),同时支持M)P、TCP(传输控制协议)、ICMP(控制报文协议)下一个报头的压缩(HC2Byte)。该压缩方案破坏了协议的层次性,HCl字节之后紧接HC2字节,然后IPv6报头和UDP等下一协议报头中所有未压缩的字段全部都存放在一起,虽然未压缩字段有一定的存放顺序,但是这种压缩方式破坏掉了网络协议的层次结构,不便于解析和处理。

发明内容
本发明提供一种IP报头压缩的方法及装置,可使得压缩后的IP报头满足网络协议的层次结构,便于后续的解析和处理。本发明提供一种IP报头压缩的方法,所述方法包括:步骤A、根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理;步骤B、根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理;步骤C、根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。优选地,所述方法还包括:步骤D、根据无线传感器网络节点所使用的地址模式,对无线传感器网络节点的接口地址进行压缩处理。优选地,所述IP报头包括:标识字段、未压缩字段、和下一个报头的首部字段。优选地,所述步骤D具体包括:检测无线传感器网络节点所使用的地址模式;如果使用的地址模式是短地址,将无线传感器网络节点的接口地址记录在未压缩字段中;如果使用的地址模式是扩展地址,则不做处理。优选地,所述步骤A包括:检测IP报头的源地址模式,如果是本地链路地址,设置标识字段的第O标识位;如果是全球单播地址,设置标识字段的第O标识位,并且将全球单播地址的前缀记录在未压缩字段中;检测IP报头的目的地址模式,如果是本地链路地址,设置标识字段的第I标识位;如果是全球单播地址,设置标识字段的第I标识位,并且将全球单播地址的前缀记录在未压缩字段中。优选地,所述步骤B为:检测是否对传输类型和流标签有要求,如果是,设置标识字段的第2标识位,并将版本号、传输类型、流标签携带在未压缩字段中;如果不是,设置标识字段的第2标识位。优选地,所述步骤C包括为:判断要使用的下一个报头的首部类型;如果是用户数据包协议,设置标识字段的第3、4标识位,表示下一个报头的类型为用户数据包协议;如果是Internet控制消息协议,设置标识字段的第3、4标识位,表示下一个报头的类型为Internet控制消息协议;如果是传输控制协议,设置标识字段的第3、4标识位,表示下一个报头的类型为传输控制协议;否则,设置标识字段的第3、4标识位,并且将下一个报头的首部类型记录在未压缩字段中。优选地,所述方法还包括:判断跳数限制,如果“I”可以满足要求,设置标识字段的第5、6标识位;如果“64”可以满足要求,设置标识字段的第5、6标识位;如果“255”可以满足要求,设置标识字段的第5、6标识位;否则,设置标识字段的第5、6标识位,并且将跳数限制记录在未压缩字段中。优选地,所述方法还包括:判断下一个报头的首部是否需要压缩,如果是,设置标识字段的第7标识位,标识需要压缩;否则,设置标识字段的第7标识位,标识不需要压缩。本发明还提供一种IP报头压缩的装置,包括:第一压缩模块,用于根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理;第二压缩模块,用于根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理;第三压缩模块,用于根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。优选地,所述装置还包括:第四压缩模块,用于根据无线传感器网络节点所使用的地址模式,对无线传感器网络节点的接口地址进行压缩处理。由上述技术方案可知,本发明的实施例具有如下有益效果:将IP报头与下一个报头的首部区分开来,例如下一个报头的首部放在IP报头中未压缩字段之后,这样使得压缩后的IP报头具有层次性,便于节点的分析和处理。


图1为现有的RFC定义的IPv6报头压缩后的示意图;图2为本发明的实施例中IP报头压缩的方法流程图;图3为本发明的实施例中IPv6报头压缩的方法流程图;图4为本发明的实施例中IPv6报头压缩后的示意图;图5为本发明的实施例中IPv6报头解压缩的方法流程图;图6为本发明的实施例中IP报头压缩的装置结构框图。
具体实施例方式为了使本发明实施例的目的、技术方案和优点更加清楚明白,下面结合实施例和附图,对本发明实施例做进一步详细地说明。在此,本发明的示意性实施例及说明用于解释本发明,但并不作为对本发明的限定。如图2所示,为本发明的实施例中IP报头压缩的方法流程图,该IP报头包括:标识字段、未压缩字段、和下一个报头的首部字段,具体步骤如下:步骤201、根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理;在本实施例中,该源地址和目的地址的类型可分为本地链路地址和全球单播地址。在本实施例中步骤201中的压缩处理可采用如下方式:检测IP报头的源地址模式,如果是本地链路地址,设置标识字段的第O标识位;如果是全球单播地址,设置标识字段的第O标识位,并且将全球单播地址的前缀记录在未压缩字段中;检测IP报头的目的地址模式,如果是本地链路地址,设置标识字段的第I标识位;如果是全球单播地址,设置标识字段的第I标识位,并且将全球单播地址的前缀记录在未压缩字段中。
步骤202、根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理;在本实施例中,该步骤202中的压缩处理可采用如下方式:检测是否对传输类型和流标签有要求,如果是,设置标识字段的第2标识位,并将版本号、传输类型、流标签携带在未压缩字段中;如果不是,设置标识字段的第2标识位。步骤203、根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。在本实施例中,步骤203中的压缩处理可采用如下方式:判断要使用的下一个报头的首部类型;如果是用户数据包协议,设置标识字段的第3、4标识位,表示下一个报头的类型为用户数据包协议;如果是Internet控制消息协议,设置标识字段的第3、4标识位,表示下一个报头的类型为Internet控制消息协议;如果是传输控制协议,设置标识字段的第3、4标识位,表示下一个报头的类型为传输控制协议;否则,设置标识字段的第3、4标识位,并且将下一个报头的首部类型记录在未压缩字段中。由上述技术方案可知,本发明的实施例具有如下有益效果:将IP报头与下一个报头的首部区分开来,例如下一个报头的首部放在IP报头中未压缩字段之后,这样使得压缩后的IP报头具有层次性,便于节点的分析和处理。下面以IPv6报头 的压缩为例,来介绍本实施例中的IP报头的压缩过程。当然可以理解的是,其他类型的IP报头的压缩方法与此类似,在此不再敷述。参见图3,为本发明的实施例中的IPv6报头压缩方法的流程图,该IPv6报头包括:标识字段(HCl)、未压缩字段、下一个报头的首部字段,该IPv6报头压缩的方法包括如下步骤:步骤301、检测无线传感器网络节点所使用的地址模式(MAC地址类型),如果是16位的短地址,将无线传感器网络节点的接口地址(接口 ID)记录在未压缩字段中;如果是64位的扩展地址,则不做任何处理,然后执行步骤302 ;步骤302、检测数据包的IPv6源地址模式,如果是本地链路地址,将标识字段的第O标识位(bito)置“I”;如果是全球单播地址,将第O标识位(bito)置“0”,并且将64位前缀携带在未压缩字段中,然后执行步骤303 ;对于IPv6本地链路地址来说64位前缀为fe80::/64,因此如果是本地链路地址,则可以将64位前缀压缩。如果地址模式是IPv6全球单播地址,64位前缀则需要携带在未压缩字段。步骤303、检测数据包的IPv6目的地址模式,如果是本地链路地址,将标识字段的第I标识位(bitl)置“I”;如果是全球单播地址,将第I标识位(bitl)置“0”,并且将64位前缀携带在未压缩字段中,然后执行步骤304。在现有的RFC4944中对于IPv6地址模式的划分使用4bits (源地址模式、目的地址模式各两位),而在本实施例中只可用2bits对地址模式进行划分(源地址模式、目的地址模式各一位)。
步骤304、检测数据包是否对传输类型和流标签(V_T_F字段)有要求,如果是,将标识字段的第2标识位(bit2)置“0”,并将版本号、传输类型、流标签携带在未压缩字段中;如果不是,则将第2标识位(bit2)置“1”,然后执行步骤305。步骤305、判断要使用的下一个报头的首部类型,如果是UDP (User DatagramProtocol,用户数据包协议),则将第3、4标识位(bit3、4)置“01”;如果是ICMP (InternetControl Message Protocol, Internet 控制消息协议),则将第 3、4 标识位(bit3、4)置“ 10” ;如果是TCP (Transmission Control Protocol,传输控制协议),则将第3、4标识位(bit3、4)置“11”,否则,将第3、4标识位(bit3、4)置“00”,并且将下一个首部类型携带在未压缩字段中,然后执行步骤306。在现有技术RFC4944中,如果对下一个报头的首部进行压缩,则将下一个报头的首部的未压缩字段和IPv6的未压缩字段封装在一起,而在本实施例中下一个报头的首部和IPv6报头单独封装,可使得IPv6报头具有层次性。步骤306、判断跳数限制,如果“I”可以满足要求,则将标识字段的第5、6标识位(bits 5、6)置“01”;如果“64”可以满足要求,则将标识字段的第5、6标识位(bits 5、6)置“10”,如果“255”可以满足要求,则将标识字段的第5、6标识位(bits 5、6)置“11”;否贝U,将标识字段的第5、6标识位(bits 5、6)置“00”,并且将8位跳数限制记录在未压缩字段中,然后执行步骤307。在现有的RFC4944中不进行跳数限制(hop limit)字段的压缩,记录在未压缩字段中,而在本实施例中对hop limit字段进行了压缩处理。步骤307、判断下一个报头的首部是否需要压缩,如果是,则将标识字段的第7标识位(bits 7)置“1”,否则,将标识字段的第7标识位(bits 7)置“O”。在本实施例中,可将完整IPv6报头压缩到I个字节,并且同时支持对IPv6全球单播地址的压缩。未压缩字段完全按照MAC地`址模式以及标识字段的提示进行封装,并且将IPv6报头与下一个报头的首部区分开来,下一个首部放在IPv6未压缩字段之后,这样使得网络协议具有层次性,便于节点的分析和处理。参见图4,为本发明的实施例中IPv6报头压缩后的示意图,在标识字段(HCl)中记
录有:(I) IPv6 源地址模式(bit 0):bitO置为“O”表示:全球单播地址bitO置为“ I ”表示:本地链路地址对于IPv6本地链路地址来说64位前缀为fe80::/64,因此如果是本地链路地址,则可以将64位前缀压缩。如果地址模式是IPv6全球单播地址,64位前缀则需要携带在未压缩字段。(2) IPv6 目的地址模式(bit I):b i 11置“ O ”表示:全球单播地址bi11置“ I”表示:本地链路地址(3)传输类型、流标签(bit 2):bit2置“O”表示:不压缩,整个8位的传输类型和20位的流标签都携带在未压缩字段进行传输;
bit2置“I”表示:压缩,传输类型和流标签均为O ;(4)下一个首部(bits 3、4):bits 3、4置“00”表示:不压缩,8比特的下一个首部携带在后面的未压缩字段中;bits 3、4 置 “01” 表示:UDPbits 3、4 置 “10” 表示:ICMPbits 3、4 置 “11” 表示:TCP(5)跳数限制(bits 5、6):bits 5、6置“00”表示:不压缩,8比特的跳数限制可记载在后面的未压缩字段中bits 5、6置“01”表示:压缩,跳数限制为Ibits 5、6置“10”表示:压缩,跳数限制为64bits 5、6置“11”表示:压缩,跳数限制为255这里定义三种跳数限制,如果没有特殊要求,这三种跳数限制已经可以满足大部分的使用需求,如果有特殊需求可以使用不压缩方式,将跳数限制携带在后面的未压缩字段中。(6)HC2 (bit 7)bit 7置“O”表示:没有其他头部压缩字段bit 7置“I”表示:存在其他头部压缩字段(仅考虑UDP、TCP、ICMP上述HCl字节的8比特中并未涉及到IPv6地址64位接口 ID的压缩方式,原因是64位接口 ID可以从MAC源、目的地址或者MESH头的源、目的地址获取。802.15.4定义了两种MAC地址,16位短地址和64位扩展地址。16位短地址是由网络协调者动态分配的,而64位扩展地址则是每个802.15.4设备具有的ΕΠ-64,具有全球唯一性,64位接口 ID可以从EU1-64直接获得。如果网络使用16位短地址,那么IPv6源和目的地址的接口 ID都需要携带在未压缩字段中,如果网络使用64位扩展地址,则IPv6源和目的地址的接口 ID都可以压缩。未压缩字段完全按照MAC地址模式以及HCl编码提示进行封装。并且将IPv6报头与下一个报头的首部区分开来,下一个报头的首部放在IPv6未压缩字段之后,这样使得网络协议具有层次性,便于节点的分析和处理。参见图5,为本发明的实施例中IPv6报头的解压缩方法的流程图,具体步骤如下:步骤501、检测无线传感器网络节点所使用的地址模式(MAC地址类型),如果是16位短地址,那么从未压缩字段中获得64位接口 ID,如果是64位扩展地址,则在有MESH头的情况下从MESH头中获取源和目的的64位接口 ID,不存在MESH头的情况下从MAC层中获取源和目的的64位接口 ID,然后执行步骤502。步骤502、检测标识字段(HCl)中的第O标识位(bitO),如果bitO置“1”,那么64位前缀为fe80::/64,如果bitO置“0”,那么从未压缩字段中获取64位前缀,然后执行步骤
503。步骤503、检测标识字段(HCl)中的第I标识位(bitl),如果bitl置“1”,那么64位前缀为fe80::/64,如果bitl置“0”,那么从未压缩字段中获取64位前缀,然后执行步骤
504。
步骤504、检测标识字段(HCl)中的第2标识位(bit2),如果bit2置“0”,那么从未压缩字段中获得传输类型和流标签,如果bit2置“1”,那么传输类型和流标签均为0,然后执行步骤505。步骤505、检测标识字段(HCl)中的第3、4标识位(bits 3、4),如果bits 3、4置“00”,那么从未压缩字段中获得下一个报头的首部类型;如果bits3、4置“01”,下一个报头的首部为UDP;如果bits 3、4置“10”,下一个报头的首部为ICMP ;如果bits 3、4置“11”,下一个报头的首部为TCP,然后执行步骤506。步骤506、检测标识字段(HCl)中的第5、6标识位(bits 5、6),如果bits 5、6置“00”,那么从为压缩字段中获取跳数限制;如果bits 5、6置“01”,那么跳数限制为I ;如果bits 5、6置“ 10”,那么跳数限制为64 ;如果bits 5、6置“ 11”,那么跳数限制为255,然后执行步骤507。步骤507、检测标识字段(HCl)中的第7标识位(bit7),如果bit7置“0”,那么下一个报头的首部采用不压缩方式处理;如果bit7置“1”,那么下一个报头的首部采用压缩方式处理。参见图6,为本发明的实施例中IP报头压缩的装置结构框图,该IP报头压缩的装置包括:第一压缩模块61,用于根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理;第二压缩模块62,用于根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理;第三压缩模块63,用于根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。在本发明的另一实施例中,所述装置还包括:第四压缩模块64,用于根据无线传感器网络节点所使用的地址模式,对无线传感器网络节点的接口地址进行压缩处理。以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以作出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
权利要求
1.一种IP报头压缩的方法,其特征在于,所述方法包括: 步骤A、根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理; 步骤B、根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理; 步骤C、根据I P报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括: 步骤D、根据无线传感器网络节点所使用的地址模式,对无线传感器网络节点的接口地址进行压缩处理。
3.根据权利要求2所述的方法,其特征在于,所述IP报头包括:标识字段、未压缩字段、和下一个报头的首部字段。
4.根据权利要求3所述的方法,其特征在于,所述步骤D具体包括: 检测无线传感器网络节点所使用的地址模式; 如果使用的地址模式是短地址,将无线传感器网络节点的接口地址记录在未压缩字段中; 如果使用的地址模式是扩展地址,则不做处理。
5.根据权利要求3所述的方法,其特征在于,所述步骤A包括: 检测IP报头的源地址模式,如果是本地链路地址,设置标识字段的第O标识位;如果是全球单播地址,设置标识字段的第O标识位,并且将全球单播地址的前缀记录在未压缩字段中; 检测IP报头的目的地址模式,如果是本地链路地址,设置标识字段的第I标识位;如果是全球单播地址,设置标识字段的第I标识位,并且将全球单播地址的前缀记录在未压缩字段中。
6.根据权利要求3所述的方法,其特征在于,所述步骤B为: 检测是否对传输类型和流标签有要求,如果是,设置标识字段的第2标识位,并将版本号、传输类型、流标签携带在未压缩字段中;如果不是,设置标识字段的第2标识位。
7.根据权利要求3所述的方法,其特征在于,所述步骤C包括为: 判断要使用的下一个报头的首部类型; 如果是用户数据包协议,设置标识字段的第3、4标识位,表示下一个报头的类型为用户数据包协议; 如果是Internet控制消息协议,设置标识字段的第3、4标识位,表示下一个报头的类型为Internet控制消息协议; 如果是传输控制协议,设置标识字段的第3、4标识位,表示下一个报头的类型为传输控制协议;否则,设置标识字段的第3、4标识位,并且将下一个报头的首部类型记录在未压缩字段中。
8.根据权利要求3所述的方法,其特征在于,所述方法还包括: 判断跳数限制,如果“I”可以满足要求,设置标识字段的第5、6标识位;如果“64”可以满足要求,设置标识字段的第5、6标识位;如果“255”可以满足要求,设置标识字段的第5、6标识位;否则,设置标识字段的第5、6标识位,并且将跳数限制记录在未压缩字段中。
9.根据权利要求3所述的方法,其特征在于,所述方法还包括: 判断下一个报头的首部是否需要压缩,如果是,设置标识字段的第7标识位,标识需要压缩;否则,设置标识字段的第7标识位,标识不需要压缩。
10.一种IP报头压缩的装置,其特征在于,包括: 第一压缩模块,用于根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理; 第二压缩模块,用于根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理; 第三压缩模块,用于根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括: 第四压缩模块,用于根据无线传感器网络节点所使用的地址模式,对无线传感器网络节点的接口地址进行 压缩处理。
全文摘要
本发明提供一种IP报头压缩的方法及装置,其中该方法包括步骤A、根据IP报头中的源地址的类型和目的地址的类型分别对IP报头的源地址字段和目的地址字段进行压缩处理;步骤B、根据IP报头中的传输类型和流标签,对IP报头中传输类型字段和流标签字段进行压缩处理;步骤C、根据IP报头中的下一个报头的首部类型,对IP报头中的下一个报头的首部字段进行压缩处理,通过上述压缩处理可使得压缩后的IP报头满足网络协议的层次结构,便于后续的解析和处理。
文档编号H04W28/06GK103152770SQ201110403860
公开日2013年6月12日 申请日期2011年12月7日 优先权日2011年12月7日
发明者徐亮, 倪颖, 付长东, 王泽民, 傅剑 申请人:中国移动通信集团广东有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1