CN104468278B - 基于stun协议的udp老化时间检测系统及方法 - Google Patents

基于stun协议的udp老化时间检测系统及方法 Download PDF

Info

Publication number
CN104468278B
CN104468278B CN201410800325.8A CN201410800325A CN104468278B CN 104468278 B CN104468278 B CN 104468278B CN 201410800325 A CN201410800325 A CN 201410800325A CN 104468278 B CN104468278 B CN 104468278B
Authority
CN
China
Prior art keywords
link
socket
stun
udp
sides
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
Application number
CN201410800325.8A
Other languages
English (en)
Other versions
CN104468278A (zh
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.)
PANSOFT Co.,Ltd.
Original Assignee
Shanghai Feixun Data Communication Technology 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 Shanghai Feixun Data Communication Technology Co Ltd filed Critical Shanghai Feixun Data Communication Technology Co Ltd
Priority to CN201410800325.8A priority Critical patent/CN104468278B/zh
Publication of CN104468278A publication Critical patent/CN104468278A/zh
Application granted granted Critical
Publication of CN104468278B publication Critical patent/CN104468278B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种基于STUN协议的UDP老化时间检测系统及方法,该方法包括:由第一套接口按照一链路检测时间而发送第一链路测试请求包至STUN伺服端,由STUN伺服端向第一套接口回复第一链路测试响应包并更新链路信息;由第二套接口发送第二链路测试请求包至STUN伺服端,由STUN伺服端回复第二链路测试响应包至第一套接口;选定其他链路检测时间,重复检测;最后由第一套接口根据第二链路测试响应包的接收状态而确定STUN客户端与STUN伺服端之间通信链路的UDP老化时间。本发明可简便且准确确定出通信链路的UDP老化时间,从而可根据UDP老化时间来决定STUN客户端发送数据包的频率,增强数据传输的可靠性。

Description

