数字X射线平板探测器可靠UDP通信研究

发表时间:2021/9/6   来源:《科学与技术》2021年第4月第11期(中)   作者:李全强
[导读] 为提高数字X射线平板探测器图像数据吞吐量,同时保证数据稳定可靠,提出优化改进型的可
       李全强
       上海品臻影像科技有限公司 200331

       摘要:为提高数字X射线平板探测器图像数据吞吐量,同时保证数据稳定可靠,提出优化改进型的可靠UDP协议。连接管理方式为探测器进行UDP广播通知计算机建立连接并周期性进行消息发送以进行保活。针对图像数据传输提出确认机制、重传机制和流量控制方案,稳定可靠地传输图像数据。命令传输针对各种不同丢包逻辑设计重传方案确保可靠。整体方案数据传输稳定可靠,图像数据流吞吐量稳定在700Mbps以上。
       关键字:平板探测器,可靠UDP,高吞吐量,重传机制

一.前言
       数字医疗是一种新型的现代化医疗方式,数字X射线机(DR)作为数字医疗设备中的重要一员,具有更快的成像速度、更便捷的操作、更高的成像分辨率等优点,且客户对这些性能需求的逐步提高促进了数字x射线平板探测器的快速发展。
       TCP/IP协议凭借优秀性能已经成为当前网络设备都共同遵循的网络传输协议。TCP协议面向连接,逻辑具备优秀的可靠性和稳定性,但是在具有比特错误的无线信道中,其性能严重下降,网络拥塞时,恢复太慢,导致吞吐量不高[1]。UDP协议数据传输效率高,然而数据传输具有不可靠性。单幅图像传输使用TCP具有绝对优势,也是目前探测器市场主流通信协议方案,但是随着平板探测器分辨率提升和动态平板高效持续数据传输的需求显现,需要一种稳定可靠兼具高效传输的协议,RUDP(Reliable UDP)协议就可以满足,它是以UDP为基础,增加了多种保证数据可靠传输的手段,以兼具高效和稳定可靠的特性。但是目前RUDP协议还没有非常成熟可以适应任何场景的方案,对RUDP协议的使用多是根据不同使用场景进行优化改进,如在嵌入式系统中定制化使用[2-4],本文正是分析数字X射线平板探测器(以下简称平板探测器)的使用场景,提出具体的RUDP方案以满足稳定可靠的网络传输目的。
二.数字X射线平板探测器通信简介
2.1 平板探测器分类
探测器根据和终端计算机通信方式的不同可以分为有线平板探测器和无线平板探测器,其中无线平板探测器也支持有线网络通信,具体通信方式如图1所示。


平板探测器内部通过现场可编程门阵列(FPGA)执行图像数据采集,如果是有线平板探测器则FPGA通过有线千兆网络和终端计算机通信,如果是无线平板探测器则FPGA通过网络和ARM进行通信,也可以使用localbus通信,然后ARM通过有线千兆网络或者无线网络和计算机进行通信。
       2.2 RUDP通信可行性
       TCP传输协议提供面向连接的,可靠的数据流服务,具备拥塞控制和流量控制机能。发送端和接收端会有相互确认机制和丢包重传机制,以此具备了可靠的数据流传输服务。如果使用tcp协议连续传输透视图像,一旦数据包丢失,根据tcp逻辑会迅速减小拥塞窗口,且后续恢复较慢,不能承载设定的固定帧率传输,会导致网络中图像数据积压,有崩溃风险。有线平板探测器内部仅有FPGA器件,采用硬件描述语言来实现完整的TCP逻辑具有较大的挑战,耗费较高,经济层面不是优选方案。
       目前市面平板探测器有线网络通信都是千兆,无线网络使用802.11ac甚至目前最新的802.11ax协议,在5G频段80MHz带宽下理论速度都达到千兆,优秀的硬件和协议大大提高了UDP通信速度并降低了丢包率。
       针对以上特点,RUDP在具备UDP高效传输特点上提供连接管理、拥塞控制和可靠性的功能。通过在应用层对其逻辑针对性修改完全可以满足平板探测器网络传输需求。
三.连接管理
3.1 建立连接
       RUDP协议中的连接管理是模仿TCP协议的三次握手机制而建立起来的。平板探测器不再采用这种逻辑,而是使用广播通知。由于平板探测器和计算机工作在局域网络中,设置相同的网段,计算机的IP为一固定值。平板探测器开机后进行广播信息传送,计算机接收到该广播后解析,并向该平板探测器反馈应答信号,应答信号包含计算机对平板IP的设置、自身IP和命令信息等。平板探测器接收到应答后设置自身IP,建立socket句柄包括消息通道、数据通道和命令通道双向句柄。采用这种广播通知建立连接的好处还体现在计算机通过分配不同IP管理多个平板探测器,满足实际使用中一台计算机连接多个平板探测器场景。
       3.2 连接保活
       UDP无连接特性需要设计保活机制即心跳,通信句柄为3.1节中建立的消息句柄,包含探测器到计算机方向的消息句柄和计算机到探测器的应答句柄。平板探测器和计算机建立连接后,平板探测器周期性递增ID向计算机发送消息,这里消息除包含固定数据头之外还携带平板探测器的即时信息,如电池电量、状态信息、无线信息等,计算机收到该信息之后回应相同ID的应答信息IDack=ID。平板探测器每次发送消息之前检测接收到应答信息IDack和即将发送的ID数值差,这个差值乘以消息发送周期即为无响应时长,如果时长超过最大值,则认为网络断开,执行断开连接操作。
       3.3 断开连接
       RUDP协议的断开连接机制在两种条件下会被启动:
① 保活条件超时断连;
       ② 终端计算机请求释放连接。
       RUDP的断开连接操作也与TCP的四次挥手机制不同,当保活断连时,无需握手直接释放当前已经建立的连接。当终端计算机主动释放连接时,通过两次挥手机制同时关闭两个方向上的连接。
四.图像数据通信
平板探测器正常使用中图像数据从探测器传送到计算机,传输要保持稳定、可靠、快速,UDP本身是不可靠的传输层协议,需要应用层设计可靠传输机制,包括确认机制、丢包重传机制和流量控制机制。
4.1 确认机制
       保证UDP数据可靠传输的主要手段就是确认机制,平板探测器和计算机工作在局域网中,单个UDP报文大小设置在MTU(Maximum Transmission Unit)以内,以避免IP层进行分片传输。图像数据按照设定的报文大小划分流水号,UDP数据报文由包头和数据组成,其中包头包含图像序号、包序号、图像数据包总数、图像长宽等信息。我们采用的RUDP中的确认机制为批量确认和捎带确认相结合的机制,即计算机端每接收到固定个数的数据包后发送一个确认报文,比如计算机每接收到8个数据包反馈一个确认报文,该报文中包含计算机端接收的连续的最大的数据包序号。发送端根据确认报文移动发送窗口范围。
4.2 重传机制
RUDP保证数据可靠另一个重要手段就是重传机制,数据包重传分为随机包丢失重传和批量包丢失超时重传。
4.2.1 随机包丢失重传
       随机包丢失重传指图像数据包传输过程中丢失单个包或某几个包,这时接收端计算机需要及时确认丢包并发送请求。由于计算机和平板探测器工作在两者直连局域网中,UDP数据包乱序的概率非常小,我们容忍乱序跳变数据包序号跨度为3个,具体逻辑下:
       ① 接收端针对每个数据报文开辟标识位,在未接收到报文时候标识位为0;
       ② 接收端接收到n+3号报文将n+3号对应标识位置为1;
       ③ 确认第n号报文是否到来,如果已经到来(标识位已经置1),确认有序最大报文序号M(M序号之前无丢包),这里M小于等于n。如果没有到来,确认M号到n号包之间丢包情况。将丢包序号写入4.1节中设计的确认报文发送给探测器。
       ④ 探测器接收到重传报文,优先传送接收端丢失的报文数据。
       以上设计的逻辑可以快速定位随机丢包序号并给予反馈,以获取丢失的数据包。
4.2.2 超时重传
超时重传逻辑主要针对在极端情况下,图像数据包连续丢失情形。协议采取类似TCP中的超时重传逻辑。首次超时时间为
RTO = R + 4D
R为RTT估计器,D为RTT的均值偏差,R计算方法依然引用TCP中的估计方法
R = αR+(1-α)M
平滑因子α=0.8,M为探测器测量的RTT值,均值偏差D引用TCP中计算方法
D = D + h(|M-R|-D)
增益因子h=0.25。RTT时延测量方法很多[5-6],我们在探测器每次接收到固定长度数据报文的确认消息后,计算RTT值M,并更新R值和D值。超时时间有最大阈值限制,我们设置为1秒,当超过该值,超时时间不在增加,探测器在经过最大超时值后依然没有收到确认消息,协议判断网络异常,执行断连操作。
4.3 流量控制
       图像数据量比较大,在实际传输过程中如果发送端不考虑接收端的实际接收情况连续不断发送,接收端的缓存可能会被耗尽,导致后续数据丢失,即使发送丢包重传,再次发送的数据依然可能丢失,形成循环,浪费了网络资源。为避免该情形,我为RUDP协议提供了滑动窗口流量控制机制,如图2示意图。
       
     
每个数据报文都有一个流水号,每发送一个数据报文N需要确认N是否在滑动窗口范围内,由于我们采用批量确认机制,因此发送端每接收到一个确认报文,滑动窗口右侧右移一个跨度单位。在计算机和探测器直连的千兆局域网中,实验测试滑动窗口的长度设置为128个数据包,跨度单位为8个数据包可以达到了较为理想的传输效果,没有出现拥堵情形。
使用以上图像数据传输逻辑连续传输图像数据,千兆有线网络条件下吞吐量稳定保持在750Mbps以上,无线千兆网络吞吐量稳定在700Mbps以上,丢包重传概率在0.5%以内。
五.命令传输
       终端计算机对平板探测器控制是通过下发对应命令实现,控制指令通道是探测器接收上位机的命令的专用通道,包含上位机向探测器下发指令和探测器给上位机的应答信号。命令报文包含命令映射码、命令流水号、命令校验字等,整个命令包加上数据包头,依然小于1k,在一个MTU以内。命令传送必须稳定可靠,理想情况下探测器接收到指令立马进行指令执行,然后回复给上位机应答信号,应答信号和对应命令具有相同的ID,上位机收到该ID表明命令下发成功。
       UDP传输报文丢包可能发生在上位机给探测器发送指令的过程中,也有可能发生在应答信号的回传过程中,任何一步报文的丢失都需要进行重传确认。重传的执行需要根据超时来判断。因为命令和消息数据报文大小相差不大,探测器消息发送、接收应答后计算RTT值,该值会通过下个消息反馈给上位机,上位机接收后计算此刻命令传送的RTO时间作为此命令的超时时间。
       上位机发送命令给探测器,如果该命令数据包丢失,上位机超时后未收到应答信号,上位机重发该命令,重传命令的流水号不变。同样逻辑,应答信号丢失,超时之后上位机重发相同流水号的命令包,探测器接收到该命令包之后解析,确认该命令流水号已经执行,此时探测器可不执行操作立即发送应答信号1。
             
   
       命令的执行有时候会占用一定的时间,比如写入磁盘操作命令,根据写入数据量的大小执行耗时不同,如果等待执行完毕再回复应答,上位机有超时的可能,这种情况就需要设计二次应答机制。即接收到命令之后计算命令执行时长,将该时长信息加入到应答2中先反馈给上位机,上位机获取该时长,单次超时需加上该执行时长。探测器命令执行之后再次发送应答1给上位机表示命令结束。上位机命令下发和探测器命令接收分别如图3和图4所示。
       当然在极端环境下,一次重传可能依然会失败,所以需要设计多级重传,如上限8次,如果依然失败,需要确认是否网络异常执行网络断开操作。
六.结语
    本文针对平板探测器的具体数据传输特点,对RUDP协议进行优化和改进,提出一套可靠UDP传输方案,包括简单可靠的连接方案,可靠的命令下发方案和稳定高速的图像数据传输方案。实验测试无论有线还是无线千兆网络下连续图像传输吞吐量稳定在700Mbps以上且传输无误。该方案可以作为数字X射线探测器网络通信的可靠方案。

参考文献:
[1] 孙小俊. 高速网络中 TCP 拥塞控制研究[D]. 北京: 北京邮电大学, 2013
[2] 周 宏,柳长安,卢东昕.嵌入式实时系统中 RUDP 通信的设计与实现. 2006, 32(11): 265-267
[3] 张恒巍,万伟,王坤,等.嵌入式可靠传输协议[J].计算机工程与设计,2010,31(2):327-329
[4] Chang SY, Chiao HT, Yeh XY, et al. UDP-based file delivery mechanism for video streaming to high-speed trains [C]. IEEE 24th Annual International Symposium on Personal, In-door, and Mobile Radio Communications. London:IEEE, 2013:3568-3572
[5] 何启源,汤宝平,张祥春等.基于流量和时延的网络性能测量系统的研究.中国测试技术, 2005,31(3):8-13
[6] 黎文伟,张大方,谢高岗.基于通用 PC 架构的高精度网络时延测量方法.软件学报, 2006,2(17): 275-283
投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: