CN101247337A - 一种报文转发的方法和设备 - Google Patents

一种报文转发的方法和设备 Download PDF

Info

Publication number
CN101247337A
CN101247337A CNA2008100081997A CN200810008199A CN101247337A CN 101247337 A CN101247337 A CN 101247337A CN A2008100081997 A CNA2008100081997 A CN A2008100081997A CN 200810008199 A CN200810008199 A CN 200810008199A CN 101247337 A CN101247337 A CN 101247337A
Authority
CN
China
Prior art keywords
message
memory space
stream table
critical field
cryptographic hash
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.)
Granted
Application number
CNA2008100081997A
Other languages
English (en)
Other versions
CN101247337B (zh
Inventor
张�浩
龙志平
田向远
李维
顾晓浩
邵建树
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN2008100081997A priority Critical patent/CN101247337B/zh
Publication of CN101247337A publication Critical patent/CN101247337A/zh
Priority to PCT/CN2009/070378 priority patent/WO2009103225A1/zh
Application granted granted Critical
Publication of CN101247337B publication Critical patent/CN101247337B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

本发明公开了一种报文转发的方法和设备,属于通信领域。方法包括:接收报文,获取所述报文的关键字段;根据所述关键字段,查找第一类存储空间中是否有与所述关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表;如果是,根据在所述第二类存储空间中查找到的流表转发所述报文。设备包括:接收及获取模块、查找及转发模块。通过采用将多级哈希表与TCAM相结合的流表机制,实现报文的快速转发,实现存储报文的容量和转发速度之间的平衡,减少报文存储冲突,实现流表快速收敛,满足网络运营商对容量和速度的要求,节约了成本。

Description

一种报文转发的方法和设备
技术领域
本发明涉及通信领域,特别涉及一种报文转发的方法和设备。
背景技术
随着IP(Internet Protocol,网络之间互连的协议)技术的不断发展,IP网络从承载单一的Internet数据业务向承载语音、数据、视频、大客户专线、3G(3rd Generation,第三代数字通信)、NGN(Next/New Generation Network),下/新一代网络)等运营级多业务方向转型。由于,过去IP网络主要承载普通Internet的数据服务,如收发Email、上网页看新闻等等,因此对网络的带宽方面的要求并不高,通常56Kpbs的访问速度已经能够满足需求。但是随着IP网络的转型,需要服务于各种层出不穷的新业务,如网络游戏、P2P(peer-to-peer,对等技术)、视频、语音等等,于是,在转型过程中,对IP网络在转发性能、容量、安全、业务服务质量上等方面提出了更高的要求。
目前,在IP网络的骨干网的转发速率已经达到40G甚至100G,汇聚层、接入层的转发速率也已经普遍达到10G,通常是采用网络处理器以及多核处理器来实现高速转发,如何在网络处理器或多核处理器中实现对大容量的报文的快速转发,是亟需解决的问题。
当前,对于报文的快速转发主要根据报文的相应关键字段进行相应动作后将报文转发出去,其中,报文的关键字段如报文的MAC(Media Access Control,介质访问控制层协议)地址,IP地址或者根据报文的五元组(如,由报文的源IP地址,目的IP地址,协议号,源端口号,目的端口号构成等)、七元组(如,由报文的源IP地址、目的IP地址、协议号、源端口号、目的端口号、服务类型、输入接口构成等)等等。相应地,在转发设备中如防火墙、深度报文解析、会话边界控制器等,采用基于由报文的关键字段组合而形成的流表(即会话表)以及由相应参数和动作组成的动作表两部分组成的流表机制(其中流表和动作表是一一对应的关系,根据实现方式的不同,可以将流表和动作表统一在一起也可以将流表和动作表进行分别存储),从而实现报文的快速转发。但是,转发设备需要能够提供大容量的存储空间来存放大量由报文的关键字段组成的流表,同时又需要转发设备提供高速的访问和转发速度。目前转发设备中的存储装置在使用时存在不同程度的缺陷:容量大价格低的存储装置如SRAM(Static Random-Access Memory,静态随机存取存储器)、DRAM(Dynamic Random-AccessMemory,动态随机存储器)等,访问速度往往就比较低;而访问速度大的存储装置如TCAM(Triple Content Addressable Memory,三态内容可寻址存储器)其容量往往较小,价格也较高。
同时在进行报文存储时,以什么样的组织形式存放这些由报文的关键字段组合而成的流表也是必须考虑的问题。如果以直接表或者链表的形式直接存放大量的流表,需要大量的存储空间,难以满足提供高速的访问速度。目前主要的办法是采用将流表中的部分关键字段存放在直接表或者链表中,实现对存储空间和访问速度的平衡,而这样有可能由于不同的报文其部分关键字段相同,而导致存放时出现冲突;采用通过树的形式以最长匹配或者完全匹配的方式存放这些流表,可以解决上述冲突的问题,但这种方法比较复杂,而且性能不高。
现有的流表实现机制中,普遍采用树的形式或者链表的方式来存放流表,在树的形式的实现方式中,根据报文的关键字段(如五元组)以最长匹配或者完全匹配等方式来建立和查找流表;在链表的实现方式中,采用多级链表的方式,每级查找表下含有多个辅助链表来建立和查找流表。这两种方式都可以虽然可以解决冲突问题,适用于访问速度和容量要求不高的场合,但是,随着对报文的转发速度的要求的日益提高,如在目前普遍要求达到10G的转发速度的接入层和汇聚层中,存在大量的业务报文需要大量的存储空间和高速转发,如果采用树的形式或者链表的方法存放流表就会出现树的深度越来越深,链表级数越来越大,从而导致访问速度越来越慢,难以实现报文的快速转发。
发明内容
为了实现报文的快速转发,实现流表的快速收敛,本发明实施例提供了一种报文转发的方法和设备。所述技术方案如下:
一种报文转发的方法,所述方法包括:
接收报文,获取所述报文的关键字段;
根据所述关键字段,查找第一类存储空间中是否有与所述关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表;如果是,根据在所述第二类存储空间中查找到的流表转发所述报文。
一种报文转发设备,所述设备包括:
接收及获取模块,用于接收报文,获取所述报文的关键字段;
查找及转发模块,用于根据所述关键字段,查找第一类存储空间中是否有与所述接收及获取模块获取到的关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表;如果是,根据在所述第二类存储空间中查找到的流表转发所述报文。
本发明实施例提供的技术方案的有益效果是:
通过采用将多级哈希表与TCAM相结合的流表机制,可以实现报文的快速转发,在设备中实现存储报文的容量和转发速度之间的平衡,减少报文存储的冲突,实现流表的快速收敛,从而很好的满足网络运营商对容量和速度的要求,节约了成本,方便其开展更多的增值业务。
附图说明
图1是本发明实施例2提供的报文转发的方法的流程示意图;
图2是本发明实施例2提供的建立流表的流程示意图;
图3是本发明实施例3提供的报文转发的方法的流程示意图;
图4是本发明实施例4提供的报文转发的设备示意图;
图5是本发明实施例5提供的报文转发的设备示意图;
图6是本发明实施例6提供的报文转发的设备示意图;
图7是本发明实施例7提供的报文转发的设备示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
实施例1
本发明实施例提供的方案通过采用多级哈希表与TCAM相结合的转发流表机制,通过使用N+1级存储空间,前面N级使用价格低廉的存储空间(如DRAM等)利用报文的关键字段采用哈希算法存储流表,最后一级采用TCAM存储流表。其中,当存储报文建立流表时,如果前面N级都存在报文存储的冲突,便直接利用最后一级的TCAM存储报文建立流表,实现快速收敛。其中,前面N级使用的价格低廉的存储空间称为第一类存储空间,最后一级TCAM称为第二类存储空间,或称为高速存储空间。方法包括:
当接收到报文后,获取报文的关键字段;然后根据关键字段,查找第一类存储空间中是否有与关键字段对应的流表,如果是,根据流表转发报文;否则,根据关键字段,查找第二类存储空间是否有与关键字段对应的流表;如果是,根据在第二类存储空间中查找到的流表转发报文。
其中,第一类存储空间为多级存储空间,于是需要对第一类存储空间的各级存储空间进行依次查找,根据命中的流表进行报文的转发,具体内容为:
获取第一类存储空间的当前存储空间的流表,当查找到与关键字段相对应的流表,则根据流表转发报文,否则,查找当前存储空间的下一级存储空间;当第一类存储空间的各级存储空间中没有查找到与关键字段相对应的流表时,查找第二类存储空间是否有与关键字段对应的流表,然后根据在第二类存储空间中命中的流表进行报文的转发。
进一步地,在获取第一类存储空间的当前存储空间的流表时,可以通过以下方式实现:
首先,对报文的关键字段进行哈希运算,计算得到该报文的关键字段的哈希值;通过当前存储空间的大小获取掩码;对哈希值与掩码进行相与获取一个索引;
然后,计算索引和报文的关键字段的乘积值;根据乘积值与当前的存储空间的基址之和,获取当前存储空间的地址;
最后,根据当前存储空间的地址获取当前存储空间的流表。
进一步地,当查找到与关键字段相对应的流表,根据流表转发报文时,还需要判断流表是否空闲,如果流表不空闲,则需要查找流表,当查找到与关键字段相应的流表,则根据流表转发报文;如果流表空闲,查找当前存储空间的下一级存储空间。
综上所述,实现了根据报文的关键字段采用哈希算法获得的健值在第一类存储空间逐级进行查找;如果第一类存储空间都查找失败,则可以直接在第二类存储空间中进行快速查找。当命中了流表后,从而实现了报文的快速转发。
本发明实施例提供的技术方案,当查找第二类存储空间没有与关键字段对应的流表时,即此时报文无法命中第一类存储空间和第二类存储空间中的流表,说明该报文的相应的流表还没有建立,于是需要为该报文建立流表。其中,为该报文建立流表的过程如下:
首先,获取报文的关键字段的哈希值;通过第一类存储空间的当前存储空间的大小获取掩码;对哈希值与掩码相与获取索引;计算索引和关键字段的乘积值;
然后,根据乘积值和当前存储空间的基址,获取当前存储空间中的地址,判断地址对应的流表是否空闲,如果是,在当前存储空间的地址为报文建立流表;否则,查找当前存储空间的下一级存储空间;当第一类存储空间的各级存储空间中的地址对应的流表为非空闲状态,在第二类存储空间为报文建立流表。
其中,在进行报文查流表转发的时候,还可以记录下第一类存储空间的各级存储空间中的地址对应的流表的空闲信息;于是,相应地,为报文建立流表的过程具体如下:
首先,获取报文的关键字段的哈希值;
然后,通过查找记录的第一类存储空间的各级存储空间中的地址对应的流表的空闲信息,在各级存储空间中首次出现空闲的存储空间的地址,为报文建立流表;当第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在第二类存储空间为报文建立流表。
综上所述,实现了为报文建立流表。在这里需要特别注意的是,当为报文进行建表时,需要判断是否有相同哈希值的报文正在被加锁,如果是,报文等待相同哈希值的报文解锁后,执行相应的动作,如果否,则对报文加锁。
相应地,在为报文建立流表后,对被加锁的报文进行解锁。
其中,报文等待相同哈希值的报文解锁后,执行相应的动作,具体为:
根据获取报文的关键字段的哈希值;判断报文和相同哈希值的报文是否属于同一类型,如果是,则报文等待相同哈希值的报文解锁后,根据相同哈希值的报文建立的流表,进行报文的快速转发;否则,报文等待相同哈希值的报文解锁后,为报文建立流表。
本发明实施例提供的报文转发的方法,通过采用了第一类存储空间和第二类存储空间相结合的转发机制,从而实现了对报文的快速转发,在设备中实现存储报文的容量和转发速度之间的平衡,减少报文存储的冲突,实现流表的快速收敛,从而很好的满足网络运营商对容量和速度的要求,节约了成本,方便其开展更多的增值业务。
针对本实施例提供的报文转发的方案,下面以多个实施例针对查找和建表进行详细的说明。
实施例2
参见图1,本发明实施例提供了一种报文转发的方法,本实施例以设置了N+1级别存储空间为例进行说明,其中前N级为由普通存储设备如SRAM\DRAM等提供的存储空间,第N+1级为由TCAM等存储设备提供的高速存储空间,利用本发明实施例提供的方法,报文转发时根据报文的关键字段采用哈希算法获得的健值在前N级存储空间逐级进行查找;如果前N级存储空间都查找失败,则直接在TCAM中进行快速查找。具体内容包括如下:
设备对接收到的报文进行转发时,需要从设备自身的存储空间中查找该报文对应的流表,当查找到流表后,获取到相关的动作表信息,才能完成该报文的成功转发,其中,具体内容如下:
101:接收转发报文,获取该报文的关键字段,对关键字段采用哈希算法,得到一个哈希值。
其中,本实施例中报文的关键字段以常用的五元组(源IP地址,目的IP地址,协议号,源端口号,目的端口号)为例进行说明。
102:根据第i(1≤i≤N)级的存储空间的大小,获取一个掩码,将获取到的该掩码与101中得到的哈希值进行相与操作,从而获取一个索引;根据该第i级存储空间的基址(起始地址)、报文的五元组大小和计算得到的索引,计算获取一个该第i级存储空间的地址。
其中,根据存储空间的大小,获取一个掩码时,掩码全1;通常,为了避免冲突的产生,存储空间越大对应着掩码取值位数越多。在获取存储空间的地址时,通常采用计算方法如下:
存储空间的地址=存储空间的基址+五元组大小×索引;
103:根据获取的存储空间的地址,通过查看该地址对应流表的标志位,判断该流表是否空闲,如果是,则执行105;否则,执行104。
例如,如果该地址对应的流表的标志位为“0”,表示该流表为空闲状态;如果该地址对应的流表的标志位为“1”,表示该流表为非空闲状态。
104:判断该报文的五元组和该级存储空间对应的流表中存放的五元组是否完全匹配,如果是,说明该报文命中流表,执行108;否则,说明该报文在该级存储空间进行流表查找时,出现了冲突,执行105。
105:判断是否已经是查找第N级,如果是,则执行107;否则,执行步骤106。
106:i=i+1,执行步骤102。
107:取得该报文的五元组在TCAM中执行快速查找,判断是否命中相应的流表,如果是,执行108;否则,执行109。
108:查找该报文的相关信息,进行该报文的快速转发,结束。
本步骤中查找该报文的相关信息,主要是查找该报文对应的流表和其动作表的对应关系,通过流表和动作表结合在一起,才能完成报文的快速转发。
109:说明该报文为首包,为该报文建立流表。
本实施例将在N+1级存储空间中,能够命中流表的报文称为后续包,后续包取得相关信息后,读取动作表进行了相关动作后,就能够实现报文快速转发;在N+1级存储空间都没有命中流表的报文,称为首包,对于首包需要建立流表,同时也需要首包建立动作表,将相关动作存放在动作表中,建立并维护动作表和流表对应关系,以便以后接收到相同的报文时,该报文在命中流表查找到流表和动作表的对应关系后,根据动作表中的动作进行相应处理。
下文会针对报文为首包时如何实现建立流表进行详细的说明:
所谓流表的建立,是指设备在第一次接收到某条报文时,由于在设备的存储空间中没有记录该报文的流表,所以需要为该报文建立流表,以便以后再收到相同报文后可以命中流表,从而实现快速转发。当设备收到该报文,查找到空闲的存储空间的情况下,将报文的相应内容插入到空闲的存储空间中。如果在前N级的存储空间中,都没有空闲的存储空间,则将报文的相应内容直接存储在第N+1级的TCAM中,从而实现快速收敛。
通常情况,由于报文是双向的(正向报文和反向报文),因此建立流表时,相应地,需要建立双向流表,即正向流表和反向流表,下面以建立正向流表为例,其步骤如下:
201:获取报文的关键字段,对关键字段采用哈希算法,得到一个哈希值。该步骤同前101。
其中,本实施例中报文的关键字段以常用的五元组(源IP地址,目的IP地址,协议号,源端口号,目的端口号)为例进行说明。相应地,正向流表和反向流表的区别在于,对于正向报文而言的源IP地址为反向报文的目的IP地址、源端口号为反向报文的目的端口号,相应地,正向报文的目的IP地址为反向报文的源IP地址、目的端口号为反向报文的源端口号。
202:为了确保建立流表时不出现错误,执行加锁动作。
其中,进行加锁的目的,是为了保证为该首包报文建立流表时,只能进行原子操作,防止在为该首包报文建立流表时,出现了与该目标首包报文的哈希值相同的报文(如,隶属于同一数据报文流(拥有相同的关键字段)的第二个报文,由于该第二个报文与首包隶属与同一数据流,所以其关键字段是相同的,因此获取到的哈希值是相同的;或在为该首包报文建立流表的同时,出现来自其它类的数据报文流中的首包,但是该首包获取到的哈希值和目标首包报文的哈希值相同,此时就会出现报文的建立过程的冲突,为了避免出现此类型的报文冲突,所以本步骤需要进行加锁动作。即建立流表时只能进行原子操作,防止建立流表出现错误,即此时只针对该报文执行下面的操作,保证了此时只针对拥有相同哈希值的报文一条报文进行建表处理,
203:根据第i(1≤i≤N)级的存储空间的大小,获取一个掩码,将获取到的该掩码与201中得到的哈希值进行相与操作,从而获取一个索引;根据该第i级的存储空间的基址,该报文的五元组的大小和计算得到的索引,计算获取第i级存储空间的一个地址。
204:根据获取的地址取得该地址对应的流表的内容,根据流表的标志位,判断获取的地址对应的流表是否为空闲,如果是,则执行205;否则执行206。
205:将报文的相应内容存储到该地址对应的位置中建立流表,并设置相应的标志位,表示此时该位置的流表已被占用,然后执行209。
206:判断此时i是否等于N,即判断是否已经查找到第N级,如果是,执行207;否则执行208。
207:说明在前N级的存储空间中,都没有空闲的存储空间来存放该报文的相应内容(即在前N级的存储空间都出现了建立该报文流表的冲突),则直接将报文的相应内容存放到第N+1级的TCAM中,在TCAM中建立流表,置相应的标志位,从而实现了快速收敛。
208:令i=i+1后,返回执行步骤203。
209:当流表建立成功后,进行解锁,此时,正向流表就成功建立。
上述以建立正向流表为例进行的说,当建立反向流表时,方法类似,不再赘述。
综上所述,为本发明实施例提供的查找和建立流表的实现报文的快速转发的过程,查找时,根据报文的关键字段采用哈希算法获得键值在前N级逐级查找。如果前N级存储空间都失败,则直接在TCAM中快速查找;建表时,根据报文的关键字段采用哈希算法获得键值在前N级逐级查找空闲空间,若空闲则直接插入,若冲突则往后逐级查找;如果前N级哈希存储空间都冲突,则直接存储到TCAM中。
需要特别地注意的是,在流表建立过程中,需要保证一次只处理一个具有相同哈希值的报文。例如:当在进行首包的流表建立时,如果出现了隶属于同一类数据报文(即拥有相同关键字段的报文)的伪首包也需要建立流表的情况,如当在数据流中的首包A建立流表的过程中,由于该数据流报文对应的流表还未建立,导致该数据流中的报文B无法命中相应的流表,而出现了需要建立流表的需求,此时,称该报文B为伪首包,针对该情况,由于对首包A执行了加锁,所以伪首包B处于等待状态,等待首包A建立流表解锁后,伪首包B就可以根据首包A建立的流表进行转发。
还需要注意的是,当处理具有相同哈希值的不同类数据报文的首包时,如果当在进行第一类报文的首包的流表建立时,出现了另一类型的具有相同哈希值的报文的首包需要建立流表,由于该两类报文的首包计算获取到的哈希值相同,同时对该两类报文的首包进行处理会导致流表建立时出现冲突,造成建表错误。本实施例为了避免建立流表的冲突,所以采用加锁的方法,即在为第一类报文的首包建立流表时,执行加锁,当该类首包建表成功,解锁后,再执行第二类报文的首包的建表,从而确保了虽然是具有相同哈希值的报文,但是会在不同的地址对应的流表位置建立各自的流表,确保了建表的准确性。
本发明实施例采用普通存储空间中多级哈希表存储和TCAM直接存储相结合的办法,减少了存储流表的冲突概率。本发明实施例采用的N+1级存储空间模式,前N级存储空间还可以根据流表规格需要及性能需求进行动态配置级数,最后一级采用TCAM实现了快速收敛,从而实现了成本规格及性能的平衡,有利于网络运营商开展各种丰富类型的业务。
实施例3
参见图3,本发明实施例提供了一种报文转发的方法,本实施例仍以设置了N+1级别存储空间为例进行说明,其中前n级为普通存储设备如SRAM\DRAM等提供的存储空间,第N+1级为TCAM等存储设备提供的高速存储空间,利用本发明实施例提供的方法,报文转发时根据报文的关键字段采用哈希算法获得的健值在前N级存储空间逐级进行查找;如果前N级存储空间都查找失败,则直接在TCAM中进行快速查找,并在查找的过程中通过记录下的存储空间的地址对应的空闲流表的相关信息,当报文为首包时,可以直接通过记录的信息,将报文存储到对应的存储空间的空闲流表中。具体内容包括如下:
301:接收转发报文,获取该报文的关键字段,对关键字段采用哈希算法,得到一个哈希值。
其中,本实施例中报文的关键字段以常用的五元组(源IP地址,目的IP地址,协议号,源端口号,目的端口号)为例进行说明。
302:根据第i(1≤i≤N)级的存储空间的大小,获取一个掩码,将获取到的该掩码与101中得到的哈希值进行相与操作,从而获取一个索引;根据该第i级存储空间的基址(起始地址)、报文的五元组大小和计算得到的索引,计算获取一个该第i级存储空间的地址。
其中,根据存储空间的大小,获取一个掩码时,掩码全1;通常,为了避免冲突的产生,存储空间越大对应着掩码取值位数越多。在获取存储空间的地址时,通常采用计算方法如下:存储空间的地址=存储空间的基址+五元组大小×索引;
303:根据获取的存储空间的地址,通过查看该地址对应流表的标志位,判断该流表是否空闲,如果是,则执行305;否则,执行304。
304:判断该报文的五元组和该级存储空间对应的流表中存放的五元组是否完全匹配,如果是,说明该报文命中流表,执行309;否则,说明该报文在该级存储空间进行流表查找时,出现了冲突,执行306。
305:记录下该空闲流表的相关信息后,执行306。
306:判断是否已经是查找第N级,如果是,则执行307;否则,执行步骤308。
307:取得该报文的五元组在TCAM中执行快速查找,判断是否命中相应的流表,如果是,执行309;否则,执行310。
308:i=i+1,执行步骤302。
309:查找该报文的相关信息,进行该报文的快速转发,结束。
本步骤中查找该报文的相关信息,主要是查找该报文对应的流表和其动作表的对应关系,通过流表和动作表结合在一起,才能完成报文的快速转发。
310:说明该报文为首包,需要为该报文建立流表;记录TCAM中下该空闲流表的相关信息,然后执行311。
311:执行加锁动作。
312:根据记录的空闲流表的相关信息,将该报文存入相应的存储空间中。
例如,在查找过程中,记录下的空闲流表的相关信息具体为存储空间的标识、存储空间的地址的标识以及空闲状态等信息。参见表1,提供了一种记录相关信息的示意表。
表1
  存储空间的标识   存储空间的地址的标识   空闲状态
  第一级   A   否
  第二级   B   是
  ......   ......   ......
如表1所示,此时将该报文存入第一次出现空闲的存储空间中(即在第二级存储空间的地址为B的位置建立流表),当前N级的存储空间都处于非空闲状态,则直接在第N+1级的TCAM存储空间为该报文建立流表,从而实现快速收敛。
313:执行解锁动作。
本发明实施例采用普通存储空间中多级哈希表存储和TCAM直接存储相结合的办法,减少了存储流表的冲突概率;同时,收到报文后,通过在查找流表的过程中记录下空闲流表的相关信息的方式,当该报文为首包时,利用记录的空闲流表的相关信息为该建立流表,节约了建立流表的时间。本发明实施例采用的N+1级存储空间模式,前N级存储空间还可以根据流表规格需要及性能需求进行动态配置级数,最后一级采用TCAM实现了快速收敛,从而实现了成本规格及性能的平衡,有利于网络运营商开展各种丰富类型的业务。
实施例4
参见图4,本发明实施例提供了一种报文转发的设备,设备包括:
接收及获取模块,用于接收报文,获取报文的关键字段;
查找及转发模块,用于根据关键字段,查找第一类存储空间中是否有与接收及获取模块获取到的关键字段对应的流表,如果是,根据流表转发报文;否则,根据关键字段,查找第二类存储空间是否有与关键字段对应的流表;如果是,根据在第二类存储空间中查找到的流表转发报文。
实施例5
参见图5,本发明实施例提供了一种报文转发的设备,设备包括:
接收及获取模块,用于接收报文,获取报文的关键字段;
查找及转发模块,其中该查找及转发模块具体包括:
获取单元,用于获取第一类存储空间的当前存储空间的流表;
查找及转发单元,用于根据获取单元获取到的流表,当查找到与关键字段相对应的流表,则根据流表转发报文,否则,查找当前存储空间的下一级存储空间;当第一类存储空间的各级存储空间中没有查找到与关键字段相对应的流表时,查找第二类存储空间。
其中,获取单元具体包括:
计算子单元,用于计算关键字段的哈希值;通过当前存储空间的大小获取掩码;对哈希值与掩码相与获取索引;计算索引和关键字段的乘积值;根据乘积值与存储空间的基址之和,获取当前存储空间的地址;
获取子单元,用于根据计算子单元获取的当前存储空间的地址获取查找当前存储空间的流表。
实施例6
参见图6,本发明实施例提供了一种报文转发的设备,设备包括:
接收及获取模块,用于接收报文,获取报文的关键字段;
查找及转发模块,用于根据关键字段,查找第一类存储空间中是否有与接收及获取模块获取到的关键字段对应的流表,如果是,根据流表转发报文;否则,根据关键字段,查找第二类存储空间是否有与关键字段对应的流表;如果是,根据在第二类存储空间中查找到的流表转发报文。
建表模块,用于当查找及转发模块查找第二类存储空间没有与关键字段对应的流表时,为报文建立流表,其中,该建表模块具体包括:
获取单元,用于获取报文的关键字段的哈希值;
处理单元,用于根据获取单元获取的哈希值,通过第一类存储空间的当前存储空间的大小获取掩码;对哈希值与掩码相与获取索引;计算索引和关键字段的乘积值;根据乘积值和当前存储空间的基址,获取当前存储空间中的地址,判断地址对应的流表是否空闲,如果是,在当前存储空间的地址为报文建立流表;否则,查找当前存储空间的下一级存储空间;当第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在第二类存储空间为报文建立流表。
进一步地,建表模块还包括:
判断单元,用于当获取单元获取到报文的关键字段的哈希值后,判断是否有相同哈希值的报文正在被加锁,
第一处理单元,用于当判断单元判断的结果为是,报文等待相同哈希值的报文解锁后,执行相应的动作;
加锁单元,用于当判断单元判断的结果为否,对报文加锁;
相应地,建表模块还包括:
解锁单元,用于当为报文建立流表后,对被加锁的报文进行解锁。
第一处理单元具体包括:
处理子单元,用于根据获取单元获取的报文的关键字段的哈希值;判断报文和相同的哈希值的报文是否属于同一类型,如果是,则报文等待相同哈希值的报文解锁后,根据相同哈希值的报文建立的流表,进行报文的快速转发;否则,报文等待相同哈希值的报文解锁后,为报文建立流表。
实施例7
参见图7,本发明实施例提供了一种报文转发的设备,设备包括:
接收及获取模块,用于接收报文,获取报文的关键字段;
查找及转发模块,用于根据关键字段,查找第一类存储空间中是否有与接收及获取模块获取到的关键字段对应的流表,如果是,根据流表转发报文;否则,根据关键字段,查找第二类存储空间是否有与关键字段对应的流表;如果是,根据在第二类存储空间中查找到的流表转发报文。
记录模块,用于当查找及转发模块进行查找和转发时,记录第一类存储空间的各级存储空间中的地址对应的流表的空闲信息;
建表模块,用于当查找及转发模块查找第二类存储空间没有与关键字段对应的流表时,为报文建立流表,其中,该建表模块具体包括:
获取单元,用于获取报文的关键字段的哈希值;
处理单元,用于根据获取单元获取的哈希值,根据记录模块记录的空闲信息,在各级存储空间中首次出现空闲的存储空间的地址,为报文建立流表;当第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在第二类存储空间为报文建立流表。
进一步地,建表模块还包括:
判断单元,用于当获取单元获取到报文的关键字段的哈希值后,判断是否有相同哈希值的报文正在被加锁,
第一处理单元,用于当判断单元判断的结果为是,报文等待相同哈希值的报文解锁后,执行相应的动作;
加锁单元,用于当判断单元判断的结果为否,对报文加锁;
相应地,建表模块还包括:
解锁单元,用于当为报文建立流表后,对被加锁的报文进行解锁。
第一处理单元具体包括:
处理子单元,用于根据获取单元获取的报文的关键字段的哈希值;判断报文和相同的哈希值的报文是否属于同一类型,如果是,则报文等待相同哈希值的报文解锁后,根据相同哈希值的报文建立的流表,进行报文的快速转发;否则,报文等待相同哈希值的报文解锁后,为报文建立流表。
本发明实施例提供的报文转发的设备,采用多级存储空间,减少了存储流表的冲突概率。多级存储空间的最后一级为第二类存储空间(即高速存储空间),各级还可以根据流表规格需要及性能需求进行动态配置级数,最后一级采用高速存储空间实现了快速收敛,从而实现了成本规格及性能的平衡,有利于网络运营商开展各种丰富类型的业务。
本发明实施例中的部分步骤,可以利用软件实现,相应的软件程序可以存储在可读取的存储介质中,如光盘或硬盘等。
以上所述仅为本发明的具体实施例,并不用以限制本发明,对于本技术领域的普通技术人员来说,凡在不脱离本发明原理的前提下,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (19)

1.一种报文转发的方法,其特征在于,所述方法包括:
接收报文,获取所述报文的关键字段;
根据所述关键字段,查找第一类存储空间中是否有与所述关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表;如果是,根据在所述第二类存储空间中查找到的流表转发所述报文。
2.如权利要求1所述的报文转发的方法,其特征在于,所述第一类存储空间为多级存储空间,相应地,所述根据所述关键字段,查找第一类存储空间中是否有与所述关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表,包括:
获取所述第一类存储空间的当前存储空间的流表,当查找到与所述关键字段相对应的流表,则根据所述流表转发所述报文,否则,查找所述当前存储空间的下一级存储空间;当所述第一类存储空间的各级存储空间中没有查找到与所述关键字段相对应的流表时,查找所述第二类存储空间是否有与所述关键字段对应的流表。
3.如权利要求2所述的报文转发的方法,其特征在于,所述获取所述第一类存储空间的当前存储空间的流表,具体包括:
计算所述关键字段的哈希值;通过当前存储空间的大小获取掩码;
对所述哈希值与所述掩码相与获取索引;
计算所述索引和所述关键字段的乘积值;
根据所述乘积值与所述存储空间的基址之和,获取所述当前存储空间的地址;
根据所述当前存储空间的地址获取所述当前存储空间的流表。
4.如权利要求2所述的报文转发的方法,其特征在于,所述当查找到与所述关键字段相对应的流表,则根据所述流表转发所述报文,否则,查找所述当前存储空间的下一级存储空间包括:
判断所述流表是否空闲,如果所述流表不空闲,则查找所述流表,当查找到与所述关键字段相应的流表,则根据所述流表转发所述报文;如果所述流表空闲,查找所述当前存储空间的下一级存储空间。
5.如权利要求2所述的报文转发的方法,其特征在于,所述方法还包括:
当查找所述第二类存储空间没有与所述关键字段对应的流表时,为所述报文建立流表。
6.如权利要求5所述的报文转发的方法,其特征在于,所述为所述报文建立流表,具体包括:
获取所述报文的关键字段的哈希值;通过第一类存储空间的当前存储空间的大小获取掩码;对所述哈希值与所述掩码相与获取索引;计算所述索引和所述关键字段的乘积值;根据所述乘积值和所述当前存储空间的基址,获取所述当前存储空间中的地址,判断所述地址对应的流表是否空闲,如果是,在所述当前存储空间的地址为所述报文建立流表;否则,查找所述当前存储空间的下一级存储空间;当所述第一类存储空间的各级存储空间中的地址对应的流表为非空闲状态,在所述第二类存储空间为所述报文建立流表。
7.如权利要求5所述的报文转发的方法,其特征在于,所述方法还包括:记录所述第一类存储空间的各级存储空间中的地址对应的流表的空闲信息;
相应地,所述为所述报文建立流表,具体包括:
获取所述报文的关键字段的哈希值,通过查找记录的所述第一类存储空间的各级存储空间中的地址对应的流表的空闲信息,在各级存储空间中首次出现空闲的存储空间的地址,为所述报文建立流表;当所述第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在所述第二类存储空间为所述报文建立流表。
8.如权利要求6或7所述的报文转发的方法,其特征在于,所述获取所述报文的关键字段的哈希值之后,还包括:
判断是否有相同哈希值的报文正在被加锁,如果是,所述报文等待所述相同哈希值的报文解锁后,执行相应的动作,如果否,则对所述报文加锁。
9.如权利要求8所述的报文转发的方法,其特征在于,所述方法还包括:
当为所述报文建立流表后,对所述报文解锁。
10.如权利要求8所述的报文转发的方法,其特征在于,所述报文等待所述相同哈希值的报文解锁后,执行相应的动作,具体为:
根据获取所述报文的关键字段的哈希值;判断所述报文和所述相同哈希值的报文是否属于同一类型,如果是,则所述报文等待所述相同哈希值的报文解锁后,根据所述相同哈希值的报文建立的流表,进行报文的快速转发;否则,所述报文等待所述相同哈希值的报文解锁后,为所述报文建立流表。
11.如权利要求4所述的报文转发的方法,其特征在于,所述判断所述流表是否空闲具体为:
通过查看所述当前存储空间的地址对应的标识位判断所述流表是否空闲。
12.如权利要求1所述的报文转发的方法,其特征在于,所述第二类存储空间包括三态内容可寻址存储器。
13.一种报文转发设备,其特征在于,所述设备包括:
接收及获取模块,用于接收报文,获取所述报文的关键字段;
查找及转发模块,用于根据所述关键字段,查找第一类存储空间中是否有与所述接收及获取模块获取到的关键字段对应的流表,如果是,根据所述流表转发所述报文;否则,根据所述关键字段,查找第二类存储空间是否有与所述关键字段对应的流表;如果是,根据在所述第二类存储空间中查找到的流表转发所述报文。
14.如权利要求13所述的报文转发设备,其特征在于,所述查找及转发模块具体包括:
获取单元,用于获取所述第一类存储空间的当前存储空间的流表;
查找及转发单元,用于根据所述获取单元获取到的流表,当查找到与所述关键字段相对应的流表,则根据所述流表转发所述报文,否则,查找所述当前存储空间的下一级存储空间;当所述第一类存储空间的各级存储空间中没有查找到与所述关键字段相对应的流表时,查找所述第二类存储空间。
15.如权利要求14所述的报文转发设备,其特征在于,所述获取单元具体包括:
计算子单元,用于计算所述关键字段的哈希值;通过当前存储空间的大小获取掩码;对所述哈希值与所述掩码相与获取索引;计算所述索引和所述关键字段的乘积值;根据所述乘积值与所述存储空间的基址之和,获取所述当前存储空间的地址;
获取子单元,用于根据所述计算子单元获取的当前存储空间的地址,获取查找所述当前存储空间的流表。
16.如权利要求14所述的报文转发设备,其特征在于,当所述查找及转发模块查找所述第二类存储空间没有与所述关键字段对应的流表时,所述设备还包括建表模块;
所述建表模块具体包括:
获取单元,用于获取所述报文的关键字段的哈希值;
处理单元,用于根据所述获取单元获取的哈希值,通过第一类存储空间的当前存储空间的大小获取掩码;对所述哈希值与所述掩码相与获取索引;计算所述索引和所述关键字段的乘积值;根据所述乘积值和所述当前存储空间的基址,获取所述当前存储空间中的地址,判断所述地址对应的流表是否空闲,如果是,在所述当前存储空间的地址为所述报文建立流表;否则,查找所述当前存储空间的下一级存储空间;当所述第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在所述第二类存储空间为所述报文建立流表。
17.如权利要求14所述的报文转发设备,其特征在于,所述设备还包括:
记录模块,用于当所述查找及转发模块进行查找和转发时,记录所述第一类存储空间的各级存储空间中的地址对应的流表的空闲信息;
相应地,所述建表模块,包括:
获取单元,用于获取所述报文的关键字段的哈希值;
处理单元,用于根据所述获取单元获取的哈希值,根据所述记录模块记录的空闲信息,在各级存储空间中首次出现空闲的存储空间的地址,为所述报文建立流表;当所述第一类存储空间的各级存储空间中的地址对应的流表是非空闲状态,在所述第二类存储空间为所述报文建立流表。
18.如权利要求16或17所述的报文转发设备,其特征在于,所述建表模块还包括:
判断单元,用于当所述获取单元获取到所述报文的关键字段的哈希值后,判断是否有相同哈希值的报文正在被加锁,
第一处理单元,用于当所述判断单元判断的结果为是,所述报文等待所述相同哈希值的报文解锁后,执行相应的动作;
加锁单元,用于当所述判断单元判断的结果为否,对所述报文加锁;
解锁单元,用于当为所述报文建立流表后,对所述被加锁的报文进行解锁。
19.如权利要求18所述的报文转发设备,其特征在于,所述第一处理单元具体包括:
处理子单元,用于根据所述获取单元获取的所述报文的关键字段的哈希值;判断所述报文和所述相同的哈希值的报文是否属于同一类型,如果是,则所述报文等待所述相同哈希值的报文解锁后,根据所述相同哈希值的报文建立的流表,进行报文的快速转发;否则,所述报文等待所述相同哈希值的报文解锁后,为所述报文建立流表。
CN2008100081997A 2008-02-18 2008-02-18 一种报文转发的方法和设备 Expired - Fee Related CN101247337B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN2008100081997A CN101247337B (zh) 2008-02-18 2008-02-18 一种报文转发的方法和设备
PCT/CN2009/070378 WO2009103225A1 (zh) 2008-02-18 2009-02-06 一种报文转发的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2008100081997A CN101247337B (zh) 2008-02-18 2008-02-18 一种报文转发的方法和设备

Publications (2)

Publication Number Publication Date
CN101247337A true CN101247337A (zh) 2008-08-20
CN101247337B CN101247337B (zh) 2012-11-21

Family

ID=39947547

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2008100081997A Expired - Fee Related CN101247337B (zh) 2008-02-18 2008-02-18 一种报文转发的方法和设备

Country Status (2)

Country Link
CN (1) CN101247337B (zh)
WO (1) WO2009103225A1 (zh)

Cited By (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009103225A1 (zh) * 2008-02-18 2009-08-27 华为技术有限公司 一种报文转发的方法和设备
WO2010031354A1 (zh) * 2008-09-22 2010-03-25 华为技术有限公司 帧处理的方法、装置和系统
CN101977177A (zh) * 2010-07-30 2011-02-16 北京星网锐捷网络技术有限公司 一种流表表项的创建方法、查询方法及装置
WO2011091581A1 (zh) * 2010-01-26 2011-08-04 华为技术有限公司 关键字存储、查找的方法及装置
CN101572670B (zh) * 2009-05-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种基于流表的数据包处理方法、装置和网络系统
WO2011109996A1 (zh) * 2010-08-19 2011-09-15 华为技术有限公司 一种哈希表存储方法、查找方法及其装置
CN102930011A (zh) * 2012-10-31 2013-02-13 杭州华三通信技术有限公司 流转发表项的处理方法及装置
CN103117931A (zh) * 2013-02-21 2013-05-22 烽火通信科技股份有限公司 基于哈希表和tcam表的mac地址硬件学习方法及系统
CN103227751A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 提高转发表项空间使用率的方法和装置
CN103354522A (zh) * 2013-06-28 2013-10-16 华为技术有限公司 一种多级流表查找方法和装置
WO2014000669A1 (en) * 2012-06-27 2014-01-03 Huawei Technologies Co., Ltd. Ternary content-addressable memory assisted packet classification
CN103546520A (zh) * 2012-07-17 2014-01-29 中兴通讯股份有限公司 消息分发方法及装置
CN103581023A (zh) * 2013-11-06 2014-02-12 盛科网络(苏州)有限公司 实现最长掩码匹配的方法及装置
WO2014067055A1 (zh) * 2012-10-29 2014-05-08 华为技术有限公司 流表刷新的方法及装置
CN104009924A (zh) * 2014-05-19 2014-08-27 北京东土科技股份有限公司 一种基于tcam和fpga的报文处理方法及装置
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置
CN104580027A (zh) * 2013-10-25 2015-04-29 杭州华三通信技术有限公司 一种OpenFlow报文转发方法及设备
WO2015085491A1 (zh) * 2013-12-10 2015-06-18 华为技术有限公司 一种流表的生成方法和装置
CN104917680A (zh) * 2014-03-10 2015-09-16 帕洛阿尔托研究中心公司 数据流上的并行散列和子散列
CN103078869B (zh) * 2013-01-16 2016-05-25 华为技术有限公司 一种加速会话转发的系统及其方法
CN105812164A (zh) * 2014-12-31 2016-07-27 北京东土科技股份有限公司 基于tcam多级流表的规则索引管理实现方法和装置
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法
WO2017041737A1 (zh) * 2015-09-11 2017-03-16 杭州华三通信技术有限公司 报文处理
CN107765992A (zh) * 2016-08-22 2018-03-06 华为技术有限公司 一种处理数据的方法和装置
CN108696435A (zh) * 2017-03-31 2018-10-23 英特尔公司 对于对称流的单个查找表条目
CN109600313A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN109995662A (zh) * 2019-03-07 2019-07-09 盛科网络(苏州)有限公司 一种ACL短key匹配部分ipv6地址的芯片实现方法
CN110048961A (zh) * 2019-04-24 2019-07-23 盛科网络(苏州)有限公司 基于asic的重复报文检测方法及系统
CN110365590A (zh) * 2019-07-12 2019-10-22 北京大学深圳研究生院 一种二级缓存方法及两阶段超时流表结构
US10671667B2 (en) 2014-02-25 2020-06-02 Sanechips Technology Co., Ltd. Data matching method and apparatus and computer storage medium
CN112491723A (zh) * 2020-12-07 2021-03-12 上海励驰半导体有限公司 网关报文转发方法、装置、存储介质及网关
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法
CN114499889A (zh) * 2022-02-24 2022-05-13 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
WO2023035836A1 (zh) * 2021-09-09 2023-03-16 华为技术有限公司 一种报文处理方法及相关装置
CN115914102A (zh) * 2023-02-08 2023-04-04 阿里巴巴(中国)有限公司 数据转发方法、流表处理方法、设备及系统
WO2023179433A1 (zh) * 2022-03-23 2023-09-28 阿里巴巴(中国)有限公司 流表存储及报文转发方法、装置、计算设备及介质

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5561366B2 (ja) * 2010-09-08 2014-07-30 日本電気株式会社 スイッチシステム、スイッチ制御方法、及び記憶媒体
CN102469006B (zh) * 2010-11-01 2015-03-18 杭州华三通信技术有限公司 数据报文快速转发方法及装置
CN104488235B (zh) * 2013-04-09 2017-08-04 华为技术有限公司 报文转发方法和网络设备
US10212083B2 (en) 2013-10-30 2019-02-19 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Openflow data channel and control channel separation
CN112866115B (zh) * 2020-12-31 2023-04-07 杭州迪普科技股份有限公司 一种实现透明串接的方法、装置、电子设备及存储介质
CN113132242B (zh) * 2021-03-19 2022-11-15 翱捷科技股份有限公司 一种网络设备及其共享发送和接收缓存的方法
CN113098858B (zh) * 2021-03-29 2023-07-14 上海辰锐信息科技有限公司 一种建链报文的无锁处理系统及方法
CN113489659A (zh) * 2021-06-30 2021-10-08 新华三信息安全技术有限公司 一种报文处理方法及装置
CN114338529B (zh) * 2021-12-29 2024-03-08 杭州迪普信息技术有限公司 五元组规则匹配方法及装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272133B1 (en) * 1998-05-21 2001-08-07 Inviscid Networks, Inc. Packet filtering method
KR100340953B1 (ko) * 2000-07-05 2002-06-20 강승민 초고속 라우터 및 그 방법
CN1330190C (zh) * 2001-08-14 2007-08-01 中兴通讯股份有限公司 一种基于用户ip地址路由的路由选择方法
KR100429904B1 (ko) * 2002-05-18 2004-05-03 한국전자통신연구원 차등화된 QoS 서비스를 제공하는 라우터 및 그것의고속 IP 패킷 분류 방법
CN1216473C (zh) * 2003-03-28 2005-08-24 清华大学 支持多个下一跳的三态内容可寻址存储器查找方法及系统
US7418505B2 (en) * 2003-05-26 2008-08-26 Ewha University Industry Collaboration Foundation IP address lookup using either a hashing table or multiple hash functions
JP4341413B2 (ja) * 2003-07-11 2009-10-07 株式会社日立製作所 統計収集装置を備えたパケット転送装置および統計収集方法
CN100531097C (zh) * 2007-02-16 2009-08-19 华为技术有限公司 一种桥接的方法及装置
CN100446486C (zh) * 2007-05-11 2008-12-24 北京工业大学 网络流行为的行为分析参数的提取方法
CN101094179A (zh) * 2007-07-16 2007-12-26 中兴通讯股份有限公司 一种多级索引路由查找方法及装置
CN101247337B (zh) * 2008-02-18 2012-11-21 华为技术有限公司 一种报文转发的方法和设备

Cited By (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009103225A1 (zh) * 2008-02-18 2009-08-27 华为技术有限公司 一种报文转发的方法和设备
WO2010031354A1 (zh) * 2008-09-22 2010-03-25 华为技术有限公司 帧处理的方法、装置和系统
CN101364987B (zh) * 2008-09-22 2011-11-16 华为技术有限公司 帧处理的方法、装置和系统
CN101572670B (zh) * 2009-05-07 2011-08-10 成都市华为赛门铁克科技有限公司 一种基于流表的数据包处理方法、装置和网络系统
WO2011091581A1 (zh) * 2010-01-26 2011-08-04 华为技术有限公司 关键字存储、查找的方法及装置
CN102232219B (zh) * 2010-01-26 2012-10-10 华为技术有限公司 关键字存储、查找的方法及装置
CN101977177B (zh) * 2010-07-30 2013-08-14 北京星网锐捷网络技术有限公司 一种流表表项的创建方法、查询方法及装置
CN101977177A (zh) * 2010-07-30 2011-02-16 北京星网锐捷网络技术有限公司 一种流表表项的创建方法、查询方法及装置
WO2011109996A1 (zh) * 2010-08-19 2011-09-15 华为技术有限公司 一种哈希表存储方法、查找方法及其装置
CN102754394A (zh) * 2010-08-19 2012-10-24 华为技术有限公司 一种哈希表存储、查找方法以及装置
US9294390B2 (en) 2010-08-19 2016-03-22 Huawei Technologies Co., Ltd. Hash table storage and search methods and devices
CN102754394B (zh) * 2010-08-19 2015-07-22 华为技术有限公司 一种哈希表存储、查找方法以及装置
WO2014000669A1 (en) * 2012-06-27 2014-01-03 Huawei Technologies Co., Ltd. Ternary content-addressable memory assisted packet classification
US9098601B2 (en) 2012-06-27 2015-08-04 Futurewei Technologies, Inc. Ternary content-addressable memory assisted packet classification
CN103546520B (zh) * 2012-07-17 2018-03-09 中兴通讯股份有限公司 消息分发方法及装置
CN103546520A (zh) * 2012-07-17 2014-01-29 中兴通讯股份有限公司 消息分发方法及装置
WO2014067055A1 (zh) * 2012-10-29 2014-05-08 华为技术有限公司 流表刷新的方法及装置
CN103907318A (zh) * 2012-10-29 2014-07-02 华为技术有限公司 流表刷新的方法及装置
CN103907318B (zh) * 2012-10-29 2017-04-12 华为技术有限公司 流表刷新的方法及装置
CN102930011B (zh) * 2012-10-31 2016-08-03 杭州华三通信技术有限公司 流转发表项的处理方法及装置
CN102930011A (zh) * 2012-10-31 2013-02-13 杭州华三通信技术有限公司 流转发表项的处理方法及装置
CN103078869B (zh) * 2013-01-16 2016-05-25 华为技术有限公司 一种加速会话转发的系统及其方法
CN103117931B (zh) * 2013-02-21 2015-07-01 烽火通信科技股份有限公司 基于哈希表和tcam表的mac地址硬件学习方法及系统
CN103117931A (zh) * 2013-02-21 2013-05-22 烽火通信科技股份有限公司 基于哈希表和tcam表的mac地址硬件学习方法及系统
CN103227751A (zh) * 2013-05-14 2013-07-31 盛科网络(苏州)有限公司 提高转发表项空间使用率的方法和装置
CN103354522A (zh) * 2013-06-28 2013-10-16 华为技术有限公司 一种多级流表查找方法和装置
US9860180B2 (en) 2013-06-28 2018-01-02 Huawei Technologies Co., Ltd. Multi-level flow table search method and apparatus
CN103354522B (zh) * 2013-06-28 2016-08-10 华为技术有限公司 一种多级流表查找方法和装置
CN104580027A (zh) * 2013-10-25 2015-04-29 杭州华三通信技术有限公司 一种OpenFlow报文转发方法及设备
US10003533B2 (en) 2013-10-25 2018-06-19 Hewlett Packard Enterprise Development Lp SDN packet forwarding
CN103581023A (zh) * 2013-11-06 2014-02-12 盛科网络(苏州)有限公司 实现最长掩码匹配的方法及装置
WO2015085491A1 (zh) * 2013-12-10 2015-06-18 华为技术有限公司 一种流表的生成方法和装置
CN110048952B (zh) * 2013-12-10 2021-11-09 华为技术有限公司 一种流表的生成方法和装置
CN105814843A (zh) * 2013-12-10 2016-07-27 华为技术有限公司 一种流表的生成方法和装置
CN105814843B (zh) * 2013-12-10 2019-05-03 华为技术有限公司 一种流表的生成方法和装置
US10320673B2 (en) 2013-12-10 2019-06-11 Huawei Technologies Co., Ltd. Flow table generating method and apparatus
CN110048952A (zh) * 2013-12-10 2019-07-23 华为技术有限公司 一种流表的生成方法和装置
US10671667B2 (en) 2014-02-25 2020-06-02 Sanechips Technology Co., Ltd. Data matching method and apparatus and computer storage medium
CN104917680A (zh) * 2014-03-10 2015-09-16 帕洛阿尔托研究中心公司 数据流上的并行散列和子散列
CN104917680B (zh) * 2014-03-10 2019-10-01 思科技术公司 用于执行分组流的并行散列的计算机系统
CN104009924A (zh) * 2014-05-19 2014-08-27 北京东土科技股份有限公司 一种基于tcam和fpga的报文处理方法及装置
CN104009924B (zh) * 2014-05-19 2017-04-12 北京东土科技股份有限公司 一种基于tcam和fpga的报文处理方法及装置
CN104168201B (zh) * 2014-08-06 2017-11-24 福建星网锐捷网络有限公司 一种多路径转发的方法及装置
CN104168201A (zh) * 2014-08-06 2014-11-26 福建星网锐捷网络有限公司 一种多路径转发的方法及装置
CN105812164B (zh) * 2014-12-31 2019-07-23 北京东土科技股份有限公司 基于tcam多级流表的规则索引管理实现方法和装置
CN105812164A (zh) * 2014-12-31 2016-07-27 北京东土科技股份有限公司 基于tcam多级流表的规则索引管理实现方法和装置
CN106533947A (zh) * 2015-09-11 2017-03-22 杭州华三通信技术有限公司 报文处理方法及装置
CN106533947B (zh) * 2015-09-11 2019-10-08 新华三技术有限公司 报文处理方法及装置
US10659361B2 (en) 2015-09-11 2020-05-19 New H3C Technologies Co., Ltd Packet processing
WO2017041737A1 (zh) * 2015-09-11 2017-03-16 杭州华三通信技术有限公司 报文处理
CN107765992A (zh) * 2016-08-22 2018-03-06 华为技术有限公司 一种处理数据的方法和装置
CN107765992B (zh) * 2016-08-22 2021-01-15 华为技术有限公司 一种处理数据的方法和装置
CN106301970A (zh) * 2016-10-27 2017-01-04 盛科网络(苏州)有限公司 一种使用转发表收敛以减少tcam表项消耗的芯片实现方法
CN108696435A (zh) * 2017-03-31 2018-10-23 英特尔公司 对于对称流的单个查找表条目
CN109600313A (zh) * 2017-09-30 2019-04-09 迈普通信技术股份有限公司 报文转发方法及装置
CN109995662A (zh) * 2019-03-07 2019-07-09 盛科网络(苏州)有限公司 一种ACL短key匹配部分ipv6地址的芯片实现方法
CN110048961A (zh) * 2019-04-24 2019-07-23 盛科网络(苏州)有限公司 基于asic的重复报文检测方法及系统
CN110365590A (zh) * 2019-07-12 2019-10-22 北京大学深圳研究生院 一种二级缓存方法及两阶段超时流表结构
CN110365590B (zh) * 2019-07-12 2021-06-04 北京大学深圳研究生院 一种二级缓存方法及两阶段超时流表结构
CN112491723A (zh) * 2020-12-07 2021-03-12 上海励驰半导体有限公司 网关报文转发方法、装置、存储介质及网关
CN112491723B (zh) * 2020-12-07 2022-03-01 上海励驰半导体有限公司 网关报文转发方法、装置、存储介质及网关
CN113779320A (zh) * 2021-08-18 2021-12-10 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法
CN113779320B (zh) * 2021-08-18 2024-02-27 北京计算机技术及应用研究所 一种表项存储地址冲突的解决方法
WO2023035836A1 (zh) * 2021-09-09 2023-03-16 华为技术有限公司 一种报文处理方法及相关装置
CN114499889A (zh) * 2022-02-24 2022-05-13 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
CN114499889B (zh) * 2022-02-24 2023-06-30 成都北中网芯科技有限公司 一种适合网络处理芯片存储超大规格会话的方法
WO2023179433A1 (zh) * 2022-03-23 2023-09-28 阿里巴巴(中国)有限公司 流表存储及报文转发方法、装置、计算设备及介质
CN115914102A (zh) * 2023-02-08 2023-04-04 阿里巴巴(中国)有限公司 数据转发方法、流表处理方法、设备及系统

Also Published As

Publication number Publication date
CN101247337B (zh) 2012-11-21
WO2009103225A1 (zh) 2009-08-27

Similar Documents

Publication Publication Date Title
CN101247337B (zh) 一种报文转发的方法和设备
CN101286936B (zh) 数据报文的处理方法及装置
US9325526B2 (en) Mechanism for enabling layer two host addresses to be shielded from the switches in a network
US20110134924A1 (en) Multi-path network
CN102035735A (zh) 用于提供转发信息和服务质量信息的设备和方法
CN100561939C (zh) 一种网管和非网关网元通讯的方法
JPH09153892A (ja) ワームホール・ネットワークにおけるメッセージ送達方法およびシステム
US8615015B1 (en) Apparatus, systems and methods for aggregate routes within a communications network
CN106713144B (zh) 一种报文出口信息的读写方法及转发引擎
US20210329066A1 (en) Message transmission methods and apparatuses
KR101384794B1 (ko) 메시지 라우팅 플랫폼
US11336558B2 (en) Message transmission methods and apparatuses
US9049140B2 (en) Backbone network with policy driven routing
CN110768917A (zh) 一种报文传输方法及装置
CN104333516A (zh) 用于组合输入交叉点缓存交换结构的旋转轮训调度方法
CN106453091A (zh) 路由器转发平面的等价路由管理方法和装置
CN108632148B (zh) 基于预读取方式的学习mac地址的装置及方法
CN101447926A (zh) 基于点对点的数据传输系统及方法
CN101420371B (zh) Asic融合网络设备的一种动态功能支持方法及系统
CN102891902A (zh) 介质访问控制地址更新方法及网络设备
CN116032837A (zh) 一种流表卸载方法及装置
US7502332B1 (en) Method and apparatus for route oscillation reduction
CN113824633B (zh) 园区网中路由发布方法及网络设备
CN110674068B (zh) 一种板卡间的信息交互方法、分布式板卡及存储介质
WO2019128905A1 (zh) 一种网络通信方法及装置

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20121121

Termination date: 20170218