掌桥专利:专业的专利平台
掌桥专利
首页

一种数据传输链路建立方法、装置、设备及介质

文献发布时间:2024-04-18 19:58:30


一种数据传输链路建立方法、装置、设备及介质

技术领域

本发明涉及计算机技术领域,特别涉及一种数据传输链路建立方法、装置、设备及介质。

背景技术

目前,客户端与客户端在任意互联网网络下的实现双向通信,如果NAT(NetworkAddress Translation,网络地址转换)穿越失败,可以通过turnserver服务器(转向服务器)转发数据,但如果客户端都在同一个对外NAT的内网下,分别处于不同内网NAT节点(如不同路由器)下,这时采用如上方法基本不能实现NAT穿越,因为公网NAT网关是运营商配置的,通常不允许回环发送数据,如果NAT下的客户端尝试NAT穿越,需要利用该NAT支持数据回环才能NAT穿透成功,但运营商为了计费需要,限制了该公网NAT回环转发数据,故无法NAT穿越成功,因此,则会导致同一内网下的客户端只能通过外网转向服务器转发数据,从而产生大量的服务器流量费用,并造成传输路径长,降低数据传输效率的问题。

由上可见,如何解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验是本领域有待解决的问题。

发明内容

有鉴于此,本发明的目的在于提供一种数据传输链路建立方法、装置、设备及介质,能够解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验。其具体方案如下:

第一方面,本申请公开了一种数据传输链路建立方法,应用于发送端,包括:

将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;

基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;

将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;

获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;

基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。

可选的,所述将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址,包括:

将包含接收端信息和第一公网IP地址的链路建立请求发送至所述中心服务器,以便所述中心服务器确定与所述接收端信息对应的第二公网IP地址,并判断所述第一公网IP地址与所述第二公网IP地址是否一致,若所述第一公网IP地址与所述第二公网IP地址一致,则从自身的所有中继服务器中筛选出用于建立内网数据传输链路的所述中继服务器,并确定相应的所述中继服务器地址。

可选的,所述基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,包括:

获取所述中心服务器发送的端口绑定指令;

执行所述端口绑定指令,并基于所述中心服务器确定的所述中继服务器地址进行本地与相应的所述中继服务器的端口之间的绑定。

可选的,所述将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息,包括:

将包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至所述接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并获取所述中继服务器发送的第二NAT IP和映射端口,生成所述第二端口绑定信息;

相应的,所述获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,包括:

从所述中心服务器中获取所述接收端发送的包含所述第二NAT IP和映射端口、第二私网IP和端口以及所述第二端口绑定信息的所述第二地址信息。

可选的,所述根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息,包括:

根据所述第二地址信息生成并发送探测包和探测信令至所述接收端,以便所述接收端对所述探测包和所述探测信令分别进行响应,并生成探测包响应信息和探测信令响应信息;所述探测信息包括所述探测包和所述探测信令;所述探测响应信息包括所述探测包响应信息和所述探测信令响应信息;

相应的,所述基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立,包括:

基于所述接收端发送的所述探测包响应信息实现本地与所述接收端之间内网点对点数据传输链路的建立;

基于所述接收端发送的所述探测信令响应信息实现本地与所述接收端之间内网中继数据传输链路的建立。

可选的,所述的数据传输链路建立方法,还包括:

判断本地与所述接收端之间的点对点数据传输链路和中继数据传输链路是否均建立成功;

若本地与所述接收端之间的点对点数据传输链路和中继数据传输链路均建立成功,则将所述点对点数据传输链路设置为优先使用。

可选的,所述若本地与所述接收端之间的点对点数据传输链路和中继数据传输链路均建立成功之后,还包括:

获取用于检测和维持链路状态的心跳包;

利用所述点对点数据传输链路或所述中继数据传输链路将所述心跳包定时发送至接收端。

第二方面,本申请公开了一种数据传输链路建立装置,应用于发送端,包括:

请求发送模块,用于将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;

绑定信息生成模块,用于基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;

地址信息发送模块,用于将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;

探测信息发送模块,用于获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;

链路建立模块,用于基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。

第三方面,本申请公开了一种电子设备,包括:

存储器,用于保存计算机程序;

处理器,用于执行所述计算机程序,以实现前述的数据传输链路建立方法。

第四方面,本申请公开了一种计算机存储介质,用于保存计算机程序;其中,所述计算机程序被处理器执行时实现前述公开的数据传输链路建立方法的步骤。

可见,本申请提供了一种数据传输链路建立方法,包括将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;将本地的包含所述第一NATIP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。本申请通过中心服务器确定出用于建立发送端和接收端之间的数据传输链路的中继服务器,然后进行本地与中继服务器之间的端口绑定,以便接收端基于第一端口绑定信息与中继服务器相应的进行端口绑定,然后进行探测信息发送,基于探测响应信息实现本地与接收端之间内网数据传输链路的建立,从而解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1为本申请公开的一种数据传输链路建立方法流程图;

图2为本申请公开的一种数据传输链路建立方法流程图;

图3为本申请公开的一种数据传输链路建立方法的具体流程图;

图4为本申请公开的一种数据传输链路建立装置结构示意图;

图5为本申请提供的一种电子设备结构图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

目前,客户端与客户端在任意互联网网络下的实现双向通信,如果NAT穿越失败,可以通过turnserver服务器转发数据,但如果客户端都在同一个对外NAT的内网下,分别处于不同内网NAT节点(如不同路由器)下,这时采用如上方法基本不能实现NAT穿越,因为公网NAT网关是运营商配置的,通常不允许回环发送数据,如果NAT下的客户端尝试NAT穿越,需要利用该NAT支持数据回环才能NAT穿透成功,但运营商为了计费需要,限制了该公网NAT回环转发数据,故无法NAT穿越成功,因此,则会导致同一内网下的客户端只能通过外网转向服务器转发数据,从而产生大量的服务器流量费用,并造成传输路径长,降低数据传输效率的问题。由上可见,如何解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验是本领域有待解决的问题。

参见图1所示,本发明实施例公开了一种数据传输链路建立方法,应用于发送端,具体可以包括:

步骤S11:将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址。

本实施例中,将包含接收端信息和第一公网IP地址的链路建立请求发送至所述中心服务器,以便所述中心服务器确定与所述接收端信息对应的第二公网IP地址,并判断所述第一公网IP地址与所述第二公网IP地址是否一致,若所述第一公网IP地址与所述第二公网IP地址一致,则从自身的所有中继服务器中筛选出用于建立内网数据传输链路的所述中继服务器,并确定相应的所述中继服务器地址。

具体的,当内网路由器的发送端需要与内网路由器的接收端之间进行通信时,发送端首先告知中心服务器需要与接收端通信,请中心服务器分配可双方建立通信的turnserver服务器,中心服务器此时查询接收端的NAT网关IP(Internet Protocol,网际互连协议)地址(即第二公网IP地址),然后与发送端的第一公网IP地址进行比较,此时发现公网IP相同,此时中心服务器再次查询到此NAT网关1公网IP下已部署内网turnserver,然后中心服务器分配中继服务器地址告知发送端,将此中继服务器地址作为发送端与接收端之间通信的媒体NAT穿透或中继服务器。

步骤S12:基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息。

本实施例中,获取所述中心服务器发送的端口绑定指令,执行所述端口绑定指令,并基于所述中心服务器确定的所述中继服务器地址进行本地与相应的所述中继服务器的端口之间的绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息。

步骤S13:将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息。

步骤S14:获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息。

步骤S15:基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。

本申请在实现本地与所述接收端之间内网数据传输链路的建立之后,还可以判断本地与所述接收端之间的点对点数据传输链路和中继数据传输链路是否均建立成功;若本地与所述接收端之间的点对点数据传输链路和中继数据传输链路均建立成功,则将所述点对点数据传输链路设置为优先使用。此外,若本地与所述接收端之间的点对点数据传输链路和中继数据传输链路均建立成功,获取用于检测和维持链路状态的心跳包;利用所述点对点数据传输链路或所述中继数据传输链路将所述心跳包定时发送至接收端。

具体的,如果发送端和接收端能够实现NAT穿透,即则本地与所述接收端之间内网数据传输链路的建立,优先选择P2P链路(Peer to Peer,对等计算机网络),即优先选择点对点数据传输链路传输双方数据,此时数据会经过发送端路由和接收端路由转发后直接通信。此外,发送端和接收端之间连接成功后,双方还需通过已建立的P2P或中继链路定时向对方发送心跳包,以维持该链路不被网关节点释放,同时用于确认链路是否继续可用。

