老化session后通知网络终端的方法及装置、NAT设备的制作方法

文档序号:7644156阅读:266来源:国知局
专利名称:老化session后通知网络终端的方法及装置、NAT设备的制作方法
技术领域
本发明涉及因特网技术,具体涉及老化session后通知网络终端的方法及装置、NAT设备。
背景技术
随着Internet(因特网)的飞速发展,越来越多的网络设备放到了因特网上,网络设备要想访问其他网络设备或被其他网络设备访问,就必须要配置网络地址,常用的网络地址是IP(Internet Protocol,网际协议)地址。IP地址分为私有网络地址和公共网络地址,其中私有网络地址是指在一个企业或机构私有网络的主机的IP地址,Internet地址的分配组织规定将如下的IP地址保留用作私有网络地址10.0.0.0~10.255.255.255,172.16.0.0~172.31.255.255,192.168.0.0~192.168.255.255;私有网络地址不会在Internet上被分配。公共网络地址是指在Internet上唯一的IP地址。
由于私有网络地址的使用范围局限在私有网络,如果私有网络的用户需要访问共同的Internet,则必须使用全球唯一的公共网络地址。网络地址转换(NAT,Network Address Translation)又称为网络地址代理,它将私有网络中主机的IP地址转换成可以被公共网络所识别的IP地址,如图1所示,具有私有网络地址10.1.1.200的终端想要访问公共网络上的服务器,该服务器的公共网络地址为211.100.7.34,则可以通过NAT装置做如下转换后达到目的私有网络的主机10.1.1.200访问公共网络的服务器211.100.7.34时,主机10.1.1.200发出一个请求报文,假设使用源端口为6084,目的端口为80。在通过NAT装置后,该报文的源地址和端口转换为162.105.178.65:32814,目的地址与端口不改变。NAT装置为私有网络的主机维护了一张地址端口对应表。当公共网络的服务器返回响应报文时,NAT装置会查找地址端口对应表,找到响应报文中的目的地址及端口,并转换成对应的私有网络地址和端口,即10.1.1.200:6084。这样,私有网络的主机10.1.1.200就收到公共网络的服务器所返回的报文,NAT装置会为在维护的会话表中保存如下信息,如表1所示,表1是NAT装置上维护的会话(session)表。
表1、会话表

如果多个私有网络的主机同时访问公共网络的服务器,NAT装置会对私有网络的每个终端发起的每个连接,在其生命周期内都会为其分配一个表项来记录其转换关系,同时还必须分配一个公网地址,这个公网地址包括公共网络的地址加上一个端口号,即转换后的源IP端口。以应用范围最大的TCP(Transfer Control Protocol,传输控制协议)协议为例,如果私有网络中的一个主机发起访问公共网络的TCP连接,那么从私有网络主机发送的第一个TCP_SYN报文起,就要为这个连接分配内存来存放会话信息,即会话表,同时需要分配一个公网地址,知道这个连接被拆除后,其所占用的会话表和公网地址才会被释放给其他用户连接使用;其中TCP_SYN是建立TCP连接的报文。
但是会话表和公网地址都是有限的,为了有效地利用session资源,防止有恶意用户故意长期占用session导致NAT装置无法接纳新请求,目前主要有以下几种方式1)对用户发起连接的速度进行限制,如果用户发起连接的速度过快,则认为是恶意攻击而拒绝为超过规定速度的新连接建立session及分配内存和地址资源等;2)对用户的并发连接数进行限制,即用户并发的连接数不能超过预先设定的上限;3)设立session的老化时间,如果一个连接超过了老化时间,则释放这个连接占用的session和地址资源。在实际应用中,一般都是三种方案结合使用。
虽然使用上述三种方法可以达到有效利用session资源的目的,但是对于网络连接特别是采用TCP协议的网络连接,如果在TCP正常关闭连接之前且对应的session已经被老化删除时,而该TCP连接的两端并不知情,因而当需要再次传输数据的时候,仍然认为TCP连接畅通而发送数据,因为session已经被老化删除,因而TCP数据报无法到达对端,从而导致发送TCP数据包的一方不停的重试,直到达到预置的重试次数或收到TCP_RST报文才会确认TCP连接不可用,从而关闭这个连接再重新发起TCP连接。根据应用程序的不同,确认TCP连接不可用所需要的重试次数不同,有的重试次数还是比较多的。因而经过多次的重试,特别是越往后的重试的间隔时间也越长,所以仅仅依靠应用程序的TCP重试失败来检测TCP连接不可用,可能需要很长的时间,这样将会极大的降低应用程序的响应速度。

发明内容
本发明实施例的目的是提供一种老化session后通知网络终端的方法及装置、NAT设备,使用本发明实施方式提供的技术方案可以在老化session后提高应用程序的响应速度。
本发明实施例的目的是通过以下技术方案实现的本发明的实施例提供了一种老化session后通知网络终端的方法,包括构造通知报文,所述通知报文符合老化的session对应的网络协议标准;将所述通知报文发送给所述session对应的网络终端。
本发明的实施例提供了一种老化session后通知网络终端的装置,包括通知报文构造单元,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;通知报文发送单元,用于将所述通知报文发送给所述session对应的网络终端。
本发明的实施例提供了一种NAT设备,包括老化session后通知网络终端的装置,所述老化session后通知网络终端的装置包括通知报文构造单元,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;通知报文发送单元,用于将所述通知报文发送给所述session对应的网络终端。
本发明的实施例提供了一种NAT设备,包括老化session后通知网络终端的装置,所述老化session后通知网络终端的装置包括数据报文接收单元,用于接收来自网络终端的数据报文,所述数据报文需要命中老化的session;通知报文构造单元,用于根据所述数据报文,构造所述符合所述老化的session对应的网络协议标准的通知报文;通知报文发送单元,用于将所述通知报文发送给所述网络终端。
从本发明实施例提供的以上技术方案可以看出,由于在老化了一个session后,NAT设备主动将对应session已经被老化,对应的网络连接已不可用的信息通知给session对应的网络终端,使网络终端可以尽快的得知对应的网络连接不可用,从而作对应的操作,提高了应用程序的响应速度。


图1为现有技术中采用了NAT设备的网络的网络结构图;图2为本发明方法第一实施例的具体流程图;图3为本发明方法第二实施例的具体流程图;图4为本发明实施例提供的构造通知报文的流程图;图5为本发明方法第四实施例的具体流程图;图6为本发明装置第一实施例的结构图;图7为本发明装置第二实施例的结构图。
具体实施例方式
为使本发明的目的、技术方案、及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
如图2所示,本发明提供的方法的一个实施例主要包括步骤201、构造通知报文,所述通知报文符合老化的session对应的网络协议标准;Session被老化后,对应的资源都会被释放,但是网络连接的两个网络终端并不知道对应的session已经被老化,所以要根据所述session对应的网络协议标准构造通知报文。不同的网络协议对应的消息格式不一样,本发明实施例主要采用TCP协议进行描述,但是并不排除采用其他网络协议的情况;步骤202、将所述通知报文发送给所述session对应的网络终端;可以从维护的FIB(Forwarding Information Table,转发信息表)表中查到对应的路由信息,将所述通知报文发送给所述网络终端;将通知报文发送给对应的网络终端后,使网络终端能够知道对应的session已经被老化而无法命中,需要重新建立连接才能完成数据通信,从而可以使网络终端可以很快地就重新建立连接,而不需要等待较长的重试时间,从而提高了应用程序的响应速度。
参见图3,本发明提供的方法的第二实施例主要包括步骤301、老化session后,收到需要命中被老化的session的数据报文;老化session后,session对应的网络连接两端的网络终端并不知道session已经被老化,从而继续发送需要命中该session的数据报文,NAT设备收到数据报文后,需要将数据报文转发,无法找到对应的session,所以NAT设备知道对应的session已经被老化;步骤302、根据所述数据报文构造符合所述session对应的网络协议标准的通知报文;因而将根据数据报文构造成的通知报文通知给对应的网络终端,从而使网络终端可以作对应的操作。发明实施例采用的一种方案是直接修改数据报文,从而可以节省系统资源和尽快地构造出通知报文;步骤303、将所述通知报文发送给发送所述数据报文的网络终端;本实施例直接将数据报文修改为通知报文,可以有效地节省构造通知报文需要的系统资源,也能够在数据报文后尽快地构造出通知报文,从而让对应的网络终端较快的得知对应的session被老化的信息,提高了应用软件的响应速度。
本发明实施例提供的构造通知报文的流程,如图4所示,本发明实施例以TCP协议报文为例,为了尽可能不对现有网络标准造成影响,因而本发明的实施例采用TCP协议中标准的TCP_RST报文,但是不排除采用其他报文的可能性,修改数据报文主要包括以下步骤步骤401、取数据报文的源IP地址和目的IP地址;数据报文要发送到对应的网络终端,在报文中会携带相应的源IP地址和目的IP地址,从而NAT设备可以根据携带的地址信息查找对应的session,从而将数据报文转发,进一步的接收该报文的网络终端也可以知道该报文是由哪个网络终端发送的,从而可以直接向发送该数据报文的该网络终端返回响应报文,从而实现通信;步骤402、将所述源IP地址和目的IP地址对换;将源IP地址和目的IP地址进行对换,网络终端收到构造的新报文就会认为该报文是由对应的另一个网络终端发送的,这里主要是为了满足TCP协议的标准;步骤403、将所述数据报文的报文头设置为通知报文标志;在TCP报文中是RST标志,具体是将TCP的Flags设置为0x14,这在TCP协议中是固定的,网络终端根据Flags就可以知道这个消息是ACK+RST消息,ACK表示的是针对某个报文做出的响应,RST则会促使网络终端对对应的连接进行复位;步骤404、为所述数据报文设置序列号;根据TCP协议的标准需要设置两个方面的序列号,其中一个是TCP_SYN序列号,可以与构造所述session对应的TCP_SYN报文的序列号相同,也可以设置为其他的TCP_SYN序列号,例如可以设置为0,也是为了满足TCP协议的标准,因为每个TCP连接都是由TCP_SYN开始建立的;对应的也需要设置ACK序列号,根据TCP协议的标准,ACK序列号为原TCP_SYN报文的序列号加上原数据报文的长度;
步骤405、删除所述数据报文超过预置长度的部分;根据TCP协议的标准,所述通知报文的长度为46字节,所以为了符合协议的标准,需要删除所述数据报文超过预置长度即46字节的部分;步骤406、重新为所述数据报文计算校验值,封装成所述通知报文;因为所述数据报文中的信息都已经经过修改,所以原有的校验值已经无效,所以需要重新计算校验值,并将校验值放到所述通知报文中,网络终端收到所述通知报文就可以根据重新计算得到的校验值对收到的通知报文进行校验,从而保证了通信的精确性;在本实施例中仅对网络地址进行对换,在实际应用中有多个连接时需要进一步将端口进行对换,此时不仅要将源IP地址和目的IP地址对换,还要将源端口和目的端口对换,从而可以将通知报文返回给对应网络终端的端口,能够更加准确的将通知报文返回。
上述步骤只是实现本发明实施例目的的一种实现方式,并不是对上述步骤的先后顺序进行限定;通过上述步骤就可以将数据报文修改成通知报文,从而可以节省系统资源并且能够较快地构造出通知报文。
再介绍本发明提供的方法的第三实施例,假设图1描述的TCP连接是一个恶意占用的TCP连接,NAT设备通过轮询发现表1描述的session长期没有被使用,就会把私有网络侧网络终端地址与NAT设备中的地址池中的地址的映射关系,即10.1.1.200:6084-->162.105.178.65:32814的对应关系清除,这样私有网络侧网络终端和NAT设备间的连接也被拆除了。因而当私有网络侧网络终端发送TCP数据报文时,该TCP数据报文的源IP地址及端口为10.1.1.200:6084,目的IP地址及端口为162.105.178.65:32814,由于发生了session不命中事件,此时NAT设备就会根据TCP数据报文来主动构造一个目的地址是10.1.1.200:6084,源IP地址及端口为162.105.178.65:32814的TCP_RST报文,此报文被私有网络侧网络终端收到后,它会认为和NAT装置的连接不再存在,同时通知它的上层进行复位。经过上述两个动作,NAT设备的公网地址即所谓的网络资源被释放了。这样私有网络内的其它网络终端就可以通过这个释放后的公网地址访问外网了,同时发起方的主机也在第一时间感知了会话的不存在就不会不断的重试了,因而提高了应用程序的响应速度。
图5是本发明提供的方法的第四实施例的具体流程图,主要包括步骤501、老化一个session;步骤502、根据所述session对应的网络连接两端对应的网络终端的网络地址和端口号,按照所述网络协议的标准构造所述通知报文;此时可以只针对私有网络的网络终端或公共网络的网络终端构造一个通知报文,也可以对这网络连接两端的网络终端都构造通知报文。以表1描述的session为例,发送至私有网络中网络终端的通知报文的源IP地址及端口为162.105.178.65:32814,目的IP地址及端口为10.1.1.200:6084;而发送至公共网络中网络终端的通知报文的则正好相反,源IP地址及端口为10.1.1.200:6084,目的IP地址及端口为162.105.178.65:32814;步骤503、将所述通知报文发送给所述session对应的网络连接两端的网络终端;使用该实施例可以在老化session后,立即将该session已经被老化的信息通知对应的网络终端,可以最大限度的提高应用程序的响应速度。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,包括如下步骤构造通知报文,所述通知报文符合老化的session对应的网络协议标准;将所述通知报文发送给所述session对应的网络终端。所述的存储介质,如ROM/RAM、磁碟、光盘等。
如图6所示,本发明提供的老化session后通知网络终端的装置600的第一实施例主要包括通知报文构造单元601,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;
通知报文发送单元602,用于将所述通知报文发送给所述session对应的网络终端;使用本发明装置的第一实施例可以在老化一个session后,构造通知报文通知对应的网络终端该session已经被老化,从而可以使对应的网络终端作对应的处理,提高应用程序的响应速度。
本发明提供的NAT设备的第一实施例,包括本发明提供的老化session后通知网络终端的装置的第一实施例所描述的装置。
图7是本发明提供的老化session后通知网络终端的装置600的第二实施例,主要包括数据报文接收单元701,用于接收来自所述网络终端的需要命中所述session的数据报文;通知报文构造单元702,用于根据所述数据报文,构造所述符合所述session对应的网络协议标准的通知报文;通知报文发送单元703,用于将所述通知报文发送给所述session对应的网络终端;使用本发明装置的第二实施例,在老化了一个session后,如果接收到需要命中该session的数据报文,直接将所述数据报文修改成通知报文,从而可以减少构造通知报文需要的资源。
本发明提供的NAT设备的第二实施例,包括本发明提供的老化session后通知网络终端的装置的第二实施例所描述的装置。
从以上描述的本发明实施例可以看出,当老化了一个session后,可以很快的通知网络终端,使网络终端可以很快地就重新建立连接,而不需要等待较长的重试时间,从而提高了应用程序的响应速度。在本发明提供的一个实施例中,直接将不能命中session的数据报文修改为通知报文,从而可以节省构造通知报文的资源,并且能够尽快的构造出通知报文;本发明提供的另一个实施例在老化session后主动根据session记录的信息构造通知报文,从而使网络终端能够在session被老化后立即得知对应的网络连接不可用,从而作对应的操作,进一步提高了应用程序的响应速度。
以上对本发明实施例所提供的一种老化session后通知网络终端的方法及装置、NAT设备进行了详细介绍,以上实施例的说明只是用于帮助理解本发明的方法及其思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1.一种老化session后通知网络终端的方法,其特征在于,包括构造通知报文,所述通知报文符合老化的gession对应的网络协议标准;将所述通知报文发送给所述session对应的网络终端。
2.如权利要求1所述的老化session后通知网络终端的方法,其特征在于,所述网络协议为传输控制协议TCP协议。
3.如权利要求2所述的老化session后通知网络终端的方法,其特征在于,所述构造通知报文具体为收到需要命中所述session的数据报文;根据所述数据报文构造所述通知报文。
4.如权利要求3所述的老化session后通知网络终端的方法,其特征在于,所述根据所述数据报文构造所述通知报文具体为将所述数据报文中源网络终端和目的网络终端的网络地址对换、或将所述数据报文中源网络终端和目的网络终端的网络地址和端口分别对换;将所述数据报文的报文头设置为通知报文标志;为所述数据报文设置序列号,并删除所述数据报文超过预置长度的部分;重新为所述数据报文计算校验值,将所述数据报文封装成符合所述网络协议标准的所述通知报文。
5.如权利要求3或4所述的老化session后通知网络终端的方法,其特征在于,所述session对应的网络终端为发送所述数据报文的网络终端。
6.如权利要求2所述的老化session后通知网络终端的方法,其特征在于,所述构造通知报文具体为根据所述session对应的网络连接两端对应的网络终端的网络地址、或网络地址和端口号,按照所述网络协议的标准构造所述通知报文。
7.如权利要求6所述的老化session后通知网络终端的方法,其特征在于,所述session对应的网络终端为,所述session对应的网络连接两端的网络终端。
8.如权利要求2、3、4、6和7任一所述的老化session后通知网络终端的方法,其特征在于,所述通知报文为TCP_RST报文。
9.一种老化session后通知网络终端的装置,其特征在于,包括通知报文构造单元,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;通知报文发送单元,用于将所述通知报文发送给所述session对应的网络终端。
10.如权利要求9所述的老化session后通知网络终端的装置,其特征在于,还包括数据报文接收单元,用于接收来自所述网络终端的需要命中所述session的数据报文;所述通知报文构造单元用于根据所述数据报文,构造所述符合所述session对应的网络协议标准的通知报文。
11.一种NAT设备,其特征在于,包括老化session后通知网络终端的装置,所述老化session后通知网络终端的装置包括通知报文构造单元,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;通知报文发送单元,用于将所述通知报文发送给所述session对应的网络终端。
12.一种NAT设备,其特征在于,包括老化session后通知网络终端的装置,所述老化session后通知网络终端的装置包括数据报文接收单元,用于接收来自网络终端的数据报文,所述数据报文需要命中老化的session;通知报文构造单元,用于根据所述数据报文,构造所述符合所述老化的session对应的网络协议标准的通知报文;通知报文发送单元,用于将所述通知报文发送给所述网络终端。
全文摘要
本发明公开了老化session后通知网络终端的方法及装置、NAT设备,其中方法包括构造通知报文,所述通知报文符合老化的session对应的网络协议标准;将所述通知报文发送给所述session对应的网络终端;装置包括通知报文构造单元,用于构造通知报文,所述通知报文符合老化的session对应的网络协议标准;通知报文发送单元,用于将所述通知报文发送给所述session对应的网络终端。使用本发明可以在老化了session后,NAT设备可以主动将session对应的连接不可用的信息通知网络终端,从而提高应用程序的响应速度。
文档编号H04L29/12GK101035070SQ200710007150
公开日2007年9月12日 申请日期2007年2月5日 优先权日2007年2月5日
发明者庞银卓, 谭学飞 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1