一种适用于无线自组织网络的报头压缩方法转让专利

申请号 : CN200910026064.8

文献号 : CN101568144B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 牛大伟王海于卫波储敏

申请人 : 中国人民解放军理工大学

摘要 :

本发明涉及一种适用于无线自组织网络的报头压缩方法。本发明属于通信网络协议设计领域。本发明通过在无线自组织网络的源节点对发送的IP,TCP或者UDP报文进行报头信息的压缩从而减少发送到无线信道中的开销,提高无线信道利用率;目的节点对接收到的压缩报文的头部信息进行解压缩还原,从而实现对上层透明的报头压缩和解压缩功能。由于采用完整传输变化字段的策略,无须考虑连续数据包之间的关联,本方法可以最大限度地对抗误码等原因造成的报文丢失对压缩方法性能的影响,具有较强的可靠性和健壮性。

权利要求 :

1.一种适用于无线自组织网络的报头压缩方法,其特征在于该方法由连接建立过程和压缩与解压缩过程构成,具体如下:连接建立过程:

1)、源节点连接建立过程:

11)、源节点检测上层是否有新的数据流产生,若有则继续,否则在步骤11)循环检测;

12)、生成一个全网唯一的连接标识号ID来唯一标识该数据流;

13)、构造一个连接请求消息request,该请求消息中包含连接标识号ID,数据流的第一个原始报文即携带了完整报头结构的报文;

14)、发送该请求消息给目的节点,并启动定时期T1;

15)、等待目的节点回送的确认ACK消息,或者定时器T1的超时事件;若收到ACK则继续否则跳到步骤17);

16)、将该数据流的连接标记为可以压缩并跳转到步骤11);

17)、将该数据流的连接标记为不可以压缩并跳转到步骤11);

2)、目的节点的连接建立步骤如下:

21)、检测是否收到request消息,若收到则继续,否则在步骤21)循环检测;

22)、记录request消息中ID号和对应的完整报头信息;

23)、将request中携带的数据和完整报头交给上层应用;

24)、构造应答ACK消息,该消息中携带刚刚收到的request消息中的ID号;

25)、回送该ACK消息给源节点并标记该数据流的连接为可以压缩,跳转到步骤1);

压缩与解压缩过程:

3)、源节点压缩过程:

31)、等待从上层接收一个数据报文,若收到则继续,否则停留在步骤31)等待接收;

32)、检测其是否属于可压缩数据流中的报文,即先前是否发送过对应的request并正确收到ACK,若是则继续,否则跳转到步骤35);

33)、构造压缩报头,压缩报头中携带连接建立过程中生成的ID号和相对于第一个报文而言变化了的字段信息,而将不变的字段信息删除掉,其中的变化信息包括:TCP报头的序列号字段、TCP报头的确认号字段、TCP报头的窗口号字段,TCP报头的紧急指针字段,TCP报头的校验和字段、片偏移字段、UDP校验和字段;

34)、将步骤33)中构造的携带压缩报头的报文发送给目的节点,并跳转到步骤31);

35)、发送携带完整报头的报文给目的节点并跳转到步骤31);

4)、目的节点的解压缩步骤如下:

41)、从底层接收一个数据包,若接收成功则继续,否则在步骤41)等待接收;

42)、检测其是否为携带压缩报头的报文,若是则继续,否则跳转到步骤46);

43)、以报文中携带的ID号为索引,查找该数据流中的不变字段,并利用该不变字段和报文中携带的变化字段恢复完整报头;

44)、将恢复后的报头和数据一起交给上层应用;

45)、跳转到步骤41);

46)、将收到的数据包交给上层应用并跳转到步骤41)。 

说明书 :

技术领域

本发明涉及一种适用于无线自组织网络的报头压缩方法。该方法可以在多跳无线自组网中实现对IP,TCP以及UDP协议报头的压缩和解压缩,从而减少在无线信道中传输的开销,节省无线信道宝贵的带宽资源。该方法在实现协议报头压缩和解压缩功能的同时,可以对抗无线信道高误码和高碰撞丢失率的环境,是一种健壮而可靠的报头压缩方法,适用于各种多跳无线网络。

背景技术

