降低stun服务器负载的方法、装置和系统的制作方法

文档序号:7980766阅读:138来源:国知局
降低stun服务器负载的方法、装置和系统的制作方法
【专利摘要】本发明提出降低STUN服务器负载的方法、装置和系统。由NAT网关接收并将第一类保活报文经过至少一个路由器转发到STUN服务器,第一类保活报文的发送间隔时间大于session信息老化时间;由NAT网关接收第二类保活报文并经过至少一个路由器转发,在发送到STUN服务器之前,其中一个路由器将第二类保活报文丢弃,第二类保活报文的发送间隔时间小于等于session信息老化时间。本发明保证NAT网关上的session信息不会老化,又降低了STUN服务器的负载。
【专利说明】降低STUN服务器负载的方法、装置和系统
【技术领域】
[0001]本发明属于通信领域,尤其涉及降低STUN服务器负载的方法、装置和系统。
【背景技术】
[0002]NAT (网络地址转换,Network Address Translation)技术的米用延缓了 IPv4地址的耗竭,在目前网络中已经存在大量的NAT设备来实现私网地址和公网地址的转换。但是NAT技术的采用破坏了 IP网络的端到端可访问的特性。在一个部署了 NAT网关的网络中,要从NAT网关外部(公网侧)主动发起到NAT网关内部(私网侧)的访问是非常困难的。
[0003]目前有很多技术来实现NAT网关的穿越,以保证一个应用可以从NAT网关外部主动访问到 NAT 网关内部。STUN (Simple Traversal of User Datagram Protocol ThroughNetwork Address Translators, UDP流协议穿透NAT的协议)技术是其中一种比较成功的技术。其原理如图1所示。其关键技术思想就是由NAT网关内部的私网主机,在NAT网关上预先建立一个session (会话)信息,并将session信息通告给STUN服务器。外部主机如果希望发起与内部主机的通信,需要先从STUN服务器上查询到内部主机注册在NAT网关上的session信息,即内部主机的私网地址和端口与外部主机的公网地址和端口的对应关系,通过查询到的公网地址和端口,向NAT网关发起访问,由NAT网关根据对应关系进行转换,才能向NAT内部主机发起访问。
[0004]例如,内部主机的IP:192.168.1.1,端口:5000,在NAT网关上建立的session对应关系为,内网:192.168.1.1:5000,外网:202.199.1.1:3688,并将该session信息通知STUN服务器。当外部主机要访问内部主机时,在STUN服务器上查询内部主机对外地址和端口为:202.199.1.1:3688,于是,向NAT网关发起202.199.1.1:3688的访问,由NAT网关根据对应关系进行转换,向NAT内部主机发起访问。
[0005]由于NAT网关上session信息有一定的老化时间,当一个session信息表项达到老化时间(在老化时间内没有使用该session表项来进行报文的转发),该session表项将被删除。为了保证session信息的有效性,内部主机需要不断发送保活(KEEPALIVE)报文给STUN服务器,保活报文是一种IP报文,该报文定时通过NAT网关,以维持session信息不老化。在现实网络中存在大量NAT主机,这些主机的保活报文将给STUN服务器带来巨大的性能压力。

【发明内容】

[0006]鉴于以上,本发明提出降低STUN服务器负载的方法、装置和系统。
[0007]本发明提出降低STUN服务器负载的方法,包括:
[0008]在NAT网关上建立私网地址和端口与公网地址和端口的对应关系;
[0009]由NAT网关将私网主机的注册报文发送给STUN服务器,所述注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,所述第一类保活报文的发送间隔时间大于session信息老化时间;[0010]在第一类保活报文的发送时间被触发发送的第一类保活报文,由NAT网关接收并经过至少一个路由器转发到STUN服务器;
[0011]在第二类保活报文的发送时间被触发发送的第二类保活报文,所述第二类保活报文的发送间隔时间小于等于session信息老化时间,由NAT网关接收第二类保活报文并经过至少一个路由器转发,在发送到STUN服务器之前,其中一个路由器将第二类保活报文丢弃。
[0012]进一步,所述降低STUN服务器负载的方法,将IP报文头中的TTL值为TTL正常值的第一类保活报文转发到STUN服务器,所述TTL正常值指私网主机PING通STUN服务器所需的TTL值。
[0013]进一步,所述降低STUN服务器负载的方法,将IP报文头中的TTL值为O的第二类保活报文丢弃。
[0014]进一步,所述降低STUN服务器负载的方法,私网主机控制第二类保活报文的发送间隔时间。
[0015]本发明还提出降低STUN服务器负载的装置,包括:
[0016]NAT网关,配置于建立私网地址和端口与公网地址和端口的对应关系;将私网主机的注册报文发送给STUN服务器,所述注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,所述第一类保活报文的发送间隔时间大于session信息老化时间;
[0017]至少一个路由器,配置于从NAT网关接收在第一类保活报文的发送时间被触发发送的第一类保活报文,并转发到STUN服务器;配置于从所述NAT网关接收在第二类保活报文的发送时间被触发发送的第二类保活报文,所述第二类保活报文的发送间隔时间小于等于session信息老化时间,并在发送到STUN服务器之前,由其中一个路由器将所述第二类保活报文丢弃;
[0018]STUN服务器,配置于与私网主机协商第一类保活报文的发送间隔时间,以及接收所述第一类保活报文。
[0019]进一步,所述降低STUN服务器负载的装置,将IP报文头中的TTL值为正常值的第一类保活报文转发到STUN服务器,所述TTL正常值指私网主机PING通STUN服务器所需的TTL 值。
[0020]进一步,所述降低STUN服务器负载的装置,将IP报文头中的TTL值为O的第二类保活报文丢弃。
[0021]进一步,所述降低STUN服务器负载的装置,私网主机控制第二类保活报文的发送间隔时间。
[0022]本发明还提出降低STUN服务器负载的系统,包括私网主机以及降低STUN服务器负载的装置,其中,所述私网主机与STUN服务器协商第一类保活报文的发送间隔时间、以及控制第二类保活报文的发送间隔时间,并根据第一类保活报文的发送间隔时间和第二类保活报文的发送间隔时间分别触发发送第一类保活报文和第二类保活报文。
[0023]本发明中,第二类保活报文的发送间隔时间小于等于session信息老化时间,可以保证NAT网关上的session信息不会老化,但由于第二类保活报文在到达STUN服务器之前被丢弃,从而降低STUN服务器所处理的第二类保活报文的数量。并且,第一类保活报文的发送间隔时间大于session信息老化时间,也可以降低STUN服务器所处理的第一类保活报文的数量。因此,降低了 STUN服务器的负载。
【专利附图】

【附图说明】
[0024]此处所说明的附图用来提供对本发明的进一步理解,构成本本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0025]图1为现有技术从NAT网关外部主动访问到NAT网关内部所使用的STUN技术原理示意图。
[0026]图2为本发明降低STUN服务器负载的方法流程示意图。
[0027]图3为本发明降低STUN服务器负载的系统结构示意图。
[0028]图4为本发明实施例中降低STUN服务器负载的方法流程示意图。
【具体实施方式】
[0029]现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置和数值不限制本发明的范围。
[0030]同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
[0031]以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
[0032]对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
[0033]在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
[0034]应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
[0035]为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
[0036]图2为本发明降低STUN服务器负载的方法流程示意图。
[0037]S201、在NAT网关上建立私网地址和端口与公网地址和端口的对应关系。
[0038]S202、由NAT网关将私网主机的注册报文发送给STUN服务器,所述注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,所述第一类保活报文的发送间隔时间大于session信息老化时间。
[0039]S203、在第一类保活报文的发送时间被触发发送的第一类保活报文,由NAT网关接收并经过至少一个路由器转发到STUN服务器。
[0040]S204、在第二类保活报文的发送时间被触发发送的第二类保活报文,所述第二类保活报文的发送间隔时间小于等于session信息老化时间,由NAT网关接收第二类保活报文并经过至少一个路由器转发,在发送到STUN服务器之前,其中一个路由器将第二类保活报文丢弃。[0041]在上述S203飞204,路由器可以根据TTL值来决定是转发还是丢弃报文。下面将具体说明。
[0042]在私网主机发起STUN服务器注册时,会进行一个TTL (Time ToLive,生存时间)测量的过程,TTL测量过程类似于TRACER0UTE (路由跟踪,通过它可以显示到达某一主机所经由的路径)软件实现原理,即发出一系列的PING (Packet Internet Grope,因特网包探索器)报文,PING报文的TTL值逐次加1,直到能够PING通STUN服务器为止,即私网主机通过PING命令连通STUN服务器所需的TTL值,这样私网主机与STUN服务器之间通信所需的TTL正常值就可以获知了。
[0043]私网主机调用RAW SOCKET (原始套接字)接口,并设置报文中的TTL值,来构造数据报文。私网主机还控制第二类保活报文发送的时间间隔。
[0044]在第一类保活报文的IP报文头中携带TTL正常值。TTL正常值是指可以确保报文被转发到STUN服务器的值,在实际网络中该值都会比较大,例如大于128,以确保第一类保活报文能够被正常传输。
[0045]由NAT网关将私网主机的第二类保活报文发送给至少一个路由器,接收到第二类保活报文的路由器根据第二类保活报文的IP报文头中携带的TTL值是否为0,选择转发报文或丢弃报文,即如果非O则继续转发,如果是O则丢弃报文,第二类保活报文在被转发到STUN服务器之前,由于TTL值变为O而被某一台路由器丢弃。
[0046]本发明中,第二类保活报文的发送间隔时间小于等于session信息老化时间,可以保证NAT网关上的session信息不会老化,但由于第二类保活报文在到达STUN服务器之前被丢弃,从而降低STUN服务器所处理的第二类保活报文的数量。并且,第一类保活报文的发送间隔时间大于session信息老化时间,也可以降低STUN服务器所处理的第一类保活报文的数量。因此,降低了 STUN服务器的负载。
[0047]图3为本发明降低STUN服务器负载的系统结构示意图。该系统包括私网主机31、NAT网关32、至少一个路由器33以及STUN服务器34。
[0048]私网主机31,与STUN服务器协商第一类保活报文的发送间隔时间、以及控制第二类保活报文的发送间隔时间,并根据第一类保活报文的发送间隔时间和第二类保活报文的发送间隔时间分别触发发送第一类保活报文和第二类保活报文。
[0049]NAT网关32,配置于建立私网地址和端口与公网地址和端口的对应关系;将私网主机的注册报文发送给STUN服务器,所述注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,所述第一类保活报文的发送间隔时间大于session信息老化时间。
[0050]至少一个路由器33,配置于从所述NAT网关接收在所述第一类保活报文的发送时间被触发发送的第一类保活报文,并转发到STUN服务器;配置于从所述NAT网关接收在第二类保活报文的发送时间被触发发送的第二类保活报文,所述第二类保活报文的发送间隔时间小于等于session信息老化时间,并在发送到STUN服务器之前,由其中一个路由器将所述第二类保活报文丢弃。
[0051]STUN服务器34,配置于与私网主机协商第一类保活报文的发送间隔时间,以及接收所述第一类保活报文。
[0052]其中,所述至少一个路由器将IP报文头中的TTL值为正常值的第一类保活报文转发到STUN服务器,所述TTL正常值指私网主机PING通STUN服务器所需的TTL值。
[0053]所述至少一个路由器中的一个路由器将IP报文头中的TTL值为O的第二类保活报文丢弃。
[0054]本发明在用户私网主机采用STUN方式穿越NAT过程中,不改变原有STUN方式穿越NAT网关的系统和流程,减少保活报文对STUN服务器的性能压力,并正常维护NAT网关上私网主机session信息表项有效。
[0055]图4为本发明实施例中降低STUN服务器负载的方法流程示意图。
[0056]S401、私网主机可以采用常规的TRACER0UTE方式,查看NAT网关返回的报文中携带的IP地址和端口,进行NAT网关的位置测量,在NAT网关上建立私网地址和端口与公网地址和端口的对应关系。
[0057]S402、私网主机采用STUN方式穿越NAT网关。私网主机向STUN服务器发送注册报文,该注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,该注册报文经由NAT进行地址转换后,发送给STUN服务器。其中,第一类保活报文的发送间隔时间大于session信息老化时间,例如协商为30分钟。
[0058]S403、注册过程结束。私网主机进入发送保活报文的过程。私网主机上启动两个定时器,第一定时器用于触发发送第一类保活报文,其IP报文头中的TTL值为正常值;第二定时器用于触发发送第二类保活报文,其IP报文头中的TTL值被设计成使报文正好能够穿过NAT网关,并且在抵达STUN服务器前,TTL值变为0,而被通信线路上的其中一个路由器丢弃。第二类保活报文的发送间隔时间应不大于老化时间,例如,常用的NAT网关session老化时间为120s,可以将第二类保活报文的发送间隔时间设置为小于120s。
[0059]S404、在第一类保活报文的发送时间被触发发送的第一类保活报文,由NAT网关接收并经过至少一个路由器将IP报文头中的TTL值为TTL正常值的第一类保活报文转发到STUN服务器。由于第一类保活报文的IP报文头中的TTL值为正常值,可以被正常转发到STUN服务器。STUN服务器只需处理第一类保活报文,而第一类保活报文的发送间隔时间大于老化时间,从而降低了 STUN服务器的负载。例如,协商后,确认第一类保活报文的发送时间间隔为30分钟,则STUN服务器每30分钟处理I个报文。相比常用的NAT网关session老化时间为120s,大大降低了 STUN服务器的负载。
[0060]S405、在第二类保活报文的发送时间被触发发送的第二类保活报文,由NAT网关接收第二类保活报文并经过至少一个路由器转发,在发送到STUN服务器之前,其中一个路由器将TTL值为O的第二类保活报文丢弃。由于第二类保活报文已经穿越了 NAT网关,所以仍可以确保NAT网关上的session信息不老化。这样,既可以不降低穿过NAT网关的第二类保活报文的数量,保证NAT网关上的session信息不会老化,又降低STUN服务器所处理的第二类保活报文的数量,从而降低了 STUN服务器的负载。
[0061]至此,已经详细描述了本发明。为了避免遮蔽本发明的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
[0062]可能以许多方式来实现本发明的方法以及装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法以及装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。
[0063]虽然已经通过示例对本发明的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本发明的范围。本领域的技术人员应该理解,可在不脱离本发明的范围和精神的情况下,对以上实施例进行修改。本发明的范围由所附权利要求来限定。
【权利要求】
1.降低STUN服务器负载的方法,其特征在于: 在NAT (网络地址转换)网关上建立私网地址和端口与公网地址和端口的对应关系; 由NAT网关将私网主机的注册报文发送给STUN (UDP流协议穿透NAT的协议)服务器,注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,第一类保活报文的发送间隔时间大于session (会话)信息老化时间; 在第一类保活报文的发送时间被触发发送的第一类保活报文,由NAT网关接收并经过至少一个路由器转发到STUN服务器; 在第二类保活报文的发送时间被触发发送的第二类保活报文,该第二类保活报文的发送间隔时间小于等于session信息老化时间,由NAT网关接收第二类保活报文并经过至少一个路由器转发,在发送到STUN服务器之前,其中一个路由器将第二类保活报文丢弃。
2.如权利要求1所述降低STUN服务器负载的方法,其特征在于: 将IP报文头中的TTL (生存时间)值为TTL正常值的第一类保活报文转发到STUN服务器,TTL正常值指私网主机PING (因特网包探索器)通STUN服务器所需的TTL值。
3.如权利要求1所述降低STUN服务器负载的方法,其特征在于: 将IP报文头中的TTL值为O的第二类保活报文丢弃。
4.如权利要求1至3任一 所述降低STUN服务器负载的方法,其特征在于: 私网主机控制第二类保活报文的发送间隔时间。
5.降低STUN服务器负载的装置,其特征在于,包括NAT(网络地址转换)网关、至少一个路由器以及STUN (UDP流协议穿透NAT的协议)服务器: NAT网关,配置于建立私网地址和端口与公网地址和端口的对应关系;将私网主机的注册报文发送给STUN服务器,注册报文携带有私网主机在NAT网关上的公网地址和端口、以及与STUN服务器协商第一类保活报文的发送间隔时间的请求,第一类保活报文的发送间隔时间大于session (会话)信息老化时间; 至少一个路由器,配置于从NAT网关接收在第一类保活报文的发送时间被触发发送的第一类保活报文,并转发到STUN服务器;配置于从NAT网关接收在第二类保活报文的发送时间被触发发送的第二类保活报文,第二类保活报文的发送间隔时间小于等于session信息老化时间,并在发送到STUN服务器之前,由其中一个路由器将第二类保活报文丢弃;STUN服务器,配置于与私网主机协商第一类保活报文的发送间隔时间,以及接收第一类保活报文。
6.如权利要求5所述降低STUN服务器负载的装置,其特征在于: 将IP报文头中的TTL (生存时间)值为正常值的第一类保活报文转发到STUN服务器,TTL正常值指私网主机PING (因特网包探索器)通STUN服务器所需的TTL值。
7.如权利要求5所述降低STUN服务器负载的装置,其特征在于: 将IP报文头中的TTL值为O的第二类保活报文丢弃。
8.如权利要求5至7中任一所述降低STUN服务器负载的装置,其特征在于: 私网主机控制第二类保活报文的发送间隔时间。
9.降低STUN服务器负载的系统,其特征在于:包括私网主机以及如权利要求5至7中任一所述降低STUN (UDP流协议穿透NAT的协议)服务器负载的装置,其中,私网主机与STUN服务器协商第一类保活报文的发送间隔时间、以及控制第二类保活报文的发送间隔时间,并根据第一类保活报文的发送间隔时间和第二类保活报文的发送间隔时间分别触发发送第一类保活报文和第二类 保活报文。
【文档编号】H04L12/823GK103546389SQ201210236015
【公开日】2014年1月29日 申请日期:2012年7月9日 优先权日:2012年7月9日
【发明者】陈仲华, 张届新, 廖江 申请人:中国电信股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1