动态虚拟映射方法在提高SCHC机制压缩效率中的应用

2023-03-20 04:44喻竹希吕佳欢
无线互联科技 2023年1期
关键词:报头压缩率字段

朱 博,双 炜,喻竹希,王 璇,吕佳欢

(航天行云科技有限公司,湖北 武汉 430048)

0 引言

低功耗广域网是一种资源受限型网络,其主要特点包括低速率、低功耗和海量连接[1]。较长的数据报头会对传输效率造成不可忽略的影响,如果使用IPv6作为网络层协议,虽然在地址空间分配和组网效率方面比IPv4有了大幅度的提升,但是IPv6长达40字节的报头对于物联网应用而言显得过于冗长,从而使得该协议的实际效率低下[2]。IEEE802.15.4曾经尝试使用IPv6作为网络层协议,称之为6LoWPAN(IPv6 over LPWPAN)适配层[3]。相比于IEEE802.15.4而言,LPWAN受到的限制更多,所以6LoWPAN无法直接用于LPWAN。为此,IETF成立了LPWAN工作组,提出了静态上下文报头压缩(Static Context Header Compression,SCHC)机制[4],这种机制利用了LPWAN网络拓扑简单、易于建立静态的上下文关系等特点,很好地解决了长报头压缩和数据分段传输等问题。

物联网发展的最终愿景是与Internet进行无缝连接,尤其是在IPv6普及之后,每个终端都可拥有全网唯一的IP地址,LPWAN终端可随时被Internet上任意一台应用服务器直接访问[5]。因此从网关→终端的下行流量将无法事先预知,从而难以维持网关与终端间的静态上下文关系。

本文提出了一种可提高未知流量报头压缩成功率的方法,称为动态虚拟映射(Dynamic Virtual Mapping,DVM),该方法的设计思想是利用可重用的DVM单元来封装流量报头中的未知字段,通过屏蔽掉未知流量动态性的方式提高SCHC的压缩效率。因此,本方法实现了一种动态的上下文构建机制,能够减少网关和LPWAN终端之间的同步次数,从而提高SCHC的压缩成功率并降低网络资源的消耗。

1 LPWAN中的SCHC机制

支持SCHC机制的LPWAN网络架构如图1所示,它提供了LPWAN终端与应用服务器之间的双向连接,网关在转发数据包到LPWAN网络之前先使用网关侧压缩/解压缩(Compress/Decompress,SCHC C/D)操作对报头进行压缩,同样,在终端侧压缩后发送的数据包也需要在网关处进行解压处理,恢复出原始数据报头后再转发给服务器。

图1 支持SCHC的LPWAN网络架构

SCHC中的上下文信息由一些包含字段描述和压缩/解压缩操作的规则项组成。本地规则库中每一条规则都由对应的标识号(Rules ID)表示,SCHC压缩规则中字段的定义如表1所示。

表1 SCHC压缩规则

SCHC处理数据包时首先在本地规则库中通过轮询方式选中匹配项最多的一条规则,然后将当前字段值与对应的目标值进行匹配运算,如果所有字段都满足匹配规则,则根据对应的C/D操作进行处理,产生一个压缩报头,否则继续检测下一条规则。如果同时有多条规则与报头字段匹配,则选择开销最小的那一条。压缩完成后,按照规则ID、压缩残留信息(未能完全匹配的字段)、Payload(有效负载)的顺序重新封装数据包。在接收端,解压缩器首先通过查看规则ID来识别压缩数据包中使用的规则。然后在规则库中查找,并根据对应的C/D操作来解压缩,恢复出原始报头后进行下一步处理。

图2 DVM映射方法解压缩流程

2 DVM动态虚拟映射方法

DVM(动态虚拟映射)方法是在SCHC基础之上进行的扩展,使用一组可复用的DVM单元来存储SCHC机制无法识别的报头字段,例如那些无法找到可匹配压缩规则的字段或随时间而变的字段。从而提高SCHC的压缩效率。该方法的使用需满足3个条件:(1)报头中存在某些终端不关心其取值(可忽略)的字段。(2)在交互过程中字段的值始终不变(比如请求标志符)。(3)在DVM单元的生存时间内,报头字段的实际值与DVM单元中的值所建立的映射始终有效。

DVM方法在SCHC的基础上增加了一种称为DVM的匹配运算符(Matching Operator)。并在目标值字段(Target Value)中添加了一组DVM单元列表,[(DVM1),(DVM2)……],列表中的单元包含3部分:(1)DVM索引值。DVM单元的唯一ID,可自定义;(2)实际值。待压缩字段的实际值;(3)DVM单元的生存时间(TTL)。该值非零时,DVM单元表示被占用,TTL到期后对应单元将被释放。DVM索引值不随时间而变,而其实际值和生存时间则会在执行过程中被更新。

