CN102769576B - 流表自学习方法、报文转发方法和交换机 - Google Patents

流表自学习方法、报文转发方法和交换机 Download PDF

Info

Publication number
CN102769576B
CN102769576B CN201210295822.8A CN201210295822A CN102769576B CN 102769576 B CN102769576 B CN 102769576B CN 201210295822 A CN201210295822 A CN 201210295822A CN 102769576 B CN102769576 B CN 102769576B
Authority
CN
China
Prior art keywords
message
list item
stream list
address
stream
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.)
Active
Application number
CN201210295822.8A
Other languages
English (en)
Other versions
CN102769576A (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.)
Beijing Autelan Technology Co ltd
Beijing Hua Xinaotian Network Technology Co ltd
Original Assignee
Beijing Autelan Technology 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 Beijing Autelan Technology Co Ltd filed Critical Beijing Autelan Technology Co Ltd
Priority to CN201210295822.8A priority Critical patent/CN102769576B/zh
Publication of CN102769576A publication Critical patent/CN102769576A/zh
Application granted granted Critical
Publication of CN102769576B publication Critical patent/CN102769576B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

提供一种流表自学习方法、报文转发方法和交换机。一种快速转发引擎的流表自学习方法,包括,每当交换机从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,则执行以下步骤:使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”;通过网络协议栈对接收的报文进行路由和重组;根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”。

Description

