一种基于TCP和UDP的无人机通信方法与流程

文档序号:17126064发布日期:2019-03-16 00:27阅读:702来源:国知局
一种基于TCP和UDP的无人机通信方法与流程

本发明属于通信技术领域,主要涉及一种基于tcp和udp的无人机通信方法。



背景技术:

目前的无人机通信技术几乎全部都是基于tcp/ip协议的,其主要使用udp协议和tcp协议,udp协议是一种无连接的传输层协议,提供简单不可靠传输信息传送服务,基于udp协议的通信速度较快,但可靠性低,而tcp协议是一种面向连接的、可靠的、基于字节流的传输层通信协议,但效率较低,因此单独使用这两者中任一种都很难兼顾传输效率与数据安全可靠。



技术实现要素:

本发明目的在于针对现有方法的缺陷,提供一种基于tcp和udp的无人机通信方法,很好地兼顾了tcp和udp的优缺点,避免了以往单独使用其中一种通信协议带来的低效率或数据丢失的问题,大大提高了通信的可靠性和效率。

为解决上述技术问题,本发明通过以下方法方案进行实施:

一种基于tcp和udp的无人机通信方法,其步骤包括:

s1、客户端与服务器建立tcp连接;所述客户端为无人机或地面控制站;

s2、所述客户端与所述服务器间通过所述tcp连接进行加密的tcp认证登陆,建立tcp会话,并在所述tcp会话上交换第一数据;所述第一数据包括无人机的参数设置数据;

s3、所述客户端与所述服务器间通过所述tcp连接进行加密的udp认证登陆,并建立udp会话,并在所述udp会话上交换第二数据;所述第二数据包括无人机的控制数据、位置数据、实时音频数据、实时视频数据中的一种或几种。

进一步的,所述步骤s2包括:

s21、所述客户端和所述服务器间通过所述tcp连接使用密钥协商算法进行密钥协商得到tcp初始密钥,所述客户端和所述服务器再使用密钥扩展算法对所述tcp初始密钥进行扩展,所述客户端得到一对客户端tcp加密密钥和客户端tcp加密向量和一对客户端tcp解密密钥和客户端tcp解密向量,而对应的,所述服务器得到一对服务器tcp加密密钥和服务器tcp加密向量和一对服务器tcp解密密钥和服务器tcp解密向量;

s22、所述客户端使用所述客户端tcp加密密钥和所述客户端tcp加密向量,通过第一对称加密算法对tcp认证请求信息进行加密,并将加密后的所述tcp认证请求信息发送至所述服务器;

s23、所述服务器接收所述加密后的tcp认证请求信息,使用所述服务器tcp解密密钥和所述服务器tcp解密向量,通过所述第一对称加密算法对其进行解密和完整性验证,并在验证成功后,使用所述服务器tcp加密密钥和所述服务器tcp加密向量,通过所述第一对称加密算法对tcp认证应答信息进行加密并发送至所述客户端;所述tcp认证应答信息包括一次性udp密钥协商凭证和udp认证凭证;所述一次性udp密钥协商凭证和所述udp认证凭证与所述客户端的ip地址对应;

s24、所述客户端接收所述加密后的tcp认证应答信息,使用所述客户端tcp解密密钥和所述客户端tcp解密向量,通过所述第一对称加密算法对其进行解密和完整性验证,验证成功后即建立起tcp会话;

s25、所述客户端和所述服务器在所述tcp会话上交换所述第一数据;

s26、所述tcp会话结束后,若所述客户端和所述服务器需要重新建立tcp会话,回到步骤s21。

进一步的,所述步骤s21中的密钥协商算法为ecdhe算法。

进一步的,所述第一对称加密算法为aead类对称加密算法。

进一步的,步骤s25中,所述客户端和所述服务器在交换所述第一数据时,使用各自的tcp加解密密钥和tcp加解密向量对所述第一数据进行加密传输。

进一步的,所述步骤s3包括:

s31、所述客户端发送所述一次性udp密钥协商凭证至所述服务器;

s32、所述服务器验证所述一次性udp密钥协商凭证,验证成功后,所述服务器和所述客户端之间通过第二密钥协商算法进行密钥协商得到udp初始密钥,所述客户端和所述服务器再使用密钥扩展算法对所述udp初始密钥进行扩展,所述客户端得到一对客户端udp加密密钥和客户端udp加密向量和一对客户端udp解密密钥和客户端udp解密向量,而对应的,所述服务器得到一对服务器udp加密密钥和服务器udp加密向量和一对服务器udp解密密钥和服务器udp解密向量;

s33、所述客户端使用所述客户端udp加密密钥和所述客户端udp加密向量,通过第二对称加密算法对udp认证请求信息进行加密,并将加密后的所述udp认证请求信息发送至所述服务器;所述udp认证请求信息中包括所述udp认证凭证;

s34、所述服务器接收所述加密后的udp认证请求信息,使用所述服务器udp解密密钥和所述服务器udp解密向量,通过所述第二对称加密算法对其进行解密,得到明文,并对明文中的所述udp认证凭证进行验证;

在验证成功后,所述服务器使用所述服务器udp加密密钥和所述服务器udp加密向量,通过所述第二对称加密算法对udp认证应答信息进行加密并发送至所述客户端;

s35、所述客户端接收所述加密后的udp认证应答信息,使用所述客户端udp解密密钥和所述客户端udp解密向量,通过所述第二对称加密算法对其进行解密和完整性验证,验证成功后即建立起udp会话;

s36、所述客户端和所述服务器在所述udp会话上交换所述第二数据;

s37、所述udp会话结束后,若所述客户端和所述服务器要重新建立udp会话,所述客户端通过所述tcp连接向所述服务器请求新的一次性udp密钥协商凭证,并回到步骤s31。

进一步的,所述步骤s32中的密钥协商算法为ecdhe算法。

进一步的,所述第二对称加密算法为aead类对称加密算法。

进一步的,步骤s36中,所述客户端和所述服务器在交换所述第二数据时,使用各自的udp加解密密钥和udp加解密向量对所述第二数据进行加密传输。

进一步的,所述客户端和所述服务器在使用各自的加解密向量对欲传输数据进行加解密时,均将所述加解密向量和欲传输数据的信息id或信息序列号进行数学运算以得到当次传输的加解密向量,并使用所述当次传输的加解密向量对欲传输数据进行加解密。

与现有方法相比,本发明的有益方法效果如下:

本发明公开的一种基于tcp和udp的无人机通信方法,客户端和服务器间通过tcp连接交换无人机的参数设置数据等需要可靠传输的数据,通过udp连接交换无人机的控制数据、位置数据、实时音频数据、实时视频数据等需要高效率传输的数据,很好地兼顾了tcp和udp的优缺点,避免了以往单独使用其中一种通信协议带来的低效率或数据丢失的问题,大大提高了通信的可靠性和效率;同时在tcp的基础上进行udp会话的建立,使基于无连接的udp协议也能得到会话级别的安全性,提高了通信的安全性。

附图说明

图1为本发明中所述的基于tcp和udp的无人机通信方法的步骤示意图;

图2为本发明中所述的基于tcp和udp的无人机通信方法的一具体步骤示意图;

图3为本发明中所述的基于tcp和udp的无人机通信方法的另一具体步骤示意图。

具体实施方式

为了充分地了解本发明的目的、特征和效果,以下将结合附图与具体实施方式对本发明的构思、具体步骤及产生的方法效果作进一步说明。

如图1所示,本发明公开了一种基于tcp和udp的无人机通信方法,其步骤包括:

s1、客户端与服务器建立tcp连接;客户端为无人机或地面控制站;

s2、客户端与服务器间通过tcp连接进行加密的tcp认证登陆,建立tcp会话,并在tcp会话上交换第一数据;第一数据包括无人机的参数设置数据;

s3、客户端与服务器间通过tcp连接进行加密的udp认证登陆,建立udp会话,并在udp会话上交换第二数据;第二数据包括无人机的控制数据、位置数据、实时音频数据、实时视频数据中的一种或几种。

通过步骤s1至s3,客户端和服务器间通过tcp连接交换无人机的参数设置数据等需要可靠传输的数据,通过udp连接交换无人机的控制数据、位置数据、实时音频数据、实时视频数据等需要高效率传输的数据,很好地兼顾了tcp和udp的优缺点,避免了以往单独使用其中一种通信协议带来的低效率或数据丢失的问题,大大提高了通信的可靠性和效率;同时在tcp的基础上进行udp会话的建立,使基于无连接的udp协议也能得到会话级别的安全性,提高了通信的安全性。

具体的,如图2所示,步骤s2包括:

s21、客户端和服务器间通过tcp连接使用密钥协商算法进行密钥协商得到tcp初始密钥,客户端和服务器再使用密钥扩展算法对tcp初始密钥进行扩展,客户端得到一对客户端tcp加密密钥和客户端tcp加密向量和一对客户端tcp解密密钥和客户端tcp解密向量,而对应的,服务器得到一对服务器tcp加密密钥和服务器tcp加密向量和一对服务器tcp解密密钥和服务器tcp解密向量;

s22、客户端使用客户端tcp加密密钥和客户端tcp加密向量,通过第一对称加密算法对tcp认证请求信息进行加密,并将加密后的tcp认证请求信息发送至服务器;

s23、服务器接收加密后的tcp认证请求信息,使用服务器tcp解密密钥和服务器tcp解密向量,通过第一对称加密算法对其进行解密和完整性验证,并在验证成功后,使用服务器tcp加密密钥和服务器tcp加密向量,通过第一对称加密算法对tcp认证应答信息进行加密并发送至客户端;tcp认证应答信息包括一次性udp密钥协商凭证和udp认证凭证;一次性udp密钥协商凭证和udp认证凭证与客户端的ip地址对应;

s24、客户端接收加密后的tcp认证应答信息,使用客户端tcp解密密钥和客户端tcp解密向量,通过第一对称加密算法对其进行解密和完整性验证,验证成功后即建立起tcp会话;

s25、客户端和服务器在tcp会话上交换第一数据;

s26、tcp会话结束后,若客户端和服务器需要重新建立tcp会话,回到步骤s21。

通过步骤s21-s25,客户端和服务器之间通过密钥协商算法和加密算法建立tcp会话,每次会话都会通过密钥协商生成只属于当前会话使用的加解密密钥与加解密向量,保证了tcp连接的稳定性和安全性,提高了通信的安全性。

具体的,步骤s21中的密钥协商算法为ecdhe算法,具有前向安全性,也可根据设备负载等因素,选择其他密钥协商算法。

具体的,第一对称加密算法为aead类对称加密算法,使用aead类对称加密算法,具有前向安全性,不同于普通的对称加密算法,能保证数据在传输过程中的安全性,也保证了数据的完整性。

具体的,步骤s25中,客户端和服务器在交换第一数据时,使用各自的tcp加解密密钥和tcp加解密向量对第一数据进行加密传输,保证数据传输的安全性。

具体的,如图2所示,步骤s3包括:

s31、客户端发送一次性udp密钥协商凭证至服务器;

s32、服务器验证一次性udp密钥协商凭证,保证当前的udp会话的客户端与tcp会话的客户端是同一个客户端;验证成功后,服务器和客户端之间通过第二密钥协商算法进行密钥协商得到udp初始密钥,客户端和服务器再使用密钥扩展算法对udp初始密钥进行扩展,客户端得到一对客户端udp加密密钥和客户端udp加密向量和一对客户端udp解密密钥和客户端udp解密向量,而对应的,服务器得到一对服务器udp加密密钥和服务器udp加密向量和一对服务器udp解密密钥和服务器udp解密向量;

s33、客户端使用客户端udp加密密钥和客户端udp加密向量,通过第二对称加密算法对udp认证请求信息进行加密,并将加密后的udp认证请求信息发送至服务器;udp认证请求信息中包括udp认证凭证;

s34、服务器接收加密后的udp认证请求信息,使用服务器udp解密密钥和服务器udp解密向量,通过第二对称加密算法对其进行解密,得到明文,并对明文中的udp认证凭证进行验证,保证当前的udp会话的客户端与tcp会话的客户端是同一个客户端;

在验证成功后,服务器使用服务器udp加密密钥和服务器udp加密向量,通过第二对称加密算法对udp认证应答信息进行加密并发送至客户端;

s35、客户端接收加密后的udp认证应答信息,使用客户端udp解密密钥和客户端udp解密向量,通过第二对称加密算法对其进行解密和完整性验证,验证成功后即建立起udp会话;

s36、客户端和服务器在udp会话上交换第二数据;

s37、udp会话结束后,若客户端和服务器要重新建立udp会话,客户端通过tcp连接向服务器请求新的一次性udp密钥协商凭证,并回到步骤s31。

通过步骤s31-s36,客户端和服务器利用tcp会话建立时交换的udp凭证进行密钥协商和udp会话的建立,使得udp的密钥协商和udp会话的建立依托于tcp会话的建立,保证了udp会话的可靠性,防止了udp会话被第三者恶意入侵,同时通过加密算法建立udp会话,提高了会话的安全性;此外,客户端每次建立udp会话都需要重新请求凭证,保证了每次udp会话的安全性。

具体的,步骤s32中的密钥协商算法为ecdhe算法,具有前向安全性,也可根据设备负载等因素,选择其他密钥协商算法。

具体的,第二对称加密算法为aead类对称加密算法,使用aead类对称加密算法,具有前向安全性,不同于普通的对称加密算法,能保证数据在传输过程中的安全性,也保证了数据的完整性。

具体的,步骤s36中,客户端和服务器在交换第二数据时,使用各自的udp加解密密钥和udp加解密向量对第二数据进行加密传输,保证数据传输的安全性。

具体的,客户端和服务器在使用各自的加解密向量对欲传输数据进行加解密时,均将加解密向量和欲传输数据的信息id或信息序列号进行数学运算以得到当次传输的加解密向量,并使用当次传输的加解密向量对欲传输数据进行加解密。

通过这一运算,使得每次数据传输时的加解密向量都只和当次传输相关,即使知道别次传输的加解密向量也无法对当次传输的数据进行解密,具有前向安全性,提高了安全性。

以上详细描述了本发明的较佳具体实施例,应当理解,本领域的普通方法人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本方法领域中方法人员依本发明构思在现有方法基础上通过逻辑分析、推理或者根据有限的实验可以得到的方法方案,均应该在由本权利要求书所确定的保护范围之中。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1