[go: up one dir, main page]

CN116846948A - 直连链路建立的控制方法、直连链路建立方法和相关装置 - Google Patents

直连链路建立的控制方法、直连链路建立方法和相关装置 Download PDF

Info

Publication number
CN116846948A
CN116846948A CN202210298786.4A CN202210298786A CN116846948A CN 116846948 A CN116846948 A CN 116846948A CN 202210298786 A CN202210298786 A CN 202210298786A CN 116846948 A CN116846948 A CN 116846948A
Authority
CN
China
Prior art keywords
terminal
internet protocol
address
server
policy
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202210298786.4A
Other languages
English (en)
Inventor
薛政
周煜
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202210298786.4A priority Critical patent/CN116846948A/zh
Publication of CN116846948A publication Critical patent/CN116846948A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/141Setup of application sessions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/25Mapping addresses of the same type
    • H04L61/2503Translation of Internet protocol [IP] addresses
    • H04L61/256NAT traversal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • H04L69/162Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer And Data Communications (AREA)

Abstract

本申请实施例公开了一种直连链路建立的控制方法、直连链路建立方法和相关装置,应用于车载场景,方法包括:第一终端向第一服务器发送第一网际协议栈类型,第二终端向第一服务器发送第二网际协议栈类型;第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的目标网际协议对应的目标穿透策略,并发送至第一终端和第二终端。第一终端确定对应目标穿透策略的第一地址并发送至第一服务器,第二终端确定对应目标穿透策略的第一地址并发送至第一服务器;第一服务器向第一终端发送第二地址、向第二终端发送第一地址;第一终端基于第二地址、第二终端基于第一地址双向穿透,在第一终端与第二终端之间建立直连链路。

Description

