首页> 中国专利> 一种面向端到端性能的DTN网络数据束压缩方法

一种面向端到端性能的DTN网络数据束压缩方法

摘要

针对现有方法和主要缺陷,本发明提出了根据不同的链路特点以及先验信息,与DTN网络传输过程相结合,选择使用不同的协议数据束压缩算法的面向端到端性能的DTN网络数据束压缩方法。该压缩方法具有较好的应用前景和理论意义。首先,给出了有状态压缩和无状态压缩算法的实现细节。然后,给出了在DTN网络传输过程中的具体操作步骤。其中,无状态压缩主要描述了如何实现Bundle基本块中字典的Huffman压缩方法并给出了一定的约束条件,从而能够使被压缩的字典在接收节点能够唯一的恢复出来。同时,通过文件在单跳链路中的传播时延来评价包头压缩对DTN网络传输性能的改善,为压缩技术在DTN网络中的应用提供了性能基础。

著录项

  • 公开/公告号CN105391766A

    专利类型发明专利

  • 公开/公告日2016-03-09

    原文格式PDF

  • 申请/专利权人 哈尔滨工业大学深圳研究生院;

    申请/专利号CN201510663261.6

  • 发明设计人 杨志华;钟伟;江福;

    申请日2015-10-14

  • 分类号H04L29/08(20060101);H04L29/06(20060101);

  • 代理机构深圳市科吉华烽知识产权事务所(普通合伙);

  • 代理人胡玉

  • 地址 518000 广东省深圳市南山区西丽镇深圳大学城哈工大校区

  • 入库时间 2023-12-18 14:35:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-10-16

    授权

    授权

  • 2016-04-06

    实质审查的生效 IPC(主分类):H04L29/08 申请日:20151014

    实质审查的生效

  • 2016-03-09

    公开

    公开

说明书

技术领域

本发明涉及深空通信技术领域,尤其涉及一种DTN网络数据束压缩方 法。

背景技术

随着网络研究的发展以及深空探测的日益延伸,传统基于TCP/IP的网 络已经不能够为极端环境下的应用提供良好的服务。高延迟、信道误码率 高、信道链路频繁中断等特点违背了TCP/IP协议的基本假定。因此,近几 年提出了一种新型的面向消息的覆盖网络系结构,延迟容忍网络(Delay TolerantNetwork,DTN)用来解决极端环境下面临的网络通信问题。

DTN在传输层之上加入的Bundle层通过“保管-携带-转发” (store-carry-forward)机制和链路中断时的分片重传机制为上层数据交付提 供服务。因此,每个Bundle包含了从源节点到端节点传输应用数据的所有 路径信息,作为Bundle包头的主要组成部分。然而,在一些链路环境中应 用数据或Bundle的有效负载相比之下很小,导致大量的协议开销浪费着 DTN网络中十分珍贵的链路和带宽资源。解决问题的一个有效的途径就是 进行包头压缩。

目前,存在关于Bundle包头压缩的相关研究,这些工作采用不同的方 法致力于减少Bundle传输过程中的协议开销,提高无线网络的传输性能。 有学者采用ipn命名方案,使用node_number和service_number作为各节点 的端点识别符,摒弃dtn方案中通过偏移量和dictionary联合识别端点的方 式,达到包头压缩的效果;相关研究还定义了应用于IEEE802.15.4网络的 状态包头压缩;也有学者提出了无状态压缩和有状态压缩两个概念,并从 理论上分析了压缩效果。

上述关于Bundle包头压缩的相关研究存在两方面的问题:

(1)以往研究主要从理论上分析包头压缩效果,缺乏定量的分析以及 相关数学模型,没能结合DTN网络传输过程给出具体的实施压缩步骤。

(2)评价指标仅局限于包头压缩比,缺乏对整体传输过程的性能评估。

发明内容

为了解决现有技术中的问题,本发明提出了一种面向端到端性能的 DTN网络数据束压缩方法,根据不同的链路特点以及先验信息,选择使用 不同的协议数据束压缩算法,该压缩方法具有较好的应用前景和理论意义。

本发明通过以下技术方案实现:

一种面向端到端性能的DTN网络数据束压缩方法,该方法根据不同的 链路特点以及先验信息,与DTN网络传输过程相结合,选择使用不同的协 议数据束压缩算法对数据包bundle进行压缩;所述不同的协议数据束压缩 算法包括无状态压缩算法、状态压缩算法;当对Bundle交付延迟要求不严 格时,采用无状态压缩算法,否则采用状态压缩算法;其中,所述无状态 压缩算法通过Huffman编码来进一步减小字典的长度,所述状态压缩算法 将Bundle包头信息中描述整个传播链路状态的信息打包成背景文件,在第 一次Bundle传输过程中存储在中间节点的内存空间里即初始化,通过背景 识别符来进行再次调用。

作为本发明的进一步改进,所述方法适用于包括两个中继节点A、B 的DTN网络,其中,A、B不同时工作,考虑到星体2与中继卫星的转动 情况,A、B分别为间断连接,且具有一定的可预知性。

作为本发明的进一步改进,所述无状态压缩采用的Huffman编码执行 以下约束:Huffman编码采用上0下1的编码方式,出现概率相同的情况时, 根据ASCII表,将字符对应的数值或者字符串中对应数值之和较小者放在 上方,从而能够实现唯一的Huffman编码。

作为本发明的进一步改进,当对Bundle交付延迟要求严格时,联合使 用状态压缩以及无状态压缩来达到更好的压缩效果。

作为本发明的进一步改进,所述方法还包括,针对不同的传输节点, bundle本身执行自压缩算法。

作为本发明的进一步改进,bundle自压缩算法包括:对于各节点采用 相同的命名方案,则scheme仅出现一次就够了,即剔除字典中重复出现的 部分;对于链路的最后一跳,则省略Report-to和保管端点识别符。

附图说明

图1是基本Bundle块格式示意图;

图2是bundle包头中字典的各元素以及含义示意图;

图3是本发明的无状态压缩算法的Huffman编码示意图;

图4是双跳DTN网络的结构示意图;

图5是四种不同压缩算法情况下,协议开销所占比重与Bundle有效负 载之间的关系曲线图;

图6是单跳链路中分别采用传统未压缩以及无状态压缩、状态压缩的 算法传递1M的文件时的交付时间与单个Bundle的有效负载的关系曲线图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图 及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体 实施例仅用以解释本发明,并不用于限定本发明。

针对现有方法和主要缺陷,本发明首先给出了有状态压缩和无状态压 缩算法的实现细节。然后,给出了在DTN网络传输过程中的具体操作步骤。 同时,通过文件在单跳链路中的传播时延来评价包头压缩对DTN网络传输 性能的改善。最后,提出了根据不同的链路特点以及先验信息,与DTN网 络传输过程相结合,选择使用不同的协议数据束压缩算法的面向端到端性 能的DTN网络数据束压缩方法。

(1)基本Bundle块格式

每个Bundle至少包含两个块,第一个必须是基本块(primarybundle block),且每个Bundle有且只有一个基本块;其它类型的Bundle协议块跟 随在基本块之后,支持对Bundle协议的扩展。基本块包含了Bundle路由需 要的基本信息,格式如附图1所示:

版本号:一个字节,指示构建块所使用的Bundle协议的版本。

Bundle处理控制符:刻画了Bundle的一般属性、服务类型以及状态报 告请求标志。同块长度、偏移量、创建时间戳、生存期以及字典长度一样 是一个SDNV,长度可变。图1中用“*”进行了标注。

块长度:指示的是基本块长度域后到基本块结束的总长度。

scheme偏移量:指示对应端点ID的scheme名字在字典字节阵列中的 偏移量。

SSP偏移量:指示对应端点的ID的SSP部分在字典字节阵列中的偏移 量。

创建时间戳:时间戳的第一个SDNV是Bundle的创建时间,第二个是 Bundle的创建时间戳序列号。

生存期:从Bundle创建时刻开始,指示Bundle载荷的有效时间。

字典长度:指示字典字节阵列的长度。

字典:是一个字节阵列,包含基本块中以及其它DTN协议块中所引用 的端点ID的scheme名字和SSP。

段偏移:如果Bundle处理控制标志指示该Bundle是一个段,那么段偏 移指示该Bundle载荷在原始应用数据单元中的位置,该域也是一个SDNV, 长度可变。如果该Bundle不是段,那么基本块中省略段偏移域。

应用数据单元的总长度:同段偏移域,如果该Bundle是一个片段,那 么应用数据单元总长度域指示该Bundle载荷所属的原始应用数据单元的总 长度。如果该Bundle不是段,那么从基本块中省略应用数据单元总长度域。

(2)无状态压缩

一个Bundle的字典由字典长度和字典阵列两部分组成,包含了从源节 点到端节点的所有节点识别符,划分为scheme和SSP两部分。针对于不同 的传输节点,Bundle本身可以产生一定程度上的压缩。如果各节点采用相 同的命名方案,则scheme仅出现一次就够了,即剔除字典中重复出现的部 分。如果是链路的最后一跳可以省略Report-to和保管端点识别符。字典中 各相应端点的scheme以及SSP可以按一个约定的规则进行排列,从而可以 按照一个递增数列准确恢复出需要的端点识别符。

字典是Bundle包头的重要组成部分。字典压缩是减小Bundle包头大小 的一个有效途径。这里,本发明提出通过Huffman编码来进一步减小字典 的长度。然而,在使用Huffman编码对字典进行压缩之前,需要知道所有 包含在端点识别符之中的字符的一个分布情况,且被所有节点所共享,用 于对字典的Huffman编码以及译码,这里假定是已知的。

下面举例来说明,如附图2所示:为一个字典的元素以及其表示的含义。 从图中可以明确地统计出对应链路中各字符的分布情况。在未进行压缩之 前,字典占用了29字节的大小(每一字符占用1字节的大小)。首先,考 虑字典本身带来的一定程度的压缩,剔除字典中重复的部分以及空字符, 则压缩之后的字典大小为19字节。接下来通过Huffman编码来进行进一步 的压缩。本发明采用SDNV来表示字符,压缩之后考虑到编码的唯一识别 特性,从低位开始往高位连续的填充,向上取整,未满补零。考虑到Huffman 编码不是唯一的,为了编码和译码的方便,需要对其进行一定的约束。

如附图3所示,本发明规定:Huffman编码采用上0下1的编码方式, 出现概率相同的情况时,根据ASCII表,将字符对应的数值或者字符串中 对应数值之和较小者放在上方,从而能够实现唯一的Huffman编码。将这 种编码规则应用于每个传输节点,确保各节点对接收数据的准确恢复。

由于附图2举例字典中字符量相对较少,导致压缩效果明显。例如:元 素//a.b在压缩之前的二进制为10101111101011111110000110101110 01100010压缩之后为:100000011111000001010001。Huffman编码使字典 的大小压缩为10字节。一般来说,一种简单的Huffman编码策略可以使一 般的大型文件节省25%,而使许多大型的数据文件节省多大50%~60%。但 其在中间节点的编码与译码过程增加了数据的处理时间TH

(3)状态压缩

相对于无状态压缩,状态压缩加入了背景识别符,用以表征不同的传播 路径信息。假定传播链路状态相对较少,且具有一定的预见性。本发明用 Bundle处理控制符后两位闲置比特来表征最多四种不同的链路连接状况。 状态压缩是将Bundle包头信息中描述整个传播链路状态的信息(不包括完 成当前跳所需要的信息)打包成背景文件,在第一次Bundle传输过程中存 储在中间节点的内存空间里即初始化,通过背景识别符来进行再次调用。 如附图1基本Bundle块格式中阴影所表示的区域。Bundle包头信息 中的背景识别符要与节点存储相一致,且能够识别唯一背景文件,即要求 背景识别符具有互异性。接下来在相同链路通道中传输Bundle时,省略背 景文件的相关信息达到压缩的目的,通过在接收节点对其调用,完成对 Bundle的处理。

如附图4所示,通过中继节点A、B进行星体之间通信,假定A、B不 同时工作,考虑到星体2与中继卫星的转动情况,A、B分别为间断连接, 且具有一定的可预知性。

首先,星体1通过中继卫星A向星体2传递数据,传递的第一个Bundle 分别初始化中继卫星以及星体2接收站的背景文件,保存在存储容器中。 接下来的Bundle则采用压缩的包头进行传输,分别在相应的端点进行处理。 倘若经过一定的时间A链路中断,B链路处于连通状态。此时,星体1再 一次发送完整的Bundle包含所有新链路的相关信息,采用不同的识别符来 初始化中继卫星B以及星体2接收站的背景文件。状态压缩通过占用一定 的端点存储空间来换取对Bundle包头的压缩。

