天线|RF射频
直播中

李开心

7年用户 219经验值
私信 关注
[问答]

怎么实现一种高速短波自适应数据通信协议的设计?

本文首先分析了文献协议的不足之处,然后给出了改进型半双工选择式ARQ协议的设计方案,定时分析了新协议的时间参数、信道利用率,在定量分析的基础上给出了自适应阈值;在新的链路层协议上,制定了文件传输层协议。

回帖(1)

林立银

2021-6-4 15:06:13
  短波通信是中、远程无线电通信的传统手段,它具有通信距离远、架设方便、抗摧毁能力强、运行费用低等优点,在军队、外交等部门有着广泛的应用。在20世纪 80年代手期,美国制订了军标MIL-STD-188-110A,此后国外一些公司纷纷提出了符合该标准的新一代高速串行调制解调器,如哈里斯公司的RF 5710,使得短波数据通信效率明显改善。
  我国许多用户引进了符合110A军标的调制解调器,如外交部全球短波数据通信系统采用了哈里斯公司的RF 5710,但是没有合适的通信软件。为此笔者在多年实践经验基础上,于1999年初步设计和实现了基于选择式ARQ的链路层协议,并对影响传输效率的因素和改进措施作了定性分析。文献对该协议的时间参数和性能初步作了定量分析。
  本文首先分析了文献协议的不足之处,然后给出了改进型半双工选择式ARQ协议的设计方案,定时分析了新协议的时间参数、信道利用率,在定量分析的基础上给出了自适应阈值;在新的链路层协议上,制定了文件传输层协议。
  
  1 改进型半双工选择式ARQ协议和支持传送协议
  1.1 短波半双工选择ARQ协议概况
  在文献中,协议一次最多发送16帧,然后等待对方的应答;帧的编号从1~240,当传输到第240帧数据后,强行将序号1~240中没有正确传送的帧送到对方,然后才能进入下一个240帧的传输,这与通常的滑动窗口机制有差异。对于选择式协议来说,极端情况下240帧的第一帧没有成功收到,那么所有的数据都不能交给应用层,这样对于优先级非常高的文件,无法及时传输。为了解决这类问题,在每个文件传输时,首先强制性地把文件名称、长度送到对方,然后将文件中的数据送走。这种方案保证先发送的文件先到达,但是文件头和文件体需要至少发送两次,对于长交织模式来说传递一批小文件(需要确保优先级高的文件先送到,不能把它们合成一个文件一来传输)时效率非常低。
  导致效率低下的原因有以下几个方面:首先,没有将全双工选择式ARQ中滑动窗口技术正确地推广到短波半双工条件下;其次,一次发送的数据帧固定为16 帧;第三,缺少对滑动窗口顶部数据帧的保护,使得滑动窗口机制无法快速下滑;第四,通信双方采用一样的交织模式,并且没有制定信道条件变化时自适应改变交织模式的定量准则。
  1.2 改进型半双工选择式ARQ协议
  数据帧结构
  标志发地址收地址帧号帧数数据CRC标志
  1221130,60,12,24021
  说明:数据帧的长度接收方自动匹配,由帧的结束符号来自动区分。两个帧之间的分隔符号用一个。
  应答帧结构
  标志发地址收地址确认帧号CRC标志
  122多个字节21
  说明:确认帧号是最后一次正确接收的所有数据帧号。如果最近一次传输的帧号全部正确,那么该域包含了所有的数据帧号,如果全部错误,那么该域就没有数据。
  应答帧的保护:根据应答帧的定义最长不超过60字节,在信道传输质量变差的条件下一次发送的帧数会减少,即应答帧的长度很短,因此同一个应答帧发送三遍既保证了应答帧的可靠性又不会增加传输的负担。发送方只要收到一次正确的应答帧就可以了,不管其余两帧是否正确。应答帧可靠的重要性在于一旦它出错会造成最近发送的一批数据帧重新传输。
  交织模式的选择:为了适应信道传输质量的变化,应该及时调整交织模式。对于交织模式的配置原则如下:数据的接收方固定设置为无交织模式(应答帧已经有错误保护机制),数据主发送方初始6 设置为无交织,在发送过程中重传的帧数达到一定阈值,则再次发送前交织模式设置为短交织,依此类推。反过来,长交织模式误帧率很低则可以设置成短交织,依此类推。
  滑动窗口和一次发送帧数:协议启动时初次发送的数据帧个数最多为20帧,在传输过程中如果误帧率很小,则可以逐步加大到60帧。收发双方滑动窗口的长度都定为120帖,实际一次发送的帧数受滑动窗口大小和缓冲区中待传送数据帧数可以多一些。这样修改后,当信道十分良好时,只要很少几次应答确认就可以完成非常大的数据量传输,可以大大提高数据通信的效率。
  对滑动窗口顶部数据帧的保护:由于本协议的滑动窗口长度限定为120,当较小序号的数据帧没有正确送走时会限制一次发送的数据帧个数(极端情况下,第1帧没有成功地送走,而第2~120帧全部送走,此时一次只能送一个帧);另外接收方会积压许多数据帧而未能交给上一层协议,影响上一层通信的实时性。
  为了解决这一问题,对于没有正确传送的数据帧在一次发送中允许最多一遍,这样可以加速滑动窗口迅速下滑。具体做法:当实际能够发送的数据帧不足20帧,或者最小没有成功送走的序号与最大成功送走的序号之间间隔超过30帧时,对传输失败的帧重复发送两遍。如仍然出现差错,则发达三遍。
  采取保护措施后可以解决由于个别帧迟迟没有正确传输而导致滑动窗口不能下移而影响传输的实时性和效率问题。
  1.3 文件传输层协议
  协议修改后,链路层能够比较迅速地将数据递交给文件层,因此文件传输层可以与链路层切分出来。由于链路层能够保证无差错,因此文件之间只要能够区分格式就可以了。一个文件的数据格式定义如下:
  分隔符+文件名称+分隔符+文件长度+分隔符+文件数据内容
  多个文件可以按照上面的格式一个接一个传输。
  2 改进型协议下的时间参数和通信利用率
  2.1 时间参数的确定
  文献中已经指出协议关联的时间参数有六个。对比本文与文献中的协议可以发现,文献中的四个参数计算公式没有变化。但包同步延时和ACK同步延时有些变化,主要是本协议采用非对称的交织模式,即应答一方总是采用无交织模式,因此可以减少包同步延时和ACK同步延时。参照文献的计算方法,用Tsyn表示包同步延时,TAck表示ACK同步延时,TFrame表示帧同步延时,TInterDelay表示交织延时,则改进型的时间参数计算公式如下:
  TAck=2×TInterDelay+1.2×2+TFrame(取整) (1)
  TSyn=2×TInterDelay+1.2×2 (2)
  也就是说TInterDelay的系数从4变为2,这对长交织来说TAck和TSyn将减汪9.6秒,可以较大幅度地提高信道的利用率。
  假设一次发送数据帧个数为N、数据帧长为L字节、信道速率为H(bps),那么信道利用率计算公式为:
  (N×L×8/H)/(TAck+N(L+10)8/H+TRtsDelay1+TRtsDelay2) (3)
  其中分子为实际数据传输所用的时间,分母为数据开始发送到接收确认的时间,常数10为数据帧中额外的字节,8为一个字节的比特数目,TRtsDelay1和TRtsDelay2分别代表键控前延时和键控中延时。
  2.2 不同帧长和交织模式下的信道利用率
  从信道利用率角度,当传输速率较高时要求具有较长的数据包和一次发送较多的数据帧数,尤其是长交织模式下:
  吞吐率是标识通信协议性能的重要标准,对于半双工通信协议来说它被定义为一定的时间单位里,从发送方到达接收方数据正确传输的数据总量如果用S表示正确发送的数据量,I表示相继发送的两次时间间隔,吞吐率用Rbyte来表示,那么相应的数据率计算公式为:
  Rbyte=S/I (4)
  在半双工ARQ协议中:
  S=N×L (5)
  I=IInterDelay×2+(TRstDelay1+TRtsDelay2)×2+[N×(L+10)×8]/Rate+(70×8)/(Rate) (6)
  其中N表示一次发送帧数,L表示一帧的有效数据长度,最后一项表示接收应答时间,为简经起见把帧长定为70字节。
  按照上述公式可绘出在不同帧长、帧数和交织模式下的吞吐量图,参数图1、图2。
  从图1和图2比较可以看出:
  (1)在相同的交织方式下,帧长越长,发送有效数据的时间占总时间的比例越高,有效吞吐率就越大,协议的效率越高;
  (2)在相同的交织方式和相同的帧长前提下,信道速率越高,总的发送时间缩短,有效吞吐率就越大,协议的效率越高;
  (3)在相同的信道速率和帧长条件下,交织越短有效吞吐率越高。
  文献中的协议在多个小文件传输中的效率,在长交织模式下,由于一个文件的传输分为文件头和文件体两次传输,因此在无干扰条件下单个文件的最短传输时间应该不小于2Tack时间,即46秒。无论采取什么样的速率和多小的文件,对于多个小文件来说传输效率非常低。
  新低输协议主要取决多个文件的总长度、传输速率和帧长。如果10个文件的总长度为9.6K字节、速率为2400bps、帧长为120字节,那么在无干扰条件下的传输时间,第一次20帧为2400字节,时间为22秒;第二次40帧为4800字节,时间32秒;第三次20帧为2400字节,时间为22秒;因此总时间为75秒,并且与文件个数无关。同样,从前面计算中可以看出,一次发送的帧数的加大,尤其是对长织来说可以较大幅度地提高吞吐量。
  
  3 自适应准则阈值的确定
  从短波链路层协议判断短波信道传输质量的依据是错误帧数(110A标准可以从遥控中取到信噪比,但实现起来有一定困难,本文以误帧来判断信道质量),因此模式的改变和一次发送帧数的调整由误帧来决定。
  3.1 交织模式的确定
  以无交织模式为例,先假设在无交织模式下误帧率为E,而这些误帧可以经过短交织模式得到纠正,在这样情况下短交织的有效吞吐量民无交织的有效吞吐量相等的条件是:
  (N-E)/IN=N/Is (7)
  其中IN、Is分别为无交织和短交织传输N帧所需要的总时间。
  依据该公式确定出误帧率,可以认为是从无交织过渡到短交织域值。由于该计算公式有一个前提,而该前提在实际通信中未必能够成立,作为决定从交织变为短交织阈值应该更大一些, 通常加2或更大的设置。该原则同样适用于从短交织到长交织的阈值。
  反过来,当信道持续处于较好的条件下,应该从长交织降到短交织甚至无交织。由于长交织没有误帧或很少误帧的情况下,短交织可能存在比较多的误帧,因此要求没有误帧的情况下,才从长交织下降到短交织。同样该原则适用于短交织到无交织。
  3.2 一次发送帧数的确定准则
  从信道利用率的角度最好一次发送比较多的数据帧,尤其是长交织的情况下。但是一次发送的帧数太多,当信道遇到干扰时不能及时地调整参数,比如数据交织模式、数据帧长、信道速率等,这样会导致产生较多的错帧。
  比较谨慎的做法是:无交织初始帧数为20,如果没有误帧则逐步加长到40、60和80帧;而短交织初始设置为40帧,没有误帧条件下逐步加大60、80帧,而长交织初始为60帖。谨慎的原因主要考虑信道不稳定情况下,相对较少的数据帧可以加快参数的调整。由于定量分析相对较难,在本文中不作进一步分析。
  协议经过修改后,在信道很好地实际传输效率非常高,在信道传输质量发生变化的情况下能够较好选择合适的交织模式。通过采取非对称交织模式可以将长交织压缩近一半的RTT时间。通过滑动窗口的控制和窗口顶部数据帧的保护,提高了链路层数据传输的实时性,大大改善了多个小文件的传输效率。协议的设计思想也可以应用于其它半双工信道。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分