一种多端口自适应UDP通信协议制造技术

技术编号:16400790 阅读:31 留言:0更新日期:2017-10-17 20:54
本发明专利技术公开了一种多端口自适应UDP通信协议,应用在客户端,本发明专利技术还公开了一种多端口自适应UDP通信协议,应用在服务器,均包含以下步骤:客户端的端口与服务器的端口建立通信链路的过程;数据传输过程;当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程;以及,被动迁移到其它通信链路执行所述数据传输过程。本发明专利技术在当前通信链路需要重建时能够以主动或被动方式自动迁移到新的通信链路上继续进行数据通信,能够保证实时数据包不丢失,通信的可靠性大大提高。

A multi port adaptive UDP communication protocol

The invention discloses a multi port adaptive UDP communication protocol, the client application, the invention also discloses a multi port adaptive UDP communication protocol, application server, which comprises the following steps: the process of port and the client server port to establish communication links; data transmission; data transmission when the current communication links the abnormal, active migration to other communication links and execute the data transmission process; and passive migration to other communication links and execute the data transmission process. The invention can be active or passive way to automatically migrate to new communication links to data communication in the communication link needs to be rebuilt, and can ensure the real-time packet loss, greatly improving the reliability of communication.

【技术实现步骤摘要】
一种多端口自适应UDP通信协议
本专利技术属于通信领域,涉及一种UDP通信协议
技术介绍
UDP协议具有数据传输时延低、资源开销小、支持对等的通信方式等特点;但UDP协议本身不可靠,为了保证数据的实时可靠传输,就需要在应用层进行适当的传输协议设计。查阅文献,现有的UDX协议,是一种优化通用数据交换协议,通过流量控制、中转模式解析等方式实现可靠传输;PUDP协议将数据包传输控制机制糅合到流量控制当中,实现UDP报文的可靠传输;UDP/NLT协议是基于网络编码技术,使用LT和网络编码技术对发送的数据包进行编码和解码,减少网络丢包。上述协议主要针对端口链路不需重建的情况设计实现的,无法保证当嵌入式机载设备重建通信链路时实时数据不丢失。
技术实现思路
针对现有技术的不足,本专利技术的专利技术目的在于提供一种多端口自适应UDP通信协议MP-UDP,该协议通过建链、数据确认、重传等机制进行正常通信,在当前通信链路重传三次失败需要重建时,利用RMP(Rank_Move_Program)算法以自适应的方式迁移到新的端口链路上进行通信。并且在Simulink中建立客户端和服务端模型,以图形化的方法实现了MP-UDP协议。本专利技术的专利技术目的通过以下技术方案实现:一种多端口自适应UDP通信协议,应用在客户端,包含以下步骤:客户端的端口与服务器的端口建立通信链路的过程;数据传输过程;当当前的通信链路的数据传输出现重建时,主动迁移到其它通信链路执行所述数据传输过程;以及,被动迁移到其它通信链路执行所述数据传输过程。依据上述特征,客户端的端口与服务器的端口建立通信链路的过程为:向服务器的端口发送块号为0的通信包,待接收到服务器回复的块号为0的通信包后,表明通信链路建立成功,将该通信链路的状态标记为正常。依据上述特征,数据传输过程为:通过通信链路向服务器发送块号为非0的通信包,若有数据需要发送则在通信包中增加数据内容;当收到服务器回复的通信包中的块号与发送的通信包中的块号相等,则向服务器发送块号加1的通信包;依据上述特征,在客户端设置环形缓冲区,环形缓冲区附带读指针和写指针,当客户端有数据发送时,移动写指针将数据写入环形缓冲区中;当读指针与写指针不等,则移动读指针将数据从环形缓冲区读走加入通信包中。依据上述特征,当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程为:如果收到服务器回复的通信包中的块号与发送的通信包中的块号不相等或者超时未收到服务器回复的通信包,则重发该通信包,重发超过3次时,从其余状态为正常的通信链路中选择一条通信链路重发该通信包;同时,将当前的通信链路的状态标记为重建,执行所述客户端的端口与服务器的端口建立通信链路的过程;其中,选择通信链路的方法为:利用RMP算法对除当前正在通信的通信链路以外的状态为正常的通信链路进行一次排序,并将排序结果存储到队列Queue中,当通信链路需要迁移时,队列Queue的第一个元素即为选中的通信链路。依据上述特征,被动迁移到其它通信链路执行所述数据传输过程为:对除当前正在通信的通信链路以外的状态为正常的通信链路进行监听,到监听到某一通信链路有通信包发送过来时,则迁移到有通信包发送过来的通信链路上执行所述数据传输过程,同时对原通信链路执行所述客户端的端口与服务器的端口建立通信链路的过程。一种多端口自适应UDP通信协议,应用在服务器,包含以下步骤:服务器的端口与客户端的端口建立通信链路的过程;数据传输过程;当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程;以及,被动迁移到其它通信链路执行所述数据传输过程。依据上述特征,服务器的端口与客户端的端口建立通信链路的过程为:当服务器的端口接收到客户端的端口发送的块号为0的通信包后,向客户端的端口回复块号为0的通信包,表明通信链路建立成功,将该通信链路的状态标记为正常。依据上述特征,数据传输过程为:如果当前接收到的客户端发送的通信包的块号是上次接收到的通信包的块号加1,则向客户端回复块号与接收到的通信包中的块号相同的通信包,若有数据发送则在通信包中加入数据内容。依据上述特征,在服务器设置环形缓冲区,环形缓冲区附带读指针rptr和写指针wptr,当服务器有数据发送时,移动写指针将数据写入环形缓冲区中;当读指针与写指针不等,则移动读指针将数据从环形缓冲区读走加入通信包中。依据上述特征,当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程为:如果当前接收到的客户端发送的通信包的块号不是上次接收到的通信包的块号加1,或者超时未收到客户端发送的的通信包,则重发上次通信包,重发超过3次时,从其余状态为正常的通信链路中选择一条通信链路重发上次通信包;同时,将当前的通信链路的状态标记为重建,执行所述服务器的端口与客户端的端口建立通信链路的过程;其中,选择通信链路的方法为:利用RMP算法对除当前正在通信的通信链路以外的状态为正常的通信链路进行一次排序,并将排序结果存储到队列Queue中,当通信链路需要迁移时,队列Queue的第一个元素即为选中的通信链路。依据上述特征,被动迁移到其它通信链路执行所述数据传输过程为:对除当前正在通信的通信链路以外的状态为正常的通信链路进行监听,到监听到某一通信链路有通信包发送过来时,则迁移到有通信包发送过来的通信链路上执行所述数据传输过程,同时对原通信链路执行所述服务器的端口与客户端的端口建立通信链路的过程。本专利技术的有益效果在于:多端口自适应的UDP通信协议MP-UDP,在当前链路需要重建时能够以主动或被动方式自动迁移到新的端口链路上继续进行数据通信,能够保证实时数据包不丢失,通信的可靠性大大提高;同时,利用Simulink对客户端和服务端进行了建模,以模型的方式实现了MP-UDP协议,并对模型进行了测试验证,从而可以对协议的逻辑进行直观的分析判断;此外,可以将验证后的模型自动生成C代码,比传统手工编码更可靠,因而可以在嵌入式领域推广应用。附图说明图1为实施例中通信包的格式示意图;图2为实施例中数据传输的流程示意图;图3为通信链路迁移的流程示意图;图4为环形缓冲区的结构示意图;图5在Simulink中建立的客户端的模型示意图;图6为RMP算法模型;图7在Simulink中建立的主动迁移模型的示意图;图8在Simulink中建立的客户端主被动迁移模型的示意图;具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。1、多端口自适应UDP通信协议:MP-UDP协议1.1通信格式MP-UDP协议的通信包分为5个部分,如图1所示。1)包头,包含3个字节:Head1,Head2,Head3;2)块号,用一个字节表示,范围从0到255;其中,0用来表示第一次建立连接的块号,1到255代表有效块号,1到255之间循环。3)长度,包含2个字节,记录整个消息块的长度。4)数据内容,按字节进行传输,最大500个字节。5)校验和,包含2个字节,采用累加和的方式计算校验位。1.2通信流程MP-UDP协议进行通信时,客户端服务端首先分配N个端口(验证中N为5),并通过整型数组LinkStatus[N]来记录每个通信链路的通信状态。然后分别对5个端口进行UDP通信的初始化,成本文档来自技高网...
一种多端口自适应UDP通信协议

【技术保护点】
一种多端口自适应UDP通信协议,应用在客户端,包含以下步骤:客户端的端口与服务器的端口建立通信链路的过程;数据传输过程;当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程;以及,被动迁移到其它通信链路执行所述数据传输过程。

【技术特征摘要】
1.一种多端口自适应UDP通信协议,应用在客户端,包含以下步骤:客户端的端口与服务器的端口建立通信链路的过程;数据传输过程;当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程;以及,被动迁移到其它通信链路执行所述数据传输过程。2.根据权利要求1所述的一种多端口自适应UDP通信协议,其特征在于所述客户端的端口与服务器的端口建立通信链路的过程为:向服务器的端口发送块号为0的通信包,待接收到服务器回复的块号为0的通信包后,表明通信链路建立成功,将该通信链路的状态标记为正常。3.根据权利要求1所述的一种多端口自适应UDP通信协议,其特征在于所述数据传输过程为:通过通信链路向服务器发送块号为非0的通信包,若有数据需要发送则在通信包中增加数据内容;当收到服务器回复的通信包中的块号与发送的通信包中的块号相等,则向服务器发送块号加1的通信包。4.根据权利要求3所述的一种多端口自适应UDP通信协议,其特征在于在客户端设置环形缓冲区,环形缓冲区附带读指针和写指针,当客户端有数据发送时,移动写指针将数据写入环形缓冲区中;当读指针与写指针不等,则移动读指针将数据从环形缓冲区读走加入通信包中。5.根据权利要求1所述的一种多端口自适应UDP通信协议,其特征在于当当前的通信链路的数据传输出现异常时,主动迁移到其它通信链路执行所述数据传输过程为:如果收到服务器回复的通信包中的块号与发送的通信包中的块号不相等或者超时未收到服务器回复的通信包,则重发该通信包,重发超过3次时,从其余状态为正常的通信链路中选择一条通信链路重发该通信包;同时,将当前的通信链路的状态标记为重建,执行所述客户端的端口与服务器的端口建立通信链路的过程;其中,选择通信链路的方法为:利用RMP算法对除当前正在通信的通信链路以外的状态为正常的通信链路进行一次排序,并将排序结果存储到队列Queue中,当通信链路需要迁移时,队列Queue的第一个元素即为选中的通信链路。6.根据权利要求1所述的一种多端口自适应UDP通信协议,其特征在于被动迁移到其它通信链路执行所述数据传输过程为:对除当前正在通信的通信链路以外的状态为正常的通信链路进行监听,到监听到某一通信链路有通信包发送过来时,则迁移到有通信包发送过来的通信链路上执行所述数据传输过程,同时对原通信链路执行所述客户端的端口与服务器的端口建立通信链路的过程。7.一种多端口...

【专利技术属性】
技术研发人员:郭宁张新张文兵
申请(专利权)人:中国航空无线电电子研究所
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1