APP下载

水声网络中端到端可靠性传输的跨层设计方法

2018-07-18罗佳伟张绍凤姜胜明

现代计算机 2018年17期
关键词:传输层网络层物理层

罗佳伟,张绍凤,姜胜明

(上海海事大学信息工程学院,上海 201306)

0 引言

可靠的数据传输是保证目的节点可以成功接收发送给它的内容,它是许多水下应用的基础,例如监视海岸线防御、海上生产、生态监测和科学探索以及灾难救援等。水声网络的环境复杂且恶劣,水声通信的质量存在巨大的挑战,水声通信的可靠性亟待提高,所以水声通信的可靠性研究成为各海洋国家最关注的问题之一。

之前有研究人员提出采用ARQ进行检错重发,但是水声信道状态太差,ARQ进行差错控制的效果也很差,然后提出改进方法将物理层FEC和数据链路层ARQ相结合。也有人提出在网络层采用包级FEC进行检错。这些差错控制的方案对水声通信的质量都有一定的改善,但是单层进行差错控制的方案都有一定的局限性,总体效果都差强人意,实际上数据传输的可靠性控制涉及到物理层到传输层,如果采用各层相互协作进行差错控制,这样就能更好地提高通信的质量,改善水声通信的可靠性[1]。跨层的差错控制方式将在第1节进行阐述。

1 相关工作

目前为止,水声网络的可靠性传输仍在研究阶段,解决方案大多还是单层的差错控制方式。不同的单层差错控制方案主要包括物理层比特级前向纠错,数据链路层的自动重传请求,网络层包级前向纠错,还有在传输层TCP端到端的重发[2]。

1.1 前向纠错(FEC)

FEC是利用数据进行传输冗余信息的方法,在数据包传输之前,先对数据包进行编码,然后在接收端进行检测和纠正,当传输中出现错误,允许接收器再建数据[3]。

比特级FEC以比特为基本单元进行编码,通常用于物理层的差错控制,其中使用冗余位来检测和纠正接收到的信号,冗余位越多,其纠错能力越强,但是冗余传输消耗更多带宽和更多能量[1]。比特级FEC常用的线性编码方式有多种,例如常用的线性分组码汉明码,Bose-Ray-Chaudhuri-Hocquenghem(BCH),Reed-Solomon(RS)和低密度奇偶校验码(LDPC)等。

包级FEC以数据包作为基本的编码单元进行编码,通常用于网络层的差错控制,通常将喷泉码作为包级FEC编码[3]。

喷泉码是一种新型无码率编码方式。喷泉码是指发送端中由k个原始分组生成任意数量的编码分组,向接收端不间断地发送编码分组,要接收端收到其中任意n>k个编码分组,能够以较高的概率恢复信源分组信号[4]。喷泉码优点:适应多种变化的信道状况,具有自适应链路信道状态的特性,喷泉码能够充分利用信道容量,拥有很小的译码开销ε,编译码简单。

其中Raptor码是目前最有效的喷泉码[5],Raptor编码流程示意图如图1所示。

图1 Raptor编码流程示意图

1.2 自动重传请求(ARQ)

自动重传请求是在发送端加入冗余校验码,由接收器用来检测错误。如果一个数据包差错检测找到错误,就会被考虑错误。确认(ACK)和计时方案用于实现。ACK是由接收者向相应的发送者发送的短消息指示它已成功收到发件人发送的数据包,如果发件人无法收到预期的ACK或者超时,它将重新发送相同的数据包直到它收到ACK或者重试的次数超过预定义的数字。否定确认(NACK)也可能由接收方发送,告诉发送方有什么未成功收到[1]。

ARQ通常包括用于数据链路层的差错控制和传输层TCP端到端的ARQ。

ARQ不需要复杂的编码或用于错误控制的大冗余。但是,在水声通信中重传的延迟会很长。

以上各层的不同差错控制方式都可以提高传输的可靠性,但是不能在所有的状态下保持较好的吞吐量。

2 跨层设计方案

本文提出跨层协作的差错控制方式,FEC可以在ARQ可以保证的情况下进行优化传输可靠性。它们可能共存于一个系统中,因为FEC可以减少重传次数从而控制ARQ重传的延时通常在物理层上实现比特级FEC而ARQ则在数据链路层上提供链路层可靠传输,防止残留误码和碰撞。此外,还有网络层包级的FEC协议以及传输层的TCP实现以提供端到端可靠的数据包传输。如图2所示。

图2 可靠性传输的跨层设计

信道的丢包率然后使用ARQ保证传输可靠性,然后用包级的FEC来避免ARQ大量重传导致的时延过大,这样的传输可靠性优于FEC/ARQ共存结构[6],最后在传输层使用TCP的重传来保证最后端到端的可靠性,这样就构成了一个较为完善的提高可靠性的跨层差错控制方案,其差错控制的性能更优。

物理层的比特级FEC采用BCH码,数据链路层ARQ采用CRC码,网络层的包级FEC采用Raptor码。

3 仿真结果及分析

3.1 仿真场景及参数

本文是通过EXata平台进行仿真实验,对在不同的差错控制方式场景下的接收端吞吐量进行分析,接收端吞吐量是指接收端单位时间内接收到的数据的比特数,同时对各个差错控制方式的性能进行分析对比。仿真的场景是在静态网络拓扑结构中,将发送节点和接收节点分布在1000m×1000m的范围内,节点的传输范围是500m,衰减模型采用瑞利衰减模型。节点的发包率服从λ的泊松分布,水声传播速度为1500m/s,可用带宽设置为20kHz,信号频率为50kHz。

3.2 仿真结果与分析

首先利用EXata进行单层的差错控制进行仿真实验。将物理层基于BCH码的比特级FEC、数据链路层基于CRC码的ARQ、网络层基于Raptor码的包级FEC差错控制方式分别进行仿真,从而得到不同差错控制方式场景下的误码率和接收端吞吐量之间的关系,并与采用物理层数据链路层和网络层三层跨层的差错控制方式得到的结果进行对比,如图3所示。

由图3可以看到,物理层的FEC和数据链路层的ARQ这两种方式的接收端吞吐量都随着信道的误码率的增大而减小,但是两者会在误码率减小到一定值的时候有个交叉,也就是它们的吞吐量的大小关系会发生变化,即信道误码率小于该误码率的时候,物理层的FEC接收端吞吐量会高于ARQ的接收端吞吐量,而误码率大于该值的时候就会反过来。在相同的误码率的情况下,网络层的包级FEC的接收端吞吐量比数据链路层的ARQ和比特级的FEC的都要高,且基本随着误码率的变大呈线性减小,原因在于基于喷泉码的FEC能够连续发送数据包,并且接收端接收到稍大于原始数据包数据的编码即可解码整个数据段,这样就只需要对每个数据段而不是数据包进行反馈,其反馈次数和传输时间会远远小于基于数据包进行反馈的差错控制方案[7]。

图3的仿真结果表明,在信道状态改变时,也就是误码率由小变大的过程中,采用物理层数据链路层网络层三层相结合的跨层差错控制方式明显比单层的差错控制方式得到的接收端吞吐量要好,也就是更能提高水声网络通信的可靠性。原因在于,在物理层和数据链路层加入差错控制后,当误码率增加时,比特级的FEC和ARQ已经一定程度上减小了丢包率,这时喷泉码不需要发送过多的编码包就可以成功解码[8]。

图3 单层与跨层差错控制比较CRC(127,111),BHC(127,85)

图4是将在不同层的跨层的差错控制方式进行仿真比较。首先在物理层采用基于BCH码的比特级FEC、数据链路层基于CRC码的ARQ、网络层基于Raptor码的包级FEC跨层的差错控制方式进行仿真,然后将网络层的差错控制方式更换成传输层的TCP重发,再进行仿真,最后将物理层到传输层四层的差错控制方式结合进行联合的差错控制仿真,此时比特级的FEC 采用的编码效率是 CRC(127,111),BCH(127,85)。

由图4可以得到,在相同的误码率的条件下,采用物理层数据链路层网络层跨层的差错控制方案会比物理层数据链路层传输层跨层的差错控制方案好,原因在于网络层的包级FEC差错控制效果是比较好的,当去掉网络层的差错控制而直接在传输层进行TCP的重发时,由于水声网络的传输延迟大的问题,会严重影响其性能。

而由图5同样可以得到,当采用从物理层到传输层联合进行差错控制的时候,在误码率不是太差的时候其差错控制的效果是优于任何跨三层的差错控制方案的。但是在误码率太高的时候,可能会由于TCP的重传导致其吞吐量低于没有传输层参与差错控制的方案,所以在仿真结果中出现了交叉的情况。

图4与图5是在相同的场景,不过是采用不同的编码效率进行仿真,图5的编码效率是采用CRC(127,95),BCH(127,64)。由仿真结果可以得出,当改变编码效率以后,物理层数据链路层网络层三层结合的差错控制方式仍然比物理层数据链路层传输层相结合的方式要好,而且从物理层到传输层都有差错控制的方式性能也是好于前两种的。结论与图4的基本一致,说明在不同的编码效率下之前的结论也成立,但是同时也说明了接收端吞吐量与编码效率也是有关系的。

图4 单层与跨层差错控制比较CRC(127,111),BHC(127,85)

图5 单层与跨层差错控制比较图CRC(127,95),BHC(127,64)

4 结语

通过分析单层差错控制方案的不足,提出从物理层到传输层多层结合的跨层差错控制方案,充分利用多层协作,通过平衡冗余和时延的差错控制方案,提升了水声通信接收端的吞吐量,从而保证水声通信的可靠性。并且分析对比了几种不同层的差错控制相结合的方案,仿真实验的结果表明,与传统的单层的差错控制方案相比本文提出的跨层差错控制方案在提高水声通信的可靠性上有更优的性能,并且对比的几种跨层差错控制方案表明,从物理层到传输层联合的差错控制方案性能最优。

同时,通过不同编码效率的差错控制方案的对比,实验结果表明,不同的编码效率实际上对接收端吞吐量也会有影响,也会影响水声通信可靠性的提高,因此如何根据当前信道状态选择合适的编码效率以达到接收端吞吐量的最优是本文的后续工作。

猜你喜欢

传输层网络层物理层
基于K-ML-MPWFRFT的物理层安全传输技术
基于Python语言的网络传输层UDP协议攻击性行为研究
基于物联网GIS的消防智能巡检系统设计与实现
论物联网安全威胁及其应对策略
NAPT技术对数据包分片的处理实验
利用Modbus协议实现垂直螺旋卸车机取料器自动调速方法
一种应用于5G基于LDPC码的物理层包编码
物联网技术在信息机房制冷系统中的应用
物联网无线通信传输层动态通道保障机制
卫星通信物理层安全技术探析