CN100448225C - 一种无需ip分片重组实现动态流分类的装置和方法 - Google Patents
一种无需ip分片重组实现动态流分类的装置和方法 Download PDFInfo
- Publication number
- CN100448225C CN100448225C CNB2005100865252A CN200510086525A CN100448225C CN 100448225 C CN100448225 C CN 100448225C CN B2005100865252 A CNB2005100865252 A CN B2005100865252A CN 200510086525 A CN200510086525 A CN 200510086525A CN 100448225 C CN100448225 C CN 100448225C
- Authority
- CN
- China
- Prior art keywords
- fragmentation
- record
- list item
- burst
- chained list
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种无需IP分片重组实现动态流分类的装置和方法,基于IP分片四元组(源地址、目的地址、报文ID、协议号)对IP分片进行跟踪,采用多个并行装置和装置内部多进程/线程机制实现了对IP分片的高速并行处理,通过切分IP分片表、设置IP分片记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲IP分片记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。
Description
技术领域
本发明属于计算机网络和数据通信技术领域,具体涉及一种无需IP分片重组实现动态流分类的装置和方法,可以用于路由器、安全网关、流量监测与审计、网络计费、负载均衡等网络设备和软件之中,避免了由于分片重组而导致的系统开销和处理时延,提高了分类的效率。
背景技术
随着VoIP(Voice over IP)、移动数据业务、P2P(Peer-to-Peer)等新兴应用需求的不断增加,网络应用呈现出日新月异的发展趋势,与此同时网络带宽也迅猛增长,QoS(Quality of Service)、攻击/入侵的检测与防御、流量监测与审计、网络计费、负载均衡等网络设施的关键业务功能面临新的和更大的挑战。这些业务功能涉及许多针对会话、用户或者高层协议的处理任务,会话和用户的负载往往达到十万级甚至百万级,需要在对流量进行细粒度控制的同时兼顾报文的高速处理,其核心是实现高效的流分类。基于IP五元组(源地址、目的地址、源端口/ICMP id、目的端口/ICMP type和code、协议号)或者其他特定标识的动态流分类方法具有粒度细、可扩展性好等优点,因此得到了广泛的应用。
动态流分类方法以一个动态更新的网络流表为基础,其基本操作是:当报文(packet)到达时,根据报文包含的IP五元组信息或者其他特定标识查询网络流表,确定报文所属的网络流,并根据对应流记录中的处理策略信息对报文做相应处理。除此以外,动态流分类还要涉及两方面的重要工作:一方面是网络流表的管理,包括流记录的新建、替换、老化和回收;另一方面是流状态跟踪和流记录的更新。
由于动态流分类需要用到TCP/UDP端口号、ICMP的type和code或其他特定标识等4层以上(含4层)协议的信息,而对于IPv4分片(fragment)来说,通常只有首分片包(即IP包头中Fragment offset字段的值为0的分片)才包含上述信息,后续分片是不包含这些信息的,这样就给动态流分类带来了困难。进行IP分片重组固然可以解决这个问题,但是由于IP分片重组需要将分片进行缓冲、拷贝,因此其开销和时延都比较大,不能满足实时处理的要求。因此,需要一种无需IP分片重组实现动态流分类的装置和方法。
发明内容
本发明的目的是提供一种无需IP分片重组实现动态流分类的装置和方法。
根据本发明的一个方面,提供一种无需IP分片重组实现动态流分类的装置,该装置包括:基于IP分片四元组的IP分片定位装置,用于执行IP分片定位操作,确定IP分片所属的IP报文以及所属的网络流(其中IP分片四元组为源地址、目的地址、报文ID、协议号);IP分片跟踪装置,用于执行IP分片跟踪操作,更新IP分片记录中的标志位、已到达分片总长度、IP报文总长度、时间戳、老化时间等信息;IP分片表管理装置,用于执行IP分片表中IP分片记录的新建、替换、老化和回收操作;IP分片表,用于记录属于同一IP报文的分片的到达情况、缓存首分片包(即IP包头中Fragment offset字段的值为0的分片)查询得到的动态流分类信息,采用散列表方式进行组织,采用链表方式解决散列碰撞;空闲IP分片记录表项缓冲区,用于存储空闲的IP分片记录表项,采用先进后出(FILO)方式分配空闲表项。
其中,IP分片定位装置、IP分片跟踪装置和IP分片表管理装置的一个重要特征是均包含多个进程或线程,能够进行高速并行处理。IP分片表管理装置的另一个重要特征是:各个进程/线程分别负责IP分片表的不同部分,从而保证IP分片表中的每个散列表项及其指向的IP分片记录链表只有一个写者,即链表的插入和删除由唯一的进程/线程负责,且在链表的插入和删除操作过程中通过严格规定写指令次序以保持链表的完整性,从而避免了由于并行处理而引发的大量互斥和同步操作。空闲IP分片记录表项缓冲区的一个重要特征是:其可分配表项阈值小于最大空闲表项数,从而保证被回收的表项不会被马上重新分配出去,避免了回收表项时的同步操作。
根据本发明的另一个方面,提供一种无需IP分片重组实现动态流分类的方法,该方法包括:根据IP分片包含的IP分片四元组信息执行IP分片定位操作,确定IP分片所属的IP报文以及所属的网络流;根据IP分片的字段信息执行IP分片跟踪操作,更新IP分片记录中的相关信息;对于找不到对应IP分片记录的IP分片,将其交给IP分片表管理装置,经IP分片表管理装置确认不存在对应IP分片记录后,执行IP分片记录新建操作;在新建IP分片记录之前,如果空闲IP分片记录缓冲区已空,则执行IP分片记录替换操作,替换出一个IP分片记录表项;定时执行IP分片记录老化操作,将已经达到或超过老化时间的IP分片记录从IP分片表中删除;对已经从IP分片表中删除的IP分片记录表项执行回收操作,回收到空闲IP分片记录缓冲区中。
所述IP分片定位操作的步骤为:
1)以IP分片包含的源地址、目的地址、报文ID、协议号为IP分片四元组信息,以四元组信息为键值代入散列函数,以运算结果为索引找到IP分片表中对应的散列表项。每个散列表项都对应一个IP分片记录链表,以解决散列碰撞问题;
2)将IP分片的键值依次与链表中各IP分片记录的键值进行比较;
3)如果找到对应的IP分片记录(键值相等),则将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作;
4)否则,将IP分片交给IP分片表管理装置中对应的进程/线程,IP分片表管理装置先要确认对应IP分片记录是否存在。如果存在,则直接将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作;否则,从空闲IP分片记录表项缓冲区中分配一个空闲IP分片记录表项,然后执行IP分片记录新建操作。如果缓冲区已空,则要先执行IP分片记录替换操作,获得一个IP分片记录表项。
所述IP分片跟踪操作的步骤为:
1)将分片对应的IP分片记录加写锁,或者采用互斥写原子指令对IP分片记录内容进行修改;
2)如果当前分片为首分片包(即IP包头中Fragment offset字段的值为0的分片),则将IP分片记录中的“首分片已到达”标志位置位并更新IP报文总长度、已到达分片总长度、时间戳、老化时间等信息。当已到达分片总长度等于IP报文总长度时,将IP分片记录中的“所有分片已到达”标志位置位并更新时间戳、老化时间等信息。接着,将IP分片交给动态流分类装置执行动态流分类操作。当动态流分类操作执行完毕后,将报文所属的网络流记录的地址缓存到IP分片记录中,然后对该IP分片记录的IP分片链表加写锁,将IP分片链表中保存的IP分片从链表中一一删除,交给后继装置处理。进一步,但不是必要的,在更新IP分片记录信息前,如果“首分片已到达”标志位已经置位,则可以将该IP分片丢弃(因为IP协议是无状态协议,没有重传机制,如果出现重传的IP分片,则可以判定为出错或者攻击);
3)如果当前分片不是首分片包,更新IP分片记录中的已到达分片总长度。如果当前分片是尾分片包(即IP包头中MF字段的值为0的分片),将IP分片记录中的“尾分片已到达”标志位置位并更新时间戳、老化时间等信息。当已到达分片总长度等于IP报文总长度时,将IP分片记录中的“所有分片已到达”标志位置位并更新时间戳、老化时间等信息。如果IP分片记录中缓存的网络流记录指针为空,将该IP分片记录的IP分片链表加写锁。加锁成功后,再一次判断IP分片记录中缓存的网络流记录指针是否为空。如果为空,则将该IP分片挂入IP分片记录的IP分片链表中,然后解除IP分片链表写锁;否则,直接解除IP分片链表写锁。
4)解除IP分片记录的写锁,然后根据得到的网络流记录指针找到对应的网络流记录,将当前IP分片交给后继装置处理。
所述IP分片记录替换操作的步骤为:
1)依次检查当前IP分片记录链表中各IP分片记录的时间戳和老化时间信息,选择已经达到或者超过老化期限的IP分片记录。如果没有这样的IP分片记录,则选择IP分片记录链表中老化期限最近且IP分片链表为空的IP分片记录,或者选择IP分片记录链表中第一个IP分片链表为空的IP分片记录;
2)返回选中的IP分片记录。
所述IP分片记录新建操作的步骤为:
1)以IP分片的键值作为IP分片记录的键值,填写IP分片记录中的键值、时间戳、老化时间等字段;
2)将IP分片记录表项插入IP分片表中键值对应的IP分片记录链表中;
3)将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作。
所述IP分片记录老化操作的步骤为:
1)IP分片表管理装置的每个进程/线程定期扫描其负责的那部分IP分片表,将达到或超过老化期限的IP分片记录进行回收;
2)为控制老化操作的开销,需设置一次操作中最多扫描表项的阈值。每次老化操作都从上次结束的地方开始继续进行扫描。
所述IP分片记录表项回收操作的步骤为:
1)将IP分片记录表项从IP分片表中键值对应的IP分片记录链表中摘除;
2)将IP分片记录表项回收到空闲IP分片记录表项缓冲区中。在进行回收前,可能还存在一些正在使用该表项的IP分片,为了不影响其在回收过程中以及回收以后的正常使用,避免由于回收引起的的同步开销,在回收时不清空表项内容,而是等到该表项下次分配时再清空,同时将空闲IP分片记录表项缓冲区的可分配表项阈值设置成小于最大空闲表项数--由于空闲IP分片记录表项缓冲区采取先进后出的方式分配空闲表项,因此被回收的表项不会被马上重新分配出去,使得当前使用该表项的IP分片能够顺利地处理完毕。
所述在IP分片表中插入IP分片记录表项的操作步骤为:
1)假设要在IP分片记录链表中的IP分片记录表项A和C之间插入一个新的表项B。首先,读出表项A的下一表项字段的值(即表项C的位置);
2)采用写原子指令将读出的值写到表项B的下一表项字段中;
3)采用写原子指令将表项B的地址填入表项A的下一表项字段中。
所述在IP分片表中删除IP分片记录表项的操作步骤为:
1)假设要在IP分片记录链表中删除IP分片记录表项A和C之间的表项B。
首先,读出表项B的下一表项字段的值(即表项C的位置);
2)采用写原子指令将读出的值写到表项A的下一表项字段中;
3)保留表项B的内容(包括表项B的下一表项字段)不清空。这样即使当前有沿着该链表进行查询操作的读者且正好到达表项B,也不会因为B被从链表中删除而影响其访问后面的表项。
本发明涉及一种无需IP分片重组实现动态流分类的装置和方法,基于IP分片四元组对IP分片进行跟踪,采用多个并行装置和装置内部多进程/线程机制实现了对IP分片的高速并行处理,通过切分IP分片表、设置IP分片记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲IP分片记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器(SMP)、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。
附图说明
下面结合附图对本发明进一步详细地说明:
图1为本发明的IP分片表示意图;
图2为本发明的空闲IP分片记录表项缓冲区示意图;
图3为根据本发明的实施例无需IP分片重组实现动态流分类的装置示意图;
图4为根据本发明的实施例无需IP分片重组实现动态流分类的方法流程图;
最佳实施例详细描述
下面参照本发明的附图,更详细地描述本发明的最佳实施例详细描述。
本发明是一种无需IP分片重组实现动态流分类的装置和方法。
参见图1,本发明的IP分片表用于记录IP分片信息,采用散列表方式进行组织,散列表长度为L。采用链表方式解决散列碰撞,每个散列表项都包含一个IP分片记录链表的头指针。
IP分片表散列表项的结构如下表所示:
数据信息(按照存储顺序排列) | 长度(位) | 含义 |
IP分片记录链表头指针(fragentrylist) | 32 | 指向由对应相同散列值的IP分片记录表项组成的链表 |
IP分片记录表项的结构如下表所示:
参见图2,本发明的空闲IP分片记录表项缓冲区用于存储空闲的IP分片记录表项,采用链表方式进行组织,并采用先进后出(FILO)方式分配空闲表项。缓冲区的头尾分别由缓冲区头指针Ph和缓冲区尾指针Pt指示。为了避免由于回收操作引起的同步开销,保证被回收的表项不会被马上重新分配和清空,设置可分配表项阈值Tr和最大空闲表项数S(0<Tr<S)。
参见图3,本发明的无需IP分片重组实现动态流分类的装置包括:IP分片定位装置1,IP分片跟踪装置2,IP分片表管理装置3。此外,还包括图1-2所示的IP分片表和空闲IP分片记录表项缓冲区。IP分片定位装置1执行IP分片定位操作,根据IP分片四元组确定IP分片所属的IP报文以及所属的网络流,其中IP分片四元组为(源地址、目的地址、报文ID、协议号),对于找不到对应IP分片记录的IP分片,交给IP分片表管理装置3处理。IP分片跟踪装置2执行IP分片跟踪操作,更新IP分片记录中的标志位、已到达分片总长度、IP报文总长度、时间戳、老化时间等信息。IP分片表管理装置3执行IP分片表中IP分片记录的新建、替换、老化和回收操作。各装置中均包含N个进程或线程,以实现高速并行处理。为了消除由于并行处理而导致的IP分片表访问的互斥和同步开销,需按照IP分片表管理装置中的进程/线程数对IP分片表进行切分,IP分片表管理装置中的每个进程/线程独立负责IP分片表的一部分,以保证对每条IP分片记录链表只有唯一的写者执行插入和删除操作。此外,为控制每次老化操作的开销,需设置阈值Ta以控制一次老化操作中允许扫描的表项的数目。
参见图4,本发明的无需IP分片重组实现动态流分类的方法包括如下步骤:
1)IP分片首先进入IP分片定位装置,执行IP分片定位操作S1。以IP分片包含的IP分片四元组信息为键值代入散列函数H,计算得到索引值i。
函数H典型的计算公式为:
(源地址+目的地址+IP报文ID+协议号)%L
根据i找到IP分片表中对应的散列表项E。将IP分片的键值依次与散列表项的fragentrylist字段所指链表中各IP分片记录的键值进行比较。如果找到键值相等的IP分片记录,则将IP分片交给IP分片跟踪装置,转步骤2);否则,将IP分片交给IP分片表管理装置中第(i%N)个进程/线程,转步骤3);
2)执行IP分片跟踪操作S2。将IP分片记录加写锁wlock,然后分如下两种情况进行处理:①如果当前分片为首分片包(即IP包头中Fragment offset字段的值为0的分片),则将IP分片记录中的“首分片已到达”标志位置位并更新len、fraglen、timestamp、agetime等字段。当fraglen等于len时,将IP分片记录中的“所有分片已到达”标志位置位并更新timestamp、agetime等字段。接着,将IP分片交给动态流分类装置执行动态流分类操作。当动态流分类操作执行完毕后,将报文所属的网络流记录的地址缓存到IP分片记录的flow字段中,然后对该IP分片记录的IP分片链表加写锁listwlock,将IP分片链表中保存的IP分片从链表中一一删除,交给后继装置处理。进一步,但不是必要的,在更新IP分片记录信息前,如果“首分片已到达”标志位已经置位,则可以将该IP分片丢弃(因为IP协议是无状态协议,没有重传机制,如果出现重传的IP分片,则可以判定为出错或者攻击);②如果当前分片不是首分片包,更新IP分片记录中的fraglen字段。如果当前分片是尾分片包(即IP包头中MF字段的值为0的分片),将IP分片记录中的“尾分片已到达”标志位置位并更新timestamp、agetime等字段。当fraglen等于len时,将IP分片记录中的“所有分片已到达”标志位置位并更新timestamp、agetime等字段。如果IP分片记录中flow字段为空,将该IP分片记录的IP分片链表加写锁listwlock。加锁成功后,再一次判断IP分片记录中flow字段是否为空。如果为空,则将该IP分片挂入链表fraglist中,然后解锁listwlock;否则,直接解锁listwlock。最后,解锁wlock,然后根据flow字段值找到对应的网络流记录,将当前IP分片交给后继装置处理。
3)查询IP分片表,确认是否已存在对应的IP分片记录。如果存在,则直接将IP分片交给IP分片跟踪装置,转步骤2);否则,判断空闲IP分片记录表项缓冲区是否为空。如果为空(已分配表项数达到阈值Tr),转步骤4);否则,从空闲IP分片记录表项缓冲区中分配一个空闲IP分片记录表项并对表项进行清零,然后转步骤5);
4)执行IP分片替换操作S3。依次检查当前IP分片记录链表中各IP分片记录的timestamp和agetime字段,选择已经达到或者超过老化期限的IP分片记录。如果没有这样的IP分片记录,则选择IP分片记录链表中老化期限最近且flowlist字段为空的IP分片记录,或者选择IP分片记录链表中第一个flowlist字段为空的IP分片记录。转步骤5);
5)执行IP分片记录新建操作S4。填写IP分片记录中的tuple、timestamp、agetime等字段。将IP分片记录表项插入IP分片表中tuple对应的IP分片记录链表中,然后将IP分片交给IP分片跟踪装置,转步骤2);
此外,IP分片表管理装置的每个进程/线程还需要定期执行IP分片记录老化操作S5,即扫描其负责的那部分IP分片表,将达到或超过老化期限的IP分片记录进行回收(IP分片记录表项回收操作S6)。一次老化操作最多扫描Ta个表项,每次老化操作都从上次结束的地方开始继续进行扫描。IP分片记录表项回收操作将IP分片记录表项从IP分片表中tuple对应的IP分片记录链表中摘除,回收到空闲IP分片记录表项缓冲区中,表项内容不清空。
本发明的在IP分片表中插入IP分片记录表项的操作步骤为:
1)假设要在IP分片记录链表中的IP分片记录表项A和C之间插入一个新的表项B。首先,读出表项A的next字段的值(即表项C的位置);
2)采用写原子指令将读出的值写到表项B的next字段中;
3)采用写原子指令将表项B的地址填入表项A的next字段中。
本发明的在IP分片表中删除IP分片记录表项的操作步骤为:
1)假设要在IP分片记录链表中删除IP分片记录表项A和C之间的表项B。
首先,读出表项B的next字段的值(即表项C的位置);
2)采用写原子指令将读出的值写到表项A的next字段中;
3)保留表项B的内容(包括表项B的next字段)不清空。这样即使当前有沿着该链表进行查询操作的读者且正好到达表项B,也不会因为B被从链表中删除而影响其访问后面的表项。
所以,本发明基于IP分片四元组对IP分片进行跟踪,采用多个并行装置和装置内部多进程/线程机制实现了对IP分片的高速并行处理,通过切分IP分片表、设置IP分片记录链表写者唯一、严格规定链表插入和删除操作过程中写指令次序以保持链表的完整性、设置空闲IP分片记录表项缓冲区的可分配表项阈值等措施避免了由于并行处理而引发的大量互斥和同步操作,使得处理效率得到进一步提高。本发明适用于网络处理器、ASIC、FPGA、多内核处理器、对称多处理器(SMP)、软件进程/线程等各种并行处理环境,具有良好的跨平台兼容性、可扩展性和实用性。
本发明已经在申请人研制的基于网络处理器的网络安全处理平台和千兆级安全网关上应用,取得了很好的效果,性能指标优异,实现了本发明的目的。本发明具有很好的实用性和推广应用前景。
尽管为说明目的公开了本发明的具体实施例和附图,其目的在于帮助理解本发明的内容并据以实施,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于最佳实施例和附图所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。
Claims (10)
1.一种无需IP分片重组实现动态流分类的装置,该装置包括:
基于IP分片四元组的IP分片定位装置,用于执行IP分片定位操作,确定IP分片所属的IP报文以及所属的网络流,其中IP分片四元组为源地址、目的地址、报文ID、协议号;
IP分片跟踪装置,用于执行IP分片跟踪操作,更新IP分片记录中的标志位、已到达分片总长度、IP报文总长度、时间戳、老化时间信息;
IP分片表管理装置,用于执行IP分片表中IP分片记录的新建、替换、老化和回收操作;
IP分片表,用于记录属于同一IP报文的分片的到达情况、缓存首分片包查询得到的动态流分类信息,采用散列表方式进行组织,采用链表方式解决散列碰撞;
空闲IP分片记录表项缓冲区,用于存储空闲的IP分片记录表项,采用先进后出方式分配空闲表项。
2.根据权利要求1所述的无需IP分片重组实现动态流分类的装置,其特征在于:
所述IP分片定位装置、IP分片跟踪装置和IP分片表管理装置的一个重要特征是均包含多个进程或线程,能够进行高速并行处理。
3.根据权利要求1所述的无需IP分片重组实现动态流分类的装置,其特征在于:
所述IP分片表管理装置的一个重要特征是:各个进程/线程分别负责IP分片表的不同部分;
所述空闲IP分片记录表项缓冲区的一个重要特征是:其可分配表项阈值小于最大空闲表项数。
4.一种无需IP分片重组实现动态流分类的方法,该方法包括以下步骤:
根据IP分片包含的IP分片四元组信息执行IP分片定位操作,确定IP分片所属的IP报文以及所属的网络流;
根据IP分片的字段信息执行IP分片跟踪操作,更新IP分片记录中的相关信息;
对于找不到对应IP分片记录的IP分片,将其交给IP分片表管理装置,经IP分片表管理装置确认不存在对应IP分片记录后,执行IP分片记录新建操作;
在新建IP分片记录之前,如果空闲IP分片记录缓冲区已空,则执行IP分片记录替换操作,替换出一个IP分片记录表项;
定时执行IP分片记录老化操作,将已经达到或超过老化时间的IP分片记录从IP分片表中删除;
对已经从IP分片表中删除的IP分片记录表项执行回收操作,回收到空闲IP分片记录缓冲区中。
5.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片定位操作的步骤为:
1)以IP分片包含的源地址、目的地址、报文ID、协议号为IP分片四元组信息,以四元组信息为键值代入散列函数,以运算结果为索引找到IP分片表中对应的散列表项;
2)将IP分片的键值依次与链表中各IP分片记录的键值进行比较;
3)如果找到对应的IP分片记录,则将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作;
4)否则,将IP分片交给IP分片表管理装置中对应的进程/线程,IP分片表管理装置先要确认对应IP分片记录是否存在:如果存在,则直接将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作;否则,从空闲IP分片记录表项缓冲区中分配一个空闲IP分片记录表项,然后执行IP分片记录新建操作。
6.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片跟踪操作的步骤为:
1)将分片对应的IP分片记录加写锁,或者采用互斥写原子指令对IP分片记录内容进行修改;
2)如果当前分片为首分片包,则将IP分片记录中的“首分片已到达”标志位置位并更新IP报文总长度、已到达分片总长度、时间戳、老化时间信息;当已到达分片总长度等于IP报文总长度时,将IP分片记录中的“所有分片已到达”标志位置位并更新时间戳、老化时间信息;接着,将IP分片交给动态流分类装置执行动态流分类操作;当动态流分类操作执行完毕后,将报文所属的网络流记录的地址缓存到IP分片记录中,然后对该IP分片记录的IP分片链表加写锁,将IP分片链表中保存的IP分片从链表中一一删除,交给后继装置处理;
3)如果当前分片不是首分片包,更新IP分片记录中的已到达分片总长度;如果当前分片是尾分片包,将IP分片记录中的“尾分片已到达”标志位置位并更新时间戳、老化时间信息;当已到达分片总长度等于IP报文总长度时,将IP分片记录中的“所有分片已到达”标志位置位并更新时间戳、老化时间信息;如果IP分片记录中缓存的网络流记录指针为空,将该IP分片记录的IP分片链表加写锁;加锁成功后,再一次判断IP分片记录中缓存的网络流记录指针是否为空,如果为空,则将该IP分片挂入IP分片记录的IP分片链表中,然后解除IP分片链表写锁;否则,直接解除IP分片链表写锁;
4)解除IP分片记录的写锁,然后根据得到的网络流记录指针找到对应的网络流记录,将当前IP分片交给后继装置处理。
7.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片记录替换操作的步骤为:
1)依次检查当前IP分片记录链表中各IP分片记录的时间戳和老化时间信息,选择已经达到或者超过老化期限的IP分片记录;如果没有这样的IP分片记录,则选择IP分片记录链表中老化期限最近且IP分片链表为空的IP分片记录,或者选择IP分片记录链表中第一个IP分片链表为空的IP分片记录;
2)返回选中的IP分片记录。
8.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片记录新建操作的步骤为:
1)以IP分片的键值作为IP分片记录的键值,填写IP分片记录中的键值、时间戳、老化时间字段;
2)将IP分片记录表项插入IP分片表中键值对应的IP分片记录链表中;
3)将IP分片交给IP分片跟踪装置,执行IP分片跟踪操作。
9.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片记录老化操作的步骤为:
1)IP分片表管理装置的每个进程/线程定期扫描其负责的那部分IP分片表,将达到或超过老化期限的IP分片记录进行回收;
2)为控制老化操作的开销,需设置一次操作中最多扫描表项的阈值;每次老化操作都从上次结束的地方开始继续进行扫描。
10.根据权利要求4所述的无需IP分片重组实现动态流分类的方法,其特征在于,所述IP分片记录表项回收操作的步骤为:
1)将IP分片记录表项从IP分片表中键值对应的IP分片记录链表中摘除;
2)将IP分片记录表项回收到空闲IP分片记录表项缓冲区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100865252A CN100448225C (zh) | 2005-09-28 | 2005-09-28 | 一种无需ip分片重组实现动态流分类的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2005100865252A CN100448225C (zh) | 2005-09-28 | 2005-09-28 | 一种无需ip分片重组实现动态流分类的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1941732A CN1941732A (zh) | 2007-04-04 |
CN100448225C true CN100448225C (zh) | 2008-12-31 |
Family
ID=37959530
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2005100865252A Expired - Fee Related CN100448225C (zh) | 2005-09-28 | 2005-09-28 | 一种无需ip分片重组实现动态流分类的装置和方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100448225C (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159694B (zh) * | 2007-11-16 | 2011-04-06 | 中兴通讯股份有限公司 | 一种ip共享的分布式系统避免分片重组失败的方法 |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101035082B (zh) * | 2007-04-28 | 2010-09-22 | 杭州华三通信技术有限公司 | 分片报文重组方法及接口板 |
CN101510815B (zh) * | 2008-12-31 | 2012-01-04 | 成都市华为赛门铁克科技有限公司 | 一种分片报文处理方法、装置及系统 |
CN101741845B (zh) * | 2009-12-08 | 2012-05-23 | 中国科学院声学研究所 | 一种基于分片的内容认证方法 |
CN102111435B (zh) * | 2010-12-17 | 2014-07-23 | 曙光信息产业(北京)有限公司 | 一种软硬件结合实现tcp连接状态管理的方法 |
CN102014005B (zh) * | 2010-12-17 | 2013-08-07 | 曙光信息产业股份有限公司 | 一种利用多级内存查找方式进行tcp连接管理的方法 |
CN103023808B (zh) * | 2012-12-28 | 2015-06-03 | 南京邮电大学 | 基于块状链表结构的6lowpan数据包重装缓存方法 |
CN104639511B (zh) * | 2013-11-13 | 2018-08-03 | 安凯(广州)微电子技术有限公司 | 一种节省内存的实现方法及装置 |
CN108040010A (zh) * | 2017-12-08 | 2018-05-15 | 盛科网络(苏州)有限公司 | 表项老化的芯片实现方法及系统 |
CN110300074B (zh) * | 2019-06-06 | 2021-08-06 | 北京左江科技股份有限公司 | 一种ip报文分片重组方法 |
CN111413945B (zh) * | 2020-03-19 | 2021-08-03 | 西安法士特汽车传动有限公司 | 一种基于线程交互的多种协议实现方法及系统 |
CN111885198B (zh) * | 2020-07-31 | 2023-07-11 | 北京捷通华声科技股份有限公司 | 消息处理方法、系统、装置及电子设置 |
CN117596211B (zh) * | 2024-01-18 | 2024-04-05 | 湖北省楚天云有限公司 | Ip分片多核负载均衡装置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040184455A1 (en) * | 2003-03-19 | 2004-09-23 | Institute For Information Industry | System and method used by a gateway for processing fragmented IP packets from a private network |
CN1571352A (zh) * | 2003-07-12 | 2005-01-26 | 华为技术有限公司 | 在网络设备中处理五元流组的方法 |
CN1585381A (zh) * | 2004-05-25 | 2005-02-23 | 中兴通讯股份有限公司 | 在网络地址端口映射中高速处理tcp/ip分片包的方法 |
-
2005
- 2005-09-28 CN CNB2005100865252A patent/CN100448225C/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040184455A1 (en) * | 2003-03-19 | 2004-09-23 | Institute For Information Industry | System and method used by a gateway for processing fragmented IP packets from a private network |
CN1571352A (zh) * | 2003-07-12 | 2005-01-26 | 华为技术有限公司 | 在网络设备中处理五元流组的方法 |
CN1585381A (zh) * | 2004-05-25 | 2005-02-23 | 中兴通讯股份有限公司 | 在网络地址端口映射中高速处理tcp/ip分片包的方法 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101159694B (zh) * | 2007-11-16 | 2011-04-06 | 中兴通讯股份有限公司 | 一种ip共享的分布式系统避免分片重组失败的方法 |
Also Published As
Publication number | Publication date |
---|---|
CN1941732A (zh) | 2007-04-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100448225C (zh) | 一种无需ip分片重组实现动态流分类的装置和方法 | |
CN100459574C (zh) | 对网络流进行分类、状态跟踪和报文处理的装置和方法 | |
Ben Basat et al. | Constant time updates in hierarchical heavy hitters | |
CN105591973B (zh) | 应用识别方法及装置 | |
US8767551B2 (en) | System and method for flow table management | |
US8432807B2 (en) | Network traffic analysis using a flow table | |
US9356844B2 (en) | Efficient application recognition in network traffic | |
CN104734993A (zh) | 数据分流方法及分流器 | |
US20040037276A1 (en) | System and method for packet storage and retrieval | |
US20040001492A1 (en) | Method and system for maintaining a MAC address filtering table | |
KR20070122045A (ko) | 실시간 상태 기반 패킷 검사 방법 및 이를 위한 장치 | |
KR20090079945A (ko) | 플로우 정보 제한장치 및 방법 | |
CN1802836A (zh) | 网络协议卸载引擎存储器管理 | |
CN102035738B (zh) | 一种获取路由信息的方法及装置 | |
CN101640594A (zh) | 一种在网络设备上提取流量攻击报文特征的方法和单元 | |
US6026093A (en) | Mechanism for dispatching data units via a telecommunications network | |
CN102420771B (zh) | 高速网络环境中提高tcp并发连接速度的方法 | |
JP2002223240A (ja) | 重み付きランダムアーリディテクションバッファアドミッタンスアルゴリズムの近似方法 | |
WO2015086082A1 (en) | Method and system for analyzing a data flow | |
CN105515921A (zh) | 实现网络分片报文流量实时监测的方法和装置 | |
US20060235957A1 (en) | Connection management method, system, and program product | |
CN109525495A (zh) | 一种数据处理装置、方法和fpga板卡 | |
US6687715B2 (en) | Parallel lookups that keep order | |
US8244880B2 (en) | Connection management method, system, and program product | |
CN1271833C (zh) | 无需ip重组分发分组的装置和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20081231 Termination date: 20130928 |