流表自学习方法、报文转发方法和交换机
技术领域
本申请涉及一种快速转发引擎的流表自学习方法、报文转发方法以及使用所述方法的交换机,尤其涉及在具有快速转发引擎的交换机中在通过网络协议栈进行报文转发处理中进行流表学习的方法,从而不需对流表进行手动设置,提高了交换机的维护便利。
背景技术
传统的交换机在转发报文时,对于从网卡收到的每一个需要转发的数据报文,都是要先发送到协议栈对其进行分析,通过解封装、计算路由、封装等工作后,再由网卡从指定端口发送出去。这样的转发效率很低。并且CPU占用率很高,导致操作系统上运行的其他服务无法及时被执行。
快速转发引擎通过将数据转发和操作系统分离来提高整个系统的速率。快速转发引擎的操作原理是通过从报文中提取信息,并在流表中进行匹配,以得到报文的转发重组信息,从而可以直接重组、转发报文。快速转发引擎模块转发数据依赖于流表中的报文重组信息。
但是,通常快速转发引擎使用的流表通过需要管理员手动进行设置,这种手动操作既费时,也容易发生错误。
发明内容
本发明的目的在于提供一种在使用快速转发引擎的交换机中通过对首次处理的每个数据流经过网络协议栈的路由处理和报文重组进行流表学习,从而动态地创建和更新流表的方法、一种报文转发方法以及使用所述方法的交换机。
根据本发明的一方面,提供一种快速转发引擎的流表自学习方法,包括,每当交换机从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,则执行以下步骤:使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”;通过网络协议栈对接收的报文进行路由和重组;根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”。
在创建新的流表项的步骤中,可分别将所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议类型设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议类型,并且将所述流表项的创建时间戳设置为当前时间。
所述的流表自学习方法可还包括:通过网络接口发送重组的报文。
所述的流表自学习方法可还包括:设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤。
所述通过设置的hook函数执行更新创建的流表项的步骤可包括:从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
所述私有协议可为快速命令控制协议。
根据本发明的另一方面,提供一种在包括快速转发引擎的交换机中执行的报文转发方法,包括:从外部接收报文;使用接收的报文中的报头信息在流表中匹配流表项;如果在流表中没有匹配到流表项,则执行以下操作:使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”,通过网络协议栈对接收的报文进行路由和重组,根据重组的报文中的信息更新创建的流表项,将所述流表项的状态标注为“已学习”,并且通过网络接口发送重组的报文。
在创建新的流表项的处理中,可分别将所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议类型设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议类型,并且将所述流表项的创建时间戳设置为当前时间。
所述的报文转发方法可还包括:设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤。
所述设置的hook函数触发执行更新创建的流表项的步骤可包括:从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
所述的报文转发方法可还包括:如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且通过报文输出(PKO)单元发送重组的报文。
所述私有协议可为快速命令控制协议。
根据本发明的另一方面,提供一种为快速转发引擎生成流表的方法,所述方法包括,在交换机中:为快速转发引擎创建流表;每当从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,则执行以下步骤:使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”,通过网络协议栈对接收的报文进行路由和重组,根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”。
在创建新的流表项的步骤中,可分别将所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议类型设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议类型,并且将所述流表项的创建时间戳设置为当前时间。
所述的方法可还包括:通过网络接口发送重组的报文。
所述的方法可还包括:设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤。所述通过设置的hook函数执行更新创建的流表项的步骤可包括:从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
所述私有协议可为快速命令控制协议。
根据本发明的另一方面,提供一种执行快速转发引擎的流表自学习的交换机,包括:第一模块,用于每当交换机从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,则控制第二模块执行操作;第二模块,用于在第一模块控制下,使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”,通过网络协议栈对接收的报文进行路由和重组,根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”。
第二模块在创建新的流表项时,可分别将所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议类型设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议类型,并且将所述流表项的创建时间戳设置为当前时间。
第二模块可还通过网络接口发送重组的报文。
第二模块还可设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项。第二模块在通过设置的hook函数执行更新创建的流表项时,可从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;其中,快速转发引擎在接收到所述私有协议报文后,可使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
所述私有协议可为快速命令控制协议。
根据本发明的另一方面,提供一种使用快速转发引擎转发报文的交换机,包括:第一模块,用于从外部接收报文;第二模块,用于使用接收的报文中的报头信息在流表中匹配流表项;第三模块,用于如果在流表中没有匹配到流表项,则执行以下操作:使用所述报头信息在流表中创建新的流表项,并且将所述流表项的状态标注为“学习中”,通过网络协议栈对接收的报文进行路由和重组,根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”,通过网络接口发送重组的报文。
第三模块在创建新的流表项时,可分别将所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议类型设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议类型,并且将所述流表项的创建时间戳设置为当前时间。
第三模块还可设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项。
第三模块在通过设置的hook函数触发执行更新创建的流表项时,可从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;其中,快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则第三模块可使用匹配的流表项中的信息对接收的报文进行重组,并且通过报文输出(PKO)单元发送重组的报文。
所述私有协议可为快速命令控制协议。
附图说明
通过下面结合附图进行的描述,本发明的上述和其他目的和特点将会变得更加清楚,其中:
图1是示出快速转发引擎的流表的流表项的结构的示意图;
图2是示出根据本发明的示例性实施例的流表自学习方法、报文转发方法和流表生成方法的流程图;
图3是示出根据本发明的实施例的流表自学习方法的处理的示意图。
具体实施方式
以下,参照附图来详细说明本发明的实施例。
交换机的快速转发引擎使用流表来进行报文的重组并转发重组的报文。所述流表包含报文的重组信息、接口信息以及转发策略信息。
图1示意性地示出快速转发引擎使用的流表中的流表项的结构。
参照图1,每个流表项通常包括以下信息:
dsa_info:交换芯片内部矩阵信息
ether_dhost:目的MAC
ether_shost:源MAC
out_ether_type:外层VLAN标识
out_tag:外层VLAN ID
on_ether_type:内层VLAN标识
in_tag:内层VLAN ID
eth_type:以太网类型字段
tunnel_l2_header:capwap隧道中承载的用户二层信息,有可能是wifi头
(无线),也有可能是ethernet头(有线)
sip:源IP
dip:目的IP
sport:源端口
dport:目的端口
P:协议类型
R:保留
forward_port:从哪个端口转发
action_type:执行策略类型
action_mask:执行策略掩码
tunne1_idx:capwap隧道表索引
time_stamp:流表建立时间戳
exten_index:保留
control_index:保留
meter_index:限速表索引
nat_index:nat转换表索引
rule_state:流表状态标识
R2:保留
在本发明的流表自学习方法、报文转发方法、流表生成方法以及使用所述方法的交换机中,对使用网络协议栈对首次通过的每个数据流进行路由和重组处理进行学习,动态地为每个数据流建立包括报文重组信息、接口信息以及转发策略信息的流表项,从而快速转发引擎可参照建立的流表项进行随后通过的报文的重组和转发处理。
图2是示出根据本发明的示例性实施例的流表自学习方法、报文转发方法以及流表生成方法的流程图。
参照图2,在使用快速转发引擎的交换机中,在步骤S210,从外部接收报文。
在步骤S220,交换机的快速转发引擎使用接收的报文中的报头信息在流表中匹配流表项。具体为,快速转发引擎使用从接收的报文中的报头提取的源IP地址、目的IP地址、源端口、目的端口和协议号在流表中查找匹配的流表项。
如果在步骤S220,快速转发引擎确定没有匹配到流表项,则在步骤S230,快速转发引擎使用所述报头信息在流表中创建新的流表项,所述流表项中的源IP地址、目的IP地址、源端口、目的端口和协议号分别为所述报头中的源IP地址、目的IP地址、源端口、目的端口和协议号。此外,将所述流表项的状态(如图1中的rule_state)标注为“学习中”。根据本发明的示例性实施例,可将所述流表项中的创建时间戳设置为当前时间。此时,图1所示的流表项结构中除上述字段以外,其他的字段可以为空或预定的默认值。换句话说,当流表项的状态被标注为“学习中”时,所述其他的字段为无效字段。
在步骤S240,快速转发引擎通过交换机系统的控制面将所述报文发送到网络协议栈,网络协议栈对接收的报文进行路由和报文重组。
此后,在步骤S250,在重组的报文通过网络接口被发送之前,快速转发引擎取得所述重组的报文中的信息,并且根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态(如图1中的rule_state)标注为“已学习”。快速转发引擎使用重组的报文中的重组信息、接口信息以及转发策略信息来更新在步骤S230创建的流表项。例如,可重组的报文中的重组信息、接口信息以及转发策略信息来填充图1中所示的流表项的其他字段,如dsa_info、ether_dhost、ether_shost、out_ether_type、out_tag、in_ether_type、in_tag、ether_type、tunnel_12_header、forward_port、action_type、action_mask、tunnel_idx、nat_index等。所述流表项经上述更新可被快速转发引擎用来直接对所述数据流的报文进行转发。
在步骤S260,交换机的以太网驱动通过网络接口发送重组的报文。
另一方面,如果在步骤S220,快速转发引擎确定匹配到了流表项,并且匹配的流表项的状态为“已学习”,则在步骤S270,快速转发引擎使用匹配的流表项中的信息对接收的报文进行重组,并且通过报文输出(PKO)单元发送重组的报文。
在本发明的示例性实施例的交换机中,可并行地执行步骤S250与步骤S260,前提是,在执行步骤S260以前能够将重组的报文中的信息传递给快速转发引擎,以用于执行步骤S250。
在交换机中,待转发的报文经过网络协议栈进行路由和报文重组处理(步骤S240)后,被传送到以太网驱动中。为了将重组报文的信息传递给快速转发引擎,可使用多种进程间通信手段,如共享内存、信号标、管道等进行所述重组报文的信息传递。
根据本发明的优选实施例,在交换机的以太网驱动中设置hook函数,所述hook函数在以太网驱动接收到经过网络协议栈进行路由和报文重组的报文后,在通过网络接口发送所述重组的报文之前,触发步骤S650的执行作为hook的handler。
在上述使用hook函数的实施例中,步骤S250被执行为:以太网驱动从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”。
根据本发明的可选实施例,所述私有协议是在以太网中定义和传输的快速命令控制协议(FCCP),在交换机中构建并传输包括报文重组信息、接口信息以及转发策略信息的FCCP报文。
根据本发明的可选实施例,使用快速转发引擎的交换机可以是多核处理器的交换机,此时,交换机从外部接收的报文可以先通过报文调度单元进行调度,再传送给用于转发接收的报文的快速转发引擎。图3示意性地示出根据本发明的上述优选实施例的流表自学习方法的处理,其中示出对首次通过交换机转发的数据流的报文的处理,从而进行流表自学习。
参照图3,在使用快速转发引擎的交换机中,在(1),交换机从外部接收到报文,并且将接收的报文交给其快速转发引擎。
在(2),快速转发引擎使用接收的报文中的报头信息创建新的流表项,将所述流表项的状态标注为“学习中”。具体来说,此时,从接收的报文中的报头提取源IP地址、目的IP地址、源端口、目的端口和协议号作为新创建的流表项中的源IP地址、目的IP地址、源端口、目的端口和协议号,并且将所述流表项的创建时间戳设置为当前时间。
在(3)和(4),快速转发引擎将接收的报文通过交换机系统的控制面传递给以太网驱动。在(5),以太网驱动将所述报文发送给网络协议栈进行路由和重组。在(6),网络协议栈将经过路由和重组处理的报文传递给以太网驱动进行发送。在(7),以太网驱动通过在其中预定设置的hook函数,从路由、重组的报文提取报文重组信息、发送接口信息以及转发策略信息,使用提取的信息构建FCCP报文。在(8)和(10),hook函数将构建的FCCP报文通过交换机系统的控制面发送给快速转发引擎。同时,在(9),以太网驱动通过其网络接口发送重组的报文。
在(11),快速转发引擎接收到从以太网驱动发送的所述FCCP报文,并且使用所述FCCP报文中的报文重组信息、发送接口信息以及转发策略信息来更新在(2)创建的流表项。此后,在(12),快速转发引擎释放接收的FCCP报文。
本发明还提供一种在使用快速转发引擎的交换机中生成流表的方法以及使用本发明的流表自学习方法、报文转发方法以及生成流表的方法,以及使用所述方法的交换机。
从参照图2和图3描述的本发明的示例性实施例可以看出,本发明的流表自学习方法、报文转发方法以及生成流表的方法,以及使用所述方法的交换机可在通过网络协议栈进行首次通过交换机转发的数据流的处理时,对报文重组、接口信息以及转发策略进行学习,并且动态地建立流表项,从而自动地生成流表,从而免除了手动建立流表的需要,也降低了在手动建立流表时可能发生的错误。
尽管已参照优选实施例描述了本发明,但本领域技术人员应该理解,在不脱离由权利要求限定的本发明的精神和范围的情况下,可以对这些实施例进行各种修改和变换。

