一种基于Hash技术的IP数据包分流方法与流程

文档序号:14267355阅读:314来源:国知局
一种基于Hash技术的IP数据包分流方法与流程

本发明属于数据分流领域,具体涉及一种基于hash技术的ip数据包分流方法。



背景技术:

随着网络技术的飞速发展,接入网络系统的构件数量不断增多,对传输速度和服务质量的需求也不断提升。其中有三个关键问题一直制约着网络性能,即网络连接速度、高速的路由交换和数据包处理速率。网关类产品位于网络的交界处,其处理数据的速度直接影响着整个网络的速度。网关类产品通常采用多处理板或多核并行处理的方式处理网络中庞大的数据流,首先需要对数据包进行分流。

对于交换板数据包处理流程,在处理功能上,可以将交换板划分为数据包接收装置、数据包解封装装置、数据包分流装置、数据包封装装置、数据包调度与发送装置和动态管理装置等6个装置。图1给出了交换板执行任务的功能模型,从图1中可以看出,各功能装置以流水线方式对数据包进行处理,这种处理模式可以充分发挥交换板网络处理器的性能,大大提高交换板的数据吞吐能力。

交换板基本工作过程如下:

1)数据包接收装置实时高速地接收来自交换板接口接收缓冲区里的数据包,将接收到的数据包进行帧重组后保存到本地内存中,并把数据包的基地址、偏移量、包大小等相关信息保存到存储器记录数据包信息的环型链表尾部。

2)数据包解封装装置首先从记录数据包信息的环型链表中取出待处理数据包的基地址等相关信息并保存到位于本地内存的元组信息表中,然后通过修改数据包的地址偏移量和包大小去掉帧的头部信息。然后对数据包进行异常检测,将正常的ip数据包交给数据包分流装置继续处理,存在异常的数据包则直接丢弃。

3)数据包分流装置执行数据分流方法,实现数据包的分流处理。

4)数据包封装装置根据数据分流结果,给数据包添加以太网包头,并重新封装为目标以太帧。

5)数据包调度与发送装置对分流封装后的数据帧按照分流结果进行队列管理与调度,依次送入交换板发送接口的发送缓冲区,由发送接口高速地发送到对应的分流目的处理板。

另外,动态管理装置主要负责接收分流给目的处理板的负载探测代理发送的实时处理板负载信息,根据实时处理板负载信息对分流给目的处理板的负载表进行动态更新,提高数据分流的负载均衡性。

数据包分流方法的设计是交换板处理数据包快慢的关键,它的任务是将实时接收到的大量数据包按照预定的分流策略快速地转发到后端目的处理板上。每个后端处理板需要对分流到本处理板的数据进行安全分析与处理,而数据内容的完整性对于安全分析和判断的准确性将产生较大影响。因此,数据包分流方法必须首先确保同一连接的所有数据包被分流到同一后端处理板,其次再考虑各处理板的负载均衡和执行效率等问题。



技术实现要素:

(一)要解决的技术问题

本发明的目的是提出一种基于hash技术的ip数据包分流方法,以解决数据传输稳定的问题。

(二)技术方案

为解决上述技术问题,本发明提出一种基于hash技术的ip数据包分流方法,该方法包括如下步骤:

第一步、设置分流路由表,分流路由表用于记录对ip数据包进行分流的分流路由表项,分流路由表项包括五元组的hash值;

第二步、建立待分流ip数据包队列;

第三步、从待分流ip数据包队列中取出ip数据包,得到ip数据包的五元组,并计算五元组的hash值,将待分流ip数据包队列中取出的ip数据包删除,根据ip数据包的hash值查找分流路由表,如果能够在分流路由表中找到对应的hash值,则根据具有对应的hash值的分流路由表项,对ip数据包进行分流;如果在分流路由表中找不到对应的hash值,则在分流路由表中增加新的分流路由表项,并根据新的分流路由表项,对ip数据包进行分流;

第四步、判断待分流ip数据包队列是否为空,若不为空,则重复执行第三步,若为空则结束。

优选地,分流路由表项还包括分流发送接口标识、最后访问时间和有效标志位。

优选地,第三步中如果能够在分流路由表中找到对应的hash值,则在对ip数据包进行分流时,更新最后访问时间。

优选地,第三步中增加新的分流路由表项时,将ip数据包的hash值、分流发送接口标识、最后访问时间和有效标志位记录到新的分流路由表项中。

优选地,在第一步中设置处理板负载表,处理板负载表用于记录和均衡处理板的负载,处理板接收和处理分流后对应的ip数据包;在第三步中,如果在分流路由表中找不到对应的hash值,则查找处理板负载表,以其中记载的负载值最小的处理板作为分流目的处理板,增加该处理板在处理板负载表中的负载值,在分流路由表中增加新的分流路由表项,对ip数据包进行分流。

优选地,处理板在完成分流工作后,将分流工作结束信号反馈给处理板负载表,降低处理板在处理板负载表中的负载值。

优选地,在第三步中设置分流缓冲区,多个ip数据包在进行分流时,被送入分流缓冲区中,并根据进入分流缓冲区的先后顺序依次进行分流。

优选地,五元组的hash值为48位、64位或128位的hash值。

(三)有益效果

本发明能够不断地从待分流ip数据包队列中取出ip数据包,并根据分流路由表项对ip数据包进行计算分流,实现数据稳定传输的效果。此外,通过设置处理板负载表,还可以实现均衡处理板负载的效果。

附图说明

图1是交换板执行任务功能模型;

图2是本发明ip数据包分流的基本处理流程。

具体实施方式

为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。

本发明提出一种基于hash技术的ip数据包分流方法,ip数据包分流的基本处理流程,如图2所示,具体包括如下步骤:

第一步、设置分流路由表和处理板负载表,分流路由表用于记录对ip数据包进行分流的分流路由表项,分流路由表项包括五元组的hash值、分流发送接口标识、最后访问时间和有效标志位(0表示无效,1表示有效),处理板负载表用于记录和均衡处理板的负载,处理板接收和处理分流后对应的ip数据包,处理板负载表中各处理板的负载初始值均为零,分流路由表初始为空。

第二步、建立待分流ip数据包队列。

第三步、从待分流ip数据包队列中取出ip数据包,得到ip数据包的五元组,并计算五元组的64位hash值,将待分流ip数据包队列中取出的ip数据包删除,根据ip数据包的hash值查找分流路由表,如果能够在分流路由表中找到对应的hash值,则根据具有对应的hash值的分流路由表项,对ip数据包进行分流,更新最后访问时间;如果在分流路由表中找不到对应的hash值,则查找处理板负载表,以其中记载的负载值最小的处理板作为分流目的处理板,增加该处理板在处理板负载表中的负载值,在分流路由表中增加新的分流路由表项,将ip数据包的hash值、分流发送接口标识、最后访问时间和有效标志位记录到新的分流路由表项中,对ip数据包进行分流。处理板在完成分流工作后,将分流工作结束信号反馈给处理板负载表,降低处理板在处理板负载表中的负载值。

在对ip数据包进行分流时,设置分流缓冲区,多个ip数据包在进行分流时,被送入分流缓冲区中,并根据进入分流缓冲区的先后顺序依次进行分流。

第四步、判断待分流ip数据包队列是否为空,若不为空,则重复执行第三步,若为空则结束。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1