以附图2的字典为例,在未进行状态压缩之前,附图1所示的基本Bundle 块的大小为40字节,状态压缩剔除环境文件,使其大小减少为20字节。 压缩率达到50%。可以通过联合使用状态压缩以及无状态压缩来达到更好 的压缩效果。

如附图5所示,对比四种不同压缩算法情况下,协议开销所占比重与 Bundle有效负载之间的关系。同时可以看出,在固定Bundle有效负载的情 况下,状态压缩协议开销最小,说明Bundle包头压缩效果最好,之前的分 析给出了状态压缩达到了50%的压缩率。当链路环境更加复杂,传输节点 比较多的情况下,字典大小也随之增加,状态压缩相比其它几种压缩方式 表现出更好的压缩效果。正常情况下,状态压缩能够平均减小61%~81% Bundle包头的大小。

(4)单跳链路优化模型

DTN网络中单跳Bundle交付延迟可以建模为公式(1)的形式。

Db=Σi=1CUi---(1)

其中,Ui是第i次传输(重传)过程的延迟。C为Bundle成功交付需要传 递的次数。考虑到影响Bundle交付时延的因素,公式(1)可以进一步写为:

Db=ΣiC[(Si*(Ksh+Ks)Rf+Tfp)+θ(Ksh+KsRv+Tvp)+Tw]---(2)

Ui由前向链路交付时间和后向链路反馈时间两部分组成。其中Ksh,Ks分别表 示LTP传输帧头部和载荷大小;Rf、Rv分别为前向链路和后向链路信道传 输数率;表示前向链路和后向链路的信息传播延迟,假定二者相等 为Tp;Tw表示链路的平均中断时间;θ是接收节点成功向发送节点交付反 馈帧所需要的平均交付次数:

θ=Σm=1mEm-1(1-E)=11-E---(3)

其中,E为传输过程中的丢帧率,为了便于计算,假定误码率BER为一固定 值,与链路状况有关,且反馈帧大小等同于一个传输 帧的大小,即Ksh+Ks

接下来对单跳链路中成功交付该Bundle所需的往返次数C进行推导。 初始帧序列中包含S1个LTP传输帧,第k个传输帧传输了ek次才被接收方成 功接收的概率为:

P(ek=τ)=Eτ-1(1-E)(4)

因此,交付该Bundle所需的往返次数C可以表示为:

C=max(e1,e2,...,eS1)---(5)

进一步推导得:

P(Cη)=P(e1<η,e2<η,...,eS1<η)=(1-Eη)S1---(6)

P(C=η)=(1-Eη)S1-(1-Eη-1)S1---(7)

对成功交付Bundle的往返次数C做出了进一步的推导,并给出C均值的 简化模型:

E(C)1-ln(S1+1)lnE=1-ln(KbKs+1)lnE---(8)

Kb=Kbp+Kbh为给定Bundle的大小。整合以上内容,可以推导出Bundle交 付时延的计算公式为:

Db=11-E(Ksh+KsRv+Tp(2-E))[1-ln(KbKs)lnE]+Kb(Ksh+Ks)KsRf(1-E)+Tw---(9)

基于Bundle交付时延的计算公式,本发明模拟仿真了在单跳链路中分 别采用传统未压缩的方法以及状态压缩的方法传递1M的文件时的交付时 间与单个Bundle的有效负载的对应关系,如附图6所示:

从附图6中可以看出,采用无状态压缩和状态压缩的方法对文件交付时 延都有所改善,且状态压缩的性能要优于无状态压缩,主要是由于相对无 状态压缩,状态压缩的压缩效果更明显决定的。当每个Bundle的有效负载 较小时,包头大小是Bundle大小的决定性因素,协议开销消耗了大量的链 路资源,因此包头压缩在改善文件交付时延上效果明显。且随着每个Bundle 有效负载的增加,二者在传输文件的交付时延上差别越来越不明显,主要 是由于当有效负载增加到一定程度时,协议开销在网络传输过程中带来的 影响较小。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说 明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术 领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若 干简单推演或替换,都应当视为属于本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号