本申请通过在营运商公网NAT节点之下的内网,部署一台turnserver服务器,客户端(包括发送端和接收端)依然都会连接到外网的中心服务器,中心服务器配置文件可配置好内外网分别配置了哪些turnserver服务器,配置文件中记录该公网NAT下的内网是否配置turnserver服务器根据公网NAT节点的IP地址区分。当客户端连接中心服务器时,中心服务器记录下每个客户端的公网IP,当某个客户端请求中心服务器要与对方客户端通信时,中心服务器查询对方客户端的NAT节点公网IP是否和该客户端相同,如果相同,且可以查找到在该IP NAT网关内部已配置turnserver服务器,则选择该内部turnserver服务器作为客户端和客户端之间STUN(Simple Traversal of UDP Through NATs,简单的用UDP穿透NAT)或TURN中继的服务器,然后客户端都通过与该内部turnserver服务器交互获取到内部路由器NAT映射地址和客户端私网IP地址,通过中心服务器交互地址,然后分别向对方地址发送打洞消息尝试NAT穿透,与此同时客户端都与内部turnserver服务器进行绑定连接,因为客户端均在该内网下NAT低层节点,所以客户端一定可以与内网turnserver中继绑定连接成功,可作为客户端之间的内网转发链路。同时也可以根据内网turnserver交互后通过中心服务器交换获取到对方客户端的内网NAT映射地址和私网地址,而且一般内部路由器NAT为锥型NAT,大概率也可以实现内网的P2P通信,这样之后就可以完全不依赖外网的情况下实现客户端之间的点对点通信,节省外网turnserver服务器转发大量数据产生的流量成本,同时客户端之间通信通过内网的P2P通道或内网服务器中继传输,如果内网P2P成功,则客户端优先选择P2P传输路径,相比之前通过外网turnserver中继服务器转发,还可以具备更好的实时性能。如果中心服务器发现客户端之间的NAT IP不相同,则依然使用外网turnserver作为P2P和中继的服务器,兼容客户端处于任意网络下的NAT穿透通信或中继转发通信。

本实施例中,将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。本申请通过中心服务器确定出用于建立发送端和接收端之间的数据传输链路的中继服务器,然后进行本地与中继服务器之间的端口绑定,以便接收端基于第一端口绑定信息与中继服务器相应的进行端口绑定,然后进行探测信息发送,基于探测响应信息实现本地与接收端之间内网数据传输链路的建立,从而解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验。

参见图2所示,本发明实施例公开了一种数据传输链路建立方法,应用于发送端,具体可以包括:

步骤S21:将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址。

步骤S22:基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息。

步骤S23:将包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至所述接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并获取所述中继服务器发送的第二NAT IP和映射端口,生成所述第二端口绑定信息。

步骤S24:从所述中心服务器中获取所述接收端发送的包含所述第二NAT IP和映射端口、第二私网IP和端口以及所述第二端口绑定信息的所述第二地址信息,根据所述第二地址信息生成并发送探测包和探测信令至所述接收端,以便所述接收端对所述探测包和所述探测信令分别进行响应,并生成探测包响应信息和探测信令响应信息;所述探测信息包括所述探测包和所述探测信令;所述探测响应信息包括所述探测包响应信息和所述探测信令响应信息。

步骤S25:基于所述接收端发送的所述探测包响应信息实现本地与所述接收端之间内网点对点数据传输链路的建立,基于所述接收端发送的所述探测信令响应信息实现本地与所述接收端之间内网中继数据传输链路的建立。

本申请点对点数据传输流程如图3所示,客户端1通过路由器1分配的网络经NAT1网关与中心服务器保持连接,同时客户端2通过路由器2分配的网络经NAT1网关也与中心服务器保持连接。客户端3通过其他路由器节点或直接经NAT2网关也与中心服务器保持连接状态:具体的,(1)当内网路由器1下的客户端1需要与内网路由器2下客户端2通信时,客户端1首先告知中心服务器需要与客户端2通信,请中心服务器分配可双方建立通信的turnserver服务器,中心服务器此时查询客户端2的NAT网关IP地址(第二公网IP地址),然后与客户端1的第一公网IP地址进行比较,此时发现公网IP相同,中心服务器分配内网turnserver2地址(即中继服务器地址)告知客户端1;(2)当客户端1收到中心服务器的端口绑定指令后,与turnserver2通信获取路由器1NAT IP和映射端口,同时与turnserver2某端口进行绑定,绑定成功后,通过中心服务器将客户端1收集的第一地址信息(包括客户端1所处路由器1的NAT IP和端口,私网IP和端口,绑定turnserver2的IP和端口)通知给客户端2,客户端2收到后与客户端1一样与turnserver2进行绑定,通过与turnserver2信令交互获取路由器2的NAT IP和映射端口,绑定成功后将客户端2收集的第二地址信息(包括客户端2所处路由器2的NAT IP和端口,私网IP和端口,绑定turnserver2的IP和端口)通过中继服务器转发给客户端1;(3)客户端2向客户端1的NAT IP端口和私网IP端口发送探测包和探测信令,实现在turnserver2上与客户端1绑定端口的关系绑定,客户端1收到探测包和探测信令后,也向客户端2的路由器NAT IP端口和私网IP端口发送探测包和探测信令,实现在turnserver2上与客户端2绑定端口的关系绑定,可用作内网下NAT穿透失败时的中继传输链路,最后实现客户端1与客户端2之间的P2P链路的建立以及中继数据传输链路的建立。

当客户端1需要与客户端3通信时,客户端1首先告知中心服务器需要与客户端3通信,请中心服务器分配可双方建立通信的turnserver服务器,中心服务器此时查询客户端3的第三公网IP地址,然后与客户端1的第一公网IP地址进行比较,发现公网IP不同,故中心服务器只分配公网turnserver1地址告知客户端1,与客户端3通信选择turnserver1作为通信媒体NAT穿透或中继服务器,当客户端1收到中心服务器的端口绑定指令后,与turnserver1通信获取NAT网关1公网IP和映射端口,同时与turnserver1某端口进行绑定,绑定成功后,通过中心服务器将客户端1收集的第一地址信息(包括客户端1所处公网NAT网关1的IP和端口,私网IP和端口,绑定turnserver1的IP和端口)通知给客户端3,客户端3收到后与客户端1一样与turnserver1进行绑定,通过与turnserver1信令交互获取NAT网关2的公网IP和映射端口,绑定成功后将客户端3收集的第三地址信息(包括客户端3所处公网NAT网关2的IP和端口,私网IP和端口,绑定turnserver1的IP和端口)通知给客户端1,与此同时向客户端1的公网IP端口和私网IP和端口发送探测信息,也通过信令实现在turnserver1上与客户端1绑定端口的关系绑定。客户端1收到地址类型后,也向客户端3的公网IP端口和私网IP和端口发送探测消息,也通过信令实现在turnserver1上与客户端3绑定端口的关系绑定,可用作NAT穿透失败时的中继传输链路,最后实现客户端1与客户端3之间的外网传输链路的建立。

