CN113965630A - 一种udp连接方法、电子设备及存储介质 - Google Patents
一种udp连接方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113965630A CN113965630A CN202111239819.XA CN202111239819A CN113965630A CN 113965630 A CN113965630 A CN 113965630A CN 202111239819 A CN202111239819 A CN 202111239819A CN 113965630 A CN113965630 A CN 113965630A
- Authority
- CN
- China
- Prior art keywords
- udp connection
- terminal
- response
- udp
- server
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 79
- 238000003860 storage Methods 0.000 title claims abstract description 13
- 230000004044 response Effects 0.000 claims abstract description 363
- 230000000977 initiatory effect Effects 0.000 claims abstract description 162
- 230000008569 process Effects 0.000 claims abstract description 19
- 238000004590 computer program Methods 0.000 claims description 27
- 230000005540 biological transmission Effects 0.000 description 13
- 230000001960 triggered effect Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000005457 optimization Methods 0.000 description 6
- 230000009471 action Effects 0.000 description 4
- 230000006854 communication Effects 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000002360 preparation method Methods 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000002457 bidirectional effect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004080 punching Methods 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/164—Adaptation or special uses of UDP protocol
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/142—Managing session states for stateless protocols; Signalling session states; State transitions; Keeping-state mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/143—Termination or inactivation of sessions, e.g. event-controlled end of session
- H04L67/145—Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Cardiology (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种UDP连接方法、电子设备及存储介质。在应用该UDP连接方法时:UDP连接发起终端会通过服务器向UDP连接应答终端发送UDP连接请求;UDP连接应答终端会判断该UDP连接请求是否超时,若UDP连接请求未超时,则通过服务器向UDP连接发起终端反馈应答信息,并开始UDP连接;UDP连接应答终端在接收到该应答信息后,也会判断该应答信息是否超时,并在应答信息未超时时开始UDP连接。通过上述过程,可保障UDP连接发起终端与UDP连接应答终端的UDP连接开始时间在可容忍的范围内。
Description
技术领域
本申请属于通信技术领域,尤其涉及一种UDP连接方法、电子设备及存储介质。
背景技术
用户数据报协议(User Datagram Protocol,UDP)是一种无连接且不可靠的协议。由于该协议的不可靠性,UDP连接时容易出现数据延时或丢包的情况,这会使得UDP连接发起终端及UDP连接应答终端的UDP连接开始时间存在较大差别,最终导致UDP连接失败。
发明内容
本申请提供了一种UDP连接方法、UDP连接装置、电子设备及计算机可读存储介质,可保障UDP连接发起终端与UDP连接应答终端的UDP连接开始时间在可容忍的范围内,减少出现因数据延时或丢包而导致的UDP连接失败情况。
第一方面,本申请提供了一种UDP连接方法,应用于UDP连接发起终端,包括:
通过服务器,向UDP连接应答终端发送UDP连接请求;
若通过上述服务器,接收到上述UDP连接应答终端的网络连接信息以及上述UDP连接应答终端针对上述UDP连接请求所反馈的应答信息,上述应答信息携带有上述UDP连接应答终端发送上述应答信息时对应的应答时间戳,则基于上述应答时间戳判断上述应答信息是否超时,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
若上述应答信息未超时,则基于上述UDP连接应答终端的网络连接信息开始UDP连接。
可选地,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之前,上述UDP连接方法还包括:
向上述服务器请求授时,以实现与上述UDP连接应答终端的时间同步。
可选地,在上述基于上述应答时间戳判断上述应答信息是否超时之后,上述UDP连接方法还包括:
若上述应答信息超时,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
可选地,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,上述UDP连接方法还包括:
若通过上述服务器,接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的失败信息,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤,其中,上述失败信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求已超时。
可选地,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,上述UDP连接方法还包括:
若通过上述服务器,未接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的信息,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
可选地,在上述基于上述UDP连接应答终端的网络连接信息开始UDP连接之后,上述UDP连接方法还包括:
若UDP连接失败,则返回执行上述向上述服务器请求授时的步骤及后续步骤。
第二方面,本申请提供了一种UDP连接方法,应用于UDP连接应答终端,包括:
通过服务器,若接收到UDP连接发起终端的网络连接信息以及上述UDP连接发起终端所发送的UDP连接请求,上述UDP连接请求携带有发送上述UDP连接请求时对应的发送时间戳,则基于上述发送时间戳确定上述UDP连接请求是否超时;
若上述UDP连接请求未超时,则针对上述UDP连接请求,通过上述服务器向上述UDP连接发起终端反馈应答信息,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
在向上述UDP连接发起终端反馈上述应答信息后,基于上述UDP连接发起终端的网络连接信息开始UDP连接。
可选地,在上述基于上述UDP连接发起终端的网络连接信息开始UDP连接之后,上述UDP连接方法还包括:
若上述UDP连接应答终端在UDP连接的过程中,再次接收到上述UDP连接发起终端通过上述服务器所发送的UDP连接请求,则返回执行上述基于上述发送时间戳确定上述UDP连接请求是否超时的步骤及后续步骤。
第三方面,本申请提供了一种UDP连接装置,应用于UDP连接发起终端,包括:
第一请求模块,用于通过服务器,向UDP连接应答终端发送UDP连接请求;
第一判断模块,用于若通过上述服务器,接收到上述UDP连接应答终端的网络连接信息以及上述UDP连接应答终端针对上述UDP连接请求所反馈的应答信息,上述应答信息携带有上述UDP连接应答终端发送上述应答信息时对应的应答时间戳,则基于上述应答时间戳判断上述应答信息是否超时,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
第一连接模块,用于若上述应答信息未超时,则基于上述UDP连接应答终端的网络连接信息开始UDP连接。
可选地,上述UDP连接装置还包括:
第二请求模块,用于在上述通过服务器,向UDP连接应答终端发送UDP连接请求之前,向上述服务器请求授时,以实现与上述UDP连接应答终端的时间同步。
可选地,上述第一请求模块在以下条件下被再次触发运行:
上述应答信息超时。
可选地,上述第一请求模块在以下条件下被再次触发运行:
在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,通过上述服务器,接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的失败信息,其中,上述失败信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求已超时。
可选地,上述第一请求模块在以下条件下被再次触发运行:
在通过上述服务器向UDP连接应答终端发送UDP连接请求之后,通过上述服务器,未接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的信息。
可选地,上述第二请求模块在以下条件下被再次触发运行:
UDP连接发起终端所进行的UDP连接失败。
第四方面,本申请提供了一种UDP连接装置,应用于UDP连接应答终端,包括:
第二判断模块,用于通过服务器,若接收到UDP连接发起终端的网络连接信息以及上述UDP连接发起终端所发送的UDP连接请求,上述UDP连接请求携带有发送上述UDP连接请求时对应的发送时间戳,则基于上述发送时间戳判断上述UDP连接请求是否超时;
第一反馈模块,用于若上述UDP连接请求未超时,则针对上述UDP连接请求,通过上述服务器向上述UDP连接发起终端反馈应答信息,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
第二连接模块,用于在向上述UDP连接发起终端反馈上述应答信息后,基于上述UDP连接发起终端的网络连接信息开始UDP连接。
可选地,上述第二判断模块在以下条件下被再次触发运行:
上述UDP连接应答终端在UDP连接的过程中,再次接收到上述UDP连接发起终端通过上述服务器所发送的UDP连接请求。
第五方面,本申请提供了一种电子设备,上述电子设备包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上述第一方面的方法的步骤;或者,上述处理器执行上述计算机程序时实现如上述第二方面的方法的步骤。
第六方面,本申请提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上述第一方面的方法的步骤;或者,上述计算机程序被处理器执行时实现如上述第二方面的方法的步骤。
第七方面,本申请提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤;或者,上述计算机程序被一个或多个处理器执行时实现如上述第一方面的方法的步骤。
本申请与现有技术相比存在的有益效果是:UDP连接发起终端会通过服务器向UDP连接应答终端发送UDP连接请求;UDP连接应答终端会判断该UDP连接请求是否超时,若UDP连接请求未超时,则通过服务器向UDP连接发起终端反馈应答信息,并开始UDP连接;UDP连接应答终端在接收到该应答信息后,也会判断该应答信息是否超时,并在应答信息未超时时开始UDP连接。由上述过程可知,UDP连接应答终端只有在所接收到的UDP连接请求未超时时,才反馈应答信息并开始UDP连接;UDP连接发起终端只有在所接收到的应答信息未超时时,才开始UDP连接。通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的应用于UDP连接发起终端的UDP连接方法的实现流程示意图;
图2是本申请实施例提供的应用于UDP连接应答终端的UDP连接方法的实现流程示意图;
图3是本申请实施例提供的应用于UDP连接发起终端的UDP连接装置的结构框图;
图4是本申请实施例提供的应用于UDP连接应答终端的UDP连接装置的结构框图;
图5是本申请实施例提供的电子设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定***结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的***、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
UDP协议是开放式***互联通信参考模型(Open System InterconnectionReference Model,OSI)中的一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在该UDP协议下,为了让使用了不同网络地址转换(Network AddressTranslation,NAT)的私有网络中的主机之间建立双向UDP连接,提出了UDP打洞技术,其流程如下:
(1)、客户端1请求服务器,由此,服务器获知客户端1的网际互连协议(InternetProtocol,IP)地址是和端口号。
(2)、客户端2请求服务器,由此,服务器获知客户端2的IP地址和端口号。
(3)、服务器把客户端1的IP地址和端口号发给客户端2。
(4)、服务器把客户端2的IP地址和端口号发给客户端1。
(5)、客户端1开始UDP连接,具体为:向客户端2的IP地址和端口发UDP消息。客户端2收到后应答。
(6)、客户端2开始UDP连接,具体为:向客户端1的IP地址和端口发UDP消息。客户端1收到后应答。
由于UDP协议的不可靠性,上述过程中很容易出现数据延时或丢包的情况。例如,假定在第(3)步中,服务器发给客户端2的消息丢包了;这会使得客户端1已经收到客户端2的信息并开始UDP连接,而客户端2还在等待服务器的应答,UDP连接还未开始;直到客户端2等待超时,重新发送请求到服务器并收到应答后,客户端2才开始UDP连接,但是此时客户端1可能已经因UDP连接超时而退出UDP连接,这就造成了UDP连接失败。又例如,假定在第(3)步中,服务器发给客户端2的消息产生了较大延时,这也会造成客户端1和客户端2的UDP连接开始时间不一致;如果二者UDP连接开始时间的时间差比较大的话,很有可能造成客户端1已经UDP连接超时,客户端2才开始UDP连接,同样也造成了UDP连接失败。基于此,本申请对UDP连接过程进行优化,提出了一种UDP连接方法、UDP连接装置、电子设备及计算机可读存储介质,可保障UDP连接发起终端与UDP连接应答终端的UDP连接开始时间在可容忍的范围内,避免出现因双方UDP连接开始时间相差过多而UDP连接失败的情况。为了说明本申请所提出的技术方案,下面通过具体实施例来进行说明。
下面对本申请实施例提供的一种UDP连接方法进行描述。该UDP连接方法应用于UDP连接发起终端。参见图1,本申请实施例中的UDP连接方法包括:
步骤101,通过服务器,向UDP连接应答终端发送UDP连接请求。
在本申请实施例中,UDP连接发起终端可开始进行UDP连接前的准备动作,具体为生成一UDP连接请求,该UDP连接请求用于指示该UDP连接发起终端准备向UDP连接应答终端进行UDP连接,且该UDP连接请求携带有时间戳,记为发送时间戳。可以理解,该UDP连接请求所携带的发送时间戳用于表示该UDP连接请求的生成时间,该生成时间约等于该UDP连接请求的发送时间。UDP连接发起终端可向服务器发送该UDP连接请求。由于该UDP连接请求指示的是UDP连接发起终端准备向UDP连接应答终端进行UDP连接,且服务器通常可通过以往与各个终端的数据交互提前获知UDP连接发起终端及UDP连接应答终端的网络连接信息(也即IP地址及端口号),因而服务器可基于UDP连接应答终端的网络连接信息(也即IP地址及端口号),将该UDP连接请求转发至UDP连接应答终端处。可以理解,在转发该UDP连接请求时,服务器也会将UDP连接发起终端的网络连接信息(也即IP地址及端口号)一并发送至UDP连接应答终端处,以使得UDP连接应答终端获知该UDP连接请求由谁发起,自己应向谁反馈应答。
由于UDP连接请求是通过服务器进行中转的,因而该UDP连接请求可能出现数据延时的情况。对此,UDP连接应答终端在接收到该UDP连接请求后,可基于该UDP连接请求所携带的发送时间戳确定该UDP连接请求是否超时,具体为:计算该UDP连接请求所携带的发送时间戳与当前时间的时间差,记作第一时间差;若该第一时间差大于或等于预设的第一时间差阈值,则确定该UDP连接请求超时;反之,若该第一时间差小于该第一时间差阈值,则确定该UDP连接请求未超时。
在确认该UDP连接请求未超时的情况下,UDP连接应答终端可生成应答信息,该应答信息用于指示UDP连接应答终端所接收的UDP连接请求未超时,且该应答信息同样携带有时间戳,记为应答时间戳。可以理解,该应答时间戳用于表示该应答信息的生成时间,该生成时间约等于该应答信息的发送时间。UDP连接应答终端随之可以将该应答信息通过服务器发送给UDP连接发起终端,以作为对UDP连接发起终端所发送的UDP连接请求的正面反馈。并且,UDP连接应答终端在发出该应答信息后,即可开始进行UDP连接。可以理解,在转发该应答信息时,服务器也会将UDP连接应答终端的网络连接信息(也即IP地址及端口号)一并转发至UDP连接发起终端处,以便于UDP连接发起终端后续进行UDP连接操作。
反之,在确认该UDP连接请求超时的情况下,UDP连接应答终端可生成失败信息,该失败信息用于指示UDP连接应答终端所接收的UDP连接请求超时。该失败信息可携带有时间戳,也可不携带时间戳。可以理解,当该失败信息携带有时间戳时,该时间戳用于表示该失败信息的生成时间,该生成时间约等于该失败信息的发送时间。UDP连接应答终端随之可以将该失败信息通过服务器发送给UDP连接发起终端,以作为对UDP连接发起终端所发送的UDP连接请求的负面反馈。
步骤102,若通过服务器,接收到UDP连接应答终端的网络连接信息以及UDP连接应答终端针对UDP连接请求所反馈的应答信息,该应答信息携带有UDP连接应答终端发送应答信息时对应的应答时间戳,则基于应答时间戳判断该应答信息是否超时。
在本申请实施例中,通过前文可知,UDP连接应答终端在接收到UDP连接请求,且该UDP连接请求未超时的情况下,会通过服务器向UDP连接发起终端反馈应答信息。也即,UDP连接应答终端反馈应答信息才是正常的流程。并且,服务器也会将UDP连接应答终端的网络连接信息(也即IP地址及端口号)发送给UDP连接发起终端。基于此,当UDP连接发起终端通过服务器接收到UDP连接应答终端所反馈的应答信息时,UDP连接发起终端可知道UDP连接请求的传输过程不存在延时或丢包。
但是,由于应答信息也是通过服务器进行中转的,因而该应答信息也可能出现数据延时的情况。对此,UDP连接发起终端在接收到该应答信息后,可基于该应答信息所携带的应答时间戳确定该应答信息是否超时,具体为:计算该应答时间戳与当前时间的时间差,记作第二时间差;若该第二时间差大于或等于预设的第二时间差阈值,则确定该应答信息超时;反之,若该第二时间差小于该第二时间差阈值,则确定该应答信息未超时。需要说明的是,该第二时间差阈值可以与第一时间差阈值相同,也可以不同,此处不作限定。
步骤103,若应答信息未超时,则基于UDP连接应答终端的网络连接信息开始UDP连接。
在本申请实施例中,当确定应答信息未超时时,UDP连接发起终端即可基于UDP连接应答终端的网络连接信息开始UDP连接;也即,UDP连接发起终端的UDP连接开始时间与应答信息的生成时间(也即发送时间)的时间差较小。而前文已描述了,UDP连接应答终端发送应答信息后,就会开始进行UDP连接,则可近似认为UDP连接应答终端的UDP连接开始时间与应答信息的生成时间(也即发送时间)相同,也即应答时间戳可近似看作UDP连接应答终端的UDP连接开始时间。由此可以推断出,UDP连接发起终端的UDP连接开始时间与UDP连接应答终端的UDP连接开始时间之间的时间差应也小于该第二时间差阈值,也即,UDP连接发起终端的UDP连接开始时间与UDP连接应答终端的UDP连接开始时间之间的时间差较小,可避免UDP连接因双方的UDP连接开始时间差异过大而失败。
在一些实施例中,在步骤101之前,UDP连接发起终端可以向服务器请求授时,以实现与UDP连接应答终端的时间同步。
可以理解,UDP连接发起终端与UDP连接应答终端在开始进行UDP连接之前,需要先进行时间同步,以保证二者处于同一时间***下。这样一来,UDP连接发起终端及UDP连接应答终端所进行的各项操作才可基于该同一时间***来进行描述。具体地,可由可靠的第三方设备作为中介,实现对UDP连接发起终端及UDP连接应答终端的时间同步。例如,UDP连接发起终端可向服务器请求授时,实现UDP连接发起终端与该服务器的时间同步;同样地,UDP连接应答终端也可向该服务器请求授时,实现UDP连接应答终端与服务器的时间同步;通过服务器的授时,使得UDP连接发起终端及UDP连接应答终端均与该服务器时间同步,即可实现UDP连接发起终端及UDP连接应答终端的时间同步。
可以理解,任一电子设备在向服务器进行数据交互时,即可使得服务器获知该电子设备的网络连接信息(也即IP地址及端口号)。因而,通过UDP连接发起终端及UDP连接应答终端在UDP连接前所进行的向服务器请求授时的操作,即可使得服务器获知UDP连接发起终端及UDP连接应答终端各自的网络连接信息(也即IP地址及端口号)。
当然,UDP连接发起终端及UDP连接应答终端也可以在向服务器请求授时后,再分别发送UDP数据包给服务器,以使得服务器进一步确认二者的IP地址及端口号。或者,若UDP连接发起终端及UDP连接应答终端是通过其它方式进行的时间同步,则在时间同步后,UDP连接发起终端及UDP连接应答终端也可以分别发送UDP数据包给服务器,以使得服务器获知UDP连接发起终端及UDP连接应答终端各自的网络连接信息(也即IP地址及端口号)。
在一些实施例中,由于UDP连接请求及UDP连接应答终端针对该UDP连接请求所发起的应答(包括应答信息及失败信息)都需要通过服务器进行中转,而在中转的过程中,有可能出现数据延时或丢包的异常情况。基于此,在出现数据延时或丢包时,UDP连接发起终端会面临如下几种不同的情形:
第一种,UDP连接发起终端所接收的应答信息超时。也即,UDP连接应答终端所接收的UDP连接请求未超时,其发出了应答信息这一正面反馈,但服务器在转发该应答信息的过程中超时了。
第二种,UDP连接发起终端通过服务器接收到了UDP连接应答终端针对UDP连接请求所反馈的失败信息。也即,UDP连接应答终端所接收的UDP连接请求超时,其发出了失败信息这一负面反馈。此时,无需考虑失败信息的超时情况,因为失败信息本身所指示的就是当前数据传输过程中已出现了超时现象。
第三种,UDP连接发起终端通过服务器,在预设的超时时间内未接收到UDP连接应答终端针对UDP连接请求所反馈的任何应答。这可能是UDP连接请求丢包而引起,也可能是UDP连接应答终端所反馈的应答(不管是应答信息还是失败信息)丢包而引起。仅作为示例,该超时时间可以是第一时间差阈值及第二时间差阈值的和,例如,在正常流程下,假定第一时间差阈值是5秒,也即UDP连接发起终端发出UDP连接请求后,UDP连接应答终端最迟应在发出该UDP连接请求后的第5秒收到该UDP连接请求;第二时间差阈值是5秒,也即UDP连接应答终端基于该UDP连接请求发出应答信息后,UDP连接发起终端最迟应在发出该应答信息后的第5秒收到该应答信息;则UDP连接发起终端从其发出UDP连接请求开始计算,最迟应在第10秒收到该应答信息,则超时时间可被设定为10秒。
针对以上这三种延时/丢包的情况,UDP连接发起终端会重新开始进行UDP连接前的准备动作;也即,UDP连接发起终端可返回执行步骤101及后续步骤。
在一些实施例中,UDP连接发起终端所进行的UDP连接失败,指的是UDP连接发起终端直接向UDP连接应答终端的IP地址和端口号发UDP消息(不再经过服务器中转),但未能接收到UDP连接应答终端的应答。由于步骤101-103已保障了双方UDP连接开始时间的尽量一致,因而基本不会出现因双方的UDP连接开始时间差异过大而导致的UDP连接失败。然而,UDP连接发起终端/UDP连接应答终端自身的软/硬件故障等原因仍然可能导致UDP连接失败的情况出现。并且,正常情况下,UDP连接发起终端及UDP连接应答终端都会进行UDP连接的操作,也即这一通信过程是双向的,因而UDP连接发起终端所进行的UDP连接失败通常意味着UDP连接接收终端所进行的UDP连接也会失败。考虑到目前可能引起UDP连接失败的因素为UDP连接发起终端/UDP连接应答终端自身,因而,可以在UDP连接失败时输出提醒消息,提醒用户对UDP连接发起终端/UDP连接应答终端进行检修;并在输出提醒消息后,重新执行与UDP连接相关的所有流程,也即返回执行与时间同步相关的步骤(例如向服务器请求授时的步骤)及后续步骤。
由上可见,通过本申请实施例,由于UDP连接发起终端与UDP连接应答终端在UDP连接前先进行了时间同步,因而可使得二者的各个操作在同一时间***下进行:只有UDP连接应答终端所接收到的UDP连接请求未超时时,才反馈应答信息;只有UDP连接发起终端所接收到的应答信息未超时时,才开始UDP连接。通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。
下面对本申请实施例提供的另一种UDP连接方法进行描述。该UDP连接方法应用于UDP连接应答终端。参见图2,本申请实施例中的UDP连接方法包括:
步骤201,通过服务器,若接收到UDP连接发起终端的网络连接信息以及UDP连接发起终端所发送的UDP连接请求,该UDP连接请求携带有发送该UDP连接请求时对应的发送时间戳,则基于该发送时间戳判断该UDP连接请求是否超时。
在本申请实施例中,服务器在接收到UDP连接发起终端所发送的UDP连接请求后,会将该UDP连接请求以及该UDP连接发起终端的网络连接信息(也即IP地址及端口号)发送给UDP连接应答终端。由该过程可知,由于UDP连接请求是通过服务器进行中转的,因而该UDP连接请求可能出现数据延时的情况。对此,UDP连接应答终端在接收到该UDP连接请求后,可基于该UDP连接请求所携带的发送时间戳确定该UDP连接请求是否超时,具体为:计算该发送时间戳与当前时间的时间差,记作第一时间差;若该第一时间差大于或等于预设的第一时间差阈值,则确定该UDP连接请求超时;反之,若该第一时间差小于该第一时间差阈值,则确定该UDP连接请求未超时。
步骤202,若该UDP连接请求未超时,则针对该UDP连接请求,通过服务器向UDP连接发起终端反馈应答信息。
在本申请实施例中,在确认该UDP连接请求未超时的情况下,UDP连接应答终端可生成应答信息,该应答信息用于指示UDP连接应答终端所接收的UDP连接请求未超时,且该应答信息同样携带有时间戳,记作应答时间戳。可以理解,该应答时间戳用于表示该应答信息的生成时间,该生成时间约等于该应答信息的发送时间。UDP连接应答终端随之可以将该应答信息通过服务器发送给UDP连接发起终端,以作为对UDP连接发起终端所发送的UDP连接请求的正面反馈。
反之,在确认该UDP连接请求超时的情况下,UDP连接应答终端可生成失败信息,该失败信息用于指示UDP连接应答终端所接收的UDP连接请求超时。该失败信息可携带有时间戳,也可不携带时间戳。可以理解,当该失败信息携带有时间戳时,该时间戳用于表示该失败信息的生成时间,该生成时间约等于该失败信息的发送时间。UDP连接应答终端随之可以将该失败信息通过服务器发送给UDP连接发起终端,以作为对UDP连接发起终端所发送的UDP连接请求的负面反馈。
步骤203,在向UDP连接发起终端反馈该应答信息后,基于UDP连接发起终端的网络连接信息开始UDP连接。
在本申请实施例中,对于UDP连接应答终端来说,在其接收到的UDP连接请求未超时的情况下,可确认当前还未出现数据延时或丢包的情况。因而,UDP连接应答终端可以在针对该UDP连接请求发出应答信息这一正面反馈后,立即基于UDP连接发起终端的网络连接信息(也即IP地址及端口号)开始UDP连接。可以理解,通过前文所示出的步骤101-103可知,只要UDP连接发起终端所接收到的应答信息未超时,该UDP连接发起终端也会立即开始UDP连接。这可保障UDP连接发起终端的UDP连接开始时间与UDP连接应答终端的UDP连接开始时间之间的时间差较小,可避免UDP连接因双方的UDP连接开始时间差异过大而失败。
在一些实施例中,在步骤201之前,UDP连接应答终端可以向服务器请求授时,以实现与UDP连接发起终端的时间同步。
可以理解,UDP连接应答终端与UDP连接发起终端在开始进行UDP连接之前,需要先进行时间同步,以保证二者处于同一时间***下。这样一来,UDP连接应答终端及UDP连接发起终端所进行的各项操作都可基于该同一时间***来进行描述。具体地,可由可靠的第三方设备作为中介,实现对UDP连接应答终端及UDP连接发起终端的时间同步。例如,UDP连接应答终端可向服务器请求授时,实现UDP连接应答终端与该服务器的时间同步;同样地,UDP连接发起终端也可向该服务器请求授时,实现UDP连接发起终端与服务器的时间同步;通过服务器的授时,使得UDP连接应答终端及UDP连接发起终端均与该服务器时间同步,即可实现UDP连接应答终端及UDP连接发起终端的时间同步。
可以理解,任一电子设备在向服务器进行数据交互时,即可使得服务器获知该电子设备的网络连接信息(也即IP地址及端口号)。因而,通过UDP连接应答终端及UDP连接发起终端在UDP连接前所进行的向服务器请求授时的操作,即可使得服务器获知UDP连接应答终端及UDP连接发起终端各自的网络连接信息(也即IP地址及端口号)。
当然,UDP连接应答终端及UDP连接发起终端也可以在向服务器请求授时后,再分别发送UDP数据包给服务器,以使得服务器进一步确认二者的IP地址及端口号。或者,若UDP连接应答终端及UDP连接发起终端是通过其它方式进行的时间同步,则在时间同步后,UDP连接应答终端及UDP连接发起终端也可以分别发送UDP数据包给服务器,以使得服务器获知UDP连接发起终端及UDP连接应答终端各自的网络连接信息(也即IP地址及端口号)。
在一些实施例中,由于UDP连接应答终端是在应答信息发出后就开始了UDP连接,而应答信息也是通过服务器进行中转的,因而该应答信息仍可能出现数据延时或丢包的情况。由前文所示出的UDP连接发起终端的各项操作可知,当UDP连接发起终端所接收的应答信息超时时,或者UDP连接发起终端未接收到UDP连接应答终端的任何应答时,该UDP连接发起终端均会再次通过服务器向UDP连接应答终端发出UDP连接请求。因而,对于UDP连接应答终端来说,若其开始UDP连接后,在UDP连接的过程中,再次接收到了UDP连接发起终端通过服务器所发送的UDP连接请求,则表明其所发出的应答信息出现延时或丢包,也即UDP连接应答终端无法在原定时间内进行UDP连接,此时UDP连接应答终端会放弃其当前所进行的UDP连接操作,并基于再次接收到的UDP连接请求返回执行基于上述发送时间戳判断UDP连接请求是否超时的步骤及后续步骤。
在一些实施例中,在UDP连接应答终端所进行的UDP连接失败时,UDP连接发起终端所进行的UDP连接通常也会失败,具体已在前文应用于UDP连接发起终端的UDP连接方法的实施例中进行了说明。与UDP连接发起终端类似,UDP连接应答终端也可以在UDP连接失败时输出提醒消息,提醒用户对UDP连接发起终端/UDP连接应答终端进行检修;并在输出提醒消息后,重新执行与UDP连接相关的所有流程,也即返回执行与时间同步相关的步骤(例如向服务器请求授时的步骤)及后续步骤,在此不再赘述。
由上可见,通过本申请实施例,由于UDP连接发起终端与UDP连接应答终端在UDP连接前先进行了时间同步,因而可使得二者的各个操作在同一时间***下进行:只有UDP连接应答终端所接收到的UDP连接请求未超时时,才反馈应答信息。且在UDP连接应答终端开始UDP连接后,一旦再次接收到了UDP连接应答终端所发送的UDP连接请求,则立即放弃本次UDP连接的操作,并基于该UDP连接请求开始新一轮次的UDP连接的准备动作及后续操作。可见,本方案通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。
为便于理解本申请实施例所提出的UDP连接方法,下面以客户端A为UDP连接发起终端,以客户端B为UDP连接应答终端为例,描述正常情况下双方的处理流程:
(1)、客户端A请求服务器授时,由此,服务器获知客户端A的IP地址和端口号。
(2)、客户端B请求服务器授时,由此,服务器获知客户端B的IP地址和端口号。
(3)、客户端A通过服务器向客户端B发送加了发送时间戳的UDP连接请求。
(4)、服务器将UDP连接请求,以及客户端A的IP地址和端口号发送给客户端B。
(5)、客户端B接收到UDP连接请求以及客户端A的IP地址和端口号,且根据UDP连接请求的时间戳判断出UDP连接请求未超时,通过服务器向客户端A返回加了应答时间戳的应答信息。
(6)、服务器将应答信息,以及客户端B的IP地址和端口号发送给客户端A。
(7)、客户端A接收到应答信息以及客户端B的IP地址和端口号,且根据应答信息的应答时间戳判断出应答信息未超时。
(8)、在步骤(7)后,客户端A直接向客户端B的IP地址和端口号发UPD消息,客户端B收到后应答。
(9)、在步骤(5)后,客户端B直接向客户端A的IP地址和端口号发UDP消息,客户端A收到后应答。
下面以客户端A为UDP连接发起终端,以客户端B为UDP连接应答终端为例,描述UDP连接请求丢包时双方的处理流程:
(1)、客户端A请求服务器授时,由此,服务器获知客户端A的IP地址和端口号。
(2)、客户端B请求服务器授时,由此,服务器获知客户端B的IP地址和端口号。
(3)、客户端A通过服务器向客户端B发送加了发送时间戳的UDP连接请求。
(4)、由于UDP连接请求丢包,因而客户端B不会反馈任何应答;相应地,客户端A无法接收到客户端B的任何应答。客户端A返回执行步骤(3)。
下面以客户端A为UDP连接发起终端,以客户端B为UDP连接应答终端为例,描述UDP连接请求出现延时时双方的处理流程:
(1)、客户端A请求服务器授时,由此,服务器获知客户端A的IP地址和端口号。
(2)、客户端B请求服务器授时,由此,服务器获知客户端B的IP地址和端口号。
(3)、客户端A通过服务器向客户端B发送加了发送时间戳的UDP连接请求。
(4)、服务器将UDP连接请求,以及客户端A的IP地址和端口号发送给客户端B。
(5)、客户端B接收到UDP连接请求以及客户端A的IP地址和端口号,且根据UDP连接请求的发送时间戳判断出UDP连接请求超时,通过服务器向客户端A返回失败信息。
(6)、服务器将失败信息发送给客户端A。
(7)、客户端A接收到失败信息,返回执行步骤(3)。
下面以客户端A为UDP连接发起终端,以客户端B为UDP连接应答终端为例,描述应答信息延时或丢包时双方的处理流程:
(1)、客户端A请求服务器授时,由此,服务器获知客户端A的IP地址和端口号。
(2)、客户端B请求服务器授时,由此,服务器获知客户端B的IP地址和端口号。
(3)、客户端A通过服务器向客户端B发送加了发送时间戳的UDP连接请求。
(4)、服务器将UDP连接请求,以及客户端A的IP地址和端口号发送给客户端B。
(5)、客户端B接收到UDP连接请求以及客户端A的IP地址和端口号,且根据UDP连接请求的时间戳判断出UDP连接请求未超时,通过服务器向客户端A返回加了应答时间戳的应答信息。
(6)、服务器将应答信息,以及客户端B的IP地址和端口号发送给客户端A。
(7)、因应答信息丢包,导致客户端A未接收到任何应答;或者,客户端A接收到应答信息以及客户端B的IP地址和端口号,且根据应答信息的时间戳判断出应答信息超时,则返回执行步骤(3)。
(8)、在步骤(5)后,客户端B向客户端A的IP地址和端口号发UDP消息,客户端A收到后应答,客户端B等待客户端A的UDP连接。但之后客户端B会接收到因客户端A返回执行步骤(3)所再次发送的UDP连接请求,此时客户端B放弃UDP连接(也即放弃等待客户端A的UDP连接),返回执行步骤(5)。
对应于上文所提供的应用于UDP连接发起终端的UDP连接方法,本申请实施例还提供了一种UDP连接装置。参见图3,本申请实施例中的UDP连接装置300包括:
第一请求模块301,用于通过服务器,向UDP连接应答终端发送UDP连接请求;
第一判断模块302,用于若通过上述服务器,接收到上述UDP连接应答终端的网络连接信息以及上述UDP连接应答终端针对上述UDP连接请求所反馈的应答信息,上述应答信息携带有上述UDP连接应答终端发送上述应答信息时对应的应答时间戳,则基于上述应答时间戳判断上述应答信息是否超时,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
第一连接模块303,用于若上述应答信息未超时,则基于上述UDP连接应答终端的网络连接信息开始UDP连接。
可选地,上述UDP连接装置300还包括:
第二请求模块,用于在上述通过服务器,向UDP连接应答终端发送UDP连接请求之前,向上述服务器请求授时,以实现与上述UDP连接应答终端的时间同步。
可选地,上述第一请求模块301在以下条件下被再次触发运行:
上述应答信息超时。
可选地,上述第一请求模块301在以下条件下被再次触发运行:
在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,通过上述服务器,接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的失败信息,其中,上述失败信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求已超时。
可选地,上述第一请求模块301在以下条件下被再次触发运行:
在通过上述服务器向UDP连接应答终端发送UDP连接请求之后,通过上述服务器,未接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的信息。
可选地,上述第二请求模块在以下条件下被再次触发运行:
UDP连接发起终端所进行的UDP连接失败。
由上可见,通过本申请实施例,由于UDP连接发起终端与UDP连接应答终端在UDP连接前先进行了时间同步,因而可使得二者的各个操作在同一时间***下进行:只有UDP连接应答终端所接收到的UDP连接请求未超时时,才反馈应答信息;只有UDP连接发起终端所接收到的应答信息未超时时,才开始UDP连接。通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。
对应于上文所提供的应用于UDP连接应答终端的UDP连接方法,本申请实施例还提供了一种UDP连接装置。参见图4,本申请实施例中的UDP连接装置400包括:
第二判断模块401,用于通过服务器,若接收到UDP连接发起终端的网络连接信息以及上述UDP连接发起终端所发送的UDP连接请求,上述UDP连接请求携带有发送上述UDP连接请求时对应的发送时间戳,则基于上述发送时间戳判断上述UDP连接请求是否超时;
第一反馈模块402,用于若上述UDP连接请求未超时,则针对上述UDP连接请求,通过上述服务器向上述UDP连接发起终端反馈应答信息,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
第二连接模块403,用于在向上述UDP连接发起终端反馈上述应答信息后,基于上述UDP连接发起终端的网络连接信息开始UDP连接。
可选地,上述UDP连接装置还包括:
第三请求模块,用于向上述服务器请求授时,以实现与上述UDP连接发起终端的时间同步。
可选地,上述UDP连接装置还包括:
第二反馈模块,用于若上述UDP连接请求超时,则针对上述UDP连接请求,通过上述服务器向上述UDP连接发起终端反馈失败信息,其中,上述失败信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求超时。
可选地,上述第二判断模块401在以下条件下被再次触发执行:
上述UDP连接应答终端在UDP连接的过程中,再次接收到上述UDP连接发起终端通过上述服务器所发送的UDP连接请求。
可选地,上述第三请求模块在以下条件下被再次触发执行:
UDP连接应答终端所进行的UDP连接失败。
由上可见,通过本申请实施例,由于UDP连接发起终端与UDP连接应答终端在UDP连接前先进行了时间同步,因而可使得二者的各个操作在同一时间***下进行:只有UDP连接应答终端所接收到的UDP连接请求未超时时,才反馈应答信息。且在UDP连接应答终端开始UDP连接后,一旦再次接收到了UDP连接应答终端所发送的UDP连接请求,则立即放弃本次UDP连接的操作,并基于该UDP连接请求开始新一轮次的UDP连接的准备动作及后续操作。可见,本方案通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。
对应于上文所提供的UDP连接方法,本申请实施例还提供了一种电子设备,参见图5,本申请实施例中的电子设备5包括:存储器501,一个或多个处理器502(图5中仅示出一个)及存储在存储器501上并可在处理器上运行的计算机程序。其中:存储器501用于存储软件程序以及模块,处理器502通过运行存储在存储器501的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取预设事件对应的资源。
在一种应用场景下,上述电子设备作为UDP连接发起终端时,处理器502通过运行存储在存储器501的上述计算机程序时实现以下步骤:
通过服务器,向UDP连接应答终端发送UDP连接请求;
若通过上述服务器,接收到上述UDP连接应答终端的网络连接信息以及上述UDP连接应答终端针对上述UDP连接请求所反馈的应答信息,上述应答信息携带有上述UDP连接应答终端发送上述应答信息时对应的应答时间戳,则基于上述应答时间戳判断上述应答信息是否超时,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
若上述应答信息未超时,则基于上述UDP连接应答终端的网络连接信息开始UDP连接。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之前,包括:
向上述服务器请求授时,以实现与上述UDP连接应答终端的时间同步。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第三种可能的实施方式中,在上述基于上述应答时间戳判断上述应答信息是否超时之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
若上述应答信息超时,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
若通过上述服务器,接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的失败信息,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤,其中,上述失败信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求已超时。
在上述第一种可能的实施方式作为基础,或者上述第二种可能的实施方式作为基础而提供的第四种可能的实施方式中,在上述通过服务器,向UDP连接应答终端发送UDP连接请求之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
若通过上述服务器,未接收到上述UDP连接应答终端针对上述UDP连接请求所反馈的信息,则返回执行上述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
在上述第二种可能的实施方式作为基础而提供的第六种可能的实施方式中,在上述基于上述UDP连接应答终端的网络连接信息开始UDP连接之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
若UDP连接失败,则返回执行上述向上述服务器请求授时的步骤及后续步骤。
在另一种应用场景下,上述电子设备作为UDP连接应答终端时,处理器502通过运行存储在存储器501的上述计算机程序时实现以下步骤:
通过上述服务器,若接收到UDP连接发起终端的网络连接信息以及上述UDP连接发起终端所发送的UDP连接请求,上述UDP连接请求携带有发送上述UDP连接请求时对应的发送时间戳,则基于上述发送时间戳判断上述UDP连接请求是否超时;
若上述UDP连接请求未超时,则针对上述UDP连接请求,通过上述服务器向上述UDP连接发起终端反馈应答信息,其中,上述应答信息用于指示上述UDP连接应答终端所接收的上述UDP连接请求未超时;
在向上述UDP连接发起终端反馈上述应答信息后,基于上述UDP连接发起终端的网络连接信息开始UDP连接。
假设上述为第五种可能的实施方式,则在第五种可能的实施方式作为基础而提供的第六种可能的实施方式中,在上述基于上述UDP连接发起终端的网络连接信息开始UDP连接之后,处理器502通过运行存储在存储器501的上述计算机程序时还实现以下步骤:
若上述UDP连接应答终端在UDP连接的过程中,再次接收到上述UDP连接发起终端通过上述服务器所发送的UDP连接请求,则返回执行上述基于上述发送时间戳确定上述UDP连接请求是否超时的步骤及后续步骤。
应当理解,在本申请实施例中,所称处理器502可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器501可以包括只读存储器和随机存取存储器,并向处理器502提供指令和数据。存储器501的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器501还可以存储设备类型的信息。
由上可见,通过本申请实施例,由于UDP连接发起终端与UDP连接应答终端在UDP连接前先进行了时间同步,因而可使得二者的各个操作在同一时间***下进行:只有UDP连接应答终端所接收到的UDP连接请求未超时时,才反馈应答信息;只有UDP连接发起终端所接收到的应答信息未超时时,才开始UDP连接。通过数据超时的判断,实现了对UDP连接过程的优化,可一定程度上避免某一方在出现数据延时或丢包时仍继续UDP连接的情况。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述***中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者外部设备软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的***实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关联的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读存储介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机可读存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读存储介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读存储介质不包括是电载波信号和电信信号。
以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (10)
1.一种UDP连接方法,其特征在于,应用于UDP连接发起终端,包括:
通过服务器,向UDP连接应答终端发送UDP连接请求;
若通过所述服务器,接收到所述UDP连接应答终端的网络连接信息以及所述UDP连接应答终端针对所述UDP连接请求所反馈的应答信息,所述应答信息携带有所述UDP连接应答终端发送所述应答信息时对应的应答时间戳,则基于所述应答时间戳判断所述应答信息是否超时,其中,所述应答信息用于指示所述UDP连接应答终端所接收的所述UDP连接请求未超时;
若所述应答信息未超时,则基于所述UDP连接应答终端的网络连接信息开始UDP连接。
2.如权利要求1所述的UDP连接方法,其特征在于,在所述通过服务器,向UDP连接应答终端发送UDP连接请求之前,所述UDP连接方法还包括:
向所述服务器请求授时,以实现与所述UDP连接应答终端的时间同步。
3.如权利要求1或2所述的UDP连接方法,其特征在于,在所述基于所述应答时间戳判断所述应答信息是否超时之后,所述UDP连接方法还包括:
若所述应答信息超时,则返回执行所述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
4.如权利要求1或2所述的UDP连接方法,其特征在于,在所述通过服务器,向UDP连接应答终端发送UDP连接请求之后,所述UDP连接方法还包括:
若通过所述服务器,接收到所述UDP连接应答终端针对所述UDP连接请求所反馈的失败信息,则返回执行所述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤,其中,所述失败信息用于指示所述UDP连接应答终端所接收的所述UDP连接请求已超时。
5.如权利要求1或2所述的UDP连接方法,其特征在于,在所述通过服务器,向UDP连接应答终端发送UDP连接请求之后,所述UDP连接方法还包括:
若通过所述服务器,未接收到所述UDP连接应答终端针对所述UDP连接请求所反馈的信息,则返回执行所述通过服务器,向UDP连接应答终端发送UDP连接请求的步骤及后续步骤。
6.如权利要求2所述的UDP连接方法,其特征在于,在所述基于所述UDP连接应答终端的网络连接信息开始UDP连接之后,所述UDP连接方法还包括:
若UDP连接失败,则返回执行所述向所述服务器请求授时的步骤及后续步骤。
7.一种UDP连接方法,其特征在于,应用于UDP连接应答终端,包括:
通过服务器,若接收到UDP连接发起终端的网络连接信息以及所述UDP连接发起终端所发送的UDP连接请求,所述UDP连接请求携带有发送所述UDP连接请求时对应的发送时间戳,则基于所述发送时间戳判断所述UDP连接请求是否超时;
若所述UDP连接请求未超时,则针对所述UDP连接请求,通过所述服务器向所述UDP连接发起终端反馈应答信息,其中,所述应答信息用于指示所述UDP连接应答终端所接收的所述UDP连接请求未超时;
在向所述UDP连接发起终端反馈所述应答信息后,基于所述UDP连接发起终端的网络连接信息开始UDP连接。
8.如权利要求7所述的UDP连接方法,其特征在于,在所述基于所述UDP连接发起终端的网络连接信息开始UDP连接之后,所述UDP连接方法还包括:
若所述UDP连接应答终端在UDP连接的过程中,再次接收到所述UDP连接发起终端通过所述服务器所发送的UDP连接请求,则返回执行所述基于所述发送时间戳确定所述UDP连接请求是否超时的步骤及后续步骤。
9.一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至6任一项所述的方法;或者,所述处理器执行所述计算机程序时实现如权利要求7或8所述的方法。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的方法;或者,所述计算机程序被处理器执行时实现如权利要求7或8所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111239819.XA CN113965630A (zh) | 2021-10-25 | 2021-10-25 | 一种udp连接方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111239819.XA CN113965630A (zh) | 2021-10-25 | 2021-10-25 | 一种udp连接方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113965630A true CN113965630A (zh) | 2022-01-21 |
Family
ID=79466595
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111239819.XA Pending CN113965630A (zh) | 2021-10-25 | 2021-10-25 | 一种udp连接方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113965630A (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442492A (zh) * | 2008-12-26 | 2009-05-27 | 中国科学院计算技术研究所 | 一种p2p网络中实现nat穿越的方法和*** |
CN101873359A (zh) * | 2010-06-28 | 2010-10-27 | 北京神州泰岳软件股份有限公司 | 实现udp打洞的方法 |
CN101883156A (zh) * | 2010-06-22 | 2010-11-10 | 北京神州泰岳软件股份有限公司 | 穿越nat设备的方法 |
WO2017012142A1 (zh) * | 2015-07-22 | 2017-01-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种双连接安全通讯的方法及装置 |
CN110557290A (zh) * | 2019-09-17 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 网络加速服务的处理方法及装置 |
CN112637364A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 建立p2p连接的方法、客户端及*** |
-
2021
- 2021-10-25 CN CN202111239819.XA patent/CN113965630A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101442492A (zh) * | 2008-12-26 | 2009-05-27 | 中国科学院计算技术研究所 | 一种p2p网络中实现nat穿越的方法和*** |
CN101883156A (zh) * | 2010-06-22 | 2010-11-10 | 北京神州泰岳软件股份有限公司 | 穿越nat设备的方法 |
CN101873359A (zh) * | 2010-06-28 | 2010-10-27 | 北京神州泰岳软件股份有限公司 | 实现udp打洞的方法 |
WO2017012142A1 (zh) * | 2015-07-22 | 2017-01-26 | 宇龙计算机通信科技(深圳)有限公司 | 一种双连接安全通讯的方法及装置 |
CN110557290A (zh) * | 2019-09-17 | 2019-12-10 | 腾讯科技(深圳)有限公司 | 网络加速服务的处理方法及装置 |
CN112637364A (zh) * | 2021-01-06 | 2021-04-09 | 上海哔哩哔哩科技有限公司 | 建立p2p连接的方法、客户端及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108712485B (zh) | 一种物联网设备的资源订阅方法和装置 | |
WO2021121370A1 (zh) | 用于消息队列的消息丢失检测方法和装置 | |
CN111901076B (zh) | 一种车辆诊断数据转发方法、装置及网关 | |
JP2018528679A (ja) | 負荷平衡システムにおいて接続を確立するデバイス及び方法 | |
CN111224999A (zh) | 一种传输协议切换方法、装置、设备及存储介质 | |
EP2079024A1 (en) | Proxy server, communication system, communication method, and program | |
US9621412B2 (en) | Method for guaranteeing service continuity in a telecommunication network and system thereof | |
CN104038845A (zh) | 报文传输方法及装置 | |
RU2012106659A (ru) | Способ для переноса сеанса связи в телекоммуникационной сети первого соединения во второе соединение | |
CN102917082B (zh) | 穿透网络地址转换的消息推送方法及*** | |
KR20100084118A (ko) | 물리적 전송 매체의 인터럽션 경우에 있어서 tcp 데이터 전송 프로세스를 향상시키는 방법 | |
US20230031062A1 (en) | Data processing method and apparatus, related device, and storage medium | |
US11997066B2 (en) | Data transmission system and method for edge computing and computer readable medium thereof | |
WO2011015020A1 (zh) | 文件传输方法、***及客户端 | |
WO2023221452A1 (zh) | 报文处理***、方法、设备和存储介质 | |
CN113746733A (zh) | 表项同步方法、网关设备、组网***及存储介质 | |
US20180227332A1 (en) | A method and computer program products for probing the status of an ip-based communication connection in order to receive an incoming communication | |
EP4366334A1 (en) | Message processing method, electronic device, and storage medium | |
US20150067066A1 (en) | Provisioning Communication Services using Proxy Server in a Cloud | |
US10412778B2 (en) | Data transmission method and apparatus for data service | |
US20120096179A1 (en) | Method For Processing Initial SIP Requests By Backends Of A SIP Cluster In The Presence Of A Fault, And Associated Processing Device | |
CN113965630A (zh) | 一种udp连接方法、电子设备及存储介质 | |
WO2012100698A1 (zh) | 传输精确时钟同步协议消息的方法、设备及*** | |
CN111416851A (zh) | 在多个负载均衡器之间进行会话同步的方法和负载均衡器 | |
CN109120578B (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 |