基于STUN协议的UDP老化时间检测系统及方法
技术领域
本发明属于信息技术领域,特别是涉及一种基于STUN协议的UDP老化时间检测系统及方法。
背景技术
随着网络的发展,网络的规模在不断扩大,网络用户的数量也在不断增加,然而由于历史原因以及IPV4网络地址的局限性,网络地址资源十分有限。为了缓解网络地址耗尽的问题,在IPV4地址中定义了私网IP地址段,可以用于构建私有网络,比如公司、企业内部网络,但是这些私网IP地址只能在局域网内部使用,无法在外部网络(Internet)上使用。所以为了使私网主机能够访问外部网络上的主机/服务器,在私网出口处部署NAT(NetworkAddress Translation,网络地址转换)设备,将私网IP地址转换为公网IP地址,以便私网主机能够在公网上使用。
在目前网络中已经存在大量的NAT设备来实现私网地址和公网地址的转换,但是NAT技术的采用破坏了IP网络的端到端可访问的特性。在一个部署了NAT网关的网络中,要从NAT网关外部(公网侧)主动发起到NAT网关内部(私网侧)的访问是非常困难的。
目前有很多技术来实现NAT网关的穿越,以保证一个应用可以从NAT网关外部主动访问到NAT网关内部。STUN(Simple Traversal of User Datagram Protocol ThroughNetwork Address Translators,UDP流协议穿透NAT的协议)技术是其中一种比较成功的技术,其原理如图1所示。STUN的关键技术思想就是由NAT网关内部的私网主机,在NAT网关上预先建立一个session(会话)信息,并将session信息通告给STUN服务器。外部主机如果希望发起与内部主机的通信,需要先从STUN服务器上查询到内部主机注册在NAT网关上的session信息,即内部主机的私网地址和端口与外部主机的公网地址和端口的对应关系,通过查询到的公网地址和端口,向NAT网关发起访问,由NAT网关根据对应关系进行转换,才能向NAT内部主机发起访问,在外部主机和内部主机之间建立UDP(UDP:User DatagramProtocol,用户数据包协议)通信。
由于NAT网关上session信息有一定的老化时间,当一个session信息表项达到老化时间(在老化时间内没有使用该session表项来进行报文的转发),该session表项将被删除。为了保证session信息的有效性,作为STUN客户端的内部主机需要不断发送保活(KEEPALIVE)报文给STUN服务器,该报文定时通过NAT网关,以维持session信息不老化。保活报文是一种IP报文,该报文定时通过NAT网关,以维持session信息不老化。在现实网络中存在大量NAT主机,这些主机的保活报文将给STUN服务器带来巨大的性能压力。
在一实际应用中,当该STUN客户端为WiFi智能插座或智能路由器的情况下,STUN客户端(也即WiFi智能插座或智能路由器)则需要向STUN服务器周期性发送UDP心跳包,而在向STUN服务器周期性发送UDP心跳包的过程中会经过一个甚至多个NAT设备,而每个NAT设备的UDP老化时间都不一致,且STUN客户端无法事先预知。如果以一个比较小的心跳发包,比如20s,可能占用过多的带宽导致带宽的浪费,如果以一个比较大的心跳发包,即超过整个链路上最小的UDP老化时间,那么在此期间如果有数据包通过此链路发送到客户端时,数据包将到达不了STUN客户端,从而使通信失败。
发明内容
本发明的目的在于提供一种基于STUN协议的UDP老化时间检测系统及方法,以解决现有技术由于不能确定UDP老化时间而致通信失败等问题。
本发明提供一种一种基于STUN协议的UDP老化时间检测系统,其特征在于,包括:NAT网关、通过所述NAT网关而通信连接的STUN伺服端和STUN客户端,其中,所述STUN客户端配置有相互通信连接的第一套接口和第二套接口;所述第一套接口,用于按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至所述STUN伺服端,以令所述STUN伺服端根据所述第一链路测试请求包而向所述第一套接口回复第一链路测试响应包并将链路信息更新为所述第一套接口的链路数据;所述第二套接口,用于根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,以令所述STUN伺服端根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的所述第一套接口,由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间。
可选地,所述第二套接口还包括发送链路保持请求包至所述STUN伺服端,令所述STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口,以令所述STUN客户端与所述STUN伺服端之间通信链路保持畅通。
可选地,所述UDP老化时间检测系统还包括时间设置单元,用于设置所述链路检测时间组中的各个链路检测时间。
可选地,所述第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端中的所述链路检测时间是由所述第一套接口发送至所述第二套接口而获得的。
可选地,所述UDP老化时间检测系统还包括定时单元,所述定时单元中的设定时间为所述链路检测时间;所述第二套接口,用于根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,包括:所述第二套接口接收到来自所述第一套接口所发送的所述链路检测时间,将所述链路检测时间作为所述定时单元的设定时间并启动所述定时单元,在设定时间结束之后,由所述第二套接口向所述STUN伺服端发送第二链路测试请求包。
本发明另提供一种基于STUN协议的UDP老化时间检测方法,包括:
1)由第一套接口按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至STUN伺服端,由所述STUN伺服端根据所述第一链路测试请求包而向所述第一套接口回复第一链路测试响应包并将链路信息更新为所述第一套接口的链路数据;
2)由第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,由所述STUN伺服端根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的所述第一套接口;
选定所述链路检测时间组中的其他链路检测时间,重复上述1)和2);
由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间。
可选地,所述UDP老化时间检测方法还包括:在检测过程中,由所述第二套接口发送链路保持请求包至所述STUN伺服端,使得所述STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口,以令所述STUN客户端与所述STUN伺服端之间通信链路保持畅通。
可选地,所述UDP老化时间检测方法还包括:预先设置所述链路检测时间组中的各个链路检测时间。
可选地,由第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,包括:第二套接口接收到来自所述第一套接口所发送的所述链路检测时间,将所述链路检测时间作为设定时间并启动定时,在设定时间结束之后,由所述第二套接口向所述STUN伺服端发送第二链路测试请求包。
可选地,由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间,包括:若所述第一套接口在当前链路检测时间下接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要大于所述当前链路检测时间,之后,选定大于当前链路检测时间的下一个链路检测时间以进行继续检测;若所述第一套接口在当前链路检测时间下没有接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要小于所述当前链路检测时间,将所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间确定为小于所述当前链路检测时间的上一个链路检测时间。
本发明提供的基于STUN协议的UDP老化时间检测系统及方法,主要是在STUN客户端处提供了第一套接口和第二套接口,并设定了包含有多个链路检测时间的一组链路检测时间组,多个链路检测时间具有时间间隔,通过所述第一套接口和所述第二套接口根据链路检测时间而与STUN伺服端进行交互通信,以检测出所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间,解决现有技术中网络链路上UDP老化时间不能准确确定而致通信失败等问题,从而可以根据检测到的UDP老化时间来决定STUN客户端发送数据包的频率,增强数据传输的可靠性。
附图说明
图1为基于STUN协议的原理框图。
图2为本发明基于STUN协议的UDP老化时间检测系统在一个实施方式中的系统框图。
图3为图2在一具体实施例中的系统框图。
图4为本发明基于STUN协议的UDP老化时间检测方法在一个实施方式中的流程示意图。
具体实施方式
以下通过特定的具体实施例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
需要说明的是,本说明书所附图式所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本发明可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本发明所能产生的功效及所能达成的目的下,均应仍落在本发明所揭示的技术内容得能涵盖的范围内。同时,本说明书中所引用的如“上”、“下”、“左”、“右”、“中间”及“一”等的用语,亦仅为便于叙述的明了,而非用以限定本发明可实施的范围,其相对关系的改变或调整,在无实质变更技术内容下,当亦视为本发明可实施的范畴。
请参阅图2,显示了本发明基于STUN协议的UDP老化时间检测系统在一个实施方式中的系统框图。如图2所示,本发明基于STUN协议的UDP老化时间检测系统包括:NAT网关20、通过NAT网关20而通信连接的STUN伺服端21和STUN客户端23,其中,在STUN客户端23配置有相互通信连接的第一套接口X和第二套接口Y。我们知道,STUN(Simple Traversal of UserDatagram Protocol Through Network Address Translators,UDP流协议穿透NAT的协议)是一种网络协议,它允许位于NAT(或多重NAT)后的STUN客户端找出自己的公网地址,查出自己位于哪种类型的NAT之后以及NAT为某一个本地端口所绑定的Internet端端口,这些信息被用来在两个同时处于NAT路由器之后的主机之间建立UDP通信。需说明的是,在本实施方式中,STUN客户端为具有数据传输能力的网络设备,优选为例如:智能插座、智能路由器等,但并不以此为限。
第一套接口X,用于按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至STUN伺服端21,以令STUN伺服端21根据所述第一链路测试请求包而向第一套接口X回复第一链路测试响应包并将链路信息更新为第一套接口X的链路数据。在本实施方式中,为能准确地检测出STUN客户端23与STUN伺服端21之间通信链路的UDP老化时间,特别设置了一链路检测时间组,在该链路检测时间组内包含有多个链路检测时间,且多个链路检测时间具有时间间隔,优选地,各个链路检测时间以从小到大的方式依序进行检测。通过第一链路测试请求包,可使得第一套接口X与STUN伺服端21建立通信链接,并将STUN伺服端21的链路信息更新为第一套接口X的链路数据。另外,这里的链路数据包括IP地址(NAT IP)和网络端口(NAT Port)。
第二套接口Y,用于根据所述链路检测时间而发送第二链路测试请求包至STUN伺服端21,以令STUN伺服端21根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的第一套接口X,由所述第一套接口X根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间。在本实施方式中,第二套接口Y根据所述链路检测时间而发送第二链路测试请求包至STUN伺服端,包括:第二套接口Y接收到来自第一套接口X所发送的所述链路检测时间,启动定时,以所述链路检测时间作为定时时间,在定时结束之后,由第二套接口Y向STUN伺服端21发送第二链路测试请求包。另外,由第一套接口X根据所述第二链路测试响应包的接收状态而确定STUN客户端23与STUN伺服端21之间通信链路的UDP老化时间,包括:若第一套接口X在当前链路检测时间下接收到所述第二链路测试响应包,则判定STUN客户端23与STUN伺服端21之间通信链路的UDP老化时间要大于所述当前链路检测时间。之后,选定大于当前链路检测时间的下一个链路检测时间以进行继续检测,并再通过第一套接口X按照下一个链路检测时间而发送第一链路测试请求包至STUN伺服端21以及第二套接口Y根据下一个链路检测时间而发送第二链路测试请求包至STUN伺服端21,以令STUN伺服端21根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的第一套接口X。若第一套接口X在当前链路检测时间下没有接收到所述第二链路测试响应包,则判定STUN客户端23与STUN伺服端21之间通信链路UDP老化时间要小于当前链路检测时间,将STUN客户端23与STUN伺服端21之间通信链路的UDP老化时间确定为小于所述当前链路检测时间的上一个链路检测时间。
再有,在本发明中,针对第二套接口Y:第二套接口Y还包括发送链路保持请求包至所述STUN伺服端,令所述STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口Y,以令STUN客户端23与STUN伺服端21之间通信链路保持畅通。
请参阅图3,显示了图2在一具体实施例中的系统框图。如图3所示,在该具体实施例中,本发明基于STUN协议的UDP老化时间检测系统除了NAT网关20、STUN伺服端21、STUN客户端23、以及配置于STUN客户端23的第一套接口X和第二套接口Y之外,还包括:时间设置单元231和定时单元233,
时间设置单元231,用于设置所述链路检测时间组中的各个链路检测时间。在该链路检测时间组内包含有多个链路检测时间,且多个链路检测时间具有时间间隔,优选地,各个链路检测时间以从小到大的方式依序进行检测。
定时单元233,用于设定第二套接口Y发送第二链路请求的时机。在本实施例中,定时单元233中的设定时间为所述链路检测时间。
请参阅图4,显示了本发明基于STUN协议的UDP老化时间检测方法在一个实施方式中的流程示意图。结合图3(图2)和图4,本发明基于STUN协议的UDP老化时间检测方法包括:
步骤S201,预先设置一链路检测时间组中的各个链路检测时间。在本实施方式中,在该链路检测时间组内包含有多个链路检测时间,且多个链路检测时间具有时间间隔。
步骤S203,从所述链路检测时间组中选定一链路检测时间。在本实施例中,检测STUN客户端23与STUN伺服端21之间通信链路的UDP老化时间即为检测STUN客户端23与STUN伺服端21之间通信链路的最小UDP老化时间,因此,优选地,在步骤S22中,是以从小到大的方式依序来选定链路检测时间。
步骤S205,由第一套接口X按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至STUN伺服端21。
步骤S207,由STUN伺服端21根据所述第一链路测试请求包而向第一套接口X回复第一链路测试响应包并将链路信息更新为所述第一套接口X的链路数据。这里的链路数据包括IP地址(NAT IP)和网络端口(NAT Port)。通过上述步骤205和步骤S207,通过第一链路测试请求包,可使得第一套接口X与STUN伺服端21建立通信链接。
步骤S209,由第二套接口Y根据所述链路检测时间而发送第二链路测试请求包至STUN伺服端21。由第二套接口Y根据所述链路检测时间而发送第二链路测试请求包至STUN伺服端21,更进一步包括:第二套接口Y接收到来自第一套接口X所发送的所述链路检测时间,将所述链路检测时间作为设定时间并启动定时,在设定时间结束之后,由第二套接口Y向STUN伺服端21发送第二链路测试请求包。
步骤S211,由STUN伺服端21根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的所述第一套接口X。
步骤S213,判断第一套接口X是否接收到所述第二链路测试响应包。若第一套接口X有接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要大于所述当前链路检测时间,并进至步骤215;若第一套接口X没有接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要小于所述当前链路检测时间,并进至步骤S217。
步骤S215,选定大于当前链路检测时间的下一个链路检测时间,并返至步骤S205,继续检测;
步骤S217,将所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间确定为小于所述当前链路检测时间的上一个链路检测时间。
还需说明的是,在本实施方式中,在所述UDP老化时间检测方法中,在步骤S203之前还包括:步骤S200和步骤S202,步骤200,由第二套接口Y发送链路保持请求包至所述STUN伺服端21;步骤S202,STUN伺服端21根据所述链路保持请求包而回复链路保持响应包至所述第二套接口Y,以令STUN客户端23与STUN伺服端21之间通信链路保持畅通。为便于说明,在图4中,步骤S200和步骤S202是位于步骤S201和步骤S203之间,但并不以此为限,本领域的技术人员应该可知晓,在实际应用中,只要在进行数据传输前在STUN客户端23与STUN伺服端21之间建立通畅的通信链路即可,因此,,步骤S200和步骤S202仅需满足在步骤S203之前即可,而与设置链路检测时间组及从链路检测时间组中选定一链路检测时间无必然关系。
本发明提供的基于STUN协议的UDP老化时间检测系统及方法,主要是在STUN客户端处提供了第一套接口X和第二套接口Y,并设定了包含有多个链路检测时间的一组链路检测时间组,多个链路检测时间具有时间间隔,通过所述第一套接口X和所述第二套接口Y根据链路检测时间而与STUN伺服端进行交互通信,以检测出所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间,解决现有技术中网络链路上UDP老化时间不能准确确定而致通信失败等问题,从而可以根据检测到的UDP老化时间来决定STUN客户端发送数据包的频率,增强数据传输的可靠性。
以下将以智能插座为例对上述基于STUN协议的UDP老化时间检测系统及方法进行详细说明。
在本具体实例中,我们设置一链路检测时间组,在该链路检测时间组中包含有多个链路检测时间,假定,这些链路检测时间分别为30秒、60秒、90秒、120秒、150秒、以及180秒,相邻两个链路检测时间的间隔为30秒。当然,链路检测时间的数量、数值以及时间间隔仅为实例性说明,并非用以限制其取值范围。
STUN Client端所做工作:
(1)在检测到老化时间之前,第二套接口Y一直以一个周期发送链路保持请求包至STUN伺服端,STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口Y,从而确保STUN客户端与STUN伺服端之间通信链路保持畅通。在实际应用中,假设开始时定义心跳T为10s,所述链路保持请求包带有属性值STUN_ATTR_OUTLET,大小为0x9000。
(2)第一套接口X检测链路的老化时间,NAT的老化时间检测办法:在0s至180s内从30s开始按照30的倍数依次检测,即,以30s、60s、90s、120s、150s、以及180s的顺序依序进行检测。如果超过180秒,则智能插座心跳周期为180s或者170s。
(2-a)第一套接口X发送第一链路测试请求包,假设所述第一链路测试请求包带有属性值STUN_ATTR_OUTLET_TEST,大小为0x9100。
(2-b)第一套接口X将当前链路检测时间(假设当前链路检测时间为60s)发送至第二套接口Y,第二套接口Y接收到当前链路检测时间之后启动定时器,此时定时器的设定时间即为当前链路检测时间,当定时结束(若当前链路检测时间为60s,则就是说定时启动并在60s后结束),由第二套接口Y发送第二链路测试请求包至STUN伺服端,假设所述第二链路测试请求包带有属性值STUN_ATTR_OUTLET_X,大小为0x9200。
同时,第一套接口X在发送第一链路测试请求包后,即开始监听STUN伺服端回复的第二链路测试响应包。
(2-c)第一套接口X监听STUN伺服端回复的第二链路测试响应包,若第一套接口X有接收到所述第二链路测试响应包,则判定STUN客户端与STUN伺服端之间通信链路的UDP老化时间要大于所述当前链路检测时间(例如60s),则选定当前链路检测时间(例如60s)的下一个链路检测时间(例如90s),重新返回(2-a)继续进行检测;若第一套接口X没有接收到所述第二链路测试响应包,则判定STUN客户端与STUN伺服端之间通信链路的UDP老化时间要小于当前链路检测时间(例如60s),则将小于当前链路检测时间(例如60s)的上一个链路检测时间(例如30s)确定为所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间。如果一直检测到180s,则最终UDP老化时间确定为180s或者考虑到网络时延问题定义为170s。
(3)根据最终检测的UDP老化时间t,将第二套接口Y的心跳周期改为UDP老化时间t,周期性的发送链路保持请求包至STUN伺服端。
STUN伺服端所做工作:
(a)收到第二套接口Y发送的链路保持请求包之后,直接回复链路保持响应包至第二套接口Y,从而确保STUN客户端与STUN伺服端之间通信链路保持畅通,所述链路保持响应包的大小为88字节,并更新数据库相关的的值。
(b)收到第一套接口X的第一链路测试请求包之后,直接回复第一链路测试响应包至第一套接口X,所述第一链路测试响应包的大小为88字节,并将STUN伺服端的数据库中链路信息更新为第一套接口X的链路数据,这里的链路数据包括IP地址(NAT IP)和网络端口(NAT Port)。
(c)收到第二套接口Y发送的第二链路测试请求包之后,读取数据库中链路信息的MAC对应的IP地址(NAT IP)和网络端口(NAT Port),并回复第二链路测试响应包(大小为96字节)到该IP地址(NAT IP)和网络端口(NAT Port),也就是发送到第一套接口X。
上述实施例仅例示性说明本发明的原理及其功效,而非用于限制本发明。任何熟悉此技术的人士皆可在不违背本发明的精神及范畴下,对上述实施例进行修饰或改变。因此,举凡所属技术领域中具有通常知识者在未脱离本发明所揭示的精神与技术思想下所完成的一切等效修饰或改变,仍应由本发明的权利要求所涵盖。

Claims (7)

1.一种基于STUN协议的UDP老化时间检测系统,其特征在于,包括:NAT网关、通过所述NAT网关而通信连接的STUN伺服端和STUN客户端,其中,所述STUN客户端配置有相互通信连接的第一套接口和第二套接口;
所述第一套接口,用于按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至所述STUN伺服端,以令所述STUN伺服端根据所述第一链路测试请求包而向所述第一套接口回复第一链路测试响应包并将链路信息更新为所述第一套接口的链路数据;
所述第二套接口,用于根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,以令所述STUN伺服端根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的所述第一套接口,由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间;
所述第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端中的所述链路检测时间是由所述第一套接口发送至所述第二套接口而获得的;
由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间,包括:若所述第一套接口在当前链路检测时间下接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要大于所述当前链路检测时间,之后,选定大于当前链路检测时间的下一个链路检测时间以进行继续检测;若所述第一套接口在当前链路检测时间下没有接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要小于所述当前链路检测时间,将所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间确定为小于所述当前链路检测时间的上一个链路检测时间。
2.根据权利要求1所述的UDP老化时间检测系统,其特征在于,所述第二套接口还包括发送链路保持请求包至所述STUN伺服端,令所述STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口,以令所述STUN客户端与所述STUN伺服端之间通信链路保持畅通。
3.根据权利要求1或2所述的UDP老化时间检测系统,其特征在于,还包括时间设置单元,用于设置所述链路检测时间组中的各个链路检测时间。
4.根据权利要求1所述的UDP老化时间检测系统,其特征在于,还包括定时单元,所述定时单元中的设定时间为所述链路检测时间;
所述第二套接口,用于根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,包括:所述第二套接口接收到来自所述第一套接口所发送的所述链路检测时间,将所述链路检测时间作为所述定时单元的设定时间并启动所述定时单元,在设定时间结束之后,由所述第二套接口向所述STUN伺服端发送第二链路测试请求包。
5.一种基于STUN协议的UDP老化时间检测方法,应用于如权利要求1所述的UDP老化时间检测系统中,其特征在于,所述UDP老化时间检测方法,包括:
1)由第一套接口按照一链路检测时间组中的一链路检测时间而发送第一链路测试请求包至STUN伺服端,由所述STUN伺服端根据所述第一链路测试请求包而向所述第一套接口回复第一链路测试响应包并将链路信息更新为所述第一套接口的链路数据;
2)由第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,由所述STUN伺服端根据所述第二链路测试请求包和记录的所述链路信息而回复第二链路测试响应包至与所述链路信息对应的所述第一套接口;
选定所述链路检测时间组中的其他链路检测时间,重复上述1)和2);
由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间;
由第二套接口根据所述链路检测时间而发送第二链路测试请求包至所述STUN伺服端,包括:第二套接口接收到来自所述第一套接口所发送的所述链路检测时间,将所述链路检测时间作为设定时间并启动定时,在设定时间结束之后,由所述第二套接口向所述STUN伺服端发送第二链路测试请求包;
由所述第一套接口根据所述第二链路测试响应包的接收状态而确定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间,包括:若所述第一套接口在当前链路检测时间下接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要大于所述当前链路检测时间,之后,选定大于当前链路检测时间的下一个链路检测时间以进行继续检测;若所述第一套接口在当前链路检测时间下没有接收到所述第二链路测试响应包,则判定所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间要小于所述当前链路检测时间,将所述STUN客户端与所述STUN伺服端之间通信链路的UDP老化时间确定为小于所述当前链路检测时间的上一个链路检测时间。
6.根据权利要求5所述的UDP老化时间检测方法,其特征在于,还包括:在检测过程中,由所述第二套接口发送链路保持请求包至所述STUN伺服端,使得所述STUN伺服端根据所述链路保持请求包而回复链路保持响应包至所述第二套接口,以令所述STUN客户端与所述STUN伺服端之间通信链路保持畅通。
7.根据权利要求5或6所述的UDP老化时间检测方法,其特征在于,还包括预先设置所述链路检测时间组中的各个链路检测时间。
CN201410800325.8A 2014-12-18 2014-12-18 基于stun协议的udp老化时间检测系统及方法 Active CN104468278B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410800325.8A CN104468278B (zh) 2014-12-18 2014-12-18 基于stun协议的udp老化时间检测系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410800325.8A CN104468278B (zh) 2014-12-18 2014-12-18 基于stun协议的udp老化时间检测系统及方法

Publications (2)

Publication Number Publication Date
CN104468278A CN104468278A (zh) 2015-03-25
CN104468278B true CN104468278B (zh) 2018-05-18

Family

ID=52913685

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410800325.8A Active CN104468278B (zh) 2014-12-18 2014-12-18 基于stun协议的udp老化时间检测系统及方法

Country Status (1)

Country Link
CN (1) CN104468278B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105049300B (zh) * 2015-08-28 2018-08-07 北京奇艺世纪科技有限公司 一种检测nat网络类型的方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800683A (zh) * 2010-04-26 2010-08-11 中兴通讯股份有限公司 探测nat设备上地址转换条目存活时间的方法和装置
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
CN103546389A (zh) * 2012-07-09 2014-01-29 中国电信股份有限公司 降低stun服务器负载的方法、装置和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7543064B2 (en) * 2004-09-30 2009-06-02 Logitech Europe S.A. Multiplayer peer-to-peer connection across firewalls and network address translators using a single local port on the local host

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101800683A (zh) * 2010-04-26 2010-08-11 中兴通讯股份有限公司 探测nat设备上地址转换条目存活时间的方法和装置
CN102769884A (zh) * 2011-05-03 2012-11-07 中国移动通信集团公司 基于udp的永远在线业务传输心跳数据包的方法及设备
CN103546389A (zh) * 2012-07-09 2014-01-29 中国电信股份有限公司 降低stun服务器负载的方法、装置和系统

Also Published As

Publication number Publication date
CN104468278A (zh) 2015-03-25

Similar Documents

Publication Publication Date Title
CN102685268B (zh) 一种VoIP中基于ICE协议的快速私网穿越方法
US10110556B2 (en) Methods, systems, and computer readable media for initiating and executing performance tests of a private network and/or components thereof
CN104883390B (zh) 一种访问第三方视频监控设备的方法及装置
TW200541277A (en) Information-processing device; bubble packet transmitting method and program
CN103297324A (zh) 一种网络数据即时传输中的局域网定位方法
JP2017516402A5 (zh)
Berger et al. Internet nameserver IPv4 and IPv6 address relationships
Shah et al. An examination of next generation IP migration techniques: Constraints and evaluation
CN104468278B (zh) 基于stun协议的udp老化时间检测系统及方法
EP2690832B1 (en) Communication device, communication system, and communication method
US20150032898A1 (en) Method for establishing a virtual community network connection and a system for implementing said method
Narayan et al. Network performance evaluation of IPv4-v6 configured tunnel and 6to4 transition mechanisms on windows server operating systems
CN103490950B (zh) 一种路由器pptp会话容量模拟方法
Paul et al. A study on IPv4 and IPv6: The importance of their co-existence
Bokor et al. Design and evaluation of host identity protocol (HIP) simulation framework for INET/OMNeT++
Siljanovski et al. Service discovery in resource constrained networks using multicast DNS
CN105049300A (zh) 一种检测nat网络类型的方法及装置
CN104320498B (zh) 有效保持nat通道服务方法
Enache et al. A Study of the Technology Transition from IPv4 to IPv6 for an ISP
CN104980324B (zh) 内容网络上隧道的建立方法、通信方法及相关系统
Ding et al. Speeding up IPv6 transition: Discovering NAT64 and learning prefix for IPv6 address synthesis
Yeung et al. Modeling network based moving target defense impacts through simulation in Ns-3
Lencse Benchmarking methodology for IPv6 transition technologies
WO2016180142A1 (zh) 地址转换方法及装置
NEFATI ANALYSIS THE CONNECTION PERFORMANCE BETWEEN IPv6 NETWORK AND IPv4 NETWORKS USING GNS3 AND JPerf

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
EXSB Decision made by sipo to initiate substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20201103

Address after: 318015 no.2-3167, zone a, Nonggang City, no.2388, Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Patentee after: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

Address before: 201616 Shanghai city Songjiang District Sixian Road No. 3666

Patentee before: Phicomm (Shanghai) Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220106

Address after: Room a309, Qilu Software Park building, 1768 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee after: Shandong torch Technology Service Co.,Ltd.

Address before: 318015 no.2-3167, area a, nonggangcheng, 2388 Donghuan Avenue, Hongjia street, Jiaojiang District, Taizhou City, Zhejiang Province

Patentee before: Taizhou Jiji Intellectual Property Operation Co.,Ltd.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20220127

Address after: Floor 1, building 2, Qilu Software Park, No.1 Shunhua Road, high tech Zone, Jinan City, Shandong Province

Patentee after: PANSOFT Co.,Ltd.

Address before: Room a309, Qilu Software Park building, 1768 Xinluo street, high tech Zone, Jinan City, Shandong Province

Patentee before: Shandong torch Technology Service Co.,Ltd.

TR01 Transfer of patent right