专利名称:传输控制协议资源的释放方法及装置的制作方法
技术领域:
本发明涉及通信领域,具体而言,涉及一种传输控制协议(Transfer Control ftOtocol,简称为TCP)资源的释放方法及装置。
背景技术:
WEB认证在当前的无线局域网(Wireless Local Area Network,简称为WLAN)宽带接入中广泛使用。如图1所示,WEB认证主要的工作过程如下WLAN上网的用户通过接入节点(Access Node,简称为AN)接入宽带网络网关 (Band Net Gate,简称为BNG),先从BNG获取IPv4地址,此时用户尚未认证并没有访问互联网的权限。当用户需要使用互联网业务时,用户通过超文本传输协议(Hypertext Transfer Protocol,简称为HTTP)访问任意互联网网页,BNG截获用户的HTTP连接并将用户访问的页面通过HTTP重定向到运营商提供的用户认证WEB页面。用户在运营商提供的用户认证TOB页面上输入用户名密码,在运营商的Radius服务器*(即TOB认证服务器)认证通过后,BNG给该用户打开访问互联网的权限,用户可以正常访问互联网。HTTP协议是基于传输控制协议(Transfer Control Protocol,简称为TCP)连接的应用层协议,在WEB认证中,当未认证的用户访问互联网网页时,BNG和用户先通过TCP三次握手建立TCP连接,TCP连接建立后将用户访问网页的任意HTTP请求重定向到运营商指定的页面。正常情况下,BNG给用户重定向HTTP请求的过程首先是TCP连接的建立过程,然后是HTTP重定向过程1、TOB认证用户首先向BNG发送TCP SYN报文;2、BNG响应TCP SYN ACK ;3, WEB认证用户收到SYN ACK后再次响应TCP ACK,此时TCP连接建立;4、TOB认证用户发送HTTP GET请求到BNG,BNG响应TOB认证用户HTTP重定向报文;5、WEB认证用户访问重定向后的WEB认证地址。当前网络广泛存在着TCP拒绝服务攻击,因此WEB认证这种基于TCP的交互过程也会很容易遭受到TCP拒绝服务攻击。根据WEB认证过程,WEB认证过程中遭受到的拒绝服务攻击分为TCP连接建立前的拒绝服务攻击和TCP连接建立后的拒绝服务攻击两种TCP连接建立前的TCP拒绝服务攻击会制造大量的无效的TCP半连接。TCP半连接意味着,TCP客户端的永远都不能响应最后一个TCP ACK报文,此时服务器会一直等待TCP 客户端响应TCP ACK,并保留这个TCP半连接状态直到TCP半连接超时才释放,这个超时时间可能长达十几秒。如果是用户恶意TCP攻击,用户会向服务器发送大量的TCP SYN请求建立大量的TCP连接,然后永远都不响应TCP ACK,此时服务器会维持大量的TCP半连接而 BNG的TCP连接资源是有限的,这体现在对于HTTP服务BNG支持的TCP连接建立速率和同时建立的TCP连接总数是有限的。TCP连接的拒绝服务攻击通过建立大量无效的TCP半连接来消耗BNG的TCP连接数,BNG会一直维持这些无效的TCP半连接并占用有限的TCP连接数,当BNG的HTTP服务的TCP连接数都被TCP半连接消耗时,合法的TCP连接建立会失败,进而影响正常的基于TCP的TOB认证业务。目前,可以以下方式防御TCP拒绝服务攻击1、采用限制同一用户的TCP连接速率和连接数的方式来保护设备的TCP资源,从而使正常TCP连接不受影响;2、缩短TCP半连接老化时间,以及时老化TCP半连接,释放TCP资源。由此可见,当前对TCP拒绝服务的攻击的防御均为防御TCP的半连接攻击,并无有效地对TCP连接已经建立后的HTTP连接异常时的TCP资源的保护。造成这种连接异常的原因可能是用户恶意攻击,或者是网络故障造成用户的HTTP报文无法送到BNG。TCP全连接建立后,即在BNG和UE建立TCP连接后,正常情况下BNG在重定向用户的HTTP请求后,用户会通过TCP FIN来结束TCP连接,BNG会释放该TCP资源,但是并没有对TCP连接已经建立后的HTTP连接异常时的TCP资源的保护,会存在下述情况(1)用户设备可能在TCP连接建立后不发送HTTP请求也不主动结束TCP连接,此时BNG仍然会维持 TCP连接,直到TCP连接超时,显而易见,此时也会占用BNG有限的TCP连接数,进而影响正常的基于TCP的TOB认证业务。(2)当BNG使用TOB业务时,用户在获取地址后访问任意网页,BNG和用户TCP三次握手成功后,用户不发送HTTP报文,导致服务器之前三次握手申请的资源不能及时释放,大量用户同时WEB认证时就会出现服务器资源被占满,影响正常用户的TOB认证。针对相关技术中的上述问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中,在TCP全连接建立后,尚无有效地对TCP资源进行释放的技术方案从而影响正常用户的WEB认证等技术问题,本发明提供了一种TCP资源的释放方法及装置,以至少解决上述问题。根据本发明的一个方面,提供了一种TCP资源的释放方法,包括在宽带网络网关 BNG和用户设备(User Equipment,简称为UE)进行三次握手连接后,BNG向UE发送探测消息;所述BNG获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;所述BNG根据获取的所述接收状态释放所述UE占用的TCP资源。上述BNG根据获取的接收状态释放UE占用的TCP资源,包括在接收状态为未接收到响应消息时,BNG释放UE占用的TCP资源。上述方法还包括在到达发送探测消息的预设发送次数,并且每次发送探测消息后均未收到响应消息时,BNG释放TCP资源。上述BNG根据获取的接收状态释放UE占用的TCP资源,包括在接收状态为接收到响应消息时,BNG在确定在第一预定时间段未接收到UE的访问请求后,释放TCP资源。上述BNG向UE发送探测消息之前,包括BNG确定在第二预设时间段内未收到来自于UE的访问请求。根据本发明的另一方面,提供了一种TCP资源的释放装置,包括发送模块,用于在宽带网络网关BNG和用户设备(UE)进行三次握手连接后,向所述UE发送探测消息;获取模块,用于获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;释放模块,用于根据获取的所述接收状态释放所述UE占用的TCP资源。上述释放模块,还用于在接收状态为未接收到响应消息时,释放其分配的TCP资源。上述释放模块,还用于在到达发送探测消息的预设发送次数,并且每次发送探测消息后均未收到响应消息时,释放TCP资源。上述释放模块,还用于在接收状态为接收到响应消息时,在确定在第一预定时间段未接收到UE的访问请求后,释放TCP资源。上述装置还包括确定模块,用于确定在第二预设时间段内未收到来自于UE的访问请求。通过本发明,采用BNG根据获取的探测消息的响应消息的接收状态控制释放UE占用的TCP资源的技术手段,解决了相关技术中,在TCP全连接(三次握手连接)建立后,尚无有效地对TCP资源进行释放的技术方案从而影响正常用户的WEB认证等技术问题,进而达到了有效的利用有限的TCP资源,正常用户可以正常进行WEB认证的效果。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中图1为根据相关技术的Web认证交互流程示意图;图2为根据本发明实施例的TCP资源的释放方法的流程图;图3为根据本发明实施例的TCP资源的释放装置的结构框图;图4为根据本发明优选实施例的TCP资源的释放装置的结构示意图;图5为根据本发明实施例1的TCP资源保护的原理示意图;图6为根据本发明实施例1的TCP资源保护的方法的流程示意图;图7为根据本发明实施例2的TCP资源的释放方法的流程示意图;图8为根据本发明实施例3的TCP资源的释放方法的流程示意图;图9为根据本发明实施例4的TCP资源的释放方法的流程示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。图2为根据本发明实施例的TCP资源的释放方法的流程图。如图2所示,该方法包括步骤S202,在BNG和UE进行三次握手连接后,BNG向所述UE发送探测消息;在具体实施时,上述探测消息可以为保活(Ke印Live)报文。 步骤S204,BNG获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;步骤S206,BNG根据获取的所述接收状态释放所述UE占用的TCP资源。通过上述处理步骤,提供了一种在BNG和UE建立TCP连接后,对TCP资源的释放进行控制的技术手段,从而实现对在BNG和UE建立TCP连接后,对正常用户的WEB认证进行保护。在步骤S206中,上述接收状态包括接收到所述响应消息和未接收到所述响应消息,在上述接收状态为未接收到所述响应消息时,BNG直接释放所述UE占用的TCP资源。在本发明的一个具体实施方式
中,当上述接收状态为未接收到所述响应消息时, 可以并不立即释放UE占用的TCP资源,例如可以设置在上述探测消息的发送次数到达预设门限时,才释放TCP资源,具体地,在到达发送所述探测消息的预设发送次数,并且每次发送所述探测消息后均未收到所述响应消息时,所述BNG释放所述TCP资源。正如上面所述,上述接收状态还包括接收到所述响应消息,在此种情况下,即在所述接收状态为接收到所述响应消息时,所述BNG在确定在第一预定时间段未接收到所述UE 的访问请求后,释放所述TCP资源。在步骤S202之前,即上述BNG向所述UE发送探测消息之前,还可以设置发送探测消息的条件,以避免网络资源的浪费,具体包括BNG确定在第二预设时间段内未收到来自于所述UE的访问请求。在本实施例中还提供了一种TCP资源的释放装置,位于宽带网络网关BNG中,该装置用于实现上述实施例及优选实施方式,已经进行过说明的不再赘述,下面对该装置中涉及到模块进行说明。如以下所使用的,术语“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图3为根据本发明实施例的TCP资源的释放装置的结构框图。如图3所示,该装置包括发送模块30,连接至获取模块32,用于在BNG和UE进行三次握手连接后,向UE发送探测消息;获取模块32,连接至释放模块34,用于获取来自于UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;释放模块34,用于根据获取的所述接收状态释放UE占用的TCP资源。优选地,上述释放模块34,还用于在所述接收状态为未接收到所述响应消息时,释放其分配的TCP资源。在本发明的一个优选实施方式中,上述释放模块34,还用于在到达发送所述探测消息的预设发送次数,并且每次发送所述探测消息后均未收到所述响应消息时,释放所述 TCP资源。上述释放模块34,还用于在所述接收状态为接收到所述响应消息时,在确定在第一预定时间段未接收到所述UE的访问请求后,释放所述TCP资源。优选地,如图4所示,上述装置还可以包括确定模块36,连接至发送模块30,用于确定在第二预设时间段内未收到来自于所述UE的访问请求。需要说明的是,上述装置中各个模块的优选实施方式,可以参见上述方法实施例的描述,此处不再赘述。为了更好地理解上述实施例,以下结合具体实施例和相关附图详细说明。实施例1本实施例基于上述TCP资源的释放方法和装置,提供一种WEB认证场景下进行 HTTP异常时TCP资源保护的方法。
在描述本实施例的具体步骤之前,先说明本实施例的原理。本实施例在WEB认证用户和BNG三次握手建立TCP连接后,BNG设置的HTTP保活时间到期后BNG通过TCP保活来探测WEB认证用户TCP连接是否活跃,如果BNG判断该用户该TCP连接不活跃,则BNG释放用户占用的TCP资源。具体可以参见图5。图5中,IPSTACK为BNG上面处理收发包的模块,这里主要是它的TCP小模块跟UE 交互,进行TCP三次握手,三次握手成功收到HTTP,GET报文后,TCP模块会把这个报文给 Portal模块(是BNG上实现强推认证功能的模块,相当于Portal client),Portal模块收到后会把服务器对应的URL信息构造一个HTTP重定向报文给UE,UE再从报文中提取出服务器的地址和服务器建链,服务器再根据URL给UE推出页面。这个过程中TCP资源的创建和释放情况如下1,在TCP三次握手交互过程中,占用的是IPSTACK的TCP控制块资源2,在 TCP三次握手成功后,TCP模块会通知Portal创建socket,占用Portal申请的socket资源,3,在收到HTTP,GET报文后,Portal成功构造重定向报文后,会释放之前创建的socket 资源。图5中是把所有有可能占用资源的地方都设定了资源释放的机制。本实施例针对HTTP的这种攻击进行防御的主要步骤如下WEB认证用户接入BNG,从BNG获取地址;WEB认证用户访问任意网页,BNG和用户通过三次握手正常建立TCP连接;BNG针对已经建立TCP连接的用户设置HTTP保活时间,如果保活时间到期仍然没有收到TOB认证用户的HTTP GET请求,则BNG会发送TCP的Ke印Alive报文到TCP用户端来探测这个TCP连接是否活跃;如果用户不响应该报文,BNG认为该用户TCP连接异常,释放之前分配的TCP资源。本实施例中,HTTP保活时间和HTTP老化时间由可以由BNG通过配置设置。本实施例中,BNG可以配置TCP探测的次数和探测间隔,BNG可以设置需要经过多少次探测用户无响应后,再释放用户占用的TCP资源。本实施例中,BNG可以配置HTTP老化时间,当BNG探测用户有响应,HTTP老化时间到期用户仍然未发送HTTP GET时,BNG也可以释放用户占用的TCP资源。本实施例中的上述方案可以和用户TCP连接速率和数目限制配合,达到更好的攻击防御效果。本实施例中,上述方案可以和设置TCP半连接老化时间配合,达到更好的攻击防御效果。本实施例中的技术方案可以应用在BNG的TOB认证,也适用于FTP等其他基于TCP 的应用。为了更好地理解本实施例,以下结合图6详细说明。图6为根据本发明实施例2 的TCP资源保护的方法的流程示意图。需要说明的是,以下所述的用户可以表现为用户终端。如图6所示,该方法包括步骤S602,收到TCP SYN请求报文;步骤S604,当前总半连接数是否已超过允许的最大半连接数,如果是,转步骤 S606,否则转步骤S608 ;步骤S606,丢包;步骤S608,回应SYN+ACK报文,分配TCP控制块,总半连接数加1 ;
步骤S610,老化时间到,是否收到用户回应的ACK报文,如果是,则转步骤S614,否则转步骤S612 ;步骤S612,释放之前分配的TCP资源,总半连接数减1 ;步骤S614,该用户当前建立的连接数是否超过允许的最大连接数,如果是,则转步骤S616,否则转步骤S618 ;步骤S616,释放之前分配的TCP资源,总半连接数减1 ;步骤S618,创建socket资源,该用户当前建立的连接数加1,启动保活机制和老化机制;步骤S620,老化时间到,确定未收到用户发出的HTTP+GET报文;步骤S622,释放该socket资源,该用户当前建立的连接数减1 ;步骤S6M,保活时间到,确定未收到用户发出的HTTP+GET报文。需要说明的是,步骤S620和步骤S622可以无先后顺序。步骤,发送TCP+Ke印Alive报文给对端,检测该TCP连接是否活跃,在否的情况下,转步骤;步骤,是否已达到保活检测次数,如果是,转步骤S630,否则,转步骤;步骤S630,释放之前分配的socket资源,该用户当前建立的连接数减1。由上述技术方案可以看出,本实施例针对TCP三次握手成功后不发送HTTP GET报文的这种攻击做了很好的防御,在收不到用户HTTP GET报文时,可以在BNG设置的保活时间到的情况下释放之前占用的系统资源,可以有效的利用有限的TCP资源,不影响正常用户的正常TOB强推认证实施例2本实施例中,WEB认证用户是恶意攻击用户,三次握手建立TCP连接后,用户恶意释放TCP连接不通知BNG。图7为根据本发明实施例2的TCP资源的释放方法的流程示意图。如图7所示, 该方法包括步骤S702,用户成功获取地址上线,即TOB认证用户接入BNG,从BNG获取地址;步骤S704,用户和BNG TCP三次握手成功,启动保活机制,即WEB认证用户访问任意网页,BNG和用户通过三次握手正常建立TCP连接并启动保活机制;步骤S706,保活时间到,没有收到用户的HTTP+GET报文,即用户不再发送HTTP GET报文,BNG的HTTP保活时间到,没有收到用户的HTTP+GET报文;步骤S708,发送TCP+Ke印Alive报文检测该TCP连接是否活跃,即BNG针对该TCP 连接发送TCP的Ke印Alive报文探测该TCP连接是否活跃;步骤S710,用户不响应,检测为不活跃,则释放分配的TCP资源,即发送 TCP+Ke印Alive报文检测该TCP连接是否活跃,如果用户TCP连接已经释放,则不响应该报文,此时BNG认为该TCP连接不活跃,释放该用户占用的TCP资源。实施例3本实施例中,TOB认证用户三次握手建立TCP连接后,HTTP GET报文传输过程异常被丢弃,用户TCP连接仍然保持,BNG设置HTTP保活时间。图8为根据本发明实施例3的TCP资源的释放方法的流程示意图。如图8所示,该方法包括步骤S802,用户成功获取地址上线,即TOB认证用户接入BNG,从BNG获取地址;步骤S804,用户和BNG TCP三次握手成功,启动保活机制,即WEB认证用户访问任意网页,BNG和用户通过三次握手正常建立TCP连接并启动保活机制;步骤S806,保活时间到,没有收到用户的HTTP+GET报文,即用户不再发送HTTP GET报文,BNG的HTTP保活时间到,没有收到用户的HTTP+GET报文;步骤S808,发送TCP+Ke印Alive报文检测该TCP连接是否活跃,即BNG针对该TCP 连接发送TCP的Ke印Alive报文探测该TCP连接是否活跃;步骤S810,用户响应,等到老化时间到,释放分配的TCP资源,即用户响应该报文, BNG认为该TCP连接活跃,BNG不立即释放用户占用的TCP资源,而是等待HTTP超时后释放该用户占用的TCP资源。实施例4本实施例中,WEB认证用户是恶意攻击用户,三次握手建立TCP连接后,用户恶意释放TCP连接不通知BNG,用户TCP连接仍然保持,BNG设置探测次数为3次,探测间隔1S。图9为根据本发明实施例4的TCP资源的释放方法的流程示意图。如图9所示, 该方法包括步骤S902,用户成功获取地址上线,即TOB认证用户接入BNG,从BNG获取地址;步骤S904,用户和BNG TCP三次握手成功,启动保活机制,即WEB认证用户访问任意网页,BNG和用户通过三次握手正常建立TCP连接并启动保活机制;步骤S906,保活时间到,没有收到用户的HTTP+GET报文,即用户不再发送HTTP GET报文,BNG的HTTP保活时间到,没有收到用户的HTTP+GET报文;步骤S908,发送TCP+Ke印Alive报文检测该TCP连接是否活跃,即BNG针对该TCP 连接发送TCP的Ke印Alive报文探测该TCP连接是否活跃;步骤S910,用户不响应,BNG的探测次数达到预设门限,用户无响应,释放TCP资源。即用户TCP连接已经释放,不响应该报文,BNG认为该TCP连接不活跃,BNG每隔预定时间间隔(例如1S)探测一次,在探测次数大于预设门限值(例如3次等)时,用户任无响应后,BNG释放该用户占用的TCP资源。在另外一个实施例中,还提供了一种软件,该软件用于执行上述实施例及优选实施方式中描述的技术方案。在另外一个实施例中,还提供了一种存储介质,该存储介质中存储有上述软件,该存储介质包括但不限于光盘、软盘、硬盘、可擦写存储器等。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种传输控制协议TCP资源的释放方法,其特征在于,包括在宽带网络网关BNG和用户设备UE进行三次握手连接后,所述BNG向所述UE发送探测消息;所述BNG获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;所述BNG根据获取的所述接收状态释放所述UE占用的TCP资源。
2.根据权利要求1所述的方法,其特征在于,所述BNG根据获取的所述接收状态释放所述UE占用的TCP资源,包括在所述接收状态为未接收到所述响应消息时,所述BNG释放所述UE占用的TCP资源。
3.根据权利要求2所述的方法,其特征在于,还包括在到达发送所述探测消息的预设发送次数,并且每次发送所述探测消息后均未收到所述响应消息时,所述BNG释放所述TCP资源。
4.根据权利要求1所述的方法,其特征在于,所述BNG根据获取的所述接收状态释放所述UE占用的TCP资源,包括在所述接收状态为接收到所述响应消息时,所述BNG在确定在第一预定时间段未接收到所述UE的访问请求后,释放所述TCP资源。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述BNG向所述UE发送探测消息之前,包括所述BNG确定在第二预设时间段内未收到来自于所述UE的访问请求。
6.一种传输控制协议TCP资源的释放装置,位于宽带网络网关BNG中,其特征在于,包括发送模块,用于在宽带网络网关BNG和用户设备UE进行三次握手连接后,向所述UE发送探测消息;获取模块,用于获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;释放模块,用于根据获取的所述接收状态释放所述UE占用的TCP资源。
7.根据权利要求6所述的装置,其特征在于,所述释放模块,还用于在所述接收状态为未接收到所述响应消息时,释放其分配的TCP资源。
8.根据权利要求6所述的装置,其特征在于,所述释放模块,还用于在到达发送所述探测消息的预设发送次数,并且每次发送所述探测消息后均未收到所述响应消息时,释放所述TCP资源。
9.根据权利要求6所述的装置,其特征在于,所述释放模块,还用于在所述接收状态为接收到所述响应消息时,在确定在第一预定时间段未接收到所述UE的访问请求后,释放所述TCP资源。
10.根据权利要求6至9任一项所述的装置,其特征在于,还包括确定模块,用于确定在第二预设时间段内未收到来自于所述UE的访问请求。
全文摘要
本发明提供了一种TCP资源的释放方法及装置,其中,上述方法包括在BNG和UE进行三次握手连接后,BNG向UE发送探测消息;所述BNG获取来自于所述UE的响应消息的接收状态,其中,所述响应消息为所述探测消息的响应消息;所述BNG根据获取的所述接收状态释放所述UE占用的TCP资源。采用本发明提供的上述技术方案,解决了相关技术中,在TCP全连接(三次握手连接)建立后,尚无有效地对TCP资源进行释放的技术方案从而影响正常用户的WEB认证等技术问题,进而达到了有效的利用有限的TCP资源,正常用户可以正常进行WEB认证的效果。
文档编号H04W76/06GK102573111SQ20121000545
公开日2012年7月11日 申请日期2012年1月10日 优先权日2012年1月10日
发明者王姝懿, 袁博, 陈勇 申请人:中兴通讯股份有限公司