随着信息及网络技术的发展,无线及移动通信凭借其灵活便捷的优势越来越多的为用户所应用。在民用方面,IEEE802.11及wimax等技术未来都将作为3G网的一部分而存在,并且将进一步向Ad hoc(此处的Ad hoc即为无线自组网的意思:意即网络中的每个节点都既是端机又是路由器,各节点地位平等,没有端机和核心节点的区别,并且大都具有移动性)的模式演进。而未来的3G、4G网络都致力于向用户提供高质量的灵活的个性化服务和宽带多媒体服务。所以,用户在无线网络中应用宽带多媒体及实时业务的需求在不断提升;在军用方面,战术互联网也主要采用移动Ad hoc的方式来组网,而且随着军事应用和作战模式的变化,战术互联网中所传输的消息和业务也在向着综合化和多样化发展。这其中包括态势感知消息,指挥控制消息,实时语音消息等等,每种类型的消息对网络的服务质量都有不同的要求。
承载如话音等多媒体应用的网络中,往往以短报文居多(采用了一定的应用层数据压缩技术之后可以达到每数据包几十个字节)。这些小的数据报文在目前的TCP/IP为主的网络甚至将来的全IP网络中传输,是极其不经济的。以目前的IPv4网络为例,每个报文在IP层和传输层引入的报头开销至少为28字节(采用UDP协议)或者40字节(采用TCP协议),再加上应用层及数据链路层的开销则至少为50字节。这对短报文来说极大地降低了网络带宽的利用率。例如:假设低速链路(例如:无线信道)的包传送率为50个/s,那么采用IPv4/UDP协议传输的话,协议报头将至少占用带宽11.2kbits/s,若采用IPv4/TCP协议传输的话则至少要占用带宽16kbits/s。这种耗费即便是对于实时的语音业务来说也是相对巨大的(例如:目前GSM的语音采样速率仅为13kbits/s)。这种耗费在条件相对恶劣的Ad hoc网络如战术互联网中显得尤其难以承受。如何高效可靠的压缩这些耗费成为Ad hoc网络需要解决的一个难题。
目前已经存在的报头压缩方法主要是IETF的一系列草案及标准。分别针对串行低速链路,以及无线环境下的IP/TCP、IP/UDP、IP/UDP/RTP以及RAW IP(原始IP)的数据报头进行压缩。另外也有人提出了个别针对Ad hoc等无线网络的报头压缩方法。
VJHC方法主要针对串行低速接入链路(300~19000bps)的IP/TCP报头的压缩。VJHC采用Δ量方法进行报头压缩。该方法中压缩端并不发送当前数据包中字段的原始值,而只发送原始值与前一个相邻数据报头中对应字段的差值。解压缩端收到这个差值之后,将其与前一个相邻报头值求和,就计算出了当前数据报头字段的值。由于每次在信道中传输的都是相对于前一个数据报头字段的差值,所以该方法称之为Δ量算法。IETF的网络工作组在1999年推出了针对低速和中速的易丢包信道(包括无线信道)的IPHC方法。该方法能够对IP/TCP、IP/UDP协议头部进行压缩。该方法在VJHC的基础上引入了单向信道情况下的差错控制机制,其核心方法仍然是Δ量算法。ROHC也是IETF网络工作组提出的一种针对无线单跳网络的压缩方法。ROHC核心方法也称之为LSB(Least Significant Bit)方法。该方法只传送协议字段中相对于前一个报头变化了的比特。例如前一个数据包的某个字段值为″0110010101″(二进制比特序列),而当前数据包中的值为″0110011010″,则本次发送方只传送″1010″来表示这个字段。这种LSB方法最大限度地缩减了压缩报头的大小,剔除了相邻数据包的冗余。另外很多其它文献提出了在Ad hoc网络中应用报头压缩的思想,但是没有提出完整而具体的方法,尚不具有应用价值。
由上文可以看出,目前的压缩方法法都是依据同一个流的数据报头之间的相关性进行压缩的,压缩端和解压缩端都利用本次数据包中字段的值与上下文(上次成功传输或解压缩的报头)中的值进行运算(例如求和或者求差值)得出压缩报头或完整报头。这种方法在有误包和丢包的信道中会引入过多的数据差错和时延。例如:当发节点发送的数据包在信道中丢失或者由于误码被底层丢弃时,收节点将无法收到并对这个数据包进行解压缩,也就无法更新上下文。然而此时发节点已经更新了上下文(刚刚传送并丢了的数据报头值)。此后发节点将按照新的上下文压缩后续的数据包,而收节点将按照旧的上下文来解压缩报头。如果此时没有一种有效的差错发现和恢复方法,收发节点之间将永远无法获得一致的上下文,收节点所恢复出来的报头将永远是错误的。

发明内容

技术问题:本发明的目的是提供一种适用环境为带宽窄,误码率高,丢包以及碰撞率高的无线自组织网络的报头压缩方法。发送节点利用该方法压缩所发送的报文中的报头冗余信息,提高信道利用效率;接收节点利用该方法将接收到的压缩报文的报头还原,从而不影响应用层业务的操作,实现对上层业务透明的压缩方法。另外,报头压缩方法应该具有一定可靠性和健壮性,即某个压缩报文的丢失(误码等原因均会引起报文丢失)不应该影响后续其他报文的正确压缩和解压缩。
技术方案:本发明的适用于无线自组织网络的报头压缩方法由连接建立过程和压缩与解压缩过程构成,具体如下:
连接建立过程:
1)、源节点连接建立过程:
11)、源节点检测上层是否有新的数据流产生,若有则继续,否则在步骤11)循环检测;
12)、生成一个全网唯一的连接标识号ID来唯一标识该数据流;
13)、构造一个连接请求消息request,该请求消息中包含连接号,数据流的第一个原始报文即携带了完整报头结构的报文;
14)、发送该请求消息给目的节点,并启动定时期T1;
15)、等待目的节点回送的确认ACK消息,或者定时器T1的超时事件;若收到ACK则继续否则跳到步骤17);
16)、将该数据流的连接标记为可以压缩并跳转到步骤11);
17)、将该数据流的连接标记为不可以压缩并跳转到步骤11);
2)、目的节点的连接建立步骤如下:
21)、检测是否收到request消息,若收到则继续,否则在步骤21)循环检测;
22)、记录request消息中ID号和对应的完整报头信息;
23)、将request中携带的数据和完整报头交给上层应用;
24)、构造应答ACK消息,该消息中携带刚刚收到的request消息中的ID号;
25)、回送该ACK消息给源节点并标记该数据流的连接为可以压缩,跳转到步骤1;
压缩与解压缩过程:
3)、源节点压缩过程:
31)、等待从上层接收一个数据报文,若收到则继续,否则停留在步骤31)等待接收;
32)、检测其是否属于可压缩数据流中的报文(即先前是否发送过对应的request并正确收到ACK,若是则继续,否则跳转到步骤35);
33)、构造压缩报头,压缩报头中携带连接建立过程中生成的ID号和相对于第一个报文而言变化了的字段信息,而将不变的字段信息删除掉,其中的变化信息包括:
TCP报头的序列号字段(仅TCP流具有)、TCP报头的确认号字段(仅TCP流具有)、TCP报头的窗口号字段(仅TCP流具有),TCP报头的紧急指针字段(仅TCP流具有),TCP报头的校验和字段(仅TCP流具有)、片偏移字段(仅分片IP报文具有)、UDP校验和字段(仅UDP报文具有);
34)、将步骤33)中构造的携带压缩报头的报文发送给目的节点,并跳转到步骤31);
35)、发送携带完整报头的报文给目的节点并跳转到步骤31);
4)、目的节点的解压缩步骤如下:
41)、从底层接收一个数据包,若接收成功则继续,否则在步骤41)等待接收;
42)、检测其是否为携带压缩报头的报文,若是则继续,否则跳转到步骤46);
43)、以报文中携带的ID号为索引,查找该数据流中的不变字段,并利用该不变字段和报文中携带的变化字段恢复完整报头;
44)、将恢复后的报头和数据一起交给上层应用;
45)、跳转到步骤41);
46)、将收到的数据包交给上层应用并跳转到步骤41)。
有益效果:本发明通过在无线自组织网络的源节点压缩数据报文的头部信息而在目的节点处解压缩和恢复报文的完整报头信息的方法,实现了无线自组织网络的IP,TCP以及UDP报头压缩的目的。通过应用该方法,无线自组网能够大大地提高其信道带宽利用率并具有以下的有益效果:
1、实现了同一个流的连续报文无记忆性,使该方法对丢包不敏感,提高了该方法的健壮性;
2、仅存在简单的连接建立操作,信令简单,相比于其他具有复杂信令的方法更加易于实现;
3、对上层应用是透明的,可扩展性较好可以和现有的各种网络设备互通。
综上所述,本发明具有可扩展性好,健壮性好,可靠性高和易于实现等特点,适合应用在各种无线自组织网络中。

附图说明

下面结合附图对本发明进一步说明。
图1:源节点连接建立步骤;
图2:目的节点连接建立步骤;
图3:源节点压缩步骤;
图4:目的节点解压缩步骤;
图5:完整的IP+TCP的报头格式,其中阴影部分为一个流的不变字段,只需在流的连接建立过程中传输,而白色部分为一个流的变化字段,需要在每个报文中携带;
图6:完整的IP+UDP的报头格式,其中阴影部分为一个流的不变字段,只需在流的连接建立过程中传输,而白色部分为一个流的变化字段,需要在每个报文中携带;
图7:压缩的IP+TCP报头,其中类型值指示该报头为压缩报头,而S、A、W比特指示序列号、确认号和窗口号的位置,特殊比特指示TCP报头中的特殊比特值,紧急指针和校验和即为原始TCP报头中的校验和;
图8:压缩的IP+UDP报头,其中F和MF标志指示该报头是否是依据分片IP报头压缩的,而分片ID,片偏移和UDP校验和均为原始IP和UDP报头中的相关字段的原始值;

具体实施方式

适用于无线自组织网络的报头压缩方法采用逐段压缩和解压缩机制,其实现方案主要分为两部分过程即:连接建立过程和压缩与解压缩过程,下面分别详述之:
在分组网络中,源节点和目的节点的一次通信称之为一个连接。一个连接中源和目的之间可能需要交互大量的数据,这些数据被分割为一个个的报文,陆续地由源节点传送至目的节点。连接每次发送一个报文,当经过多次传输后,一个连接中的所有报文都传送完毕后,连接便结束了。同属于一个连接的多个报文的头部有很多字段信息是相同的或者可以根据连接中某个报文头部的相关信息推断后续其他报文头部中的相关信息。
本发明提出的报头压缩方法利用同一个连接中连续报头中的固定信息和可推断信息。源节点仅传送连接中第一个报文的完整报头,后续其他报文传送压缩的报头,而接收节点根据接收到的该连接第一个报文的完整头部和当前压缩头部的信息解压缩和还原当前压缩报头中的其他信息。
该方法由连接建立过程和压缩与解压缩过程构成,具体如下:
连接建立过程:
1)、源节点连接建立过程:
11)、源节点检测上层是否有新的数据流产生,若有则继续,否则在步骤11)循环检测;
12)、生成一个全网唯一的连接标识号ID来唯一标识该数据流;
13)、构造一个连接请求消息request,该请求消息中包含连接号,数据流的第一个原始报文即携带了完整报头结构的报文;
14)、发送该请求消息给目的节点,并启动定时期T1;
15)、等待目的节点回送的确认ACK消息,或者定时器T1的超时事件;若收到ACK则继续否则跳到步骤17);
16)、将该数据流的连接标记为可以压缩并跳转到步骤11);
17)、将该数据流的连接标记为不可以压缩并跳转到步骤11);
2)、目的节点的连接建立步骤如下:
21)、检测是否收到request消息,若收到则继续,否则在步骤21)循环检测;
22)、记录request消息中ID号和对应的完整报头信息;
23)、将request中携带的数据和完整报头交给上层应用;
24)、构造应答ACK消息,该消息中携带刚刚收到的request消息中的ID号;
25)、回送该ACK消息给源节点并标记该数据流的连接为可以压缩,跳转到步骤1;压缩与解压缩过程:
3)、源节点压缩过程:
31)、等待从上层接收一个数据报文,若收到则继续,否则停留在步骤31)等待接收;
32)、检测其是否属于可压缩数据流中的报文(即先前是否发送过对应的request并正确收到ACK,若是则继续,否则跳转到步骤35);
33)、构造压缩报头,压缩报头中携带连接建立过程中生成的ID号和相对于第一个报文而言变化了的字段信息,而将不变的字段信息删除掉,其中的交化信息包括:
TCP报头的序列号字段(仅TCP流具有)、TCP报头的确认号字段(仅TCP流具有)、TCP报头的窗口号字段(仅TCP流具有),TCP报头的紧急指针字段(仅TCP流具有),TCP报头的校验和字段(仅TCP流具有)、片偏移字段(仅分片IP报文具有)、UDP校验和字段(仅UDP报文具有);
34)、将步骤33)中构造的携带压缩报头的报文发送给目的节点,并跳转到步骤31);
35)、发送携带完整报头的报文给目的节点并跳转到步骤31);
4)、目的节点的解压缩步骤如下:
41)、从底层接收一个数据包,若接收成功则继续,否则在步骤41)等待接收;
42)、检测其是否为携带压缩报头的报文,若是则继续,否则跳转到步骤46);
43)、以报文中携带的ID号为索引,查找该数据流中的不变字段,并利用该不变字段和报文中携带的变化字段恢复完整报头;
44)、将恢复后的报头和数据一起交给上层应用;
45)、跳转到步骤41);
46)、将收到的数据包交给上层应用并跳转到步骤41)。