DVM方法的执行流程如图2所示,首先判断数据的流向,即在进行匹配操作时判断是否应该在网关侧(见图3)或终端侧(见图4)执行相应操作。如果压缩操作在网关侧已经完成,则判断是否报头字段已经与某个DVM值建立了映射关系,如果这个报头字段值已经存在,表示DVM操作已对此报头生效。如果该报头字段不存在,压缩器会将这个值映射到列表中第一个空闲的DVM单元里或者已经过期失效的单元中。如果报头字段匹配成功,则与SCHC机制一样,执行规则中对应的C/D操作进行压缩。如果DVM列表中存在多个可用单元,则C/D Action的选项中应该使用mapping-sent(TTL),同时压缩器发送用于与报头字段建立映射关系的DVM索引值,索引值的编码取决于DVM映射表中的单元总数。TTL值表示该DVM单元的最大生存时间,如果列表中仅有一个DVM映射单元,那么C/D Action选项应该使用not-sent(TTL),此时压缩器不会发送任何内容。

DVM方法的解压缩流程如图2所示,首先,需要从DVM列表中恢复出使用过的DVM单元,可依据索引值的发送顺序来确定,除非这是列表中的唯一的DVM单元。如果解压缩需要在网关侧完成,则解压缩器使用该单元对应的真实值来还原报头,如果在终端侧执行解压缩,报头字段则使用相应的DVM值进行重构即可,同时更新其生存时间。

图3 网关侧发起的DVM压缩流程

图4 终端侧发起的DVM压缩流程

由此可见,DVM值与真实值之间的映射关系在网关侧表现出了动态性,终端在处理时并不需要知道其真实值。基于此特点,DVM映射技术并不适用于处理那些必须在终端侧完整恢复的字段(比如IPv6的目的地址),更适合于那些取值对于终端而言可忽略的报头字段。

3 实验与性能评估

3.1 场景介绍

本文以一台LoRaWAN终端使用CoAP[6]向Internet上一台应用服务器发起请求并接收应答消息的过程为实验场景。由于终端请求的服务器地址没有存储在本地规则库中,因此服务器返回的应答消息没有与终端事先建立起静态的上下文关系,此时便可使用DVM方法来进行压缩处理。

存储在本地的SCHC压缩规则库如表2所示,其包含了完整的网络层、传输层和应用层。在本示例中,终端的IPv6前缀(IPv6DEVprefix)是alpha::/64,设备ID部分(IPv6DEViid)可以依据其MAC地址而定。终端中CoAP运行在UDP5678端口。CoAP的指令码为(0.02)和(0.00)。此外,因为解压缩器可重新计算UDP长度(UDPLength)和校验(UDPchksum),所以它们的取值可以忽略。

本场景下的DVM映射方法可用于IPv6地址的前缀部分(IPv6APPprefix)以及它的ID部分(IPv6APPid)、UDP报头中的端口号(UDPAPPort)以及CoAP报头中的消息ID段(CoAPMID)。因为这些字段的值会在不同流量中发生变化,原生SCHC机制无法处理。此外,这些值对于终端而言可忽略,但是在终端和网关之间传输时保持不变。因此,这些字段非常适合使用DVM方法进行压缩。如表2所示,规则库在每个DVM列表中定义了两个DVM单元(DVM1,DVM2),此时每个列表中的DVM值必须是唯一的,并使用一个比特来标识单元是否被占用。本场景中的TTL值被设置为20(s),使用以上配置,本规则库已经可以满足实验场景的需求。

3.2 评价模型

笔者以报文压缩率来衡量DVM方法的执行效率,为此构建分析和评价模型。在该模型中,DVM方法在执行操作时,TTL值需要满足公式(1)的约束。这里的RTTL表示网关侧到终端侧的最长往返时间。

表2 DVM方法的压缩规则库

满足公式(1)可以确保使用的DVM单元在生存时间内,网关侧有足够的时间接收到响应报文。在理想的信道环境下,RTTL被定义为将要发送的最长请求消息所需的时间TLreq与将要被接收的最长响应消息所需的时间TLres之和。同时,还需要考虑真实信道环境中可能引起消息的重传,因此,公式(1)中RTTL在计算时考虑了最大的MAC层重传次数Rmax,这就意味着任何的传输在被有效接收前都需要传输最多Rmax次,我们可依据该原则设置TTL的初始值。

TTL≥RTTL

(1)

RTTL=Rmax(TLreq+TLres)+TLpre

本实验以M/D/N队列[7]的形式为DVM映射列表进行建模,在这种排队模型中,到达网关侧的请求消息分布服从泊松过程,到达速率λ和平均间隔时间为1/λ,服务接收率μ=1/TTL。N表示DVM列表中参与压缩操作的单元数量。公式(2)表示新请求达到时,所有DVM单元都不可用的概率。相应的[1-P(ρ,N)]表示新到来的请求消息中发现有一个单元可用的概率。依据给定的N和λ,计算P(ρ,N)便得出能够被DVM压缩的概率,计算方法如公式(2)所示,对公式(2)进行化简并令初始值P(ρ,0)=1后得到公式(3)。

(2)

(3)

我们使用可压缩率CRDVM来评价DVM方法的处理效率,其被定义未压缩流量与已压缩流量的比值。因此,对于一个长度为FL的报头字段,如果在使用DVM方法的情况下,可使用公式(4)来计算其压缩率。

(4)

3.3 实验结果分析

如表3所示,LoRAWAN支持7挡速率的自适应功能,此外还为每种不同速率指定了最大MAC帧长。为便于设置TTL的值,这里使用最大帧长和最大重传次数Rmax=3来计算最差情况下的RTTL。在本场景中,可认为响应报文发出时的TLpre=0。根据公式(1)可知,RTTL等于使用最低速率传输最大帧长所需的时间TLreq加上使用当前设备使用比特率发送最大帧长时所需的传输时间TLres之和的3倍。我们使用Semtech官方提供的计算工具[8]得出了不同Rb下对应的RTTL值(如表3所示),可以根据这些值来设置合适的TTL值以满足公式(1)的约束条件。

表3 LoRaWAN传输速率

本实验的仿真结果表明如果不使用DVM方法,根据公式(4)计算得出请求消息和响应消息的压缩率分别是3.85和4。在使用DVM方法时,当列表中存在1个、2个、4个和8个空闲单元可用时,请求和响应消息的压缩率变化曲线如图5所示。其中对于每个不同的N值,随着请求消息到达速率λ的增加,4种情况下的压缩率均表现为从最高值逐渐降低到最低值。当P(ρ,n)=0(表明请求消息总是能找到至少一个可用的DVM单元)和当P(ρ,N)增加时压缩率降低到最小值。当P(ρ,n)=1时就意味着报头字段没有被执行压缩。如图4所示,压缩率会随着N的增加而减少,这是因为用于对N进行编码所需要的比特位在增加,从而降低了压缩率。需要注意的是,最好将N的取值设置为2的整数次幂,假如设置N=3,则会与取N=4时得到相同的压缩率,而N=4时可在更高的请求速率下维持更高的压缩率。综上所述,在相同的请求速率下,更小的TTL值可以得到更高的压缩率,主要因为减少TTL的同时增加了找到生存时间到期的DVM单元的概率。

图4 不同配置下的压缩效率对比

目前LoRAWAN网络只能运行在非授权ISM频段上,其发送占空比通常会被限制在一个很低的值[9-10],比如欧洲要求在863~870 MHz频段内发送占空比仅为1%。在这种低占空比的情况下,LoRAWAN应用的平均请求到达时间通常在数十分钟以上。因此,如果能实现如图4所示的压缩率,对于LoRAWAN应用来说已经足够。在N=1时两次请求和响应的平均时间间隔分别为27和52 min。意味着在本场景下,相比于原生SCHC,DVM方法的请求和响应消息压缩率分别提高了600%和1 200%,这对于网络资源和设备功耗的控制都是非常有利的,同时也反映出DVM方法在压缩效率方面具有明显的优势。

4 结语

在LPWAN与Internet深度融合的长期愿景下,随着IPv6的普及以及终端移动性需求的增加,SCHC机制所倡导的静态上下文关系变得越来越难以维护,针对一些无法建立稳定上下文关系的场景,如何有效地提高报头压缩效率是值得研究的问题。本文在原生SCHC的基础上进行改进,提出了动态虚拟映射方法。该方法使用一组固定大小的DVM存储单元,将一些无法处理的字段动态的映射到这些单元中,并在SCHC添加对应的处理规则,同时建立复用方式。该方法相比于SCHC建立了一种动态的上下文映射机制,避免由于上下文关系发生变化而导致终端与网关之间的重新同步。实验证明本方法在适用条件满足时,相比于SCHC能够大幅度提高报头的压缩效率,同时缩短响应时间。

猜你喜欢
报头压缩率字段
图书馆中文图书编目外包数据质量控制分析
城市党报报头:政治与艺术的平衡
水密封连接器尾部接电缆的优化设计
缠绕垫片产品质量控制研究
多载波通信系统中CQI无损压缩法研究
淡妆浓抹总相宜
——对中国晚报报头变化的研究与欣赏
CNMARC304字段和314字段责任附注方式解析
无正题名文献著录方法评述
IP语音报头压缩设计与实现
关于CNMARC的3--字段改革的必要性与可行性研究