CN110061888B - 网络协议类型判断方法、装置、计算机设备及存储介质 - Google Patents
网络协议类型判断方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110061888B CN110061888B CN201910207767.4A CN201910207767A CN110061888B CN 110061888 B CN110061888 B CN 110061888B CN 201910207767 A CN201910207767 A CN 201910207767A CN 110061888 B CN110061888 B CN 110061888B
- Authority
- CN
- China
- Prior art keywords
- type
- ipv6
- public network
- ipv4
- data packet
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
- H04L43/0805—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability
- H04L43/0811—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters by checking availability by checking connectivity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/25—Mapping addresses of the same type
- H04L61/2503—Translation of Internet protocol [IP] addresses
- H04L61/251—Translation of Internet protocol [IP] addresses between different IP versions
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Environmental & Geological Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明实施例涉及一种网络协议类型判断方法、装置、计算机设备及存储介质,所述方法包括:确定终端设备所支持链路的链路类型;生成与所述链路类型对应的探测数据;基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型;在终端设备与网络侧进行探测性交互的前提下,通过连通情况确定终端设备的网络协议类型,相比于直接从终端设备本地链路获取到的网络协议类型更加准确,避免因直接从本地获取到的网络类型与实际接入的网络不匹配时,导致出现无法正常访问网络的情况,提升用户使用终端设备进行网络访问的用户体验。
Description
技术领域
本发明实施例涉及通信领域,尤其涉及一种网络协议类型判断方法、装置、计算机设备及存储介质。
背景技术
随着IPv6技术的快速发展并逐步成熟和广泛应用,IPv6网络规模逐步扩大,大量互联网应用和服务仍然存在于IPv4网络中,短期内难以将基于IPv4网络大量应用和服务移植到IPv6网络上。
然而,各大运营商为用户的终端设备部署的以及用户自建的网络环境包括多种并存的情况,通常情况下,在终端设备与网络侧建立连接前,终端设备采用通过本地链路类型确定终端设备的IP类型,但是确定的IP类型不能保证与网络侧的类型相匹配,即,终端设备通过本地链路类型确定的IP类型的方式存在不准确的问题。
发明内容
鉴于此,为解决上述技术问题或部分技术问题,本发明实施例提供一种网络协议类型判断方法、装置、计算机设备及存储介质。
第一方面,本发明实施例提供一种网络协议类型判断方法,包括:
确定终端设备所支持链路的链路类型;
生成与所述链路类型对应的探测数据;
基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
在一个可能的实施方式中,所述链路类型包括以下中的一种:
IPv4、IPv6或dual双栈;
所述生成与所述链路类型对应的探测数据,包括:
生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
在一个可能的实施方式中,所述链路类型为IPv4时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv4类型的探测数据包,发送给IPv4公网IP;
当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
在一个可能的实施方式中,所述链路类型为IPv6时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv6类型的探测数据包,发送给IPv6公网IP;
当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;
其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
在一个可能的实施方式中,所述方法,还包括:
当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;
当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
在一个可能的实施方式中,所述链路类型为dual双栈时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;
当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;
当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
在一个可能的实施方式中,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
第二方面,本发明实施例提供一种网络协议类型判断装置,包括:
确定模块,用于确定终端设备所支持链路的链路类型;
生成模块,用于生成与所述链路类型对应的探测数据;
探测模块,用于基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
在一个可能的实施方式中,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈;所述生成模块,具体用于生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
在一个可能的实施方式中,所述链路类型为IPv4时,所述探测模块,用于将IPv4类型的探测数据包,发送给IPv4公网IP;当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的数据包。
在一个可能的实施方式中,所述链路类型为IPv6时,所述探测模块,用于将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的数据包。
在一个可能的实施方式中,所述探测模块,用于当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
在一个可能的实施方式中,所述链路类型为dual双栈时,所述探测模块,用于将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
在一个可能的实施方式中,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
第三方面,本发明实施例提供一种计算机设备,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现上述第一方面任一项所述的网络协议类型判断方法。
第四方面,本发明实施例提供一种存储介质,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述第一方面任一项所述的网络协议类型判断方法。
本实施例提供的网络协议类型判断方案,通过终端设备确定终端设备所支持链路的链路类型;生成与所述链路类型对应的探测数据;基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,在终端设备与网络侧进行探测性交互的前提下,通过连通情况确定终端设备的网络协议类型,相比于直接从终端设备本地链路获取到的网络协议类型更加准确,避免因直接从本地获取到的网络类型与实际接入的网络不匹配时,导致出现无法正常访问网络的情况,提升用户使用终端设备进行网络访问的用户体验。
附图说明
图1为本发明实施例提供的一种网络协议类型判断方法的应用场景图;
图2为本发明实施例提供的一种网络协议类型判断方法的流程示意图;
图3为本发明实施例提供的另一种网络协议类型判断方法的流程示意图;
图4为本发明实施例提供的又一种网络协议类型判断方法的流程示意图;
图5为本发明实施例提供的再一种网络协议类型判断方法的流程示意图;
图6为本发明实施例提供的一种网络协议类型判断装置的结构示意图;
图7为本发明实施例提供的一种计算机设备结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为便于对本发明实施例的理解,下面将结合附图以具体实施例做进一步的解释说明,实施例并不构成对本发明实施例的限定。
图1为本发明实施例提供的一种网络协议类型判断方法的应用场景图,终端设备与网络侧交互,具体包括:
终端设备在与网络侧进行交互时,通常将终端设备所支持链路与网络侧进行交互时对应的网络协议发送给调度服务器,调度服务器根据该网络协议分配网络侧的服务器地址(IPv4公网IP或IPv6公网IP)给终端设备,终端设备根据分配的地址进行数据访问。
在此过程中,终端设备与网络侧并未存在连通性测试,也即存在终端的本地链路支持的类型不一定能真正接入对应的IPv4公网IP或IPv6公网IP,导致终端设备有时无法正常访问网络,以及无法实现点对点传输(peer-to-peer,P2P)。
本实施例中描述的终端设备可以包括诸如手机、平板电脑、笔记本电脑、掌上电脑、个人数字助理(Personal Digital Assistant,PDA)、便捷式媒体播放器(PortableMedia Player,PMP)、导航装置、可穿戴设备、智能手环、计步器等移动终端,以及诸如数字TV、台式计算机等固定终端。
本发明实施例提供的网络协议类型判断方法,采用终端设备与网络侧建立连接之前进行连通性探测,确定终端设备的网络协议类型与待接入的网络IP匹配,以下进行具体介绍。
图2为本发明实施例提供的一种网络协议类型判断方法的流程示意图,如图2所示,具体包括:
S21、终端设备确定终端设备所支持链路的链路类型。
本实施例的网络协议类型判断方法,通过终端设备与网络侧的服务器进行交互,进而确定终端设备的网络协议类型,在执行以下步骤之前,网络侧的服务器预先提供IPv4公网IP和IPv6公网IP,该IPv4公网IP和IPv6公网IP用于终端设备和网络侧的连通性探测,并且设置该IPv4公网IP和IPv6公网IP允许接收终端设备发送的探测数据,约定IPv4公网IP和/或IPv6公网IP在接收到探测数据后,响应于该探测数据向终端设备返回相应地探测数据。
终端设备确定本地所支持链路的链路类型,链路类型为终端设备基于该链路与公网进行数据交互时对应的协议类型;确定链路类型的目的在于便于后续连通性测试时创建与链路类型对应的协议类型的探测数据包。
在本发明实施例的一可选方案中,确定终端设备本地支持的链路类型,可采用创建IPv4协议类型和IPv6协议类型的UDPsocket确定终端设备的链路类型。
进一步地,分别创建IPv4协议类型的UDPsocket和IPv6协议类型的UDPsocket,将IPv4协议类型的UDPsocket向网络上有效的IPv4公网IP(如,本地搜索到的、或保存的IPv4公网IP)进行connet,当IPv4协议类型的UDPsocketconnet IPv4公网IP时确定终端设备的链路支持IPv4协议,也即链路类型为IPv4,否则不支持。
以及,将IPv6协议类型的UDPsocket向网络上有效的IPv6公网IP进行connet,当IPv6协议类型的UDPsocketconnet IPv6公网IP时确定终端设备的链路支持IPv6协议,也即链路类型为IPv6,否则不支持。
获取connet成功的终端设备本地的所有IP类型的地址,从所有IP类型中过滤掉一个或多个保留地址或回环地址,得到终端设备有效的IP地址,根据有效的IP地址确定终端设备所支持链路的链路类型(如IPv4、IPv6等类型)。
需要说明的是,本步骤中采用UDPsocket与公网进行connet的方式,并非终端设备与公网建立真实通信连接,而是通过UDPsocket的方式先初步确定出终端设备的链路类型(也即终端设备基于该链路与公网进行数据交互时对应的协议类型),并通过下述S22-S23进行二次判断的步骤,以使得到的终端设备的网络协议类型更加准确。
S22、终端设备生成与所述链路类型对应的探测数据。
终端设备根据获取到的链路类型,生成与链路类型对应的探测数据,探测数据用于探测终端设备支持的链路与公网的连通性,探测数据的类型可根据链路的类型确定,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈。
在本发明实施例的一可选方案中,生成与所述链路类型对应的探测数据,具体包括:生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
进一步地,当链路类型为IPv4时,生成IPv4类型的探测数据包;当链路类型为IPv6时,生成IPv6类型的探测数据包;当链路类型为dual双栈时,同时生成IPv4类型的探测数据包和IPv6类型的探测数据包。
S23、终端设备基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
生成探测数据(或,探测数据包)后,将该探测数据(或,探测数据包)发送给对应类型的公网IP进行连通性探测,判断终端设备与公网IP是否连通,当连通时确定终端设备的链路支持的网络协议为对应的终端设备的网络协议类型。
本实施例提供的网络协议类型判断方法,通过终端设备确定终端设备所支持链路的链路类型;生成与所述链路类型对应的探测数据;基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,在终端设备接入公网前,采用二次判断的形式,先初步得出终端设备的链路类型,再通过链路类型确定终端设备的网络协议类型,两次判断可提高确定的网络协议类型的精准度;第二次判断时,在终端设备与网络侧进行探测性交互的前提下,通过连通情况确定终端设备的网络协议类型,相比于直接从终端设备本地链路获取到的网络协议类型更加准确,避免因直接从本地获取到的网络类型与实际接入的网络不匹配时,导致出现无法正常访问网络的情况,提升用户使用终端设备进行网络访问的用户体验。
以下,将分别以终端的链路类型为IPv4、IPv6和dual双栈,进行具体介绍。
图3为本发明实施例提供的另一种网络协议类型判断方法的流程示意图,如图3所示,具体包括:
S31、终端设备确定终端设备所支持链路的链路类型为IPv4。
S32、终端设备生成IPv4类型的探测数据包。
在本发明实施例的一可选方案中,所述探测数据包,包括:控制报文协议(Internet Control Message Protocol,ICMP)包和/或用户数据协议(User DatagramProtocol,UDP)包。
在本实施例中,可同时采用ICMP包和UDP包作为探测数据包。
S33、将IPv4类型的探测数据包,发送给IPv4公网IP。
进一步地,当终端设备类型为IOS时,在网络层采用ICMP包,在传输层采用UDP包进行连通性探测,其中,UDP包实际为一个探测包(msg_type:1代表request,msg_type:2代表response),即,公网IP接收到ICMP包时,向终端设备返回响应数据包,公网IP在接收到UDP包时,向终端设备返回响应数据包(如,响应UDP包)。
当终端设备类型为非IOS(如,Android)时,在网络侧可采用ping指令的形式进行连通性探测,UDP包与终端设备类型为IOS时类似,具体请参照上述描述。
需要说明的是,在进行连通性探测时,ICMP包在网络层的探测和UDP包在传输层的探测同步进行,采用ICMP包和UDP包同步探测的目的在于结合丢包互补和时间互补,提高探测的精准度。
在本实施例中还可以采用ICMP包和UDP包中的一种来进行连通性探测,虽精准度上不如ICMP包和UDP包同步探测精准,但也可实现本实施例的方案,可参照本实施例的相关描述,在此不作赘述。
S34、当接收到所述IPv4公网IP返回的第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈。
进一步地,第一数据包为IPv4公网IP基于IPv4类型的探测数据包向终端设备返回的响应数据包,可以是响应ICMP包,或响应UDP包,如,终端设备在网络层接收到IPv4公网IP返回的ICMP包,或在传输层接收到IPv4公网IP返回的响应UDP包时,即可确定终端设备与IPv4公网IP连通。
也即,在不分先后的情况下,终端设备在网络层或传输层只要有其一接收到返回的探测数据包时(不必等待另一个探测数据包是否返回),即可确定终端设备与IPv4公网IP连通。
当确定终端设备与IPv4公网IP连通时,可确认终端设备的支持的IPv4类型的链路与IPv4公网IP连通,该链路可通过IPv4进行数据传输,因IPv4不存在IPv4-only孤岛模式,所以可确认该终端设备定对应的网络协议类型为IPv4单栈。
S35、当未接收到所述IPv4公网IP返回的第一数据包时,确定终端设备无法与IPv4公网IP进行联网。
图4为本发明实施例提供的又一种网络协议类型判断方法的流程示意图,如图4所示,具体包括:
S41、终端设备确定终端设备所支持链路的链路类型为IPv6。
S42、终端设备生成IPv6类型的探测数据包。
S43、将IPv6类型的探测数据包,发送给IPv6公网IP。
S44、当接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包,响应数据包可以是响应ICMP包,或响应UDP包。
上述中的探测步骤与S31-S34类似,具体可参照上述描述,为简洁描述,在此不作赘述。
S45、当未接收到所述IPv6公网IP返回的第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP。
在本实施例中,若终端设备未接收到IPv6公网IP返回的第二数据包,可确认终端设备的网络协议类型不为IPv6单栈,因此,还需要判断终端设备的网络协议类型是否为IPv6_only孤岛。
其中,映射后的IPv6可以是由IPv4公网IP转换为的IPv6公网IP,如IPv4公网IP,所述v4mapv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP映射,得到v4mapv6公网IP。
S46、当接收到所述映射后的IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛。
图5为本发明实施例提供的再一种网络协议类型判断方法的流程示意图,如图5所示,具体包括:
S51、终端设备确定终端设备所支持链路的链路类型为dual双栈。
S52、终端设备生成IPv4类型的探测数据包和IPv6类型的探测数据包。
S53、将IPv4类型的探测数据包,发送给IPv4公网IP;
S54、将IPv6类型的探测数据包,发送给IPv6公网IP。
S55、当接收到所述IPv4公网IP返回的响应ICMP包或响应UDP包,以及接收到所述IPv6公网IP返回的响应ICMP包或响应UDP包时,确定所述终端设备的网络协议类型为dual双栈。
具体地,在本实施例中,可采用ICMP包和UDP包同时进连通性探测,即在网络层采用ICMP包,在传输层采用UDP包进行连通性探测,当出现以下情况中的一种时,确定终端设备的网络协议类型为dual双栈,具体包括:
①、终端设备接收到IPv4公网IP返回的响应ICMP包,以及接收到IPv6公网IP返回的响应ICMP包;
②、终端设备接收到IPv4公网IP返回的响应UDP包,以及接收到IPv6公网IP返回的响应UDP包;
③、终端设备接收到IPv4公网IP返回的响应ICMP包,以及接收到IPv6公网IP返回的响应UDP包;
④、终端设备接收到IPv4公网IP返回的响应ICMP包,以及接收到IPv6公网IP返回的响应UDP包。
在本发明实施例的一可选方案中,为减少探测时间提高探测效率,在同一时刻终端设备在网络层将ICMP包同时向IPv4公网IP和IPv6公网IP发送,同一时刻在传输层将UDP包向IPv4公网IP和IPv6公网IP发送,当终端设备接收到IPv4公网IP和IPv6公网IP返回的响应ICMP包,且未接收到响应UDP包时,停止UDP包的探测,缩短探测流程,减少探测时间。
相应地,当终端设备接收到IPv4公网IP和IPv6公网IP返回的响应UDP包且未接收到响应ICMP包时,停止ICMP包的探测。
上述的S52-S54,与S32-S34和S42-S44类似,具体可参照上述描述,为简洁描述,在此不作赘述。
需要说明的是,当终端设备的链路类型为dual双栈时,理论上终端设备的链路既能与IPv4公网IP连通,也能与IPv6公网IP连通,因此需要,生成IPv4类型的探测数据包和IPv6类型的探测数据包,同时进行IPv4公网IP和IPv6公网IP的连通性探测,在本实施例中,对于连通性探测的先后顺序,可根据实际需求进行设定(如,并行探测,又如先IPv4公网IP探测后IPv6公网IP探测),对此,本实施例不作具体限定。
若在设定时间段内(如,0.5s),终端设备收到IPv4公网IP返回的响应ICMP包或响应UDP包和IPv6公网IP返回的响应ICMP包或响应UDP包时,则确定终端设备的链路与IPv4公网IP连通,且还与IPv6公网IP连通,确定终端设备的网络协议类型为dual双栈,否则,执行S56或S57。
S56、当接收到所述IPv4公网IP返回的响应ICMP包或响应UDP包,以及未接收到所述IPv6公网IP返回的响应ICMP包或响应UDP包时,确定所述终端设备的网络协议类型为IPv4单栈。
S57、当未接收到所述IPv4公网IP返回的响应ICMP包或响应UDP包,以及接收到所述IPv6公网IP返回的响应ICMP包或响应UDP包时,确定所述终端设备的网络协议类型为IPv6单栈。
图6为本发明实施例提供的一种网络协议类型判断装置的结构示意图,如图6所示,该装置具体包括:
确定模块601,用于确定终端设备所支持链路的链路类型;
生成模块602,用于生成与所述链路类型对应的探测数据;
探测模块603,用于基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
可选地,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈;所述生成模块602,具体用于生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
可选地,所述链路类型为IPv4时,所述探测模块603,用于将IPv4类型的探测数据包,发送给IPv4公网IP;当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
可选地,所述链路类型为IPv6时,所述探测模块603,用于将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
可选地,所述探测模块603,用于当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
可选地,所述链路类型为dual双栈时,所述探测模块603,用于将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
可选地,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
本实施例提供的网络协议类型判断装置可以是如图6中所示的网络协议类型判断装置,可执行如图2-5中网络协议类型判断方法的所有步骤,进而实现图2-5所示网络协议类型判断方法的技术效果,具体请参照图2-6相关描述,为简洁描述,在此不作赘述。
图7为本发明实施例提供的一种计算机设备结构示意图,如图7所示,该终端设备具体包括:
处理器710、存储器720和收发器730。
处理器710可以是中央处理器(central processing unit,CPU),或者CPU和硬件芯片的组合。上述硬件芯片可以是专用集成电路(application-specific integratedcircuit,ASIC),可编程逻辑器件(programmable logic device,PLD)或其组合。上述PLD可以是复杂可编程逻辑器件(complex programmable logic device,CPLD),现场可编程门阵列(field-programmable gate array,FPGA),通用阵列逻辑(generic array logic,GAL)或其任意组合。
存储器720用于存储各种应用,操作系统和数据。存储器720可以将存储的数据传输给处理器710。存储器720可以包括易失性存储器,非易失性动态随机存取内存(nonvolatile random access memory,NVRAM)、相变化随机存取内存(phase change RAM,PRAM)、磁阻式随机存取内存(magetoresistive RAM,MRAM)等,例如至少一个磁盘存储器件、电子可擦除可编程只读存储器(electrically erasable programmable read-onlymemory,EEPROM)、闪存器件,例如反或闪存(flash memory,NOR)或是反及闪存(flashmemory,NAND)、半导体器件,例如固态硬盘(solid state disk,SSD)等。存储器720还可以包括上述种类的存储器的组合。
收发器730,用于发送和/或接收数据,收发器730可以是天线等。
所述各器件的工作过程如下:
处理器710,用于确定终端设备所支持链路的链路类型;
处理器710,还用于生成与所述链路类型对应的探测数据;
处理器710,还用于基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
可选地,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈;所述处理器710,具体用于生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
可选地,所述链路类型为IPv4时,所述收发器730,用于将IPv4类型的探测数据包,发送给IPv4公网IP;处理器710,用于当接收到所述第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈,其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
可选地,所述链路类型为IPv6时,所述收发器730,用于将IPv6类型的探测数据包,发送给IPv6公网IP;处理器710,还用于当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
可选地,所述收发器730,用于当未接收到所述IPv6公网IP返回的IPv6类型的所述探测数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6;处理器710,用于当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
可选地,所述链路类型为dual双栈时,所述收发器730,用于将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;处理器710,用于当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
可选地,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
本实施例提供的终端设备可以是如图7中所示的终端设备,可执行如图2-6中网络协议类型判断方法的所有步骤,进而实现图2-5所示网络协议类型判断方法的技术效果,具体请参照图2-5相关描述,为简洁描述,在此不作赘述。
本发明实施例还提供了一种存储介质(计算机可读存储介质)。这里的存储介质存储有一个或者多个程序。其中,存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。
当存储介质中一个或者多个程序可被一个或者多个处理器执行,以实现上述在网络协议类型判断设备侧执行的网络协议类型判断方法。
所述处理器用于执行存储器中存储的网络协议类型判断程序,以实现以下在网络协议类型判断设备侧执行的网络协议类型判断方法的步骤:
确定终端设备所支持链路的链路类型;
生成与所述链路类型对应的探测数据;
基于所述探测数据向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型。
可选地,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈;
生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
可选地,所述链路类型为IPv4时,将IPv4类型的探测数据包,发送给IPv4公网IP;当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
可选地,所述链路类型为IPv6时,将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;
其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
可选地,当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;
当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
可选地,所述链路类型为dual双栈时,将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;
当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;
当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
可选地,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (16)
1.一种网络协议类型判断方法,其特征在于,包括:
确定终端设备所支持链路的链路类型,所述链路类型为终端设备基于所述链路与公网进行数据交互时对应的协议类型;
生成与所述链路类型对应的探测数据;
基于所述探测数据通过网络层和传输层同步向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型;
所述确定终端设备所支持链路的链路类型,包括:
通过UDPsocket的方式初步判断出终端设备的链路类型;
所述链路类型包括以下中的一种:
IPv4、IPv6或dual双栈。
2.根据权利要求1所述的方法,其特征在于,所述生成与所述链路类型对应的探测数据,包括:
生成IPv4类型的探测数据包,和/或,生成IPv6类型的探测数据包。
3.根据权利要求2所述的方法,其特征在于,所述链路类型为IPv4时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv4类型的探测数据包,发送给IPv4公网IP;
当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
4.根据权利要求2所述的方法,其特征在于,所述链路类型为IPv6时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv6类型的探测数据包,发送给IPv6公网IP;
当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;
其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
5.根据权利要求4所述的方法,其特征在于,所述方法,还包括:
当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;
当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
6.根据权利要求2所述的方法,其特征在于,所述链路类型为dual双栈时,所述基于所述探测数据向公网IP进行探测,根据探测结果确定所述终端设备的网络协议类型,包括:
将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;
当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;
当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;
当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
7.根据权利要求2-6任一所述的方法,其特征在于,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
8.一种网络协议类型判断装置,其特征在于,包括:
确定模块,用于确定终端设备所支持链路的链路类型,链路类型为终端设备基于所述链路与公网进行数据交互时对应的协议类型;
生成模块,用于生成与所述链路类型对应的探测数据;
探测模块,用于基于所述探测数据通过网络层和传输层同步向公网IP进行连通性探测,根据探测结果确定所述终端设备的网络协议类型;
所述确定模块具体用于,通过UDPsocket的方式初步判断出终端设备的链路类型;
所述链路类型包括以下中的一种:
IPv4、IPv6或dual双栈。
9.根据权利要求8所述的装置,其特征在于,所述链路类型包括以下中的一种:IPv4、IPv6或dual双栈;
所述生成模块,具体用于生成IPv4类型的探测数据包,和/或生成IPv6类型的探测数据包。
10.根据权利要求9所述的装置,其特征在于,所述链路类型为IPv4时,所述探测模块,用于将IPv4类型的探测数据包,发送给IPv4公网IP;当接收到第一数据包时,确定所述终端设备的网络协议类型为IPv4单栈;其中,所述第一数据包为所述IPv4公网IP基于所述IPv4类型的探测数据包向所述终端设备返回的响应数据包。
11.根据权利要求9所述的装置,其特征在于,所述链路类型为IPv6时,所述探测模块,用于将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈;其中,所述第二数据包为所述IPv6公网IP基于所述IPv6类型的探测数据包向所述终端设备返回的响应数据包。
12.根据权利要求11所述的装置,其特征在于,所述探测模块,还用于当未接收到所述IPv6公网IP返回的所述第二数据包时,将IPv6类型的探测数据包,发送给映射后的IPv6公网IP;当接收到所述第二数据包时,确定所述终端设备的网络协议类型为IPv6_only孤岛;
其中,所述映射后的IPv6公网IP通过以下方式获得:采用NAT64前缀对IPv4公网IP进行IPv6公网IP进行映射,得到所述映射后的IPv6公网IP。
13.根据权利要求9所述的装置,其特征在于,所述链路类型为dual双栈时,所述探测模块,用于将IPv4类型的探测数据包,发送给IPv4公网IP,且将IPv6类型的探测数据包,发送给IPv6公网IP;当接收到所述IPv4公网IP返回的第一数据包且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为dual双栈;当接收到所述IPv4公网IP返回的第一数据包,且未接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv4单栈;当未接收到所述IPv4公网IP返回的第一数据包,且接收到所述IPv6公网IP返回的第二数据包时,确定所述终端设备的网络协议类型为IPv6单栈。
14.根据权利要求9-13任一所述的装置,其特征在于,所述探测数据包,包括:控制报文协议ICMP包和/或用户数据协议UDP包。
15.一种计算机设备,其特征在于,包括:处理器和存储器,所述处理器用于执行所述存储器中存储的数据处理程序,以实现权利要求1~7中任一项所述的网络协议类型判断方法。
16.一种存储介质,其特征在于,所述存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~7中任一项所述的网络协议类型判断方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910207767.4A CN110061888B (zh) | 2019-03-18 | 2019-03-18 | 网络协议类型判断方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910207767.4A CN110061888B (zh) | 2019-03-18 | 2019-03-18 | 网络协议类型判断方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110061888A CN110061888A (zh) | 2019-07-26 |
CN110061888B true CN110061888B (zh) | 2021-09-28 |
Family
ID=67317163
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910207767.4A Active CN110061888B (zh) | 2019-03-18 | 2019-03-18 | 网络协议类型判断方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110061888B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112073553B (zh) * | 2020-08-31 | 2023-09-05 | 腾讯科技(深圳)有限公司 | 网络地址转换类型的检测方法、装置、设备及存储介质 |
CN114553831B (zh) * | 2020-11-25 | 2023-09-08 | 华为技术有限公司 | 一种与发送管理ip地址相关的方法及系统 |
CN114945047B (zh) * | 2022-04-08 | 2023-09-26 | 北京智象信息技术有限公司 | 一种智能终端app互联网协议选择方法、系统、设备及介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764813A (zh) * | 2009-12-16 | 2010-06-30 | 华为技术有限公司 | 一种ims网络通信方法及装置 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100724232B1 (ko) * | 2001-07-07 | 2007-05-31 | 엘지전자 주식회사 | Ppp 링크에서의 ip 버전 타입별 프로토콜 식별 방법 |
US7936766B2 (en) * | 2002-09-20 | 2011-05-03 | Wind River Systems, Inc. | System and method for separating logical networks on a dual protocol stack |
US9054943B2 (en) * | 2009-12-23 | 2015-06-09 | Citrix Systems, Inc. | Systems and methods for mixed mode handling of IPv6 and IPv4 traffic by a virtual server |
CN101931982A (zh) * | 2010-08-18 | 2010-12-29 | 北京星网锐捷网络技术有限公司 | 一种网络故障定位方法及装置 |
CN102421201B (zh) * | 2011-11-22 | 2014-03-12 | 中兴通讯股份有限公司 | 一种快速建立双栈无线连接的方法及无线终端设备 |
CN103856436B (zh) * | 2012-11-28 | 2017-12-05 | 中国电信股份有限公司 | 用户设备选择网络层协议的方法、家庭网关和互联网网络 |
CN104702709A (zh) * | 2013-12-06 | 2015-06-10 | 华为技术有限公司 | 标识、识别终端类型的方法和装置 |
CN105208053A (zh) * | 2014-06-16 | 2015-12-30 | 中兴通讯股份有限公司 | 一种实现负载均衡的方法、装置及负载均衡服务系统 |
-
2019
- 2019-03-18 CN CN201910207767.4A patent/CN110061888B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101764813A (zh) * | 2009-12-16 | 2010-06-30 | 华为技术有限公司 | 一种ims网络通信方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110061888A (zh) | 2019-07-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110061888B (zh) | 网络协议类型判断方法、装置、计算机设备及存储介质 | |
US8650326B2 (en) | Smart client routing | |
CN113595897B (zh) | 一种路径探测方法及装置 | |
US20140112171A1 (en) | Network system and method for improving routing capability | |
US20130198266A1 (en) | Facilitating communication between web-enabled devices | |
US9094483B2 (en) | System and method for collecting and evaluating statistics to establish network connections | |
CN113259479B (zh) | 一种数据处理方法以及设备 | |
CN112929241B (zh) | 一种网络测试方法及装置 | |
CN106507414B (zh) | 报文转发方法及装置 | |
US12052173B2 (en) | Executing workloads across multiple cloud service providers | |
CN112291365A (zh) | 访问均衡处理方法、装置、计算机设备及存储介质 | |
CN107872548A (zh) | 网页链接方法、装置及可读存储介质 | |
CN115022279B (zh) | 内网穿透方法和装置 | |
CN114071544B (zh) | 网络测试方法、装置和电子设备 | |
CN111835596B (zh) | 一种目标状态探测方法、装置及电子设备 | |
US20140136597A1 (en) | Relay enabled dynamic virtual private network | |
WO2017166038A1 (zh) | 通信方法和终端 | |
CN108183926B (zh) | 一种数据包处理方法和装置 | |
CN110661895A (zh) | 一种服务器的网络地址映射方法及网络地址映射设备 | |
CN110290230B (zh) | 网络环境支持的拨号方式的检测方法、装置及存储介质 | |
CN115225652A (zh) | 边缘服务平台的确定方法及系统、电子设备、存储介质 | |
CN108901082B (zh) | 一种接入方法及装置 | |
CN114070816A (zh) | 服务器消息处理方法、系统、电子设备及可读存储介质 | |
CN114285856B (zh) | 一种ipv4外链访问方法及装置 | |
CN114070818B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |