基于UDP协议的CCD数据可靠传输的研究和实现
观测控制系统(OCS)是LAMOST系统的一个重要子系统。它的主要任务是管理、协调和控制各子系统操作,使整个望远镜系统有条不紊地、按计划、有步骤地进行天文观测。
MASTER是32台CCD的管理控制模块,负责向CCD发送命令以及接受CCD的状态信息。OCS通过MASTER对CCD进行控制。CCD硬件的基本构架如图1所示。
在观测过程中,为了保证32台CCD控制器能及时传递状态信息,能同时接收到OCS的控制命令同步动作,在MASTER和CCD控制器之间,采用UDP协议进行通讯。
图2给出了OCS和CCD的通信过程:OCS使用TCP协议向MASTER发送命令;MASTER通过UDP协议向所有的CCD控制器广播命令;CCD控制器收到命令后发送给CCD,再进行相应的处理。CCD控制器同样使用UDP协议把CCD的状态信息发往MAS-TER;MASTER对状态做出分析后,通过TCP协议把状态信息传递给OCS。
UDP协议是无连接的数据包协议,在正式通信前不必与对方先建立连接,直接向接收方发送数据,是一种不可靠的通信协议。信息在传送过程中很容易丢失。所以为MASTER和CCD的应用层增加可靠性设计十分必要。
1 可靠数据传输方法设计
在应用层添加如下机制实现命令和状态的可靠传输:帧结构、确认技术、超时和重传。
1·1 帧结构
采用通用I/O函数sendmsg函数和re-cvmsg函数来发送信息帧和接受确认帧。信息被封装在msghdr结构体中。帧结构如图3所示。
hdr是自定义的数据结构,用来记录序号,时间戳和信息的总长度。序号用来实现确认技术,时间戳用来计算定时时间。
1·2 确认技术
用于验证是否为需要的信息。发送端为每一帧冠以序号,接收端必须在返回给发送端的应答中回射这个序号。发送端和接收端可以根据序号来验证是否是需要的信息,如果不是需要的信息,直接丢弃。
1·3 超时和重传
用来处理丢失的数据包。当发送端在定时时间内没有收到回复就重传数据包。定时时间的计算需要实测的往返时间(RTT)。
计算发送每个数据包的重传超时(RTO)的公式为:
delta=RTT-srtt
srttrtt←g×delta
rttvar←rttvar+h×(|delta|-rttvar)
RT0=srtt+4×rttvar
其中,RTT是根据接收到的回复帧中的时间戳和当前时间来计算的;srtt为平滑了的RTT估计因子;rttvar为平滑了的平均偏差估计因子;delta为测得的RTT和当前平滑了的估计因子(srtt)之间的差;g为施加在RTT估计因子上的增益因子,值为1/8;h为施加在平均偏差估计因子上的增益因子,值为1/4。当重传定时器超时的时候,对下一个RTO用一个指数退回,并采用Karn算法解决“重传二义性”的问题。
相关文章
- 2021-12-173G室内分布系统解决方案
- 2024-03-01基于CAN现场总线的分布式柴油发动机测试系统
- 2023-06-23车号识别系统在茂名乙烯电子轨道衡中的应用
- 2023-08-15基于AM402的电流量输出电容式角度传感器
- 2023-04-15微机电系统中薄膜结构在静电力和Casimir力作用下的稳定性
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。