Claims (15)

1.一种快速转发引擎的流表自学习方法,包括,每当交换机从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,所述报头信息包括源IP地址、目的IP地址、源端口、目的端口以及协议号,则执行以下步骤:
使用所述报头信息在流表中创建新的流表项,所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议号设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议号,并且将所述流表项的状态标注为“学习中”,其中,当流表项的状态被标注为“学习中”时,流表项的除源IP地址、目的IP地址、源端口、目的端口以及协议号之外的字段为无效字段;
通过网络协议栈对接收的报文进行路由和重组;
根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”;
通过网络接口发送重组的报文,其中,设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤;
如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且发送重组的报文。
2.如权利要求1所述的流表自学习方法,其中,所述设置的hook函数触发执行更新创建的流表项的步骤包括:
从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;
快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
3.如权利要求2所述的流表自学习方法,其中,所述私有协议为快速命令控制协议。
4.一种在包括快速转发引擎的交换机中执行的报文转发方法,包括:
从外部接收报文;
使用接收的报文中的报头信息在流表中匹配流表项,所述报头信息包括源IP地址、目的IP地址、源端口、目的端口以及协议号;
如果在流表中没有匹配到流表项,则执行以下操作:
使用所述报头信息在流表中创建新的流表项,所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议号设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议号,并且将所述流表项的状态标注为“学习中”,其中,当流表项的状态被标注为“学习中”时,流表项的除源IP地址、目的IP地址、源端口、目的端口以及协议号之外的字段为无效字段,
通过网络协议栈对接收的报文进行路由和重组,
根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”,通过网络接口发送重组的报文,其中,设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤;
如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且发送重组的报文。
5.如权利要求4所述的报文转发方法,其中,所述设置的hook函数触发执行更新创建的流表项的步骤包括:
从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;
快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
6.如权利要求5所述的报文转发方法,其中,所述私有协议为快速命令控制协议。
7.一种为快速转发引擎生成流表的方法,所述方法包括,在交换机中:
为快速转发引擎创建流表;
每当从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,所述报头信息包括源IP地址、目的IP地址、源端口、目的端口以及协议号则执行以下步骤:
使用所述报头信息在流表中创建新的流表项,所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议号设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议号,并且将所述流表项的状态标注为“学习中”,其中,当流表项的状态被标注为“学习中”时,流表项的除源IP地址、目的IP地址、源端口、目的端口以及协议号之外的字段为无效字段,
通过网络协议栈对接收的报文进行路由和重组,
根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”;
通过网络接口发送重组的报文,其中,设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤;
如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且发送重组的报文。
8.如权利要求7所述的方法,其中,所述设置的hook函数触发执行更新创建的流表项的步骤包括:
从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;
快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
9.如权利要求8所述的方法,其中,所述私有协议为快速命令控制协议。
10.一种执行快速转发引擎的流表自学习的交换机,包括:
第一模块,用于每当交换机从外部接收到报文时,如果使用接收的报文中的报头信息在快速转发引擎的流表中没有找到匹配的流表项,所述报头信息包括源IP地址、目的IP地址、源端口、目的端口以及协议号,则控制第二模块执行操作;
第二模块,用于在第一模块控制下,使用所述报头信息在流表中创建新的流表项,所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议号设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端 口以及协议号,并且将所述流表项的状态标注为“学习中”,,其中,当流表项的状态被标注为“学习中”时,流表项的除源IP地址、目的IP地址、源端口、目的端口以及协议号之外的字段为无效字段通过网络协议栈对接收的报文进行路由和重组,根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”,通过网络接口发送重组的报文,其中,设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤,如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且发送重组的报文。
11.如权利要求10所述的交换机,其中,第二模块在通过设置的hook函数执行更新创建的流表项时,从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;
其中,快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
12.如权利要求11所述的交换机,其中,所述私有协议为快速命令控制协议。
13.一种使用快速转发引擎转发报文的交换机,包括:
第一模块,用于从外部接收报文;
第二模块,用于使用接收的报文中的报头信息在流表中匹配流表项,所述报头信息包括源IP地址、目的IP地址、源端口、目的端口以及协议号;
第三模块,用于如果在流表中没有匹配到流表项,则执行以下操作:
使用所述报头信息在流表中创建新的流表项,所述流表项的源IP地址、目的IP地址、源端口、目的端口以及协议号设置为所述报头信息中的源IP地址、目的IP地址、源端口、目的端口以及协议号,并且将所述流表项的状态标注为“学习中”,其中,当流表项的状态被标注为“学习中”时,流表项的除源IP地址、目的IP地址、源端口、目的端口以及协议号之外的字段为无效字段,
通过网络协议栈对接收的报文进行路由和重组,
根据重组的报文中的信息更新创建的流表项,并且将所述流表项的状态标注为“已学习”,
通过网络接口发送重组的报文,其中,设置hook函数,所述hook函数用于在网络接口发送所述重组的报文之前,触发执行所述更新创建的流表项的步骤;
如果在流表中匹配到流表项,并且匹配的流表项的状态为“已学习”,则使用匹配的流表项中的信息对接收的报文进行重组,并且发送重组的报文。
14.如权利要求13所述的交换机,其中,第三模块在通过设置的hook函数触发执行更新创建的流表项时,从重组的报文中提取报文重组信息、接口信息以及转发策略信息,使用提取的信息构建私有协议报文,并且将构建的私有协议报文发送给快速转发引擎;
其中,快速转发引擎在接收到所述私有协议报文后,使用接收到的私有协议报文中的报文重组信息、接口信息以及转发策略信息更新创建的流表项。
15.如权利要求14所述的交换机,其中,所述私有协议为快速命令控制协议。
CN201210295822.8A 2012-08-17 2012-08-17 流表自学习方法、报文转发方法和交换机 Active CN102769576B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210295822.8A CN102769576B (zh) 2012-08-17 2012-08-17 流表自学习方法、报文转发方法和交换机

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210295822.8A CN102769576B (zh) 2012-08-17 2012-08-17 流表自学习方法、报文转发方法和交换机