直连链路建立的控制方法、直连链路建立方法和相关装置
技术领域
本申请涉及数据传输技术领域,特别是涉及一种直连链路建立的控制方法、直连链路建立方法和相关装置。
背景技术
随着终端技术的发展和网络带宽的提升,终端之间通过网络所传输的数据量越来越大,对传输能力的要求越来越高。终端之间的数据传输分为中转传输和直连传输,由于直连传输相较于中转传输不需要额外部署中转服务器,节省成本和资源;且直连传输可以避免中间节点被攻击,提高数据传输的安全性和保密性;因此,终端之间的直连传输应用广泛、尤为重要。
相关技术中,数据传输的终端双方建立套接字,获取对应的外网地址进行地址交换,通过同一个套接字向对方终端的外网地址发送数据包,某一终端收到对方终端发送的数据包后,将数据包的目标地址改为之前的源地址,并继续向对方终端发送数据包,直至终端双方中每一终端均收到对方终端发送的数据包以建立直连链路,后续终端双方通过直连链路进行直连传输。
终端之间的直连传输依赖于直连链路的建立,而直连链路能否建立与终端双方支持的网际协议相关,随着网际协议版本4(Internet Protocol version 4,IPv4)至网际协议版本6(Internet Protocol version 6,IPv6)的发展,终端双方支持的网际协议复杂化。然而,上述方式仅适用于终端双方支持的网际协议均为IPv4的情况,无法应对终端双方支持的网际协议复杂化的情况。
发明内容
为了解决上述技术问题,本申请提供了一种直连链路建立的控制方法、直连链路建立方法和相关装置,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
本申请实施例公开了如下技术方案:
一方面,本申请提供一种直连链路建立的控制方法,应用于第一服务器,所述方法包括:
接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定,所述第二网际协议栈类型由所述第二终端支持的网际协议确定;
根据所述第一网际协议栈类型和所述第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
向所述第一终端和所述第二终端发送所述目标穿透策略;
接收所述第一终端对应所述目标穿透策略的第一地址和所述第二终端对应所述目标穿透策略的第二地址;
向所述第一终端发送所述第二地址,向所述第二终端发送所述第一地址;以便所述第一终端基于所述第二地址、所述第二终端基于所述第一地址双向穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
另一方面,本申请提供一种直连链路建立方法,应用于第一终端,所述方法包括:
向第一服务器发送第一网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定;
接收所述第一服务器发送的对应目标网际协议的目标穿透策略;所述目标穿透策略是所述第一服务器根据所述第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,所述第二网际协议栈类型由所述第二终端支持的网际协议确定,所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
确定对应所述目标穿透策略的第一地址;
向所述第一服务器发送所述第一地址;以便所述第一服务器向所述第二终端发送所述第一地址,所述第二终端基于所述第一地址向所述第一终端穿透;
接收所述第一服务器发送的所述第二终端对应所述目标穿透策略的第二地址;
基于所述第二地址向所述第二终端穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
另一方面,本申请提供一种直连链路建立的控制装置,应用于第一服务器,所述装置包括:第一接收单元、第一确定单元、第一发送单元、第二接收单元和第二发送单元;
所述第一接收单元,用于接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定,所述第二网际协议栈类型由所述第二终端支持的网际协议确定;
所述第一确定单元,用于根据所述第一网际协议栈类型和所述第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
所述第一发送单元,用于向所述第一终端和所述第二终端发送所述目标穿透策略;
所述第二接收单元,用于接收所述第一终端对应所述目标穿透策略的第一地址和所述第二终端对应所述目标穿透策略的第二地址;
所述第二发送单元,用于向所述第一终端发送所述第二地址,向所述第二终端发送所述第一地址;以便所述第一终端基于所述第二地址、所述第二终端基于所述第一地址双向穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
另一方面,本申请提供一种直连链路建立装置,应用于第一终端,所述装置包括:第三发送单元、第三接收单元、第二确定单元、第四发送单元、第四接收单元和建立单元;
所述第三发送单元,用于向第一服务器发送第一网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定;
所述第三接收单元,用于接收所述第一服务器发送的对应目标网际协议的目标穿透策略;所述目标穿透策略是所述第一服务器根据所述第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,所述第二网际协议栈类型由所述第二终端支持的网际协议确定,所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
所述第二确定单元,用于确定对应所述目标穿透策略的第一地址;
所述第四发送单元,用于向所述第一服务器发送所述第一地址;以便所述第一服务器向所述第二终端发送所述第一地址,所述第二终端基于所述第一地址向所述第一终端穿透;
所述第四接收单元,用于接收所述第一服务器发送的所述第二终端对应所述目标穿透策略的第二地址;
所述建立单元,用于基于所述第二地址向所述第二终端穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
另一方面,本申请提供一种计算机设备,所述计算机设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行上述方面所述的直连链路建立的控制方法,或,上述方面所述的直连链路建立方法。
另一方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行上述方面所述的直连链路建立的控制方法,或,上述方面所述的直连链路建立方法。
另一方面,本申请实施例提供了一种计算机程序产品,所述计算机程序产品包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行上述方面所述的直连链路建立的控制方法,或,上述方面所述的直连链路建立方法。
由上述技术方案可以看出,第一终端向第一服务器发送第一终端支持的网际协议所确定的第一网际协议栈类型,第二终端向第一服务器发送第二终端支持的网际协议所确定的第二网际协议栈类型;第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的目标网际协议对应的目标穿透策略,并发送至第一终端和第二终端。第一终端确定对应目标穿透策略的第一地址并发送至第一服务器,第二终端确定对应目标穿透策略的第一地址并发送至第一服务器;第一服务器向第一终端发送第二地址、向第二终端发送第一地址;第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
可见,服务器分别收集终端双方支持的网际协议,自适应地选择终端双方均支持的网际协议所对应的穿透策略,交换终端双方对应穿透策略的地址,以通过双向穿透在终端双方之间建立直连链路。基于此,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术成员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种直连链路建立方法的应用场景示意图;
图2为本申请实施例提供的一种直连链路建立方法的信令交互图;
图3为本申请实施例提供的一种直连链路建立方法的应用场景架构图;
图4为本申请实施例提供的一种第一终端和第二终端双向穿透的示意图;
图5为本申请实施例提供的一种第一终端向第二终端穿透的示意图;
图6为本申请实施例提供的一种直连链路建立的应用方法的信令交互图;
图7为本申请实施例提供的一种直连链路建立的控制装置的示意图;
图8为本申请实施例提供的一种直连链路建立装置的示意图;
图9为本申请实施例提供的一种服务器的结构示意图;
图10为本申请实施例提供的一种终端设备的结构示意图。
具体实施方式
下面结合附图,对本申请的实施例进行描述。
相关技术中,终端A和终端B建立套接字,终端A获取其外网地址、终端B获取其外网地址以后进行地址交换,终端A通过上述套接字向终端B的外网地址发送数据包,终端B通过上述套接字向终端A的外网地址发送数据包;其中,某一方终端收到对方终端发送的数据包后,将数据包的目标地址改为之前的源地址,并继续向该对方终端发送数据包,直至终端A收到终端B的数据包、终端B收到终端A的数据包以建立直连链路,后续终端A和终端B通过直连链路进行直连传输。
经过研究发现,终端之间的直连传输依赖于直连链路的建立,而直连链路能否建立与终端双方支持的网际协议相关,随着IPv4至IPv6的发展,终端双方支持的网际协议复杂化。但是,上述方式仅适用于终端双方支持的网际协议均为IPv4的情况,无法应对终端双方支持的网际协议复杂化的情况;且在终端双方支持的网际协议均包括IPv6的情况下,无法利用IPv6对应的资源。
有鉴于此,本申请提出一种直连链路建立的控制方法、直连链路建立方法和相关装置,服务器分别收集终端双方支持的网际协议,自适应地选择终端双方均支持的网际协议所对应的穿透策略,交换终端双方对应穿透策略的地址,以通过双向穿透在终端双方之间建立直连链路。基于此,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
本申请实施例提供的直连链路建立的控制方法可以应用于具有数据处理能力的直连链路建立的控制设备,例如可以是服务器等,服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云计算服务的云服务器,但并不局限于此等。
本申请实施例提供的直连链路建立方法可以应用于具有数据处理能力的直连链路建立设备,例如可以是终端设备等;其中,终端设备包括但不限于手机、平板、电脑、计算机、智能摄像头、智能语音交互设备、智能家电、车载终端、飞行器等。终端设备以及服务器可以通过有线或无线通信方式进行直接或间接地连接,本申请在此不做限制。
本申请实施例提供的直连链路建立的控制方法、直连链路建立方法,其中,第一终端、第二终端可作为区块链中节点,所涉及的传输数据可保存于区块链上。
为了便于理解本申请的技术方案,下面结合实际应用场景,对本申请实施例提供的直连链路建立的控制方法、直连链路建立方法进行介绍。
参见图1,图1为本申请实施例提供的一种直连链路建立方法的应用场景示意图。在图1所示的应用场景包括第一终端101、第一服务器102和第二终端103;其中,在第一终端101和第二终端103之间需要经过公网实现端到端的直连传输,该端到端的直连传输场景中,传输链路上只有路由节点,没有中转服务器节点,传输成本较低,适用于大数据量的数据传输,例如,文件数据传输、视频数据传输、音视频通话数据传输、直播数据传输、虚拟现实数据传输等;此外,安全性和保密性较高,也普遍适用于区块链数据传输。
第一终端101向第一服务器102发送第一网际协议栈类型,第一网际协议栈类型由第一终端101支持的网际协议确定;第二终端103向第一服务器102发送第二网际协议栈类型,第二网际协议栈类型由第二终端103支持的网际协议确定。例如,第一网际协议栈类型可以为IPv4单栈、IPv6单栈或IPv4/IPv6双协议栈,第二网际协议栈类型可以为IPv4单栈、IPv6单栈或IPv4/IPv6双协议栈。
第一服务器102根据第一网际协议栈类型和第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;目标网际协议是第一终端101和第二终端103均支持的网际协议。例如,第一网际协议栈类型和第二网际协议栈类型均为IPv4/IPv6双栈情况下,目标网际协议为IPv4和IPv6,确定目标穿透策略为IPv4穿透策略和IPv6穿透策略。
又如,第一网际协议栈类型和第二网际协议栈类型均为IPv4单栈、第一网际协议栈类型为IPv4单栈且第二网际协议栈类型为IPv4/IPv6双栈、第一网际协议栈类型为IPv4/IPv6双栈且第二网际协议栈类型为IPv4单栈三种情况下,目标网际协议为IPv4,确定目标穿透策略为IPv4穿透策略。
再如,第一网际协议栈类型和第二网际协议栈类型均为IPv6单栈、第一网际协议栈类型为IPv6单栈且第二网际协议栈类型为IPv4/IPv6双栈、第一网际协议栈类型为IPv4/IPv6双栈且第二网际协议栈类型为IPv6单栈三种情况下,目标网际协议为IPv6,确定目标穿透策略为IPv6穿透策略。
第一服务器102向第一终端101和第二终端103发送目标穿透策略。
第一终端101确定对应目标穿透策略的第一地址;第二终端103确定对应目标穿透策略的第二地址。例如,目标穿透策略为IPv4穿透策略和IPv6穿透策略,第一地址为第一终端101的IPv4外网地址和IPv6本地地址,第二地址为第二终端103的IPv4外网地址和IPv6本地地址;又如,目标穿透策略为IPv4穿透策略,第一地址为第一终端101的IPv4外网地址,第二地址为第二终端103的IPv4外网地址;再如,目标穿透策略为IPv6穿透策略,第一地址为第一终端101的IPv6本地地址,第二地址为第二终端103的IPv6本地地址。
第一终端101向第一服务器102发送第一地址;第二终端103向第一服务器102发送第二地址。
第一服务器102向第一终端101发送第二地址,向第二终端103发送第一地址。
第一终端101基于第二地址、第二终端103基于第一地址双向穿透,直至在第一终端101与第二终端103之间建立直连链路。
可见,第一服务器102分别收集第一终端101支持的网际协议和第二终端103支持的网际协议,自适应地选择第一终端101和第二终端103均支持的目标网际协议所对应的目标穿透策略;第一服务器102交换第一终端101对应目标穿透策略的第一地址和第二终端103对应目标穿透策略的第二地址,第一终端101通过第二地址、第二终端103通过第一地址双向穿透,在第一终端101和第二终端103之间建立直连链路。基于此,即使在第一终端101支持的网际协议、第二终端103支持的网际协议复杂化的情况下,该方式也能够有效地进行第一终端101和第二终端103之间直连链路的建立,从而提升建立直连链路的成功率和效率。
接下来,将从第一终端、第二终端和第一服务器之间进行交互的角度,对本申请实施例提供的直连链路建立的控制方法、直连链路建立方法进行具体介绍。
参见图2,该图为本申请实施例提供的一种直连链路建立方法的信令交互图。如图2所示,该直连链路建立方法包括以下步骤:
S201:第一终端向第一服务器发送第一网际协议栈类型;第一网际协议栈类型由第一终端支持的网际协议确定;第二终端向第一服务器发送第二网际协议栈类型;第二网际协议栈类型由第二终端支持的网际协议确定。
由于终端之间的直连传输依赖于直连链路的建立,而直连链路能否建立与终端双方支持的网际协议相关,随着IPv4至IPv6的发展,终端双方支持的网际协议复杂化;相关技术中直连链路的建立方式仅适用于终端双方支持的网际协议均为IPv4的情况,无法应对终端双方支持的网际协议复杂化的情况;且在终端双方支持的网际协议均包括IPv6的情况下,无法利用IPv6对应的资源。
因此,本申请实施例中,考虑通过服务器分别收集终端双方支持的网际协议,以便后续能够基于此自适应地选择终端双方均支持的网际协议所对应的穿透策略,双向穿透进行终端双方之间直连链路的建立,以应对终端双方支持的网际协议复杂化的情况,且不浪费终端双方均支持的网际协议对应的资源。
即,在第一终端、第二终端和第一服务器之间进行交互的基础上,第一终端将其支持的网际协议所确定的第一网际协议栈类型发送至第一服务器;同理,第二终端将其支持的网际协议所确定的第二网际协议栈类型发送至第一服务器。其中,第一网际协议栈类型例如具体可以是第一终端调用系统网络接口获取的;同理,第二网际协议栈类型例如具体可以是第二终端调用系统网络接口获取的,不同网际协议栈类型之间的互通性不同。
此外,第一服务器还可以成为策略服务器,如此表示后续不再赘述。
本申请实施例中,第一终端支持的网际协议为第一网际协议时,第一网际协议栈类型为第一网际协议单栈;第一终端支持的网际协议为第二网际协议时,第一网际协议栈类型为第二网际协议单栈;第一终端支持的网际协议为第一网际协议和第二网际协议时,第一网际协议栈类型为第一网际协议/第二网际协议双栈。其中,第一网际协议/第二网际协议双栈包括第一网际协议的协议栈和第二网际协议的协议栈。
同理,第二终端支持的网际协议为第一网际协议时,第二网际协议栈类型为第一网际协议单栈;第二终端支持的网际协议为第二网际协议时,第二网际协议栈类型为第二网际协议单栈;第二终端支持的网际协议为第一网际协议和第二网际协议时,第二网际协议栈类型为第一网际协议/第二网际协议双栈。
作为一种示例,第一网际协议例如可以为IPv4,第二网际协议例如可以为IPv6;则第一网际协议单栈为IPv4单栈,第二网际协议单栈为IPv6单栈,第一网际协议/第二网际协议双栈为IPv4/IPv6双栈。其中,IPv4/IPv6双栈包括IPv4协议栈和IPv6协议栈,由于IPv4使用32位(4字节)地址,因此地址空间中只有4,294,967,296(232)个地址,随着地址不断被分配给设备,IPv4地址枯竭问题也随之产生,IPv6主要用于解决IPv4地址枯竭问题。
S202:第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;目标网际协议是第一终端和第二终端均支持的网际协议。
由于终端双方中某一方终端的IPv4对应的套接字绑定至IPv4本地地址,通过IPv4对应的套接字向对方终端的IPv6本地地址发送数据包,IPv4和IPv6不同导致无法找到对应的路由规则,从而导致发包失败,无法穿透进行直连链路的建立。同理,终端双方中某一方终端的IPv6对应的套接字绑定至IPv6本地地址,通过IPv6对应的套接字向对方终端的IPv4外网地址发送数据包,IPv4和IPv6不同导致无法找到对应的路由规则,从而导致发包失败,无法穿透进行直连链路的建立。
因此,本申请实施例中,对于终端双方而言,只有选择终端双方均支持的网际协议所对应的穿透策略,后续终端双方才能够基于穿透策略双向穿透进行终端双方之间直连链路的建立。
即,对应于上述S201第一终端向第一服务器发送第一网际协议栈类型,第二终端向第一服务器发送第二网际协议栈类型;第一服务器接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型。在此基础上,第一服务器可以通过第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的网际协议为目标网际协议,从而确定目标网际协议对应的穿透策略为目标穿透策略。
本申请实施例中,第一网际协议栈类型和第二网际协议栈类型均为第一网际协议/第二网际协议双栈情况下,目标网际协议为第一网际协议和第二网际协议,确定目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略。
或者,第一网际协议栈类型和第二网际协议栈类型均为第一网际协议单栈、第一网际协议栈类型为第一网际协议单栈且第二网际协议栈类型为第一网际协议/第二网际协议双栈、第一网际协议栈类型为第一网际协议/第二网际协议双栈且第二网际协议栈类型为第一网际协议单栈三种情况下,目标网际协议为第一网际协议,确定目标穿透策略为第一网际协议穿透策略。
或者,第一网际协议栈类型和第二网际协议栈类型均为第二网际协议单栈、第一网际协议栈类型为第二网际协议单栈且第二网际协议栈类型为第一网际协议/第二网际协议双栈、第一网际协议栈类型为第一网际协议/第二网际协议双栈且第二网际协议栈类型为第二网际协议单栈三种情况下,目标网际协议为第二网际协议,确定目标穿透策略为第二网际协议穿透策略。
作为一种示例,在上述示例的基础上,由于第一网际协议为IPv4,第二网际协议为IPv6;则第一网际协议穿透策略为IPv4穿透策略,第二网际协议穿透策略为IPv6穿透策略。即,第一网际协议栈类型、第二网际协议栈类型与目标穿透策略的关系表如下所示:
在实际应用中,穿透策略还可以称为打洞策略,则目标穿透策略为目标打洞策略,第一网际协议穿透策略还可以称为第一网际协议打洞策略,第二网际协议穿透策略还可以称为第二网际协议打洞策略。第一网际协议为IPv4,第二网际协议为IPv6时,第一网际协议打洞策略为IPv4打洞策略,第二网际协议打洞策略为IPv6打洞策略;如此表示后续不再赘述。
此外,考虑到目标网际协议为第一网际协议和第二网际协议,或者,目标网际协议为第一网际协议两种情况下,即,目标网际协议包括第一网际协议情况下,第一终端和第二终端在第一网际协议下实际上需要通过外网地址穿透;而外网地址是提供获取终端双方的外网地址服务的服务器对本地地址进行网络地址转换得到,该服务器由终端双方的所属服务端的信息所确定。
本申请实施例中,在S201具体实现时,目标网际协议包括第一网际协议情况下,在上述S201中第一终端向第一服务器发送第一网际协议栈类型的基础上,第一终端还需要向第一服务器发送第一终端所属服务端的信息,即,第一服务端信息;同理,在上述S201中第二终端向第一服务器发送第二网际协议栈类型的基础上,第二终端还需要向第一服务器发送第二终端所属服务端的信息,即,第二服务端信息。因此,本申请提供了一种可能的实现方式,S201例如可以包括:第一终端向第一服务器发送第一网际协议栈类型和第一服务端信息,第一服务端信息是第一终端所属服务端的信息;第二终端向第一服务器发送第二网际协议栈类型和第二服务端信息,第二服务端信息是第二终端所属服务端的信息。
其中,第一服务端信息例如具体可以是第一终端调用系统网络接口获取的;同理,第二服务端信息例如具体可以是第二终端调用系统网络接口获取的。
作为一种示例,第一服务端信息例如可以是第一运营商信息,第一运营商信息是第一终端所属运营商的信息;同理,第二服务端信息例如可以是第二运营商信息,第二运营商信息是第二终端所属运营商的信息。运营商例如可以分为运营商A、运营商B和运营商C等等。
S203:第一服务器向第一终端和第二终端发送目标穿透策略。
本申请实施例中,在S202第一服务器确定目标穿透策略之后,需要将目标穿透策略分别发送给第一终端和第二终端,以便后续第一终端和第二终端能够基于穿透策略双向穿透进行终端双方之间直连链路的建立。
本申请实施例中,目标网际协议包括第一网际协议,目标穿透策略包括第一网际协议穿透策略;对应于上述S201的具体实现,S203具体实现时,第一服务器接收第一终端发送的第一服务端信息和第二终端发送的第二服务端信息之后,首先,第一服务器需要通过第一服务端信息和第二服务端信息,确定第二服务器的网络地址;其中,第二服务器支持第一网际协议,用于提供获取第一终端的第一网际协议外网地址服务和第二终端的第一网际协议外网地址服务;然后,第一服务器向第一终端和第二终端发送第一网际协议穿透策略的基础上,第一服务器还需要向第一终端和第二终端发送第二服务器的网络地址。因此,本申请提供了一种可能的实现方式,S203例如可以包括如下S2031-S2032:
S2031:第一服务器根据第一服务端信息和第二服务端信息,确定第二服务器的网络地址;第二服务器支持第一网际协议。
S2032:第一服务器向第一终端和第二终端发送第一网际协议穿透策略和网络地址。
作为一种示例,第一网际协议例如可以为IPv4,则第一网际协议穿透策略为IPv4穿透策略,第二服务器用于提供获取第一终端的IPv4外网地址服务和第二终端的IPv4外网地址服务,第二服务器支持IPv4,可以是一个部署网络地址转换会话穿越应用程序(Session Traversal Utilities for NAT,STUN)的IPv4单栈服务器。
其中,第二服务器也可以称为打洞服务器,如此表示后续不再赘述。
其中,STUN是一种网络协议,它允许位于网络地址转换(Network AddressTranslation,NAT)路由器后的终端找出终端的外网地址,查出位于哪种类型的NAT路由器之后以及NAT路由器为终端的某一个本地端口所绑定的网络端口。NAT是一种在数据包通过路由器或防火墙时重写来源网际协议地址或目的网际协议地址的技术,能够解决lPv4地址不足的问题,而且能够有效地避免来自网络外部的攻击,隐藏并保护网络内部的计算机。
S204:第一终端确定对应目标穿透策略的第一地址;第二终端确定对应目标穿透策略的第二地址。
本申请实施例中,对应于上述S203第一服务器向第一终端和第二终端发送目标穿透策略;第一终端接收第一服务器发送的目标穿透策略,第二终端接收第一服务器发送的目标穿透策略。在此基础上,第一终端可以通过目标穿透策略所对应的目标网际协议,确定第一终端对应于目标网际协议的地址,作为第一终端对应于目标穿透策略的第一地址;同理,第二终端可以通过目标穿透策略所对应的目标网际协议,确定第二终端对应于目标网际协议的地址,作为第二终端对应于目标穿透策略的第二地址。
本申请实施例中,目标网际协议为第一网际协议和第二网际协议情况下,目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略;由于第一终端和第二终端在第一网际协议下通过外网地址穿透,第一终端和第二终端在第二网际协议下通过本地地址穿透,因此,第一地址为第一终端的第一网际协议外网地址和第二网际协议本地地址,第二地址为第二终端的第一网际协议外网地址和第二网际协议本地地址。
或者,目标网际协议为第一网际协议情况下,目标穿透策略为第一网际协议穿透策略;参见上述说明,第一地址为第一终端的第一网际协议外网地址,第二地址为第二终端的第一网际协议外网地址;
或者,目标网际协议为第二网际协议情况下,目标穿透策略为第二网际协议穿透策略;参见上述说明,第一地址为第一终端的第二网际协议本地地址,第二地址为第二终端的第二网际协议本地地址。
本申请实施例中,目标网际协议包括第一网际协议时,目标穿透策略包括第一网际协议穿透策略;对应于上述S203具体实现方式,S204具体实现时,在第一终端接收第一服务器发送的第一网际协议穿透策略和网络地址,第二终端接收第一服务器发送的第一网际协议穿透策略和网络地址的基础上,第一终端可以基于第一网际协议穿透策略,从网络地址对应的第二服务器获取第一终端的第一网际协议外网地址;同理,第二终端可以基于第一网际协议穿透策略,从网络地址对应的第二服务器获取第二终端的第一网际协议外网地址。
因此,本申请提供了一种可能的实现方式,S204例如可以包括:第一终端根据第一网际协议穿透策略和网络地址,从第二服务器获取第一终端的第一网际协议外网地址;第二终端根据第一网际协议穿透策略和网络地址,从第二服务器获取第二终端的第一网际协议外网地址。
实际应用中,第一网际协议穿透策略对应于第一网际协议,首先,第一终端需要创建第一网际协议对应的套接字,并绑定至第一终端的第一网际协议本地地址;然后,第一终端需要通过第一网际协议对应的套接字,向网络地址对应的第二服务器发送第一数据包,第一数据包的源地址为第一终端的第一网际协议本地地址;最后,第二服务器对第一终端的第一网际协议本地地址进行网络地址转换,得到第一终端的第一网际协议外网地址,更改第一数据包的源地址为第一终端的第一网际协议外网地址发送给第一终端,则第一终端获取第一终端的第一网际协议外网地址。
同理,第二终端需要创建第一网际协议对应的套接字,并绑定至第二终端的第一网际协议本地地址;然后,第二终端需要通过第一网际协议对应的套接字,向网络地址对应的第二服务器发送第三数据包,第三数据包的源地址为第二终端的第一网际协议本地地址;最后,第二服务器对第二终端的第一网际协议本地地址进行网络地址转换,得到第二终端的第一网际协议外网地址,更改第三数据包的源地址为第二终端的第一网际协议外网地址发送给第二终端,则第二终端获取第二终端的第一网际协议外网地址。
因此,本申请提供了一种可能的实现方式,S204例如可以包括如下S2041-S2046:
S2041:第一终端根据第一网际协议穿透策略,创建第一网际协议对应的套接字,并绑定至第一终端的第一网际协议本地地址。
S2042:第一终端按照网络地址通过第一网际协议对应的套接字,向第二服务器发送第一数据包,第一数据包的源地址为第一终端的第一网际协议本地地址。
S2043:第一终端接收第二服务器发送的第一终端的第一网际协议外网地址,第一终端的第一网际协议外网地址是第二服务器对第一终端的第一网际协议本地地址进行网络地址转换得到的。
S2044:第二终端根据第一网际协议穿透策略,创建第一网际协议对应的套接字,并绑定至第二终端的第一网际协议本地地址。
S2045:第二终端按照网络地址通过第一网际协议对应的套接字,向第二服务器发送第三数据包,第三数据包的源地址为第二终端的第一网际协议本地地址。
S2046:第二终端接收第二服务器发送的第二终端的第一网际协议外网地址,第二终端的第一网际协议外网地址是第二服务器对第二终端的第一网际协议本地地址进行网络地址转换得到的。
实际应用中,并不限定S2041-S2043和S2044-S2046之间的执行顺序,可以同时执行S2041-S2043和S2044-S2046,也可以先执行S2041-S2043、再执行S2044-S2046,还可以先执行S2044-S2046、再执行S2041-S2043。
在上述S201-S204的具体实现基础上,目标网际协议包括第一网际协议时,参见图3,该图为本申请实施例提供的一种直连链路建立方法的应用场景架构图,其中,应用场景架构包括第一终端、第一服务器、第二服务器和第二终端,第一终端、第一服务器、第二服务器和第二终端所执行的步骤参见上述目标网际协议包括第一网际协议时上述S201-S204的具体实现。
作为一种示例,第一网际协议例如可以为IPv4,则第一网际协议穿透策略为IPv4穿透策略,第一网际协议对应的套接字为IPv4对应的套接字,第一网际协议本地地址为IPv4本地地址,第一网际协议外网地址为IPv4外网地址。
此外,本申请实施例中,目标网际协议包括第二网际协议,目标穿透策略包括第二网际协议穿透策略;在第二网际协议穿透策略对应于第二网际协议的基础上;S204具体实现时,第一终端根据第二网际协议穿透策略,创建第二网际协议对应的套接字,并绑定至第一终端的第二网际协议本地地址;第二终端根据第二网际协议穿透策略,创建第二网际协议对应的套接字,并绑定至第二终端的第二网际协议本地地址。
作为一种示例,第二网际协议例如可以为IPv6,则第二网际协议穿透策略为IPv6穿透策略,第二网际协议对应的套接字为IPv6对应的套接字,第二网际协议本地地址为IPv6本地地址。
S205:第一终端向第一服务器发送第一地址;第二终端向第一服务器发送第二地址。
本申请实施例中,在上述S204第一终端确定第一地址,第二终端确定第二地址之后,第一终端需要向第一服务器发送第一地址,第二终端需要向第一服务器发送第二地址,以便后续第一服务器能够将第二地址发送给第一终端,将第一地址发送给第二终端,第一终端基于第二地址、第二终端基于第一地址双向穿透,进行终端双方之间直连链路的建立。
S206:第一服务器向第一终端发送第二地址,向第二终端发送第一地址。
本申请实施例中,对应于上述S205第一终端向第一服务器发送第一地址,第二终端向第一服务器发送第二地址;第一服务器接收第一终端发送的第一地址和第二终端发送的第二地址。在此基础上,第一服务器将第二地址发送给第一终端,将第一地址发送给第二终端。
S207:第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
本申请实施例中,对应于上述S206第一服务器向第一终端发送第二地址,向第二终端发送第一地址;第一终端接收第一服务器发送的第二地址,第二终端接收第一服务器发送的第一地址。在此基础上,第一终端可以通过第二地址向第二终端穿透,第二终端可以通过第一地址向第一终端穿透,双向穿透直至在第一终端与第二终端之间建立直连链路。当然,在S207实现过程中,也可能存在超时导致直连链路建立失败的现象。
参见图4,该图为本申请实施例提供的一种第一终端和第二终端双向穿透的示意图。其中,第一终端通过第一路由器接入公网,第二终端通过第二路由器接入公网,第一路由器和第二路由器中网络地址转换存在不同映射规则和过滤规则,需要通过上述S201-S207进行双向穿透,直至在第一终端与第二终端之间建立直连链路,以便在第一终端与第二终端之间直连传输,例如,传输文件数据、视频数据、音视频通话数据、直播数据、虚拟现实数据等大数据量的数据,提升传输数据的安全性和保密性。
本申请实施例中,目标网际协议为第一网际协议和第二网际协议情况下,目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址和第二网际协议本地地址,第二地址为第二终端的第一网际协议外网地址和第二网际协议本地地址。在S207具体实现时,在第一终端和第二终端均有第一网际协议对应的套接字和第二网际协议对应的套接字的基础上,第一终端基于第二终端的第一网际协议外网地址向第二终端穿透时,需要利用第一网际协议对应的套接字,第一终端基于第二终端的第二网际协议本地地址向第二终端穿透时,需要利用第二网际协议对应的套接字;同理,第二终端基于第一终端的第一网际协议外网地址向第一终端穿透时,需要利用第一网际协议对应的套接字,第二终端基于第一终端的第二网际协议本地地址向第一终端穿透时,需要利用第二网际协议对应的套接字。因此,本申请提供了一种可能的实现方式,S207例如可以包括如下S2071-S2074:
S2071:第一终端通过第一网际协议对应的套接字,基于第二终端的第一网际协议外网地址向第二终端穿透。
S2072:第一终端通过第二网际协议对应的套接字,基于第二终端的第二网际协议本地地址向第二终端穿透。
S2073:第二终端通过第一网际协议对应的套接字,基于第一终端的第一网际协议外网地址向第一终端穿透。
S2074:第二终端通过第二网际协议对应的套接字,基于第一终端的第二网际协议本地地址向第一终端穿透,直至在第一终端与第二终端之间建立直连链路。
参见图5,该图为本申请实施例提供的一种第一终端向第二终端穿透的示意图。其中,在图4的基础上,第一终端侧待发送数据包a的目的地址为第二终端的第一网际协议外网地址时,第一终端通过第一网际协议对应的套接字发送待发送数据包a,以便第一终端向第二终端穿透;第一终端侧待发送数据包b的目的地址为第二终端的第二网际协议本地地址时,第一终端通过第二网际协议对应的套接字发送待发送数据包b,以便第一终端向第二终端穿透。
本申请实施例中,目标网际协议为第一网际协议情况下,目标穿透策略为第一网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址,第二地址为第二终端的第一网际协议外网地址。在S207具体实现时,由于第一终端和第二终端均只有第一网际协议对应的套接字,因此,第一终端通过第一网际协议对应的套接字,基于第二终端的第一网际协议外网地址向第二终端穿透;第二终端通过第一网际协议对应的套接字,基于第一终端的第一网际协议外网地址向第一终端穿透,直至在第一终端与第二终端之间建立直连链路。
同理,目标网际协议为第二网际协议情况下,目标穿透策略为第二网际协议穿透策略,第一地址为第一终端的第二网际协议本地地址,第二地址为第二终端的第二网际协议本地地址。在S207具体实现时,由于第一终端和第二终端均只有第二网际协议对应的套接字,因此,第一终端通过第二网际协议对应的套接字,基于第二终端的第二网际协议本地地址向第二终端穿透;第二终端通过第二网际协议对应的套接字,基于第一终端的第二网际协议本地地址向第一终端穿透,直至在第一终端与第二终端之间建立直连链路。
作为一种示例,第一网际协议例如可以为IPv4,第二网际协议例如可以为IPv6,则第一网际协议对应的套接字为IPv4对应的套接字,第一网际协议本地地址为IPv4本地地址,第一网际协议外网地址为IPv4外网地址,第二网际协议对应的套接字为IPv6对应的套接字,第二网际协议本地地址为IPv6本地地址。
此外,本申请实施例中,基于上述目标网际协议为第一网际协议和第二网际协议情况下S207的具体实现,建立得到的第一终端与第二终端之间直连链路可以包括第一网际协议对应的第一直连链路和第二网际协议对应的第二直连链路。由于第一直连链路和第二直连链路的路由路径有一定的差异性,拥塞程度不同且是动态变化的,其中一条直连链路出现拥塞时,另外一条直连链路可能是畅通的;为了有效降低传输耗时、提升整体直连传输的效果和质量,在第一终端与第二终端之间直连传输时,开始阶段可以采用第一直连链路和第二直连链路的双发传输策略,即,不仅由第一直连链路发送第二数据包,而且由第二直连链路发送第二数据包。因此,本申请提供了一种可能的实现方式,在S207之后,直连链路包括第一网际协议对应的第一直连链路和第二网际协议对应的第二直连链路,方法例如还可以包括如下S1-S2:
S1:第一终端在预设时间段内通过第一直连链路向第二终端发送第二数据包。
S2:第一终端在预设时间段内通过第二直连链路向第二终端发送第二数据包。
对应于上述S1-S2,第二终端接收到第二数据包以后,选择处理先接收到的第二数据包,丢弃后接收到的第二数据包。
同理,第一终端也可以在预设时间段内通过第一直连链路向第一终端发送第四数据包;第二终端在预设时间段内通过第二直连链路向第一终端发送第四数据包。第一终端接收到第四数据包以后,选择处理先接收到的第四数据包,丢弃后接收到的第四数据包。
此外,本申请实施例中,在上述S1-S2之后,由于第二终端接收到第二数据包以后,选择处理先接收到的第二数据包,丢弃后接收到的第二数据包,表示在预设时间段内每条直连链路具有一定的收包利用率,收包利用率可以用于衡量直连链路是否继续可用。则还可以判断第一直连链路的第一收包利用率是否小于预设利用率,该预设利用率大于0,预设利用率小于或等于0.5;若是,表示第一终端通过第一直连链路向第二终端发送第二数据包大多被第二终端丢弃,为了节约直连传输的资源消耗,第一终端停止通过第一直连链路向第二终端发送第二数据包。同理,也可以判断第二直连链路的第二收包利用率是否小于预设利用率,若是,表示第一终端通过第二直连链路向第二终端发送第二数据包大多被第二终端丢弃,为了节约直连传输的资源消耗,第一终端停止通过第二直连链路向第二终端发送第二数据包。因此,本申请提供了一种可能的实现方式,在S1-S2之后,方法例如还可以包括如下S3-S4:
S3:若预设时间段内第一直连链路的第一收包利用率小于预设利用率,第一终端停止通过第一直连链路向第二终端发送第二数据包;预设利用率大于0,预设利用率小于或等于0.5。
S4:若预设时间段内第二直连链路的第二收包利用率小于预设利用率,第一终端停止通过第二直连链路向第二终端发送第二数据包。
其中,第一收包利用率、第二收包利用率的计算公式如下:
上述总发送后被处理的数据包数量是指第一直连链路发送后被处理的数据包数量与第二直连链路发送后被处理的数据包数量之和,则第一收包利用率和第二收包利用率的和为1。
预设利用率为α,0<α≤0.5、α可以根据实际需求进行调整。当α=0.5时,不可能存在第一收包利用率和第二收包利用率均大于0.5的情况,则第一终端必然停止通过第一直连链路和第二直连链路中一条直连链路向第二终端发送第二数据包;除非第一收包利用率和第二收包利用率均等于0.5的情况。
当然,若调整α为0时,不可能存在第一收包利用率或第二收包利用率均小于0的情况,则第一终端一直保持通过第一直连链路向第二终端发送第二数据包,通过第二直连链路向第二终端发送第二数据包。
作为一种示例,第一网际协议例如可以为IPv4,第二网际协议例如可以为IPv6;则第一网际协议对应的第一直连链路为IPv4对应的第一直连链路,可以简称为IPv4直连链路,第二网际协议对应的第二直连链路为IPv6对应的第二直连链路,可以简称为IPv6直连链路。
上述实施例提供的直连链路建立方法,第一终端向第一服务器发送第一终端支持的网际协议所确定的第一网际协议栈类型,第二终端向第一服务器发送第二终端支持的网际协议所确定的第二网际协议栈类型;第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的目标网际协议对应的目标穿透策略,并发送至第一终端和第二终端。第一终端确定对应目标穿透策略的第一地址并发送至第一服务器,第二终端确定对应目标穿透策略的第一地址并发送至第一服务器;第一服务器向第一终端发送第二地址、向第二终端发送第一地址;第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
可见,服务器分别收集终端双方支持的网际协议,自适应地选择终端双方均支持的网际协议所对应的穿透策略,交换终端双方对应穿透策略的地址,以通过双向穿透在终端双方之间建立直连链路。基于此,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
在上述直连链路建立的控制方法和上述直连链路建立方法的基础上,应用于第一网际协议栈类型和第二网际协议栈类型均为IPv4/IPv6双栈情况下,本申请实施例还提供了一种直连链路建立的应用方法;参见图6,该图为本申请实施例提供的一种直连链路建立的应用方法的信令交互图。如图6所示,该直连链路建立的应用方法包括以下步骤:
S601:第一终端向第一服务器发送第一网际协议栈类型“IPv4/IPv6双栈”和第一运营商信息;第二终端向第一服务器发送第二网际协议栈类型“IPv4/IPv6双栈”和第二运营商信息。
S602:第一服务器根据第一网际协议栈类型“IPv4/IPv6双栈”和第二网际协议栈类型“IPv4/IPv6双栈”,确定IPv4穿透策略和IPv6穿透策略。
S603:第一服务器根据第一运营商信息和第二运营商信息,确定第二服务器的网络地址;第二服务器支持IPv4。
S604:第一服务器向第一终端和第二终端发送IPv4穿透策略、IPv6穿透策略和网络地址。
S605:第一终端根据IPv4穿透策略创建IPv4对应的套接字,并绑定至第一终端的IPv4本地地址,根据IPv6穿透策略创建IPv6对应的套接字,并绑定至第一终端的IPv6本地地址;第二终端根据IPv4穿透策略创建IPv4对应的套接字,并绑定至第二终端的IPv4本地地址,根据IPv6穿透策略创建IPv6对应的套接字,并绑定至第二终端的IPv6本地地址。
S606:第一终端按照网络地址通过IPv4对应的套接字,向第二服务器发送数据包1,数据包1的源地址为第一终端的IPv4本地地址;第二终端按照网络地址通过IPv4对应的套接字,向第二服务器发送数据包2,数据包2的源地址为第二终端的IPv4本地地址。
S607:第一终端接收第二服务器发送的第一终端的IPv4外网地址,第一终端的IPv4外网地址是第二服务器对第一终端的IPv4本地地址进行网络地址转换得到的;第二终端接收第二服务器发送的第二终端的IPv4外网地址,第二终端的IPv4外网地址是第二服务器对第二终端的IPv4本地地址进行网络地址转换得到的。
S608:第一终端向第一服务器发送第一终端的IPv4外网地址和IPv6本地地址;第二终端向第一服务器发送第二终端的IPv4外网地址和IPv6本地地址。
S609:第一服务器向第一终端发送第二终端的IPv4外网地址和IPv6本地地址,向第二终端发送第一终端的IPv4外网地址和IPv6本地地址。
S610:第一终端通过IPv4对应的套接字,基于第二终端的IPv4外网地址向第二终端穿透,通过IPv6对应的套接字,基于第二终端的IPv6本地地址向第二终端穿透;第二终端通过IPv4对应的套接字,基于第一终端的IPv4外网地址向第一终端穿透,通过IPv6对应的套接字,基于第一终端的IPv6本地地址向第一终端穿透,直至在第一终端与第二终端之间建立直连链路。
S611:第一终端在预设时间段内通过IPv4对应的第一直连链路向第二终端发送数据包3,通过IPv6对应的第二直连链路向第二终端发送数据包3。
S612:若预设时间段内第一直连链路的第一收包利用率α1小于预设利用率α,停止通过第一直连链路向第二终端发送数据包3;若预设时间段内第二直连链路的第二收包利用率α2小于预设利用率α,停止通过第二直连链路向第二终端发送数据包3,0<α≤0.5。
针对上述实施例提供的直连链路建立的控制方法,本申请实施例还提供了一种直连链路建立的控制装置。
参见图7,该图为本申请实施例提供的一种直连链路建立的控制装置的示意图。如图7所示,该直连链路建立的控制装置700应用于第一服务器,包括:第一接收单元701、第一确定单元702、第一发送单元703、第二接收单元704和第二发送单元705;
第一接收单元701,用于接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;第一网际协议栈类型由第一终端支持的网际协议确定,第二网际协议栈类型由第二终端支持的网际协议确定;
第一确定单元702,用于根据第一网际协议栈类型和第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;目标网际协议是第一终端和第二终端均支持的网际协议;
第一发送单元703,用于向第一终端和第二终端发送目标穿透策略;
第二接收单元704,用于接收第一终端对应目标穿透策略的第一地址和第二终端对应目标穿透策略的第二地址;
第二发送单元705,用于向第一终端发送第二地址,向第二终端发送第一地址;以便第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
作为一种可能的实现方式,目标网际协议为第一网际协议和第二网际协议,第一终端和第二终端在第一网际协议下通过外网地址穿透,第一终端和第二终端在第二网际协议下通过本地地址穿透,目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址和第二网际协议本地地址,第二地址为第二终端的第一网际协议外网地址和第二网际协议本地地址;或,
目标网际协议为第一网际协议,目标穿透策略为第一网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址,第二地址为第二终端的第一网际协议外网地址;或,
目标网际协议为第二网际协议,目标穿透策略为第二网际协议穿透策略,第一地址为第一终端的第二网际协议本地地址,第二地址为第二终端的第二网际协议本地地址。
作为一种可能的实现方式,目标网际协议包括第一网际协议时,第一接收单元701,具体用于:
接收第一网际协议栈类型、第一终端发送的第一服务端信息、第二网际协议栈类型和第二终端发送的第二服务端信息;第一服务端信息是第一终端所属服务端的信息,第二服务端信息是第二终端所属服务端的信息;
第一发送单元703包括:确定子单元和第一发送子单元;
确定子单元,用于根据第一服务端信息和第二服务端信息,确定第二服务器的网络地址;第二服务器支持第一网际协议;
第一发送子单元,用于向第一终端和第二终端发送第一网际协议穿透策略和网络地址;以便第一终端根据第一网际协议穿透策略和网络地址,从第二服务器获取第一终端的第一网际协议外网地址,第二终端根据第一网际协议穿透策略和网络地址,从第二服务器获取第二终端的第一网际协议外网地址。
上述实施例提供的直连链路建立的控制装置,第一终端向第一服务器发送第一终端支持的网际协议所确定的第一网际协议栈类型,第二终端向第一服务器发送第二终端支持的网际协议所确定的第二网际协议栈类型;第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的目标网际协议对应的目标穿透策略,并发送至第一终端和第二终端。第一终端确定对应目标穿透策略的第一地址并发送至第一服务器,第二终端确定对应目标穿透策略的第一地址并发送至第一服务器;第一服务器向第一终端发送第二地址、向第二终端发送第一地址;第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
可见,服务器分别收集终端双方支持的网际协议,自适应地选择终端双方均支持的网际协议所对应的穿透策略,交换终端双方对应穿透策略的地址,以通过双向穿透在终端双方之间建立直连链路。基于此,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
针对上述实施例提供的直连链路建立方法,本申请实施例还提供了一种直连链路建立装置。
参见图8,该图为本申请实施例提供的一种直连链路建立装置的示意图。如图8所示,该直连链路建立装置800应用于第一终端,包括:第三发送单元801、第三接收单元802、第二确定单元803、第四发送单元804、第四接收单元805和建立单元806;
第三发送单元801,用于向第一服务器发送第一网际协议栈类型;第一网际协议栈类型由第一终端支持的网际协议确定;
第三接收单元802,用于接收第一服务器发送的对应目标网际协议的目标穿透策略;目标穿透策略是第一服务器根据第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,第二网际协议栈类型由第二终端支持的网际协议确定,目标网际协议是第一终端和第二终端均支持的网际协议;
第二确定单元803,用于确定对应目标穿透策略的第一地址;
第四发送单元804,用于向第一服务器发送第一地址;以便第一服务器向第二终端发送第一地址,第二终端基于第一地址向第一终端穿透;
第四接收单元805,用于接收第一服务器发送的第二终端对应目标穿透策略的第二地址;
建立单元806,用于基于第二地址向第二终端穿透,直至在第一终端与第二终端之间建立直连链路。
作为一种可能的实现方式,目标网际协议为第一网际协议和第二网际协议,第一终端和第二终端在第一网际协议下通过外网地址穿透,第一终端和第二终端在第二网际协议下通过本地地址穿透,目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址和第二网际协议本地地址,第二地址为第二终端的第一网际协议外网地址和第二网际协议本地地址;或,
目标网际协议为第一网际协议,目标穿透策略为第一网际协议穿透策略,第一地址为第一终端的第一网际协议外网地址,第二地址为第二终端的第一网际协议外网地址;或,
目标网际协议为第二网际协议,目标穿透策略为第二网际协议穿透策略,第一地址为第一终端的第二网际协议本地地址,第二地址为第二终端的第二网际协议本地地址。
作为一种可能的实现方式,目标网际协议包括第一网际协议时,第三发送单元801,具体用于:
向第一服务器发送第一网际协议栈类型和第一服务端信息;第一服务端信息是第一终端所属服务端的信息;
第三接收单元802,具体用于:
接收第一网际协议穿透策略和第一服务器发送的第二服务器的网络地址;第二服务器支持第一网际协议,网络地址是第一服务器根据第一服务端信息和第二终端发送的第二服务端信息确定的,第二服务端信息是第二终端所属服务端的信息;
第二确定单元803,具体用于:
根据第一网际协议穿透策略和网络地址,从第二服务器获取第一终端的第一网际协议外网地址。
作为一种可能的实现方式,第二确定单元803包括:创建子单元、第二发送子单元和接收子单元;
创建子单元,用于根据第一网际协议穿透策略,创建第一网际协议对应的套接字,并绑定至第一终端的第一网际协议本地地址;
第二发送子单元,用于按照网络地址通过第一网际协议对应的套接字,向第二服务器发送第一数据包,第一数据包的源地址为第一终端的第一网际协议本地地址;
接收子单元,用于接收第二服务器发送的第一终端的第一网际协议外网地址,第一终端的第一网际协议外网地址是第二服务器对第一终端的第一网际协议本地地址进行网络地址转换得到的。
作为一种可能的实现方式,目标网际协议为第一网际协议和第二网际协议时,建立单元806包括:第三发送子单元和建立子单元;
第三发送子单元,用于通过第一网际协议对应的套接字,基于第二终端的第一网际协议外网地址向第二终端穿透;
建立子单元,用于通过第二网际协议对应的套接字,基于第二终端的第二网际协议本地地址向第二终端穿透,直至建立直连链路。
作为一种可能的实现方式,直连链路包括第一网际协议对应的第一直连链路和第二网际协议对应的第二直连链路,装置还包括:第五发送单元和第六发送单元;
第五发送单元,用于在预设时间段内通过第一直连链路向第二终端发送第二数据包;
第六发送单元,用于在预设时间段内通过第二直连链路向第二终端发送第二数据包。
作为一种可能的实现方式,装置还包括:第一停止单元和第二停止单元;
第一停止单元,用于若预设时间段内第一直连链路的第一收包利用率小于预设利用率,停止通过第一直连链路向第二终端发送第二数据包;预设利用率大于0,预设利用率小于或等于0.5;
第二停止单元,用于若预设时间段内第二直连链路的第二收包利用率小于预设利用率,停止通过第二直连链路向第二终端发送第二数据包。
上述实施例提供的直连链路建立装置,第一终端向第一服务器发送第一终端支持的网际协议所确定的第一网际协议栈类型,第二终端向第一服务器发送第二终端支持的网际协议所确定的第二网际协议栈类型;第一服务器根据第一网际协议栈类型和第二网际协议栈类型,确定第一终端和第二终端均支持的目标网际协议对应的目标穿透策略,并发送至第一终端和第二终端。第一终端确定对应目标穿透策略的第一地址并发送至第一服务器,第二终端确定对应目标穿透策略的第一地址并发送至第一服务器;第一服务器向第一终端发送第二地址、向第二终端发送第一地址;第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
可见,服务器分别收集终端双方支持的网际协议,自适应地选择终端双方均支持的网际协议所对应的穿透策略,交换终端双方对应穿透策略的地址,以通过双向穿透在终端双方之间建立直连链路。基于此,即使在终端双方支持的网际协议复杂化的情况下,该方式也能够有效地进行终端双方之间直连链路的建立,从而提升建立直连链路的成功率和效率。
本申请实施例还提供了一种用于直连链路建立的控制的计算机设备或一种用于直连链路建立的计算机设备,下面将从硬件实体化的角度对本申请实施例提供的计算机设备进行介绍。
针对上文描述的直连链路建立的控制方法,本申请实施例还提供了一种用于直连链路建立的控制的计算机设备,以使上述直连链路建立的控制方法在实际中实现以及应用。
参见图9,图9是本申请实施例提供的一种服务器结构示意图,该服务器900可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(CentralProcessing Units,CPU)922(例如,一个或一个以上处理器)和存储器932,一个或一个以上存储应用程序942或数据944的存储介质930(例如一个或一个以上海量存储设备)。其中,存储器932和存储介质930可以是短暂存储或持久存储。存储在存储介质930的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对服务器中的一系列指令操作。更进一步地,中央处理器922可以设置为与存储介质930通信,在服务器900上执行存储介质930中的一系列指令操作。
服务器900还可以包括一个或一个以上电源926,一个或一个以上有线或无线网络接口950,一个或一个以上输入输出接口958,和/或,一个或一个以上操作系统941,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等等。
上述实施例中由服务器所执行的步骤可以基于该图9所示的服务器结构。
例如,CPU 922用于执行如下步骤:
接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;第一网际协议栈类型由第一终端支持的网际协议确定,第二网际协议栈类型由第二终端支持的网际协议确定;
根据第一网际协议栈类型和第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;目标网际协议是第一终端和第二终端均支持的网际协议;
向第一终端和第二终端发送目标穿透策略;
接收第一终端对应目标穿透策略的第一地址和第二终端对应目标穿透策略的第二地址;
向第一终端发送第二地址,向第二终端发送第一地址;以便第一终端基于第二地址、第二终端基于第一地址双向穿透,直至在第一终端与第二终端之间建立直连链路。
针对上文描述的直连链路建立方法,本申请实施例还提供了一种用于直连链路建立的计算机设备,以使上述直连链路建立方法在实际中实现以及应用。
参见图10,图10为本申请实施例提供的一种终端设备的结构示意图。为了便于说明,仅示出了与本申请实施例相关的部分,具体技术细节未揭示的,请参照本申请实施例方法部分。该终端设备可以为包括手机、平板电脑、PDA等任意终端设备,以终端设备为手机为例:
图10示出的是与本申请实施例提供的终端设备相关的手机的部分结构的框图。参考图10,该手机包括:射频(Radio Frequency,简称RF)电路1010、存储器1020、输入单元1030、显示单元1040、传感器1050、音频电路1060、无线保真(简称WiFi)模块1070、处理器1080、以及电源1090等部件。本领域技术人员可以理解,图10中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图10对手机的各个构成部件进行具体的介绍:
RF电路1010可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1080处理;另外,将设计上行的数据发送给基站。通常,RF电路1010包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,简称LNA)、双工器等。此外,RF电路1010还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobile communication,简称GSM)、通用分组无线服务(GeneralPacket Radio Service,简称GPRS)、码分多址(Code Division Multiple Access,简称CDMA)、宽带码分多址(Wideband Code Division Multiple Access,简称WCDMA)、长期演进(Long TermEvolution,简称LTE)、电子邮件、短消息服务(Short Messaging Service,简称SMS)等。
存储器1020可用于存储软件程序以及模块,处理器1080通过运行存储在存储器1020的软件程序以及模块,从而实现手机的各种功能应用以及数据处理。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元1030可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1030可包括触控面板1031以及其他输入设备1032。触控面板1031,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1031上或在触控面板1031附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1031可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1080,并能接收处理器1080发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1031。除了触控面板1031,输入单元1030还可以包括其他输入设备1032。具体地,其他输入设备1032可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1040可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1040可包括显示面板1041,可选的,可以采用液晶显示器(LiquidCrystal Display,简称LCD)、有机发光二极管(Organic Light-Emitting Diode,简称OLED)等形式来配置显示面板1041。进一步的,触控面板1031可覆盖显示面板1041,当触控面板1031检测到在其上或附近的触摸操作后,传送给处理器1080以确定触摸事件的类型,随后处理器1080根据触摸事件的类型在显示面板1041上提供相应的视觉输出。虽然在图10中,触控面板1031与显示面板1041是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1031与显示面板1041集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1050,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1041的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1041和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路1060、扬声器1061,传声器1062可提供用户与手机之间的音频接口。音频电路1060可将接收到的音频数据转换后的电信号,传输到扬声器1061,由扬声器1061转换为声音信号输出;另一方面,传声器1062将收集的声音信号转换为电信号,由音频电路1060接收后转换为音频数据,再将音频数据输出处理器1080处理后,经RF电路1010以发送给比如另一手机,或者将音频数据输出至存储器1020以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块1070可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图10示出了WiFi模块1070,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1080是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1020内的软件程序和/或模块,以及调用存储在存储器1020内的数据,执行手机的各种功能和处理数据。可选的,处理器1080可包括一个或多个处理单元;优选的,处理器1080可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1080中。
手机还包括给各个部件供电的电源1090(比如电池),优选的,电源可以通过电源管理系统与处理器1080逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本申请实施例中,该手机所包括的存储器1020可以存储程序代码,并将所述程序代码传输给所述处理器。
该手机所包括的处理器1080可以根据所述程序代码中的指令执行如下步骤:
向第一服务器发送第一网际协议栈类型;第一网际协议栈类型由第一终端支持的网际协议确定;
接收第一服务器发送的对应目标网际协议的目标穿透策略;目标穿透策略是第一服务器根据第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,第二网际协议栈类型由第二终端支持的网际协议确定,目标网际协议是第一终端和第二终端均支持的网际协议;
确定对应目标穿透策略的第一地址;
向第一服务器发送第一地址;以便第一服务器向第二终端发送第一地址,第二终端基于第一地址向第一终端穿透;
接收第一服务器发送的第二终端对应目标穿透策略的第二地址;
基于第二地址向第二终端穿透,直至在第一终端与第二终端之间建立直连链路。
本申请实施例还提供一种计算机可读存储介质,用于存储计算机程序,该计算机程序用于执行上述实施例提供的直连链路建立的控制方法或直连链路建立方法。
本申请实施例还提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该用于直连链路建立的控制的计算机设备执行上述方面的各种可选实现方式中提供的直连链路建立的控制方法,或,使得该用于直连链路建立的计算机设备执行上述方面的各种可选实现方式中提供的直连链路控制方法。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质可以是下述介质中的至少一种:只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于设备及系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的设备及系统实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述,仅为本申请的一种具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应该以权利要求的保护范围为准。

Claims (15)

1.一种直连链路建立的控制方法,其特征在于,应用于第一服务器,所述方法包括:
接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定,所述第二网际协议栈类型由所述第二终端支持的网际协议确定;
根据所述第一网际协议栈类型和所述第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
向所述第一终端和所述第二终端发送所述目标穿透策略;
接收所述第一终端对应所述目标穿透策略的第一地址和所述第二终端对应所述目标穿透策略的第二地址;
向所述第一终端发送所述第二地址,向所述第二终端发送所述第一地址;以便所述第一终端基于所述第二地址、所述第二终端基于所述第一地址双向穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
2.根据权利要求1所述的方法,其特征在于,所述目标网际协议为第一网际协议和第二网际协议,所述第一终端和所述第二终端在所述第一网际协议下通过外网地址穿透,所述第一终端和所述第二终端在所述第二网际协议下通过本地地址穿透,所述目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略,所述第一地址为所述第一终端的第一网际协议外网地址和第二网际协议本地地址,所述第二地址为所述第二终端的第一网际协议外网地址和第二网际协议本地地址;或,
所述目标网际协议为所述第一网际协议,所述目标穿透策略为所述第一网际协议穿透策略,所述第一地址为所述第一终端的第一网际协议外网地址,所述第二地址为所述第二终端的第一网际协议外网地址;或,
所述目标网际协议为所述第二网际协议,所述目标穿透策略为所述第二网际协议穿透策略,所述第一地址为所述第一终端的第二网际协议本地地址,所述第二地址为所述第二终端的第二网际协议本地地址。
3.根据权利要求2所述的方法,其特征在于,所述目标网际协议包括所述第一网际协议时,所述接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型,包括:
接收所述第一网际协议栈类型、所述第一终端发送的第一服务端信息、所述第二网际协议栈类型和所述第二终端发送的第二服务端信息;所述第一服务端信息是所述第一终端所属服务端的信息,所述第二服务端信息是所述第二终端所属服务端的信息;
所述向所述第一终端和所述第二终端发送所述目标穿透策略,包括:
根据所述第一服务端信息和所述第二服务端信息,确定第二服务器的网络地址;所述第二服务器支持所述第一网际协议;
向所述第一终端和所述第二终端发送所述第一网际协议穿透策略和所述网络地址;以便所述第一终端根据所述第一网际协议穿透策略和所述网络地址,从所述第二服务器获取所述第一终端的第一网际协议外网地址,所述第二终端根据所述第一网际协议穿透策略和所述网络地址,从所述第二服务器获取所述第二终端的第一网际协议外网地址。
4.一种直连链路建立方法,其特征在于,应用于第一终端,所述方法包括:
向第一服务器发送第一网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定;
接收所述第一服务器发送的对应目标网际协议的目标穿透策略;所述目标穿透策略是所述第一服务器根据所述第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,所述第二网际协议栈类型由所述第二终端支持的网际协议确定,所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
确定对应所述目标穿透策略的第一地址;
向所述第一服务器发送所述第一地址;以便所述第一服务器向所述第二终端发送所述第一地址,所述第二终端基于所述第一地址向所述第一终端穿透;
接收所述第一服务器发送的所述第二终端对应所述目标穿透策略的第二地址;
基于所述第二地址向所述第二终端穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
5.根据权利要求4所述的方法,其特征在于,所述目标网际协议为第一网际协议和第二网际协议,所述第一终端和所述第二终端在所述第一网际协议下通过外网地址穿透,所述第一终端和所述第二终端在所述第二网际协议下通过本地地址穿透,所述目标穿透策略为第一网际协议穿透策略和第二网际协议穿透策略,所述第一地址为所述第一终端的第一网际协议外网地址和第二网际协议本地地址,所述第二地址为所述第二终端的第一网际协议外网地址和第二网际协议本地地址;或,
所述目标网际协议为所述第一网际协议,所述目标穿透策略为所述第一网际协议穿透策略,所述第一地址为所述第一终端的第一网际协议外网地址,所述第二地址为所述第二终端的第一网际协议外网地址;或,
所述目标网际协议为所述第二网际协议,所述目标穿透策略为所述第二网际协议穿透策略,所述第一地址为所述第一终端的第二网际协议本地地址,所述第二地址为所述第二终端的第二网际协议本地地址。
6.根据权利要求5所述的方法,其特征在于,所述目标网际协议包括所述第一网际协议时,所述向第一服务器发送第一网际协议栈类型,包括:
向所述第一服务器发送所述第一网际协议栈类型和第一服务端信息;所述第一服务端信息是所述第一终端所属服务端的信息;
所述接收所述第一服务器发送的对应目标网际协议的目标穿透策略,包括:
接收所述第一网际协议穿透策略和所述第一服务器发送的第二服务器的网络地址;所述第二服务器支持所述第一网际协议,所述网络地址是所述第一服务器根据所述第一服务端信息和所述第二终端发送的第二服务端信息确定的,所述第二服务端信息是所述第二终端所属服务端的信息;
所述确定对应所述目标穿透策略的第一地址,包括:
根据所述第一网际协议穿透策略和所述网络地址,从所述第二服务器获取所述第一终端的第一网际协议外网地址。
7.根据权利要求6所述的方法,其特征在于,所述根据所述第一网际协议穿透策略和所述网络地址,从所述第二服务器获取所述第一终端的第一网际协议外网地址,包括:
根据所述第一网际协议穿透策略,创建所述第一网际协议对应的套接字,并绑定至所述第一终端的第一网际协议本地地址;
按照所述网络地址通过所述第一网际协议对应的套接字,向所述第二服务器发送第一数据包,所述第一数据包的源地址为所述第一终端的第一网际协议本地地址;
接收所述第二服务器发送的所述第一终端的第一网际协议外网地址,所述第一终端的第一网际协议外网地址是所述第二服务器对所述第一终端的第一网际协议本地地址进行网络地址转换得到的。
8.根据权利要求5所述的方法,其特征在于,所述目标网际协议为所述第一网际协议和所述第二网际协议时,所述基于所述第二地址向所述第二终端穿透,直至在所述第一终端与所述第二终端之间建立直连链路,包括:
通过所述第一网际协议对应的套接字,基于所述第二终端的第一网际协议外网地址向所述第二终端穿透;
通过所述第二网际协议对应的套接字,基于所述第二终端的第二网际协议本地地址向所述第二终端穿透,直至建立所述直连链路。
9.根据权利要求8所述的方法,其特征在于,所述直连链路包括所述第一网际协议对应的第一直连链路和所述第二网际协议对应的第二直连链路,所述方法还包括:
在预设时间段内通过所述第一直连链路向所述第二终端发送第二数据包;
在所述预设时间段内通过所述第二直连链路向所述第二终端发送所述第二数据包。
10.根据权利要求9所述的方法,其特征在于,所述方法还包括:
若所述预设时间段内所述第一直连链路的第一收包利用率小于预设利用率,停止通过所述第一直连链路向所述第二终端发送所述第二数据包;所述预设利用率大于0,所述预设利用率小于或等于0.5;
若所述预设时间段内所述第二直连链路的第二收包利用率小于所述预设利用率,停止通过所述第二直连链路向所述第二终端发送所述第二数据包。
11.一种直连链路建立的控制装置,其特征在于,应用于第一服务器,所述装置包括:第一接收单元、第一确定单元、第一发送单元、第二接收单元和第二发送单元;
所述第一接收单元,用于接收第一终端发送的第一网际协议栈类型和第二终端发送的第二网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定,所述第二网际协议栈类型由所述第二终端支持的网际协议确定;
所述第一确定单元,用于根据所述第一网际协议栈类型和所述第二网际协议栈类型,确定对应目标网际协议的目标穿透策略;所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
所述第一发送单元,用于向所述第一终端和所述第二终端发送所述目标穿透策略;
所述第二接收单元,用于接收所述第一终端对应所述目标穿透策略的第一地址和所述第二终端对应所述目标穿透策略的第二地址;
所述第二发送单元,用于向所述第一终端发送所述第二地址,向所述第二终端发送所述第一地址;以便所述第一终端基于所述第二地址、所述第二终端基于所述第一地址双向穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
12.一种直连链路建立装置,其特征在于,应用于第一终端,所述装置包括:第三发送单元、第三接收单元、第二确定单元、第四发送单元、第四接收单元和建立单元;
所述第三发送单元,用于向第一服务器发送第一网际协议栈类型;所述第一网际协议栈类型由所述第一终端支持的网际协议确定;
所述第三接收单元,用于接收所述第一服务器发送的对应目标网际协议的目标穿透策略;所述目标穿透策略是所述第一服务器根据所述第一网际协议栈类型和第二终端发送的第二网际协议栈类型确定的,所述第二网际协议栈类型由所述第二终端支持的网际协议确定,所述目标网际协议是所述第一终端和所述第二终端均支持的网际协议;
所述第二确定单元,用于确定对应所述目标穿透策略的第一地址;
所述第四发送单元,用于向所述第一服务器发送所述第一地址;以便所述第一服务器向所述第二终端发送所述第一地址,所述第二终端基于所述第一地址向所述第一终端穿透;
所述第四接收单元,用于接收所述第一服务器发送的所述第二终端对应所述目标穿透策略的第二地址;
所述建立单元,用于基于所述第二地址向所述第二终端穿透,直至在所述第一终端与所述第二终端之间建立直连链路。
13.一种计算机设备,其特征在于,所述设备包括处理器以及存储器:
所述存储器用于存储程序代码,并将所述程序代码传输给所述处理器;
所述处理器用于根据所述程序代码中的指令执行权利要求1-3中任意一项所述的直连链路建立的控制方法,或,权利要求4-10中任意一项所述的直连链路建立方法。
14.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质用于存储计算机程序,所述计算机程序用于执行权利要求1-3中任意一项所述的直连链路建立的控制方法,或,权利要求4-10中任意一项所述的直连链路建立方法。
15.一种计算机程序产品,其特征在于,包括计算机程序或指令;当所述计算机程序或指令被处理器执行时,执行权利要求1-3中任意一项所述的直连链路建立的控制方法,或,权利要求4-10中任意一项所述的直连链路建立方法。
CN202210298786.4A 2022-03-23 2022-03-23 直连链路建立的控制方法、直连链路建立方法和相关装置 Pending CN116846948A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210298786.4A CN116846948A (zh) 2022-03-23 2022-03-23 直连链路建立的控制方法、直连链路建立方法和相关装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210298786.4A CN116846948A (zh) 2022-03-23 2022-03-23 直连链路建立的控制方法、直连链路建立方法和相关装置

