报文限速方法及装置与流程

文档序号:11156399阅读:300来源:国知局
报文限速方法及装置与制造工艺
本申请涉及网络通信
技术领域
,尤其涉及一种报文限速方法及装置。
背景技术
:在目前的网络应用中,网络设备通常需要对请求报文进行限速处理。在相关技术中,网络设备通过令牌桶实现对web应用的限速处理,即当网络设备接收到携带有HTTP(HyperTextTransferProtocol,超文本传输协议)协议的请求报文时,利用请求报文的源IP地址与预先配置的用户组表进行匹配,若匹配成功,则判断距离上次向令牌桶回填令牌的时间是否大于1秒,如果大于1秒,则重新将令牌桶回填满,获取令牌桶的桶深(令牌桶填满后的令牌数),并从令牌桶中减去请求报文长度对应的令牌数,并转发请求报文,如果小于1秒,则读取令牌桶中的令牌数,如果读取到的令牌数小于请求报文长度,则丢弃请求报文,如果读取到的令牌数大于请求报文长度,则从令牌桶中减去请求报文长度对应的令牌数,并转发请求报文。然而,现有限速操作是针对请求报文长度,即是对请求报文上传或下载流量大小的限制,但是对WEB应用的URL(UniformResoureLocator,统一资源定位符)地址的请求速率无法进行精准限制,例如,对www.dptechnology.net请求进行100次/秒的限制。技术实现要素:有鉴于此,本申请提供一种报文限速方法及装置,以解决现有限速方式对WEB应用的URL地址的请求速率无法进行精准限制的问题。根据本申请实施例的第一方面,提供一种报文限速方法,所述方法包括:接收请求报文,根据所述请求报文携带的统一资源定位符URL地址确定对应的限速速率;根据所述请求报文的源网际协议IP地址确定对应的令牌桶;判断所述令牌桶的填充令牌时间是否大于预设时间;若是,则根据所述限速速率回填令牌到所述令牌桶之后,转发所述请求报文,并将所述令牌桶中的令牌减1,否则,判断所述令牌桶中是否有令牌;若有,则确定未超过所述限速速率,转发所述请求报文,并将所述令牌桶中的令牌减1;若没有,则确定超过所述限速速率,丢弃所述请求报文。根据本申请实施例的第二方面,提供一种报文限速装置,所述装置包括:接收单元,用于接收请求报文;确定单元,用于根据所述请求报文携带的URL地址确定对应的限速速率,并根据所述请求报文的源IP地址确定对应的令牌桶;第一判断单元,用于判断所述令牌桶的填充令牌时间是否大于预设时间;填充单元,用于当判断结果为是时,根据所述限速速率回填令牌到所述令牌桶之后,转发所述请求报文,并将所述令牌桶中的令牌减1;第二判断单元,用于当判断结果为否时,判断所述令牌桶中是否有令牌;未超过处理单元,用于当判断结果为有时,确定未超过所述限速速率,转发所述请求报文,并将所述令牌桶中的令牌减1;超过处理单元,用于当判断结果为没有时,确定超过所述限速速率,丢弃所述请求报文。应用本申请实施例,网络设备在接收到请求报文之后,可以根据该请求报文携带的URL地址确定对应的限速速率,并根据该请求报文的源IP地址确定对应的令牌桶;然后再判断该令牌桶的填充令牌时间是否大于预设时间,若是,则根据该限速速率回填令牌到该令牌桶之后,转发该请求报文,并将该令牌桶中的令牌减1,否则,判断该令牌桶中是否有令牌;如果有,则确定未超过该限速速率,转发该请求报文,并将该令牌桶中的令牌减1;若果没有,则确定超过该限速速率,丢弃该请求报文。基于上述实现方式,网络设备通过请求报文的URL地址确定限速速率,源IP地址确定令牌桶,并且回填令牌到令牌桶是根据限速速率填充,在转发请求报文之后,是将令牌桶中的令牌减1,而不是减去请求报文长度,因此限速操作是针对请求报文的请求次数,限速速率是真正的请求报文速率,由此可知,本申请可以对WEB应用的URL地址的请求速率进行精准限制。附图说明图1A为本申请根据一示例性实施例示出的一种报文限速方法的实施例流程图;图1B为本申请根据图1A实施例示出的一种请求报文解析结构图;图2为本申请根据一示例性实施例示出的一种网络设备的硬件结构图;图3为本申请根据一示例性实施例示出的一种报文限速装置的实施例结构图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1A为本申请根据一示例性实施例示出的一种报文限速方法的实施例流程图;图1B为本申请根据图1A实施例示出的一种请求报文解析结构图,该实施例可以应用于网络设备,该网络设备可以是防火墙,或者也可以是网关设备,并且该网络设备既可以对局域网内部的报文进行限速处理,也可以对外部网络访问局域网内部的报文进行限速处理。如图1A所示,该报文限速方法包括以下步骤:步骤101:接收请求报文。网络设备在接收到请求报文时,可以先获取请求报文中的协议特征,并判断该协议特征是否为HTTP协议,如果是,则表示该请求报文属于WEB应用,执行步骤102,否则,表示该请求报文不属于WEB应用,可以直接转发该请求报文。步骤102:根据该请求报文携带的URL地址确定对应的限速速率。在一实施例中,网络设备可以获取该请求报文携带的URL地址,并根据该URL地址与预先配置的URL地址进行匹配,若匹配到该URL地址,则获取该URL地址对应的限速速率。其中,网络设备可以根据用户实际需求,预先配置需要限速的URL地址,例如,配置的需要限速的URL地址有“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”、“www.163.com”、“www.wangyi.com”。在一实施例中,网络设备还可以将预先配置的URL地址设置为全URL匹配方式,或者每URL匹配方式,其中,全URL匹配方式指的是对配置的所有URL地址的速率之和进行限速,即配置的所有URL地址对应一个限速速率;每URL匹配方式指的是对配置的每个URL地址的速率进行限速,即配置的每个URL地址独自对应一个限速速率。在一示例性的场景中,假设预先配置的URL地址包括“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”、“www.163.com”、“www.wangyi.com”,其中,“www.baidu.com”、“www.sina.com.cn”、“www.qq.com”为全URL匹配方式,这三个URL地址对应的限速速率为100次/秒,“www.163.com”、“www.wangyi.com”为每URL匹配方式,每个URL地址对应的限速速率为100次/秒。如图1B所示,网络设备根据请求报文的解析结果,可以获取到Host字段携带的“www.sina.com.cn”和GET字段携带的“/”(GET字段携带的HTTP/1.1为协议版本号,可以忽略),将“www.sina.com.cn”和“/”组合可以得到URL地址为“www.sina.com.cn/”,与预先配置的URL地址匹配之后,可以匹配到URL地址“www.sina.com.cn”,由于“www.sina.com.cn”的匹配方式为全URL匹配方式,因此获取到的对应的限速速率为100次/秒。基于步骤102的描述可知,网络设备通过全URL匹配方式可以实现对配置的所有URL地址的速率之和进行限速,通过每URL匹配方式可以实现对配置的每个URL地址的速率进行限速,因此对WEB应用的URL地址的请求速率能够实现很精准的限制,并且通过对URL地址的请求速率的限制还可以防护URL恶意攻击。步骤103:根据该请求报文的源IP地址确定对应的令牌桶。网络设备可以先获取该请求报文携带的源IP地址,并根据预先配置的用户组表判断该源IP地址是否有属于的用户组,若有,则获取该源IP地址属于的用户组,并获取该用户组对应的统计方式,最后根据该统计方式确定对应的令牌桶。其中,网路设备预先配置的用户组表中记录有用户组的IP地址段与统计方式的对应关系,具体地,网络设备可以先判断源IP地址是否有位于的IP地址段,如果有,则获取源IP地址位于的IP地址段对应的用户组,并获取该用户组对应的统计方式,并根据该统计方式确定对应的令牌桶。。如表1所示,为一种示例性的预先配置的用户组表,例如,请求报文携带的源IP地址为IP16,可以得到IP16位于IP11~IP20地址段中,对应用户组2,因此该源IP地址属于用户组2,从而,可得到用户组2对应的统计方式为所有用户统计方式。IP地址段用户组统计方式IP1~IP10用户组1每用户IP11~IP20用户组2所有用户IP21~IP30用户组3特定用户表1针对根据该统计方式确定对应的令牌桶的过程,统计方式可以包括每用户统计方式、所有用户统计方式以及特定用户统计方式,当统计方式为每用户统计方式时,判断该源IP地址是否有对应的令牌桶,若有,则获取对应的令牌桶,若没有,则为该源IP地址创建一个令牌桶,并向该令牌桶填充限速速率对应的令牌数;当统计方法为所有用户统计方式时,判断该用户组是否有对应的令牌桶,若有,则获取对应的令牌桶,若没有,则为该用户组创建一个令牌桶,并向该令牌桶填充限速速率对应的令牌数。当统计方式为特定用户统计方式时,将该请求报文携带的用户标识符与预先配置的用户标识符进行匹配,若匹配到该用户标识符,则执行判断该源IP地址是否有对应的令牌桶的过程。其中,每用户统计方式指的是该用户组中每个源IP地址对应的用户都有一个令牌桶,该令牌桶的容量为限速速率的大小,因此,网络设备在确定该源IP地址没有对应的令牌桶之后,需要为该源IP地址新创建一个令牌桶,并向该令牌桶填充限速速率对应的令牌数,即将该令牌桶填满。所有用户统计方式指的是该用户组中所有源IP地址对应的用户只有一个令牌桶,所有用户的请求报文都通过这个令牌桶进行限速,并且该令牌桶的容量也为限速速率的大小,在确定该用户组没有对应的令牌桶之后,需要为该用户组新创建一个令牌桶,并向该令牌桶填充限速速率对应的令牌数,即将该令牌桶填满。特定用户统计方式指的是对携带有预先配置的用户标识符的请求报文进行限速,其限速处理过程与每用户统计方式相同,其中,该用户标识符可以是用户根据实际需求自定义的标识,以与其他用户区别,例如,携带有用户标识符的用户可以表示是不需要通过认证便可上网的用户。该用户标识符可以在请求报文的cookie字段中携带,例如,在cookie字段中可以通过“BAIDUPSID=用户标识符”的形式携带,也可以通过“UOR=用户标识符”的形式携带。本领域技术人员可以理解的是,用户标识符可以是数字或者字符,也可以是数字和字符的组合,在本申请中并不做限制。需要说明的是,在本申请中,步骤102与步骤103的先后执行顺序不做限制。基于步骤102与步骤103的描述可知,网络设备可以通过步骤102中的两种匹配方式与步骤103中的三种统计方式的两两结合,可以实现6种不同的限速方式,这样能够更加精准的对WEB应用的URL地址的请求速率进行限制,提高了速率限制的灵活性。步骤104:判断令牌桶的填充令牌时间是否大于预设时间,若是,则执行步骤105,否则,执行步骤106。其中,该预设时间可以根据限速速率的单位进行设置,例如,如果限速速率的单位为次/秒,则预设时间可以设置为1秒,如果限速速率的单位次/1.2秒,则预设时间可以设置为1.2秒。令牌桶的填充令牌时间可以将网络设备当前的系统时间与上一次填充令牌的系统时间相减得到。步骤105:根据限速速率回填令牌到令牌桶之后,转发请求报文,并将令牌桶中的令牌减1。如果令牌桶的填充令牌时间大于预设时间,表示网络设备需要更新一次令牌桶,由于令牌桶的容量即为限速速率,因此,网络设备向令牌桶回填令牌,直至令牌桶中的令牌溢出即可。在转发请求报文之后,表示已经允许请求报文通过一次,可以对令牌桶进行减桶操作,即将令牌桶中的令牌去掉1个。步骤106:判断令牌桶中是否有令牌,若有,则执行步骤107,若没有,则执行步骤108。如果令牌桶的填充令牌时间不大于预设时间,表示网络设备不需要更新令牌桶,可以直接读取令牌桶中的令牌数,并判断令牌数是否为零,如果不为零,则执行步骤107,如果为零,则执行步骤108。步骤107:确定未超过该限速速率,转发请求报文,并将令牌桶中的令牌减1。如果令牌桶中还有令牌,则表示该URL地址的请求还未超过限速速率,可以允许请求报文通过,并且网络设备在将请求报文转发出去之后,需要对令牌桶进行减桶操作,即将令牌桶中的令牌去掉1个。步骤108:确定超过该限速速率,丢弃请求报文。如果令牌桶中已经没有令牌,则表示该URL地址的请求已经超过限速速率,不能允许请求报文通过,因此网络设备可以将该请求报文丢弃。此外,网络设备也可以对该请求报文进行重定向,例如,网络设备可以将超过限速速率的请求报文重定向到广告页面,以向用户进行广告宣传。由上述实施例可知,网络设备在接收到请求报文之后,可以根据该请求报文携带的URL地址确定对应的限速速率,并根据该请求报文的源IP地址确定对应的令牌桶;然后再判断该令牌桶的填充令牌时间是否大于预设时间,若是,则根据该限速速率回填令牌到该令牌桶之后,转发该请求报文,并将该令牌桶中的令牌减1,否则,判断该令牌桶中是否有令牌;如果有,则确定未超过该限速速率,转发该请求报文,并将该令牌桶中的令牌减1;若果没有,则确定超过该限速速率,丢弃该请求报文。基于上述实现方式,网络设备通过请求报文的URL地址确定限速速率,源IP地址确定令牌桶,并且回填令牌到令牌桶是根据限速速率填充,在转发请求报文之后,是将令牌桶中的令牌减1,而不是减去请求报文长度,因此限速操作是针对请求报文的请求次数,限速速率是真正的请求报文速率,由此可知,本申请可以对WEB应用的URL地址的请求速率进行精准限制。与前述报文限速方法的实施例相对应,本申请还提供了报文限速装置的实施例。本申请报文限速装置的实施例可以应用在网络设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图2所示,为本申请根据一示例性实施例示出的一种网络设备的硬件结构图,除了图2所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。图3为本申请根据一示例性实施例示出的一种报文限速装置的实施例结构图,该实施例可以应用于网络设备,如图3所示,该装置包括:接收单元310、确定单元320、第一判断单元330、填充单元340、第二判断单元350、未超过处理单元360、超过处理单元370。接收单元310,用于接收请求报文;确定单元320,用于根据所述请求报文携带的URL地址确定对应的限速速率,并根据所述请求报文的源IP地址确定对应的令牌桶;第一判断单元330,用于判断所述令牌桶的填充令牌时间是否大于预设时间;填充单元340,用于当判断结果为是时,根据所述限速速率回填令牌到所述令牌桶之后,转发所述请求报文,并将所述令牌桶中的令牌减1;第二判断单元350,用于当判断结果为否时,判断所述令牌桶中是否有令牌;未超过处理单元360,用于当判断结果为有时,确定未超过所述限速速率,转发所述请求报文,并将所述令牌桶中的令牌减1;超过处理单元370,用于当判断结果为没有时,确定超过所述限速速率,丢弃所述请求报文。在一个可选的实现方式中,所述确定单元320,具体用于在根据所述请求报文携带的URL地址确定对应的限速速率的过程中,获取所述请求报文携带的URL地址;根据所述URL地址与预先配置的URL地址进行匹配;若匹配到所述URL地址,则获取所述URL地址对应的限速速率。在另一个可选的实现方式中,所述确定单元320,具体用于在根据所述请求报文的源IP地址确定对应的令牌桶的过程中,获取所述请求报文携带的源IP地址;根据预先配置的用户组表判断所述源IP地址是否有属于的用户组;其中,所述用户组表中记录有用户组的IP地址段与统计方式的对应关系;若有,则获取所述源IP地址属于的用户组,并获取所述用户组对应的统计方式;根据所述统计方式确定对应的令牌桶。在另一个可选的实现方式中,所述确定单元320,具体用于在根据所述统计方式确定对应的令牌桶的过程中,当所述统计方式为每用户统计方式时,判断所述源IP地址是否有对应的令牌桶,若有,则获取对应的令牌桶,若没有,则为所述源IP地址创建一个令牌桶,并向所述令牌桶填充所述限速速率对应的令牌数;当所述统计方法为所有用户统计方式时,判断所述用户组是否有对应的令牌桶,若有,则获取对应的令牌桶,若没有,则为所述用户组创建一个令牌桶,并向所述令牌桶填充所述限速速率对应的令牌数;当所述统计方式为特定用户统计方式时,将所述请求报文携带的用户标识符与预先配置的用户标识符进行匹配,若匹配到所述用户标识符,则执行判断所述源IP地址是否有对应的令牌桶的过程。在另一个可选的实现方式中,所述限速速率的大小为所述令牌桶的容量。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可知,网络设备在接收到请求报文之后,可以根据该请求报文携带的URL地址确定对应的限速速率,并根据该请求报文的源IP地址确定对应的令牌桶;然后再判断该令牌桶的填充令牌时间是否大于预设时间,若是,则根据该限速速率回填令牌到该令牌桶之后,转发该请求报文,并将该令牌桶中的令牌减1,否则,判断该令牌桶中是否有令牌;如果有,则确定未超过该限速速率,转发该请求报文,并将该令牌桶中的令牌减1;若果没有,则确定超过该限速速率,丢弃该请求报文。基于上述实现方式,网络设备通过请求报文的URL地址确定限速速率,源IP地址确定令牌桶,并且回填令牌到令牌桶是根据限速速率填充,在转发请求报文之后,是将令牌桶中的令牌减1,而不是减去请求报文长度,因此限速操作是针对请求报文的请求次数,限速速率是真正的请求报文速率,由此可知,本申请可以对WEB应用的URL地址的请求速率进行精准限制。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1