Publications (2)

Publication Number Publication Date
CN102769576A CN102769576A (zh) 2012-11-07
CN102769576B true CN102769576B (zh) 2015-06-10

Family

ID=47096830

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210295822.8A Active CN102769576B (zh) 2012-08-17 2012-08-17 流表自学习方法、报文转发方法和交换机

Country Status (1)

Country Link
CN (1) CN102769576B (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104348716B (zh) * 2013-07-23 2018-03-23 新华三技术有限公司 一种报文处理方法及设备
CN103384223B (zh) * 2013-07-23 2016-08-24 迈普通信技术股份有限公司 一种流表项更新方法及设备
CN104378298A (zh) * 2013-08-16 2015-02-25 中兴通讯股份有限公司 一种流表条目生成方法及相应设备
CN103581044A (zh) * 2013-11-04 2014-02-12 汉柏科技有限公司 一种流量统计方法和装置
CN105515965B (zh) * 2014-09-25 2019-06-28 杭州华为数字技术有限公司 一种传输数据的方法及传输设备
CN107395510A (zh) * 2017-08-29 2017-11-24 迈普通信技术股份有限公司 提高流转发性能的方法、装置及网络设备
CN111343108B (zh) * 2020-02-24 2021-10-22 苏州盛科通信股份有限公司 一种Mac表项学习转发的方法及装置
CN111447145B (zh) * 2020-03-25 2021-12-24 联想(北京)有限公司 一种多核系统的流表管理方法、装置、系统及存储介质
CN111953620B (zh) * 2020-08-21 2023-01-10 锐捷网络股份有限公司 一种分片报文的重组方法及装置
CN112260948B (zh) * 2020-10-16 2021-10-22 中国科学院声学研究所 一种基于批量更新的多核sdn交换机流表管理方法及系统
CN112272143B (zh) * 2020-12-12 2021-03-30 广东睿江云计算股份有限公司 一种路由学习和转发方法
CN116170404B (zh) * 2023-02-17 2023-09-29 通明智云(北京)科技有限公司 一种基于dpdk的数据转发方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101924701A (zh) * 2010-08-26 2010-12-22 北京星网锐捷网络技术有限公司 组播转发路径的建立方法及路由设备
CN102123082A (zh) * 2011-01-14 2011-07-13 中兴通讯股份有限公司 数据包转发方法和设备
WO2011144495A1 (en) * 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1996948B (zh) * 2006-12-28 2010-05-19 杭州华三通信技术有限公司 基于媒体访问控制层的报文转发方法和装置

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011144495A1 (en) * 2010-05-19 2011-11-24 Telefonaktiebolaget L M Ericsson (Publ) Methods and apparatus for use in an openflow network
CN101924701A (zh) * 2010-08-26 2010-12-22 北京星网锐捷网络技术有限公司 组播转发路径的建立方法及路由设备
CN102123082A (zh) * 2011-01-14 2011-07-13 中兴通讯股份有限公司 数据包转发方法和设备

Also Published As

Publication number Publication date
CN102769576A (zh) 2012-11-07

Similar Documents

Publication Publication Date Title
CN102769576B (zh) 流表自学习方法、报文转发方法和交换机
CN103347013B (zh) 一种增强可编程能力的OpenFlow网络系统和方法
EP3313025B1 (en) Data packet forwarding
CN109981457A (zh) 一种报文处理的方法、网络节点和系统
CN104283750B (zh) 基于以太网总线的统一链路层多协议交换方法
CN102857416A (zh) 一种实现虚拟网络的方法和虚拟网络
CN107566237B (zh) 一种数据报文处理方法及装置
CN104380667A (zh) 一种数据报文的路由方法和设备
JP2010232818A (ja) ネットワークシステム、コアスイッチ、エッジスイッチ、データ中継方法
CN102970227A (zh) 在asic中实现vxlan报文转发的方法和装置
CN104135446B (zh) 基于SDN实现IPv4向IPv6过渡的系统及方法
CN102075446A (zh) 多链接透明互联网络异地互联方法及运营商边缘设备
CN102025587B (zh) Lisp网络与互联网互通的实现方法和系统
CN102148728B (zh) 一种e1仿真实现方法
CN102857429A (zh) 在trill网络中承载路由的方法和装置
CN102299862B (zh) 二层隧道快速转发设备和方法
CN103841013A (zh) Trill网络中的报文转发方法及设备
US11032184B2 (en) Method and device for collecting traffic flow value of BGP community attribute or BGP extended community attribute
CN102769567B (zh) 一种多链接透明互联网络数据帧的转发方法和装置
CN105516116A (zh) 一种基于ForCES控制件控制OpenFlow交换机的系统及协议转换方法
CN102263700B (zh) 一种报文收发方法、装置和系统
WO2016123975A1 (zh) 数据传输方法及装置
WO2016095571A1 (zh) 一种建立组播隧道的方法及装置
CN103780469B (zh) 多核平台上IPv6隧道的实现方法以及报文转发方法
CN102970224A (zh) 一种兼容atm体制并基于ip交换网络实现mpls报文转发方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent of invention or patent application
CB02 Change of applicant information

Address after: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Applicant after: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

Address before: 100085 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Applicant before: Beijing AUTELAN Technology Co.,Ltd.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: AUTELAN TECHNOLOGY INC. TO: BEIJING AUTELAN TECHNOLOGY CO., LTD.

C14 Grant of patent or utility model
GR01 Patent grant
C41 Transfer of patent application or patent right or utility model
C56 Change in the name or address of the patentee
CP03 Change of name, title or address

Address after: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee after: Beijing AUTELAN Technology Co.,Ltd.

Address before: 100193 Beijing city Haidian District Dongbeiwang West Road No. 8 Zhongguancun Software Park Building 5 Building 2 layer Hanvon Technology

Patentee before: BEIJING AUTELAN TECHNOLOGY Co.,Ltd.

TR01 Transfer of patent right

Effective date of registration: 20151126

Address after: 100085 Beijing, East Road, No. 1, building on the north side of the building, room 313, room 3

Patentee after: Beijing Hua Xinaotian network technology Co.,Ltd.

Address before: 100193, No. 1, building three, zone 9, Zhongguancun Software Park, 8 West Wang Xi Road, Beijing, Haidian District

Patentee before: Beijing AUTELAN Technology Co.,Ltd.