本申请中心服务器依据客户端公网NAT网关IP地址是否相同和是否在该NAT网关下已配置内网turnserver服务器作为关键路径选择决策器,如果客户端的公网NAT网关IP相同且已配置内网turnserver服务器,则分配内网turnserver服务器用于客户端之间消息的交互通道。如果客户端的公网NAT网关IP地址不同,则选择外网turnserver服务器作为客户端之间消息的交互通道,可以实现全球任意网络节点下的客户端之间相互通信时的路径自动选择,不同公网NAT下的客户端通过公网turnserver实现外部NAT穿透或中继转发链路,相同公网NAT下的客户端通过内网turnserver实现内部NAT穿透或中继转发链路,实现数据双向通信。本发明对于相同公网NAT内网下的不同路由器NAT下客户端之间可以完全实现内网通信,若内网两端路由器NAT均为对称型或一端为端口限制型,另一端为对称型,则可以通过内网turnserver转发数据,否则均可通过内网NAT穿透P2P成功,两种连接模式均不用经过公网NAT网关和外网turnserver服务器转发数据,节省了网络带宽和公网服务器流量成本,路径最优,传输效率更高。此外,客户端之间通过路由器NAT穿透或turnserver中继连接成功后,客户端相互发送心跳保活命令,确保链路的可用性,以免无数据交互时网关节点释放该链路。本申请基于基于NAT原理,通过turnserver可获取和turnserver通信的NAT网关地址对,通过客户端之间的地址交换,可以实现客户端之间的相互通信。由于公网NAT网关节点一般是受网络运营商限制,通常会将NAT网关下的数据之间禁止回环,导致内网不同路由器下(客户端之间非同一局域网,无法通过局域网直接通信)的客户端通过公网NAT网关无法实现NAT穿透,这时只能依托公网turnserver服务器转发数据。此发明在公网NAT网关的内网部署一台turnserver,相同公网NAT网关下的客户端选择内网turnserver,即可实现同一公网NAT网关下不同路由器节点下的客户端之间的P2P通信或内网转发通信而无需经过公网NAT和公网turnserver,减少公网服务器带宽,节省成本,提升数据传输效率。本申请中的相同公网NAT网关内网下不同路由器节点下的客户端可以根据服务器配置策略自动选择最佳路径实现内网通信,同时不同公网NAT网关节点下的任意客户端也可实现NAT穿透或服务器转发链路通信。

本实施例中,将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。本申请通过中心服务器确定出用于建立发送端和接收端之间的数据传输链路的中继服务器,然后进行本地与中继服务器之间的端口绑定,以便接收端基于第一端口绑定信息与中继服务器相应的进行端口绑定,然后进行探测信息发送,基于探测响应信息实现本地与接收端之间内网数据传输链路的建立,从而解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验。

参见图4所示,本发明实施例公开了一种数据传输链路建立装置,应用于发送端,具体可以包括:

请求发送模块11,用于将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;

绑定信息生成模块12,用于基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;

地址信息发送模块13,用于将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;

探测信息发送模块14,用于获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;

链路建立模块15,用于基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。

本实施例中,将链路建立请求发送至中心服务器,以便所述中心服务器基于所述链路建立请求确定中继服务器地址;基于所述中心服务器确定的所述中继服务器地址对相应的中继服务器进行端口绑定,并从所述中继服务器中获取第一NAT IP和映射端口,生成第一端口绑定信息;将本地的包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并生成第二端口绑定信息;获取所述接收端发送的包括所述第二端口绑定信息的第二地址信息,根据所述第二地址信息生成并发送探测信息至所述接收端,以便所述接收端对所述探测信息进行响应,并生成探测响应信息;基于所述接收端发送的所述探测响应信息实现本地与所述接收端之间内网数据传输链路的建立。本申请通过中心服务器确定出用于建立发送端和接收端之间的数据传输链路的中继服务器,然后进行本地与中继服务器之间的端口绑定,以便接收端基于第一端口绑定信息与中继服务器相应的进行端口绑定,然后进行探测信息发送,基于探测响应信息实现本地与接收端之间内网数据传输链路的建立,从而解决客户端之间只能使用外网服务器转发数据的问题,从而节约外网服务器转发成本,提高数据传输效率,提升客户端之间的交互体验。

在一些具体实施例中,所述请求发送模块11,具体可以包括:

地址确定模块,用于将包含接收端信息和第一公网IP地址的链路建立请求发送至所述中心服务器,以便所述中心服务器确定与所述接收端信息对应的第二公网IP地址,并判断所述第一公网IP地址与所述第二公网IP地址是否一致,若所述第一公网IP地址与所述第二公网IP地址一致,则从自身的所有中继服务器中筛选出用于建立内网数据传输链路的所述中继服务器,并确定相应的所述中继服务器地址。

在一些具体实施例中,所述绑定信息生成模块12,具体可以包括:

指令获取模块,用于获取所述中心服务器发送的端口绑定指令;

绑定模块,用于执行所述端口绑定指令,并基于所述中心服务器确定的所述中继服务器地址进行本地与相应的所述中继服务器的端口之间的绑定。

在一些具体实施例中,所述地址信息发送模块13,具体可以包括:

第一地址信息转发模块,用于将包含所述第一NAT IP和映射端口、本地的第一私网IP和端口以及所述第一端口绑定信息的第一地址信息利用所述中心服务器转发至所述接收端,以便所述接收端基于所述第一地址信息与所述中继服务器进行绑定,并获取所述中继服务器发送的第二NAT IP和映射端口,生成所述第二端口绑定信息。

在一些具体实施例中,所述地址信息发送模块13,具体可以包括:

第二地址信息获取模块,用于从所述中心服务器中获取所述接收端发送的包含所述第二NAT IP和映射端口、第二私网IP和端口以及所述第二端口绑定信息的所述第二地址信息。

在一些具体实施例中,所述探测信息发送模块14,具体可以包括:

响应模块,用于根据所述第二地址信息生成并发送探测包和探测信令至所述接收端,以便所述接收端对所述探测包和所述探测信令分别进行响应,并生成探测包响应信息和探测信令响应信息;所述探测信息包括所述探测包和所述探测信令;所述探测响应信息包括所述探测包响应信息和所述探测信令响应信息。

在一些具体实施例中,所述链路建立模块15,具体可以包括:

第一链路建立模块,用于基于所述接收端发送的所述探测包响应信息实现本地与所述接收端之间内网点对点数据传输链路的建立;

第二链路建立模块,用于基于所述接收端发送的所述探测信令响应信息实现本地与所述接收端之间内网中继数据传输链路的建立。

在一些具体实施例中,所述数据传输链路建立装置,具体还可以包括:

判断模块,用于判断本地与所述接收端之间的点对点数据传输链路和中继数据传输链路是否均建立成功;

链路设置模块,用于若本地与所述接收端之间的点对点数据传输链路和中继数据传输链路均建立成功,则将所述点对点数据传输链路设置为优先使用。

在一些具体实施例中,所述数据传输链路建立装置,具体还可以包括:

心跳包获取模块,用于获取用于检测和维持链路状态的心跳包;

心跳包发送模块,用于利用所述点对点数据传输链路或所述中继数据传输链路将所述心跳包定时发送至接收端。

图5为本申请实施例提供的一种电子设备的结构示意图。该电子设备20,具体可以包括:至少一个处理器21、至少一个存储器22、电源23、通信接口24、输入输出接口25和通信总线26。其中,所述存储器22用于存储计算机程序,所述计算机程序由所述处理器21加载并执行,以实现前述任一实施例公开的由电子设备执行的数据传输链路建立方法中的相关步骤。

本实施例中,电源23用于为电子设备20上的各硬件设备提供工作电压;通信接口24能够为电子设备20创建与外界设备之间的数据传输通道,其所遵循的通信协议是能够适用于本申请技术方案的任意通信协议,在此不对其进行具体限定;输入输出接口25,用于获取外界输入数据或向外界输出数据,其具体的接口类型可以根据具体应用需要进行选取,在此不进行具体限定。

另外,存储器22作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统221、计算机程序222及数据223等,存储方式可以是短暂存储或者永久存储。

其中,操作系统221用于管理与控制电子设备20上的各硬件设备以及计算机程序222,以实现处理器21对存储器22中数据223的运算与处理,其可以是Windows、Unix、Linux等。计算机程序222除了包括能够用于完成前述任一实施例公开的由电子设备20执行的数据传输链路建立方法的计算机程序之外,还可以进一步包括能够用于完成其他特定工作的计算机程序。数据223除了可以包括数据传输链路建立设备接收到的由外部设备传输进来的数据,也可以包括由自身输入输出接口25采集到的数据等。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。

进一步的,本申请实施例还公开了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序被处理器加载并执行时,实现前述任一实施例公开的数据传输链路建立方法步骤。

最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上对本发明所提供的一种数据传输链路建立方法、装置、设备及存储介质进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

相关技术
  • 一种数据传输方法、装置、电子设备及存储介质
  • 基于双向网闸的数据传输方法、装置、设备及介质
  • 数据传输方法、装置、电子设备及存储介质
  • 数据传输方法、装置、系统及设备、介质
  • 基于非授权传输的数据传输方法、装置、设备和存储介质
  • 车云数据传输链路建立方法、系统、设备及存储介质
  • 数据传输链路建立方法、装置以及计算机可读存储介质
技术分类

06120116502794