基于文件交换的点对点有序可靠通信链路设计方法
A Design Method of File Exchange-Based Point-to-Point Ordered Reliable Data Link Service
Received: 2021-09-24
作者简介 About authors
邱寅祺(1989-),男,上海市人,高级工程师,从事电力系统自动化研究.
针对仅具有文件交换且没有其他信息交换手段的通信双方,提出了点对点有序可靠的数据链路层设计方法.通过对交换的文件附加控制信息,实现链路基本控制;结合使用滑动窗口和超时重发,解决链路可能存在的失序与丢失问题;对交换的文件附加MD5等校验码,结合使用数据校验技术,可及时发现可能的毁损,保证交换文件的完整一致性.实际应用表明,即使通信双方仅具有文件交换手段,只要能找到合适的滑动窗口参数,可以实现有序可靠的通信链路服务.
关键词:
For the communication parties which only have file exchange and no other means of information exchange, this paper proposes a design method of a point-to-point ordered reliable data link layer. Control information is appended to the exchanged files to realize the basic link control function. Mechanisms of sliding window and timeout retransmission are also introduced to address the problem of disorder and even loss. Furthermore, MD5 or some other check codes are also appended to the exchanged files to achieve an efficient verification of possible damage, guaranteeing the integrity and consistency of the exchanged files. The practical application shows that ordered reliable communication link service can be realized as long as all appropriate sliding window parameters could be found, even though the communication parties only have the means of file exchanges.
Keywords:
本文引用格式
邱寅祺, 付文龙, 潘聪, 卢宏林, 归一数.
QIU Yinqi, FU Wenlong, PAN Cong, LU Honglin, GUI Yishu.
数据链路层是开放式系统互联通信(OSI)参考模型中的第二层,介于物理层和网络层之间.数据链路层在物理层提供服务的基础上向网络层提供服务,数据链路层把网络层交下来的数据构成帧发送到链路上,以及把接收到的帧中的数据去除并交给网络层[1].
目前,在计算机网络通信领域,数据链路层所提供的通信链路服务,其常规实现一般均依赖于点对点或者点对多点信道上物理信号的调制与解调[2].实际上,只要通信双方之间具有特定的信息交换手段,比如电报、书信、电子邮件、文件,就能实现数据链路层功能,进而提供有序可靠的通信链路服务.
本文提出了一种基于文件交换的点对点有序可靠通信链路服务的设计方法.通过对所交换文件附加控制信息,结合使用滑动窗口、数据校验等机制,使通信链路服务的实现不再局限于电缆、光缆、无线电等常规信道上物理信号的调制与解调,且保证所提供服务同样是有序、稳定和可靠的.
1 点对点文件交换环境模型
基于文件交换的点对点有序可靠通信链路,首先应保证双方具有文件相互交换能力,一致约定各自的接收与发送目录.一方将需要发送给另一方的文件,放入其发送目录;另一方则将该目录作为自己的接收目录,相应地读取文件,如图1所示;反之亦然.
图1
图1
本方发送目录为对方接收目录
Fig.1
Sending directory as the receiving directory of the other party
对于接收方无法直接访问发送方文件目录的情形,需借助第三方的文件中继转发等服务,进而实现文件目录的间接访问;那么,也可以具有类似效果,如图2所示.
图2
2 基于文件交换的点对点通信链路服务
基于文件交换的点对点通信链路服务实现,如图3所示.一方将其链路服务用户所需发送的链路信息转换成相应的文件,基于文件交换,发送给另一方;另一方则将接收的文件相应地转换成链路信息,递交给其链路服务的用户;反之亦然.
图3
图3
链路信息和文件互相转化
Fig.3
Communication link information and files converted to each other
3 有序可靠链路服务的实现
基于前述模型所提供的通信链路服务,一方链路用户所要求发送的链路服务信息在另一方既可能发生失序,更可能发生丢失.这样通信链路服务无法保证向链路层用户提供的数据是无误且按序交付的.
因此,为实现有序可靠的点对点通信链路服务,首先需要实现的是基本的链路控制协议.同时,结合使用滑动窗口、数据校验、差错恢复、检错等机制,实现发送确认和流量控制,提高通信效率,保证所提供基于文件交换的点对点通信链路服务是有序、稳定和可靠的.
3.1 基本链路控制协议
为实现基本链路控制协议,区分所交换的链路控制帧以及链路服务信息,对交换的文件附加特定格式的控制信息,控制信息4个字段组成:标志位、发送序号、接收序号、控制位.标志位表示是否有数据,发送序号表示本次发送序号,接收序号表示本方期望接收序号,控制位用于标志交换的文件类型.控制位定义如下:1表示信息数据;2表示信息消息;3表示确认;4表示链路建立请求;5表示链路建立确认.
基本链路控制,包括链路的建立和链路的释放,分别对应点对点通信链路的启动与停用服务.对于请求启动链路服务,形成发送链路建立请求文件,表示请求建立链路.如果限时收到对方链路建立确认的返回文件,则链路建立成功,链路进入常规的数据交换状态,如图4所示.任一方如果收到表示请求建立链路的文件,则一律形成发回表示确认建立链路的文件,链路进入常规的数据交换状态,并指示其链路用户,链路已就绪,可以启动数据传输.
图4
3.2 滑动窗口机制
滑动窗口机制对文件赋以编号标识.对发送的文件赋以发送序号,也就是对所发送文件的顺序编号.同时,发送方还放入接收序号,也就是下一个期望从接收方发回文件应该随带的发送序号.发送方维持了一个连续的允许发送的文件的序号,称发送窗口.每次成功发送数据之后,发送窗口就会在发送缓冲区中按顺序移动,将新的数据包含到窗口中准备发送;同时,接收方也维持了一个连续的允许接收的文件序号,为接收窗口.
由于当前在发送窗口内的数据有可能在传输过程中丢失或损坏,所以发送方必须在内存中保留所有这些数据,以便满足可能的重传需要.因此发送方需要和发送窗口相同大小的缓冲区来存放未被确认的数据.
接收窗口大小对应它可以接收的数据,落在接收窗口的数据被放入接收方的缓冲区.当收到一帧数据时,而且其序号等于窗口下边界,接收方将数据交给链路层用户,同时将接收窗口向前移动一个位置.
发送序号和接收序号依顺序增长、自动溢出归零、继续顺序增长,如此循环.
3.3 检错机制
在文件交换过程中,所交换文件可能发生丢失,因此需引入检错机制.发送方对于每一个所发送的文件,均定义一个超时重发计数器,限时接收方及时确认,而且随带了发送方文件中发送序号之后的接收序号.一旦超时,还未接收到对方的确认文件,则发送方将认定所发送的文件已经发生丢失,触发重发机制.
3.4 选择重发机制
发送方一旦认定所发送文件发生丢失,将自动启动重发,并且复位超时重发计数器,继续限时接收方及时予以确认;如再次认定丢失,则自动启动新一轮的重发.
超时重发机制可能会导致接收方接收到相同的文件,此时,对所接收重复递交文件的主动丢弃.针对文件的超时重发,核查所接收文件之中的发送序号,主动丢弃重复文件,避免重复递交.
3.5 差错恢复机制
差错恢复机制对前述重发次数进行相应记录,并限定重发次数的上限;一旦触及重发次数的上限,则触发链路连接的释放过程,并进而触发实施滑动窗口机制的复位,同时尝试重新建立链路.
对于相对空闲的链路,限时发送特定控制用途的文件,以便及时发现链路可能发生的异常.
4 MD5校验的文件完整性检错的实现
文件经过交换,在接收方接收到的时候存在已经被毁损破坏的可能性.为此,发送方对于需要交换的文件,使用数据校验技术,附带MD5校验码,一并发送.接收方相应重新计算校验码,如发现与所附带的不一致,即认定为发生了损坏[3].
交换的文件分为两类,一类仅包含特定格式的控制信息,另一类是对链路服务用户发送链路信息相应生成的文件,在其尾部附加特定格式的控制信息.对这两大类文件一律附加MD5校验码,也都进一步附加至文件的尾部.
对于接收到的文件,任何一方均首先进行校验操作.对无法通过校验的,直接予以丢弃,从而触发前文所述滑动窗口机制的自动重传功能;如果通过校验,表示接收到的文件是完整完备的,并未被毁损破坏,再进一步按链路控制协议,处理其中特定格式的控制信息及可能一并包含的链路用户信息.
5 性能分析与讨论
网络传输介质是网络中发送方与接收方之间的物理通道,其对网络数据通信的质量有很大的影响[4].采用文件交换的方式来实现双方信息交换,传输速率要低于光纤、双绞线、同轴电缆等常规传输介质.特别是在采用第三方文件中继转发的场景下,容易产生较高的延时.在这种情况下,需要合理设置通信链路服务参数,提高通信链路服务的传输效率.
5.1 超时重传计数器设置
一般情况下,在一个文件发出去开始,到该文件到达接收方,被接收方处理,然后确认被传回,整个过程所需要的时间几乎是一个固定的数值[5].在这种情况下,发送方一般把超时计数器调“紧”一点,让其恰好略微大于正常情况下从发送一个文件到接收到确认文件之间的时间间隔.如果超时计数器设置过小,可能会引入不必要的重复文件;反之,超时计数器设置过大,会导致整体网络利用率下降.
然而,在其他一些情况下,这段时间的变化比较大.例如,如果反向流量少,那么如果刚好有反向流量,则接收到文件延缓发送到确认之前这段时间会比较短;反之,没有反向流量,则这段时间会很长.在这种情况下,发送方一般把超时计数器调“松”一点.
5.2 发送窗口接收窗口设置
滑动窗口机制涉及发送窗口和接收窗口,接收窗口设置小了,就不能充分利用网络.而接收窗口设置大了,又浪费了内存.由于发送速度可能大于接收速度,导致接收端未能及时从接收缓冲区读取数据、接收缓冲区不够大不能缓存所有接收到的文件等原因,导致不能接收后续的数据,从而导致发送端此后发送数据是无效的.因此需要根据发送端和接收端的文件处理速度,合理设置通信链路服务接收窗口与发送窗口的大小,使接收缓存按需分配,同时要确保接收缓存大小不会成为传输的限制.
6 结语
本文提出的信息交换方法,对于具有文件交换能力的发送方和接收方,实现了基于文件交换的点对点有序可靠的通信链路服务,可以实现相应的通信链路服务不再局限于电缆、光缆、无线电等常规信道上物理信号的调制与解调.同时,结合使用滑动窗口、数据校验、差错恢复、检错等机制,保证所提供的服务同样是有序、稳定和可靠的.
参考文献
/
〈 |
|
〉 |
