网络流量负载平衡的处理方法

文档序号:7920862阅读:306来源:国知局

专利名称::网络流量负载平衡的处理方法
技术领域
:—种网络的数据包处理方法,特别有关于一种网络流量负载平衡的处理方法。
背景技术
:随着网际网络的日益成熟,网络的传输技术也日渐更新。所以许多网络设备中更加入了负载平衡的功能。网络传输的负载平衡主要是针对网络设备在接收到大流量的数据包,网络设备会指派相应的队列以储存数据包,并通过相应的线程进程处理。借以避免单一处理线程的局限性,通过多个线程同时完成数据包的处理任务;并通过保证连线通信完成性的功能来保证数据包处理的正确性。但是公知的负载平衡仍有其缺点存在。请参考图1所示,其为公知技术的负载平衡的结构示意图。在网络设备中虽然设置有多个线程及其队列。但是网络设备在接收不同来源端的数据包时,会将数据包随机的指派一个队列来存放。如此的设计会导致网络设备在对同一连线通讯(session)的数据包或同一群组已切割的数据包产生以下问题。因为同一连线通讯的数据包与同一群组的已切割数据包需要将所有的数据包接收完成后才能进行相应的处理。若是将同一连线通讯的数据包存放至不同的队列中时,这样网络设备需要从每一个队列中撷取。因此,对于处理数据包的效率会大大的降低。若是网络设备遭遇到分布式拒绝服务攻击(DistributedDenialofService,DDoS)的攻击时,网络设备更无法处理其他来源端的数据包。
发明内容鉴于以上的问题,本发明所要解决的技术问题在于提供一种路流量负载平衡的处理方法,用以均衡网络设备中各线程的连线通讯的负载。为实现上述目的,本发明所公开的一种网络流量负载平衡的处理方法包括以下步骤执行多个线程(threads),每一线程用以处理连线通讯(sessions)的数据包,并对每一线程指派队列(queue),其中该队列用以存放数据包;设定工作门槛值;判断队列中的数据包的数量是否符合工作门槛值;若队列中的数据包的数量符合工作门槛值时,则服务器端根据连线通讯的传输属性,将队列中的数据包转发至其他队列中存放。根据本发明所提供的数据包的负载平衡的处理方法,用以降低单一队列中涌入大量的数据包的情形。除了可以保留连线通讯的完整性外,亦可以保证高流量时的数据包处理稳定性。下面结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。图1为公知技术的负载平衡的结构示意图;图2为本发明的结构示意图;图3A为本发明的工作流程示意图3B为建立连线通讯查找表的流程示意图;图3C为建立数据包切割查找表的流程示意图;图3D为判断数据包的存放流程示意图;图4为本发明的工作结构示意图;图5A为连线通讯查找表的记录格式示意图;图5B为数据包切割查找表的记录格式示意图。其中,附图标记210第一网络211来源端220网络设备221处理单元222储存单元223连线通讯查找表224数据包切割查找表230第二网络231目的端具体实施例方式本发明应用于具有数据包交换的网络设备,举例来说网络设备可以是入侵检测系统(IntrusionDetectionSystems,IDS)、防火墙(Firewall)、入侵防御系统(IntrusionPreventionSystem,IPS),但不局限于上述网络设备。请参考图2所示,其为本发明的结构示意图。在图2中交换器分别连接了第一网络与第二网络。在图2的左方分别代表第一网络210,且第一网络中更包括有多个来源端211。在图2的右方分别代表第二网络230,且第二网络中亦包括有多个目的端231。在本发明所述的网络设备220中更包括有处理单元221、储存单元222、连线通讯查找表223与数据包切割查找表224。储存单元222用以存放连线通讯查找表223与数据包切割查找表224。处理单元221根据连线通讯查找表223,用以检测当前所接收的数据包是否属于同一连线通讯。处理单元221根据数据包切割查找表224,用以检测当前所接收的数据包是否为被切割的同一群组的数据包。请参考图3A所示,其为本发明的工作流程示意图。本发明在接收来自不同来源端211的数据包后,网络设备会根据以下处理步骤再将数据包进行相应的服务处理,例如入侵检测处理、病毒检测处理等。首先,执行多个线程(步骤S320),并对每一线程指派队列。其中队列用以存放数据包,每一线程用以处理连线通讯的数据包。在建立连线通讯与执行线程后,服务器端会根据所接收到的数据包分别建立连线通讯查找表223与数据包切割查找表224。请另外参考图3B所示,其为建立连线通讯查找表的流程示意图。建立连线通讯查找表更包括以下步骤建立连线通讯查找表(步骤S3211),用以记录每一个数据包的传输属性。其中,传输属性包括有传输属性为来源地址、目的地址、来源传输端口、目的传输端口、传输协议、连线通讯的编号或数据包切割识别码。根据连线通讯查找表,检查当前所接收的数据包是否为新的连线通讯(步骤S3212)。若数据包为新的连线通讯的数据包时,则指派一个线程与其所属的队列用以存放数据包(步骤S3213)。若数据包属于已存在的连线通讯的数据包,则将此一数据包转发至处理此连线通讯的相应线程与其队列(步骤S3214)。请另外参考图3C所示,其为建立数据包切割查找表的流程示意图。建立数据包切割查找表更包括以下步骤建立数据包切割查找表(步骤S3221)。因为一个数据包可以承载的数据量是有其限制的。为了符合数据包的数据量,所以来源端211会预先将欲传送的数据进行切割。并逐一的将已切割的数据填入每一个数据包中。为能清楚说明同一个数据的这些数据包,在此更进一步的将其定义为具有相同群组的数据包。根据数据包切割查找表,查找各队列中是否存在具有相同的数据包切割识别码的数据包(步骤S3222)。若在队列中存在有相同群组的数据包时,则将数据包存放至队列中(步骤S3223)。接收相同群组的数据包后,再对数据包进行重组,并将其输出为已重组数据包(步骤S3224)。延续步骤S320,设定工作门槛值(步骤S330),用以判断队列是否可以再存放当前所接收的数据包。工作门槛值的设定是根据队列中数据包的数量与队列的最大容置量的相对比例。举例来说,若队列可以容置IOO个数据包。而该队列当前已接收到70个数据包时,在此定义该队列的容置量为70/100=70%。假设前述队列的工作门槛值为60%时,则此一队列已超过所设定的工作门槛值。设定循环时间(步骤S340),其用以决定网络设备间隔多久时间后再对各队列进行检查数据包的数量。判断队列中的数据包的数量是否符合工作门槛值(步骤S350)。若队列中的数据包的数量未达到工作门槛值时,则网络设备依据预设程序将数据包发送至相应的队列(步骤S360)。若队列中的数据包的数量达到工作门槛值时,则网络设备根据预设程序与连线通讯的传输属性,将队列中的数据包转发至其他队列中存放(步骤S370)。在本实施例中预设程序根据下式1选取出欲转发的队列Q_num=(src_IP&0XFF)+(dst_IP&0XFF)%n+l(式1)其中,Q_nUm为欲转发的目的队列的标号;scr_IP为来源端的IP地址;dst_IP为目的端的IP地址;n为队列的数量。在进行步骤S360后更包括有以下步骤,请另外参考图3D所示判断欲转发的队列的数据包的数量是否达到工作门槛值(步骤S371)。若欲转发的该队列中的数据包数量已达到工作门槛值时,则从其余的队列中选择一个具有最少数据包的数量的队列(步骤S372)。通过查找连线通讯查找表和数据包切割查找表,判定该数据包是否属于一个未作记录的新连线通讯(步骤S373)。如果这个数据包属于现有的连线通讯,那么将数据包转发至连线通讯查找表中记录的队列(步骤S374)。如果这个数据包属于一个新的连线通讯,将数据包分配至上述所选出具有最少数据包的队列(步骤S375),同时在连线通讯查找表中增加这个连线通讯的记录。最后,在经过循环时间后,网络设备选择具有最多数据包数量的队列,并对后续所接收到的数据包执行步骤S350。为清楚说明本发明的工作过程,以下述例子作为说明。请参考图4所示,其为本发明的工作结构示意图。在此假设工作门槛值为70%,且在网络设备中建立了6个连线通讯及其队列(分别为第一队列、第二队列、第三队列、第四队列、第五队列与第六队列)。网络设备220分别接获来源端的数据包,其中来源端211的相关为src」p:218.30.108.184,src_pOrt:80。并将所接收到的数据包传送至目的端231,其中目的端231的相关数据为dst—ip:10.190.50.39,dst_port:2048。当网络设备220开始接收数据包后,网络设备2206会根据式1的计算结果,得到此一数据包将转发至相应的队列中存放。请参考下式2:((218.30.108.184)&0xFF+(10.190.50.39)&0xFF)%6+1=2(式2)在经过循环时间后,网络设备中各队列的数据包的容置量如下表1所述<table>tableseeoriginaldocumentpage7</column></row><table>表l.各队列的数据包的容置量观察表1后,可以得知第一队列的容置量以超过工作门槛值。因此,网络设备220在接收到新的数据包(在此将其定义为第一数据包)时,网络设备220会选择其他队列用以存放第一数据包。假设第一数据包的来源端为src」p:223.40.106.183,src_port:80;其目的端为dst_ip:10.190.50.39,dst_port:3000。若是第一数据包为新的连线通讯时,则网络设备220根据式1计算第一数据包所要存放的队列。请参考下式3的计算((223.40.106.183)&OxFF+(10.190.50.39)&OxFF)%6+1=1(式3)根据式3的计算结果,得到第一数据包欲存放至第一队列。但是第一队列已超过工作门槛值,因此网络设备220从其他队列中选择一个最少容置量的队列。从表1中可以得知第六队列为目前最少容置量的队列,因此网络设备220会将第一数据包存放至第六队列。并且,网络设备220会记录第一数据包的相关记录至连线通讯查找表223中。为方便说明以下述记录格式作为本实施例的连线通讯查找表223的记录格式。请参考图5A所示,其为连线通讯查找表的记录格式示意图。若网络设备220接收到第二数据包与第三数据包,且第二数据包与第三数据包具有同一群组的切割辨识码。在根据第一数据包的环境前提下,网络设备220会将第二数据包与第三数据包存放至第六队列中。网络设备220会根据第二数据包与第三数据包,将其记录至数据包切割查找表224中。假设切割辨识码为"1234567",则在数据包切割表中则记录为如图5B所示。网络设备220在根据连线通讯查找表223与数据包切割查找表224,用以检查所接收的数据包所欲存放的队列。根据本发明所提供的数据包的负载平衡的处理方法,用以降低单一队列中涌入大量的数据包的情形。除了可以保留连线通讯的完整性外,亦可以保证高流量时的数据包处理稳定性。当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。权利要求一种网络流量负载平衡的处理方法,均衡网络设备中多个数据包处理线程的一连线通讯的负载,其特征在于,该处理方法包括以下方法执行多个线程,每一该线程用以接收该连线通讯并对每一该线程指派一队列,该队列用以储存所述数据包;设定一工作门槛值;判断该队列中的该数据包的数量是否达到该工作门槛值;以及若该队列中的该数据包的数量符合该工作门槛值时,则该网络设备根据该连线通讯的一传输属性,将该队列中的所述数据包转发至其他所述队列。2.根据权利要求1所述的网络流量负载平衡的处理方法,其特征在于,在执行所述线程后还包括以下步骤建立一连线通讯查找表,用以记录每一该数据包的所述传输属性;根据该连线通讯查找表,检查当前所接收的该数据包是否为新的该连线通讯;以及若该数据包为新的该连线通讯的该数据包时,则指派该线程与其该队列用以存放所述数据包。3.根据权利要求1所述的网络流量负载平衡的处理方法,其特征在于,在执行所述线程后还包括以下步骤建立一数据包切割查找表;根据该数据包切割查找表,查找各该队列中是否存在具有相同的一数据包切割识别码的所述数据包;以及若在该队列中存在有相同群组的所述数据包时,则将该数据包存放至该队列中。4.根据权利要求3所述的网络流量负载平衡的处理方法,其特征在于,在将该数据包存放至该队列后还包括以下步骤在完成所述数据包的接收后,对所述数据包进行重组,将其输出为一已重组数据包。5.根据权利要求1所述的网络流量负载平衡的处理方法,其特征在于,转发至其他该队列根据下式所决定<formula>formulaseeoriginaldocumentpage2</formula>其中,Q_num为被转发至该队列的标号;scr_IP为来源端的IP地址;dst_IP为目的端的IP地址;n为队列的数量。6.根据权利要求5所述的网络流量负载平衡的处理方法,其特征在于,取得欲转发的该队列后还包括以下步骤若欲转发的该队列中的所述数据包数量已达到该工作门槛值时,则从其余的所述队列中选择一个具有最少所述数据包的数量的该队列;以及将该数据包转发至上述所选出具有最少所述数据包的该队列。7.根据权利要求1所述的网络流量负载平衡的处理方法,其特征在于,转发至其他该队列后还包括以下步骤设定一循环时间;在经过该循环时间后,选择具有最多数据包数量的该队列;以及判断该队列中的该数据包的数量是否符合该工作门槛值。8.根据权利要求1所述的网络流量负载平衡的处理方法,其特征在于,所述传输属性为来源地址、目的地址、来源传输端口、目的传输端口、传输协议、该连线通讯的编号、数据包切割识别码。全文摘要一种网络流量负载平衡的处理方法,均衡网络设备中各数据包处理线程的连线通讯的负载。处理方法包括以下步骤执行多个数据包处理线程,对每个线程指派一个队列用来保存所接收的数据包,线程从队列中读取数据包进行处理;判断队列中的数据包的数量是否符合流量门槛值;若是某一队列中的数据包的数量符合工作门槛值时,网络设备在不影响连线通讯的完整性的原则下将新的数据包分配至其他队列,除了可以保留连线通讯的完整性外,亦保证这些数据包处理线程的负荷一致。文档编号H04L12/56GK101741691SQ20081017274公开日2010年6月16日申请日期2008年11月11日优先权日2008年11月11日发明者刘桂东,陈玄同申请人:英业达股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1