一种基于ASN.1的OLSR路由协议的高效编解码方法
文献发布时间:2023-06-19 16:08:01
技术领域
本发明属于无线通信技术领域,特别是指一种基于ASN.1的OLSR路由协议的高效编解码方法。
背景技术
无线自组织网络是一种无中心、自组织的无线网络,各个节点相互独立、相互发现。无线自组织网络与有线自组织网络相比,主要包含如下方面差异:
信道干扰复杂。相比传统的有线自组织网络,无线自组织网络通过空口无线电波进行通信,考虑到空口的复杂电磁环境,无线信道极易受到干扰,节点间通信的信道质量无法得到保障,导致空口传输带宽受限。
资源竞争激烈。无线自组织网络不存在调度中心,节点如果想要和其余节点通信,需要申请占用无线信道。因没有调度中心统一调度,导致节点在占用空口资源时存在竞争,加剧了空口资源的紧张。
节点移动频繁。无线自组织网络摆脱了传统网线的限制,节点可以自由活动,给网络带来了极大的便利性。同时,节点的频繁移动会引起网络拓扑的频繁变更,进而导致路由变更。为了能够及时获取全网最新的路由信息,无线自组织网络需要根据一定的策略广播节点信息。路由更新不可避免地引入路由控制信令,控制信令过多,会降低网络的数据传输能力。
从以上分析可知,网络的健壮性和传输效率的提升瓶颈在空口侧,如果空口能够将控制消息和数据及时传递到目的节点,网络将有序高效运行。无线自组织网络拓扑变化的快速响应与系统开销是一对矛盾,网络拓扑的快速响应有利于提升系统性能,但同时会增加系统开销,从而降低系统容量。
基于以上分析的网络特征,在无线自组网中可以采用基于OLSR路由协议(Optimized Link State Routing,OLSR)。OLSR路由协议为了获取全网路由信息、全网拓扑信息,需要每个节点周期性地发送OLSR控制消息,控制消息包括HELLO消息和TC消息等。周期性发送HELLO消息,可以获取相邻节点的链路状态。周期性发送TC消息,可以获取全网节点的拓扑关系。通过以上过程,节点可以获取全网路由信息及全网拓扑信息,从而达到路由层面组网的目的。
OLSR路由协议定义了HELLO消息及TC消息的格式,空口包(packet)编码形式如下:
其中“*”表示message包含0个或多个,message格式参考协议RFC 5444。
这种编码方式非常灵活,但同时也导致编码后的信令数据包非常大。根据无线自组织网络的特性,空口资源本身比较紧张,如果空口控制信令过大,会给网络带来非常沉重的信令开销,从而导致没有充足的资源传输数据,降低网络性能。
ASN.1(Abstract Syntax Notation One)是一种ISO/ITU-T标准,描述了一种对数据进行表示、编码、传输和解码的数据格式。ASN.1编解码分为以下几种编码规则:
1)基本编码规则(Basic Encoding Rules,简称BER)
2)规范编码规则(Canonical Encoding Rules,简称CER)
3)识别名编码规则(Distinguished Encoding Rules,简称DER)
4)压缩编码规则(Packed Encoding Rules,简称PER)
5)XML编码规则(XML Encoding Rules,简称XER)
CER和DER两种编码规则,是在BER的基础上增加了一定的约束项发展而来。CER使用不定长编码格式,满足了传输大量数据的需求,能够保证在所有数据没有到达的时候就开始编解码工作。DER使用了定长编码格式,主要用于对安全性比较高的场景提供可靠的数据传输。
在数据传输类协议中,通常使用PER编码,PER编码可以缩短编解码时间,并且与BER规则相比,PER编码后数据可以降低40%-50%的空间占用,因此广泛应用于VoIP、视频电话、3GPP空口信令等场景。而且PER编码分为PER编码(aligned PER)、UPER编码(unaligned PER),UPER编码因为不考虑字节对齐,可以进一步压缩编码后数据的长度。
发明内容
有鉴于此,本发明提供一种基于ASN.1的OLSR路由协议的高效编解码方法。基于本发明方法,采用ASN.1UPER方式进行信令编解码,可压缩空口消息的长度,降低空口消息开销,提高无线自组织网络传输速率和网络的健壮性,避免消息过大引起的负载过高或网络拥塞。
为了实现上述目的,本发明采用的技术方案为:
一种基于ASN.1的OLSR路由协议的高效编解码方法,基于OLSR V2的协议,HELLO消息与TC消息采用ASN.1的UPER编码格式;包括以下步骤:
步骤一,设置最大节点数,根据ASN.1生成编解码库;
步骤二,为网络中的每个节点分配一个全网唯一的节点身份;
步骤三,发送端OLSR协议栈根据ASN.1编码格式,构建HELLO消息、TC消息结构体,并填充消息内容;
步骤四,发送端OLSR协议栈将消息输入ASN.1编码器,编码并输出码流,通过空口传输;
步骤五,接收端OLSR协议栈将接收到的码流输入ASN.1解码器,解析出HELLO消息、TC消息;
步骤六,接收端OLSR协议栈根据HELLO消息、TC消息内容,根据协议进行后续处理。
进一步的,步骤三中,发送端OLSR协议栈的OLSR控制信令包采用ASN.1格式,包含4比特版本信息,16比特包序列号信息,以及1到多个消息体;其中,消息体包含消息头,以及HELLO消息或TC消息;
所述消息头包含消息发送源节点标识,8比特消息跳数最大值,8比特消息转发最大次数,16比特消息序列号。
进一步的,步骤二中,每个节点均具有节点标识,所述节点标识包含全网唯一的节点身份码、4字节IPV4地址、16字节IPV6地址,根据配置选择其中之一。
进一步的,所述HELLO消息包含8比特消息有效时间、8比特消息发送间隔时间,8比特担任MPR节点的意愿值、本地节点信息,以及0或多个邻居节点信息;
HELLO消息中的本地节点信息包含本地节点标识、输入链路度量值、输出链路度量值;
所述邻居节点信息包含邻居节点标识、2比特链路状态、1比特邻居状态、2比特MPR类型、输入链路度量值、输出链路度量值;
所述链路状态为链路丢失、链路对称、链路非对称状态之一,所述邻居状态为邻居丢失、邻居对称状态之一,所述MPR类型为洪泛MPR、路由MPR、洪泛路由MPR类型之一;
所述输入链路度量值和输出链路度量值包含2比特链路度量类型和12比特链路度量值。
进一步的,所述TC消息包含8比特消息有效时间、8比特间隔时间、16比特TC消息内容序列号、本地节点信息、0或多个MPR选择器节点信息;
TC消息中的本地节点信息包含本地节点标识、输入链路度量值、输出链路度量值;
所述MPR选择器节点信息包含MPR选择器节点标识、2比特邻居类型、输入链路度量值、输出链路度量值;
所述邻居类型为源节点、可路由、可路由源节点类型之一。
本发明与现有技术相比,具有如下的有益效果:
1、降低空口资源开销,提升系统容量
无线自组织网络拓扑变化的快速响应与系统开销是一对矛盾,网络拓扑的快速响应依赖路由更新的及时更新,但路由更新会引起信令开销增大,挤占了更多的空口资源,从而导致系统容量的降低。空口信令的长度越长占用的空口资源越多,对空口消息长度进行压缩,可以有效降低空口资源开销,系统降有更多的资源传输数据,提升系统容量。
2、快速响应网络变化,提高网络健壮性
基于ASN.1UPER编解码规则的消息压缩方案,使得空口消息长度减小,网络传输的效率会提升,OLSR路由协议的HELLO消息、TC消息可以更及时地广播到目的节点,及时响应当前无线自组织网络拓扑变化,有效提高网络的健壮性。
3、降低控制信令开销,提升用户体验
OLSR的空口消息属于控制信令,控制信令占据的网络开销降低,可以有效地提升数据传输的效率,提升用户体验。
附图说明
图1是本发明实施例中基于ASN.1编解码的OLSR处理流程图。
图2是本发明实施例中网络节点局部拓扑示意图。
具体实施方式
下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于ASN.1的OLSR路由协议的高效编解码方法,本方法应用的无线自组织网络遵循如下原则:
1)自组织网络节点有限,并根据网络规模,在ASN.1的描述代码中设置有效的maxNodeNum值。
2)每个节点拥有一个全网唯一的节点标识,可以是IP地址,也可以是全网唯一的身份码(nodeIdentity)且nodeIdentity取值小于等于maxNodeNum。
3)仅支持遵守该规则的无线自组织网络内部寻址。
本方法基于OLSRV2的协议,HELLO消息与TC消息采用ASN.1格式进行编码,并且为了尽可能地压缩空口信令的长度,本方法采用UPER编码格式:
ASN.1格式的OLSR控制信令包格式包含4比特版本信息,16比特包序列号信息,以及1到多个(例如9个)消息体。其中,消息体格式有如下特征:包含消息头,以及可选的HELLO消息或TC消息。
其中,消息头包含消息发送源节点标识,8比特消息跳数最大值,8比特消息转发最大次数,16比特消息序列号。
本方法中所有节点标识均具有全网唯一的节点身份码、4字节IPV4地址、16字节IPV6地址。
HELLO消息体包含8比特消息有效时间、可选地包含8比特消息发送间隔时间,可选地包含8比特担任MPR节点的意愿值,本地节点信息,0或多个(例如255个)邻居节点信息。其中,本地节点信息包含本地节点标识,可选地包含输入链路度量值,可选地包含输出链路度量值。邻居节点信息包含邻居节点标识,可选地包含2比特链路状态(链路丢失、链路对称、链路非对称状态之一),可选地包含1比特邻居状态(邻居丢失、邻居对称状态之一),可选地包含2比特MPR类型(洪泛MPR、路由MPR、洪泛路由MPR类型之一),可选地包含输入链路度量值,可选地包含输出链路度量值。链路度量包含2比特链路度量类型,12比特链路度量值。
TC消息包含8比特消息有效时间、可选地包含8比特间隔时间,可选地包含16比特TC消息内容序列号,本地节点信息,0或多个(例如255个)MPR选择器节点信息。其中,本地节点信息包含本地节点标识,可选地包含输入链路度量值,可选地包含输出链路度量值。MPR选择器节点信息包含MPR选择器节点标识,可选地包含2比特邻居类型(源节点、可路由、可路由源节点类型之一),可选地包含输入链路度量值,可选地包含输出链路度量值。
具体地,ASN.1格式的包格式定义如下:
其中,各个元素的定义如下:
对于一个网络规模小于160个节点的无线自组织网络,采用OLSR协议作为其路由协议,则本方法的步骤如下:
步骤一,当前网络规模小于160个节点,设置maxNodeNum的值为160,并根据修改后的ASN.1生成编解码库;
步骤二,为网络中的每个节点分配一个全网唯一的节点身份(NodeIdentity);
接下来,执行如图1所示的基于ASN.1编解码的OLSR处理流程:
步骤三,发送端OLSR协议栈根据ASN.1编码格式,构建HELLO消息、TC消息结构体,并填充消息内容;
步骤四,发送端OLSR协议栈将消息输入ASN.1编码器编码,编码并输出码流,通过空口传输;
步骤五,接收端OLSR协议栈将接收到的码流输入ASN.1解码器解码,解析出HELLO消息、TC消息;
步骤六,接收端OLSR协议栈根据HELLO消息、TC消息内容,根据协议进一步处理。
图2所示为一个少于160个节点的网络的局部,节点1和节点2、节点3、节点4、节点5均存在链路,所以在节点1的HELLO消息中携带的节点标识个数为5个(包含本节点的标识)。需要包含在HELLO消息中的多个标识为:192.168.1.1(节点身份码=1),192.168.1.2(节点身份码=2),192.168.1.3(节点身份码=3),192.168.1.4(节点身份码=4),192.168.1.5(节点身份码=5)。
根据RFC5444协议提供的编码方法结果如下,包头占3字节,消息体占49字节,共占52字节。
包头:
消息体:
根据本方法的编解码结果如下表,共占24字节:
注:其中的preamble指示可选字段是否存在,一个可选字段占1bit。
从上述例子可以看出,本发明的编解码方法与标准协议相比,降低了约54%的信令长度,进而降低54%的OLSR路由信令开销。
以上对本发明方法进行了详细介绍,本发明中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。此外,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
- 一种基于ASN.1的OLSR路由协议的高效编解码方法
- 一种基于OLSR路由协议无线网络的组织方法