对网络流进行分类、状态跟踪和报文处理的装置和方法

文档序号:7621090阅读:142来源:国知局
专利名称:对网络流进行分类、状态跟踪和报文处理的装置和方法
技术领域
本发明属于计算机网络和数据通信技术领域,具体涉及一种对网络流进行分类、状态跟踪和报文处理的装置和方法,可以用于路由器、安全网关、流量监测与审计、网络计费、负载均衡等网络设备和软件之中,实现对流量的细粒度控制、提高报文处理的效率。
背景技术
随着VoIP(Voice over IP)、移动数据业务、P2P(Peer-to-Peer)等新兴应用需求的不断增加,网络应用呈现出日新月异的发展趋势,与此同时网络带宽也迅猛增长,QoS(Quality of Service)、攻击/入侵的检测与防御、流量监测与审计、网络计费、负载均衡等网络设施的关键业务功能面临新的和更大的挑战。这些业务功能涉及许多针对会话、用户或者高层协议的处理任务,会话和用户的负载往往达到十万级甚至百万级,需要在对流量进行细粒度控制的同时兼顾报文的高速处理,其核心是实现高效的流分类。基于规则的静态流分类通过在预先建立的规则表中查找与报文相匹配的规则,将报文归类到匹配规则指定的业务流中进行处理。静态流分类的方法不记录流量的上下文状态信息,需要针对每个报文进行查找,因此往往比较复杂且负载较大。一条业务流通常包含来回两个方向的流量,静态流分类方法无法建立这两个方向流量之间的关联关系,不能满足一些应用(如入侵检测)的需要。此外,静态流分类方法还存在规则数限制(通常最多几万条)、规则增量更新等可扩展性问题,具有一定的局限性。而基于IP五元组(源地址、目的地址、源端口/ICMPid、目的端口/ICMP type和code、协议号)或者其他特定标识的动态流分类方法具有粒度细、可扩展性好等优点,因此得到了广泛的应用。
动态流分类方法以一个动态更新的网络流表为基础,其基本操作是当报文到达时,根据报文包含的IP五元组信息或者其他特定标识查询网络流表,确定报文所属的网络流,并根据对应流记录中的处理策略信息对报文做相应处理。除此以外,动态流分类还要涉及两方面的重要工作一方面是网络流表的管理,包括流记录的新建、替换、老化和回收;另一方面是流状态跟踪和流记录的更新。由于网络流表的规模往往达到上百万条记录,要处理的报文数目也非常多,因此性能成为首要解决的问题。此外,实用性和跨平台兼容性也是必须考虑的。
综上所述,需要一种性能突出、实用性强、跨平台兼容、能够对网络流进行分类、状态跟踪和报文处理的装置和方法,以实现对流量的细粒度控制和报文的高速处理。

发明内容
本发明的目的是提供一种对网络流进行分类、状态跟踪和报文处理的装置和方法。
根据本发明的一个方面,提供一种对网络流进行分类、状态跟踪和报文处理的装置,该装置包括基于IP五元组(源地址、目的地址、源端口/ICMPid、目的端口/ICMPtype和code、协议号)或者其他特定标识的动态流分类装置,执行动态流分类操作,根据报文包含的IP五元组信息或者其他特定标识查询网络流表,确定报文所属的网络流,对于找不到对应流记录的报文,交给流表管理装置处理;流状态跟踪装置,执行流状态跟踪操作,根据报文字段内容更新流记录中的流状态、时间戳、老化时间等信息;报文处理装置,执行报文处理操作,根据流记录中的处理策略信息对报文做相应的处理;流表管理装置,用于执行网络流表中流记录的新建、替换、老化和回收操作;网络流表,用于记录网络流信息,流记录采用散列表方式进行组织,采用链表方式解决散列碰撞;空闲流记录表项缓冲区,用于存储空闲的流记录表项,采用先进后出(FILO)方式分配空闲表项。
其中,动态流分类装置、流状态跟踪装置、流表管理装置和报文处理装置的一个重要特征是均包含多个进程或线程,能够进行高速并行处理。流表管理装置的另一个重要特征是各个进程/线程分别负责网络流表的不同部分,从而保证流表中的每个散列表项及其指向的流记录链表只有一个写者,即链表的插入和删除由唯一的进程/线程负责,且在链表的插入和删除操作过程中通过严格规定写指令次序以保持链表的完整性,从而避免了由于并行处理而引发的大量互斥和同步操作。
根据本发明的另一个方面,提供一种对网络流进行分类、状态跟踪和报文处理的方法,该方法包括根据报文包含的IP五元组信息或者其他特定标识执行动态流分类操作,确定报文所属的网络流;根据报文字段内容执行流状态跟踪操作,更新流记录;根据流记录中的信息执行报文处理操作,实现相应的业务功能;对于在网络流表中查询不到对应流记录的报文,将其交给流表管理装置,经流表管理装置确认不存在对应流记录后,再根据空闲流记录缓冲区的情况执行流记录新建操作(空闲流记录缓冲区未空)或者流记录替换操作(空闲流记录缓冲区已空);定时执行流记录老化操作,将已经达到或超过老化时间的流记录从网络流表中删除;对已经从网络流表中删除的流记录表项执行回收操作,回收到空闲流记录表项缓冲区中。
所述动态流分类操作的步骤为1)以报文包含的IP五元组信息(源地址、目的地址、源端口/ICMPid、目的端口/ICMP type和code、协议号)或者其他特定标识为健值代入散列函数,以运算结果为索引找到网络流表中对应的散列表项。每个散列表项都对应一个流记录链表,以解决散列碰撞问题;2)将报文的健值依次与链表中各流记录的健值进行比较。如果找到对应的流记录(健值相等),则将报文交给流状态跟踪装置执行流状态跟踪操作;否则,根据散列表项的索引将报文交给流表管理装置中对应的进程/线程,流表管理装置确认不存在对应流记录后,再根据空闲流记录缓冲区的情况执行流记录新建操作(空闲流记录缓冲区未空)或者流记录替换操作(空闲流记录缓冲区已空)。如果流表管理装置发现已存在对应流记录,则直接将报文交给流状态跟踪装置,执行流状态跟踪操作。
所述流状态跟踪操作的步骤为1)将报文对应的流记录加写锁,或者采用互斥写原子指令对流记录内容进行修改;2)根据报文所属协议(TCP、UDP、ICMP,等等)、报文中与协议状态相关的字段内容(如TCP包头的flags字段)以及报文传输方向更新流记录中的流状态信息;3)用当前时间更新流记录中的时间戳信息;
4)根据当前流状态更新流记录中的老化时间信息(不同的流状态对应不同的老化时间间隔);5)解除流记录的写锁;6)将报文交给报文处理装置,执行报文处理操作。
所述报文处理操作的步骤为1)读取报文对应的流记录中的处理策略信息;2)根据处理策略对报文进行处理,实现相应的业务功能。典型的业务功能包括QoS、包过滤、攻击/入侵的检测与防御、网络地址转换、报文转发、负载均衡、流量统计,等等。
所述流记录新建操作的步骤为1)以报文的健值作为流的正向健值(一条网络流包含来回两个方向的流量,根据第一个到达报文的方向区分为正方向流量和反方向流量,两个方向的健值不同),先由正向健值对应的进程/线程进行处理;2)填写流记录中的正向健值、开始时间、时间戳、老化时间、流状态等信息。进一步的,根据所需业务功能,填写流记录中的处理策略信息,典型的业务功能包括QoS、网络安全、网络地址转换、路由、二层转换、负载均衡、流量统计,等等。接着确定流的反向健值并填写到流记录中;3)将流记录表项插入网络流表中正向健值对应的流记录链表中;4)将报文交给流的反向健值对应的的进程/线程处理。将流记录表项插入网络流表中反向健值对应的流记录链表中,然后将报文交给流状态跟踪装置,执行流状态跟踪操作。
所述流记录替换操作的步骤为1)依次检查当前流记录链表中各流记录的时间戳和老化时间信息,选择已经达到或者超过老化期限的流记录。如果没有这样的流记录,则采用近期最少使用替换策略(LRU),选择链表中时间戳最老的流记录,或者采用先进先出替换策略(FIFO),选择处于链表头的流记录;2)对选中的流记录执行表项回收操作。
所述流记录老化操作的步骤为
1)流表管理装置的每个进程/线程定期扫描其负责的那部分网络流表,将达到或超过老化期限的流记录进行回收;2)为控制老化操作的开销,需设置一次操作中最多扫描表项的阈值。每次老化操作都从上次结束的地方开始继续进行扫描。
所述流记录表项回收操作的步骤为1)先由正向健值对应的进程/线程进行处理。将流记录表项从网络流表中正向健值对应的流记录链表中删除;2)接着交给反向健值对应的进程/线程进行处理。将流记录表项从网络流表中反向健值对应的流记录链表中删除,并回收到空闲流记录表项缓冲区中。在进行回收前,可能还存在一些正在使用该表项的报文,为了不影响其在回收过程中以及回收以后的正常使用,避免由于回收引起的的同步开销,在回收时不清空表项内容,而是等到该表项下次分配时再清空,同时将空闲流记录表项缓冲区的可分配表项阈值设置成小于最大空闲表项数——由于空闲流记录表项缓冲区采取先进后出的方式分配空闲表项,因此被回收的表项不会被马上重新分配出去,使得当前使用该表项的报文能够顺利地处理完毕。
所述在网络流表中插入流记录表项的操作步骤为1)假设要在流记录链表中的流记录表项A和C之间插入一个新的表项B。
首先,读出表项A的下一表项字段的值(即表项C的位置);2)将读出的值写到表项B的下一表项字段中;3)将表项B的地址填入表项A的下一表项字段中。
所述在网络流表中删除流记录表项的操作步骤为1)假设要在流记录链表中删除流记录表项A和C之间的表项B。首先,读出表项B的下一表项字段的值(即表项C的位置);2)将读出的值写到表项A的下一表项字段中;3)保留表项B的内容(包括表项B的下一表项字段)不清空。这样即使当前有沿着该链表进行查询操作的读者且正好到达表项B,也不会因为B被从链表中删除而影响其访问后面的表项。
本发明涉及一种对网络流进行分类、状态跟踪和报文处理的装置和方法,采用基于IP五元组或者其他特定标识的动态流分类方法实现了对流量的细粒度控制,采用多个并行装置和装置内部多进程/线程机制实现了对流量的高速并行处理,通过切分网络流表、设置流记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲流记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器(SMP)、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。


下面结合附图对本发明进一步详细地说明图1为本发明的网络流表示意图;图2为本发明的空闲流记录表项缓冲区示意图;图3为根据本发明的实施例对网络流进行分类、状态跟踪和报文处理的装置示意图;图4为根据本发明的实施例对网络流进行分类、状态跟踪和报文处理的方法流程图;最佳实施例详细描述下面参照本发明的附图,更详细地描述本发明的最佳实施例详细描述。
本发明是一种对网络流进行分类、状态跟踪和报文处理的装置和方法。
参见图1,本发明的网络流表用于记录网络流信息,采用散列表方式进行组织,散列表长度为L。采用链表方式解决散列碰撞,每个散列表项都包含一个流记录链表的头指针。由于网络流包含正反两个方向的流量,因此每个流记录表项都分别属于网络流表的两条流记录链表,这两条链表分别对应流记录的正向健值和反向健值。
网络流表散列表项的结构如下表所示

流记录表项的结构如下表所示


参见图2,本发明的空闲流记录表项缓冲区用于存储空闲的流记录表项,采用链表方式进行组织,并采用先进后出(FILO)方式分配空闲表项。缓冲区的头尾分别由缓冲区头指针Ph和缓冲区尾指针Pt指示。为了避免由于回收操作引起的同步开销,保证被回收的表项不会被马上重新分配和清空,设置可分配表项阈值Tr和最大空闲表项数S(0<Tr<S)。
参见图3,本发明的对网络流进行分类、状态跟踪和报文处理的装置包括动态流分类装置1,流状态跟踪装置2,报文处理装置3,以及流表管理装置4。此外,还包括图1-2所示的网络流表和空闲流记录表项缓冲区。动态流分类装置1执行动态流分类操作,根据报文包含的IP五元组信息查询网络流表,确定报文所属的网络流,对于找不到对应流记录的报文,交给流表管理装置4处理。流状态跟踪装置2执行流状态跟踪操作,根据报文字段内容更新流记录中的流状态、时间戳、老化时间等信息。报文处理装置3执行报文处理操作,根据流记录中的处理策略信息(action)对报文做相应的处理,实现相关业务功能。流表管理装置4用于执行网络流表中流记录的新建、替换、老化和回收操作。各装置中均包含N个进程或线程,以实现高速并行处理。为了消除由于并行处理而导致的网络流表访问的互斥和同步开销,需按照流表管理装置中的进程/线程数对网络流表进行切分,流表管理装置中的每个进程/线程独立负责网络流表的一部分,以保证对每条流记录链表只有唯一的写者执行插入和删除操作。此外,为控制每次老化操作的开销,需设置阈值Ta以控制一次老化操作中允许扫描的表项的数目。
参见图4,本发明的对网络流进行分类、状态跟踪和报文处理的方法包括如下步骤1)网络报文首先进入动态流分类装置,执行动态流分类操作S1。以报文包含的IP五元组信息为健值代入散列函数H,计算得到索引值i。函数H典型的计算公式为(源地址+目的地址+源端口+目的端口+协议号)%L根据i找到网络流表中对应的散列表项E。将报文的健值依次与散列表项的flowlist字段所指链表中各流记录的健值进行比较。如果找到健值相等的流记录,则将报文交给流状态跟踪装置,转步骤2);否则,将报文交给流表管理装置中第(i%N)个进程/线程,转步骤4);2)执行流状态跟踪操作S2。将流记录加写锁(wlock),然后根据报文所属协议(TCP、UDP、ICMP,等等)、报文中与协议状态相关的字段内容(如TCP头中的flags字段)以及报文传输方向更新流记录的flowstate字段,根据当前时间更新流记录的timestamp字段,根据当前flowstate字段的值更新流记录的agetime字段(不同的流状态对应不同的老化时间间隔)。解除流记录的写锁,然后将报文交给报文处理装置,转步骤3);3)执行报文处理操作S3。读取流记录中的action字段,根据其中的处理策略信息对报文进行处理,实现相应的业务功能。典型的业务功能包括QoS、包过滤、攻击/入侵的检测与防御、网络地址转换、报文转发、负载均衡、流量统计,等等;4)以报文的健值作为流的正向健值,先由正向健值tuple对应的进程/线程进行处理。首先查询网络流表,确认是否已存在对应的流记录。如果存在,则直接将报文交给流状态跟踪装置,转步骤2);否则,从空闲流记录表项缓冲区中分配一个空闲表项并对表项进行清零。如果空闲流记录缓冲区已空(已分配表项数达到阈值Tr),则将报文丢弃,转步骤6);
5)执行流记录新建操作S4。填写流记录中的tuple、starttime、timestamp、agetime、flowstate等字段。进一步的,根据所需业务功能,填写流记录中的action字段。接着确定流的反向健值retuple并填充到流记录中——通常情况下,retuple的计算方法为(resip,redip,resport,redport,proto)=(dip,sip,dport,sport,proto)将流记录表项插入网络流表中tuple对应的流记录链表中,然后将报文交给retuple对应的进程/线程处理。retuple对应的进程/线程负责将流记录表项插入网络流表中retuple对应的流记录链表中,然后将报文交给流状态跟踪装置,转步骤3);6)执行流记录替换操作S5。依次检查当前流记录链表中各流记录的timestamp和agetime字段,选择已经达到或者超过老化期限的流记录。
如果没有这样的流记录,则采用近期最少使用替换策略(LRU),选择链表中时间戳最老的流记录,或者采用先进先出替换策略(FIFO),选择处于链表头的流记录,转步骤7);7)执行流记录回收操作S6。先由正向健值tuple对应的进程/线程进行处理,将流记录表项从网络流表中tuple对应的流记录链表中删除。接着交给反向健值retuple对应的进程/线程进行处理,将流记录表项从网络流表中retuple对应的流记录链表中删除,回收到空闲流记录表项缓冲区中。在进行回收前,可能还存在一些正在使用该表项的报文,为了不影响其在回收过程中以及回收以后的正常使用,避免由于回收引起的的同步开销,在回收时不清空表项内容,而是等到该表项下次分配时再清空,同时将空闲流记录表项缓冲区的可分配表项阈值设置成小于最大空闲表项数——由于空闲流记录表项缓冲区采取先进后出的方式分配空闲表项,因此被回收的表项不会被马上重新分配出去,使得当前使用该表项的报文能够顺利地处理完毕。
此外,流表管理装置的每个进程/线程还需要定期执行流记录老化操作S7,即扫描其负责的那部分网络流表,将达到或超过老化期限的流记录进行回收。一次老化操作最多扫描Ta个表项,每次老化操作都从上次结束的地方开始继续进行扫描。
本发明的在网络流表中插入流记录表项的操作步骤为1)假设要在流记录链表中的流记录表项A和C之间插入一个新的表项B。
首先,读出表项A的next字段的值(即表项C的位置);2)将读出的值写到表项B的next字段中;3)将表项B的地址填入表项A的next字段中。
本发明的在网络流表中删除流记录表项的操作步骤为1)假设要在流记录链表中删除流记录表项A和C之间的表项B。首先,读出表项B的next字段的值(即表项C的位置);2)将读出的值写到表项A的next字段中;3)保留表项B的内容(包括表项B的next字段)不清空。这样即使当前有沿着该链表进行查询操作的读者且正好到达表项B,也不会因为B被从链表中删除而影响其访问后面的表项。
所以,本发明采用基于IP五元组或者其他特定标识的动态流分类方法实现了对流量的细粒度控制,采用多个并行装置和装置内部多进程/线程机制实现了对流量的高速并行处理,通过切分网络流表、设置流记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲流记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器(SMP)、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。
本发明已经在已经在申请人研制的基于网络处理器的网络安全处理平台和千兆级安全网关上应用,取得了很好的效果,性能指标优异,实现了本发明的目的。
本发明具有很好的实用性和推广应用前景。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
权利要求
1.一种对网络流进行分类、状态跟踪和报文处理的装置,该装置包括基于IP五元组信息或者特定标识的动态流分类装置,用于执行动态流分类操作,根据报文包含的IP五元组信息或者特定标识查询网络流表,确定报文所属的网络流,对于找不到对应流记录的报文,交给流表管理装置处理;流状态跟踪装置,用于执行流状态跟踪操作,根据报文字段内容更新流记录中的流状态、时间戳、老化时间信息;报文处理装置,用于执行报文处理操作,根据流记录中的处理策略信息对报文做相应的处理;流表管理装置,用于执行网络流表中流记录的新建、替换、老化和回收操作;网络流表,用于记录网络流信息,流记录采用散列表方式进行组织,采用链表方式解决散列碰撞;以及空闲流记录表项缓冲区,用于存储空闲的流记录表项,采用先进后出方式分配空闲表项。
2.根据权利要求1所述的对网络流进行分类、状态跟踪和报文处理的装置,其特征在于动态流分类装置、流状态跟踪装置、流表管理装置和报文处理装置均包含多个进程或线程,能够进行高速并行处理;流表管理装置的各个进程/线程分别负责网络流表的不同部分。
3.一种对网络流进行分类、状态跟踪和报文处理的方法,具体包括以下步骤根据报文包含的IP五元组信息或者特定标识执行动态流分类操作,确定报文所属的网络流;根据报文字段内容执行流状态跟踪操作,更新流记录;根据流记录中的信息执行报文处理操作,实现相应的业务功能;对于在网络流表中查询不到对应流记录的报文,将其交给流表管理装置,经流表管理装置确认不存在对应流记录后,再根据空闲流记录缓冲区的情况执行流记录新建操作或者流记录替换操作;定时执行流记录老化操作,将已经达到或超过老化时间的流记录从网络流表中删除;对已经从网络流表中删除的流记录表项执行回收操作,回收到空闲流记录表项缓冲区中。
4.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述动态流分类操作的步骤为1)以报文包含的IP五元组信息或者特定标识为健值代入散列函数,以运算结果为索引找到网络流表中对应的散列表项;2)将报文的健值依次与链表中各流记录的健值进行比较如果找到对应的流记录,则将报文交给流状态跟踪装置执行流状态跟踪操作;否则,根据散列表项的索引将报文交给流表管理装置中对应的进程/线程,流表管理装置确认不存在对应流记录后,再根据空闲流记录缓冲区的情况执行流记录新建操作或者流记录替换操作。
5.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述流状态跟踪操作的步骤为1)将报文对应的流记录加写锁,或者采用互斥写原子指令对流记录内容进行修改;2)根据报文所属协议、报文中与协议状态相关的字段内容以及报文传输方向更新流记录中的流状态信息;3)用当前时间更新流记录中的时间戳信息;4)根据当前流状态更新流记录中的老化时间信息;5)解除流记录的写锁;6)将报文交给报文处理装置,执行报文处理操作。
6.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述报文处理操作的步骤为1)读取报文对应的流记录中的处理策略信息;2)根据处理策略对报文进行处理,实现相应的业务功能。
7.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述流记录新建操作的步骤为1)以报文的健值作为流的正向健值,先由正向健值对应的进程/线程进行处理;2)填写流记录中的正向健值、开始时间、时间戳、老化时间、流状态信息;进一步的,根据所需业务功能,填写流记录中的处理策略信息;接着确定流的反向健值并填写到流记录中;3)将流记录表项插入网络流表中正向健值对应的流记录链表中;4)将流记录表项插入网络流表中反向健值对应的流记录链表中,然后将报文交给流状态跟踪装置,执行流状态跟踪操作。
8.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述流记录替换操作的步骤为1)依次检查当前流记录链表中各流记录的时间戳和老化时间信息,选择已经达到或者超过老化期限的流记录;如果没有这样的流记录,则采用近期最少使用替换策略,选择链表中时间戳最老的流记录,或者采用先进先出替换策略,选择处于链表头的流记录;2)对选中的流记录执行表项回收操作。
9.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述流记录老化操作的步骤为1)流表管理装置的每个进程/线程定期扫描其负责的那部分网络流表,将达到或超过老化期限的流记录进行回收;2)为控制老化操作的开销,需设置一次操作中最多扫描表项的阈值,每次老化操作都从上次结束的地方开始继续进行扫描。
10.根据权利要求3所述的对网络流进行分类、状态跟踪和报文处理的方法,其特征在于,所述流记录表项回收操作的步骤为1)先由正向健值对应的进程/线程进行处理,将流记录表项从网络流表中正向健值对应的流记录链表中删除;2)接着交给反向健值对应的进程/线程进行处理,将流记录表项从网络流表中反向健值对应的流记录链表中删除,并回收到空闲流记录表项缓冲区中;在进行回收前,可能还存在一些正在使用该表项的报文,为了不影响其在回收过程中以及回收以后的正常使用,避免由于回收引起的的同步开销,在回收时不清空表项内容,而是等到该表项下次分配时再清空,同时将空闲流记录表项缓冲区的可分配表项阈值设置成小于最大空闲表项数。
全文摘要
本发明涉及一种对网络流进行分类、状态跟踪和报文处理的装置和方法,采用基于IP五元组或者其他特定标识的动态流分类方法实现了对流量的细粒度控制,采用多个并行装置和装置内部多进程/线程机制实现了对流量的高速并行处理,通过切分网络流表、设置流记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲流记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器(SMP)、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。
文档编号H04L12/56GK1937574SQ200510086440
公开日2007年3月28日 申请日期2005年9月19日 优先权日2005年9月19日
发明者张建宇, 韦韬, 邹维 申请人:北京大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1