Publications (1)

Publication Number Publication Date
CN116846948A true CN116846948A (zh) 2023-10-03

Family

ID=88165779

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210298786.4A Pending CN116846948A (zh) 2022-03-23 2022-03-23 直连链路建立的控制方法、直连链路建立方法和相关装置

Country Status (1)

Country Link
CN (1) CN116846948A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025261042A1 (zh) * 2024-06-18 2025-12-26 华为技术有限公司 终端节点直连链路的建立方法及装置

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025261042A1 (zh) * 2024-06-18 2025-12-26 华为技术有限公司 终端节点直连链路的建立方法及装置

Similar Documents

Publication Publication Date Title
CN110300115B (zh) 一种基于多通道的数据传输方法以及相关装置
US10959124B2 (en) Uplink data transmission method, terminal, network side device and system
CN106686070B (zh) 一种数据库数据迁移方法、装置、终端及系统
KR20210156310A (ko) 세션 관리 방법 및 장치
CN109088799B (zh) 一种客户端接入方法、装置、终端以及存储介质
CN104133728B (zh) 一种进程间通讯的方法、及装置
EP3179693B1 (en) Method, apparatus, storage medium and computer program product for establishing a data connection
US10051607B2 (en) Data processing method, apparatus and system
US12010760B2 (en) Service-based communication method, unit, and system, and storage medium
WO2016112728A1 (zh) 一种数据传输的方法、网络服务器、用户终端及系统
CN111800794B (zh) 解调参考信号位置的确定方法及设备
US9307555B2 (en) Method and system for mobile terminal to access the network through cell phone
CN109951560B (zh) 提高应用服务并发量及应用速度的方法、终端及存储介质
CN111182580B (zh) 业务传输方法、终端和网络侧设备
CN107005536A (zh) 一种数据传输的方法、相关设备和系统
CN116846948A (zh) 直连链路建立的控制方法、直连链路建立方法和相关装置
CN103618809A (zh) 一种虚拟化环境下通信的方法、装置和系统
CN110213069B (zh) 一种数据转发方法、装置、容灾系统及存储介质
CN110870289B (zh) 一种局域网设备恢复上网的方法和装置
US20250193109A1 (en) Message transmitting method, communication device, and storage medium
CN117714373A (zh) 一种基于虚拟网络的分布式系统及通信方法
CN117336361A (zh) 网络代理访问处理方法、装置及其可读存储介质
CN109117630B (zh) 减少日志丢失的方法、移动终端及可读存储介质
CN119854839A (zh) 语音通信注册异常恢复方法、装置、介质及电子设备
HK40053607B (zh) 一种基於多通道的数据传输方法以及相关装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination