专利名称:一种报文信息学习方法和装置的制作方法
技术领域:
本发明涉及数据通信技术领域,尤指 一种报文信息学习方法和装置。
背景技术:
目前,在数据通信领域中,网络设备在转发二层或三层数据时,通过查 找快速转发表的方式得到所接收数据的出端口。同时,所述被查找的快速转
图1是现有技术中根据媒体接入控制(MAC, Media Access Control)地 址进行数据转发的网络设备的组成结构示意图。如图l所示,该二层网络设 备主要包括逻辑模块、CPU和MAC地址列表。其中,逻辑模块是现场可 编程门阵列(FPGA, Field Programmable Gate Array ); MAC地址歹'j表是快 速转发表的一种,其中的每一个表项都是MAC地址和端口之间的映射关系。
图2是图1中所示的网络设备对所接收的报文进行转发处理的流程图。 如图2所示,包括以下步骤
步骤201,网络设备中的逻辑模块检测是否接收到报文,是则执行步骤 202,否则继续进行检测。
步骤202,逻辑模块根据所接收报文的MAC地址查找MAC地址列表, 如果命中则执行步骤203,否则执行步骤204。
步骤203,逻辑模块根据命中的MAC地址表项,将所接收的报文从相 应的端口发送出去,并返回步骤201。
步骤204,逻辑模块将所述MAC地址上报到CPU。
本步骤中,逻辑模块将MAC地址上报CPU具体为逻辑模块将MAC 地址写入先入先出(FIFO)队列中,CPU通过读取FIFO队列中的信息来获 得逻辑模块上报的MAC地址。
步骤205, CPU判断是否需要对所接收的MAC地址进行学习,是则执 行步骤207,否则^丸行步骤206。
步骤206, CPU向逻辑模块返回无需学习的指令,逻辑模块接收到指令 后执行步骤201。
步骤207, CPU向逻辑模块返回需要学习的指令,逻辑模块接收到指令 后对所述MAC地址进行学习,并在完成学习后返回步骤201。
本步骤中,逻辑模块对所述MAC地址进行学习具体为逻辑模块将所 述报文的源MAC地址和接收到该才艮文的端口之间的对应关系保存到MAC 地址列表。此后,便可以在接收到目的MAC地址为上述源MAC的报文时, /人相应的端口发送出去。
在图2所示的MAC地址学习过程中,逻辑模块在接收报文的MAC地 址为未知MAC地址,即在MAC地址列表中没有相应的MAC地址时,就 将该才艮文的MAC地址通过写入FIFO队列上报给CPU。但是,在CPU还未 响应本次上报的MAC地址时,如果同一会话的下一个报文就已到达,则逻 辑模块还会将后到达报文的MAC地址通过写入FIFO队列上报给CPU,以 此类推。而属于同一个会话的报文的MAC地址其实是相同的,因此上述过 程会导致CPU多次接收和处理相同的MAC地址,但实际上只有第 一次的接 收和处理是有效的。可见,现有的MAC地址学习方案,降低了逻辑模块和 CPU之间的通信效率,进而降低了 MAC地址的学习效率,并且加重了 CPU 的处理负荷。
实际上对于其它的报文信息学习过程,如五元组的学习,同样存在由于 报文到达网络设备的速率大于该网络设备的CPU处理一个报文的速率而导 致的报文信息学习效率不高,CPU处理负荷重的问题。
发明内容
有鉴于此,本发明提供了一种报文信息学习装置,该装置可以提高报文
信息学习效率,并减轻CPU的处理负荷。
本发明还提供了 一种报文信息学习方法,该装置可以提高报文信息学习
效率,并减轻CPU的处理负荷。
为达到上述目的,本发明的技术方案具体是这样实现的
本发明公开了一种报文信息学习装置,该装置包括快速转发表存储单 元、緩存单元、学习单元和CPU,其中,
快速转发表存储单元,用于存储快速转发表;
緩存单元,用于保存学习单元写入的指定信息;
学习单元,用于从快速转发表存储单元查找当前接收报文中的指定信 息,如果没有查找到则查询所述緩存单元中是否已保存了所述指定信息,是 则结束对当前接收报文信息的学习,否则将所述指定信息写入緩存单元,并 将所述指定信息上报给CPU;当CPU返回需要进行学习的判断结果时,将 所述指定信息和接收所述当前报文的端口之间的对应关系保存到所述快速 转发表存储单元;当CPU返回不需进行学习的判断结果时,结束当前报文 信息的学习;
CPU,用于根据学习单元上报的指定信息判断是否进行学习,并向学习 单元返回判断结果。
本发明还公开了一种报文信息学习方法,该方法包括
根据当前接收报文中的指定信息查找快速转发表;
如果从所述快速转发表中没有查找到所述指定信息,则查询緩存表中是 否已保存了所述指定信息,是则结束对当前接收报文信息的学习,否则将所 述指定信息保存到所述緩存表,并上报给CPU;
当接收到CPU返回的需要学习所述指定信息的指令时,将所述指定信 息和接收所述当前报文的端口之间的对应关系保存到所述快速转发表中;当 接收到CPU返回的不需要学习所述指定信息的指令时,结束当前报文信息 的学习。
由上述技术方案可见,本发明这种根据当前接收报文中的指定信息查找 快速转发表;如果从所述快速转发表中没有查找到所述指定信息,则查询緩 存表中是否已保存了所述指定信息,是则结束对当前接收报文信息的学习, 否则将所述指定信息保存到所述緩存表,并上报给CPU;当接收到CPU返 回的需要学习所述指定信息的指令时,将所述指定信息和接收所述当前报文 的端口之间的对应关系保存到所述快速转发表中;当接收到CPU返回的不
需要学习所述指定信息的指令时,结束对当前报文信息的学习的技术方案, 提高了报文信息学习效率,并减轻了 CPU的处理负荷。
示意图2是图1中所示的网络设备对所接收的报文进行转发处理的流程图; 图3是本发明实施例一种报文信息学习装置的结构框图; 图4是本发明实施例一种MAC地址学习装置的结构框图; 图5是图4所示的装置学习MAC地址的流程图。
具体实施例方式
图3是本发明实施例一种报文信息学习装置的结构框图。如图3所示, 该报文信息学习装置包括快速转发表存储单元301、緩存单元302、学习 单元303和CPU 304,其中
快速转发表存储单元301 ,用于存储快速转发表; 緩存单元302,用于保存学习单元303写入的指定信息; 学习单元303,用于从快速转发表存储单元301查找当前接收报文中的 指定信息,如果没有查找到则查询緩存单元302中是否已保存了所述指定信 息,是则结束对当前接收报文信息的学习,否则将所述指定信息写入緩存单 元302,并将所述指定信息上报给CPU304;当CPU 304返回需要进行学习 的判断结果时,将所述指定信息和接收所述当前报文的端口之间的对应关系保存到快速转发表存储单元301;当CPU304返回不需进行学习的判断结果 时,结束对当前接收报文信息的学习;
CPU 304,用于根据学习单元303上报的报文信息判断是否进行学习, 并向学习单元返回判断结果。
在图3所示的实施例中,将当前报文中的指定信息上报给CPU 304之 前保存到缓存单元302中,因此,在CPU304响应所上报的当前报文的指定 信息之前,如果与当前报文属于同一会话的下一个报文到达,则可以通过查 询緩存单元302来获知CPU是否已经在处理所述下一个到达报文的指定信 息,如果是则不再学习所述下一个到达报文的指定信息,即不再向CPU上 报该指定信息,从而提高了报文信息的学习效率,减轻了CPU的处理负荷。
为使本发明的目的、技术方案及优点更加清楚明白,下面以MAC地址 的学习过程为例,对本发明进一步详细说明。
图4是本发明实施例一种MAC地址学习装置的结构框图。如图4所示, 该MAC地址学习装置包括快速转发表存储单元401、緩存单元402、学 习单元403、 CPU404和先入先出存储单元405。
在图4中
快速转发表存储单元401,用于存储MAC地址表。这里MAC地址表 即为现有技术中的保存MAC地址和端口之间对应关系的MAC地址表。
緩存单元402是一个内容寻址存储器(CAM, Content Addressable Memory),用于保存学习单元403写入的MAC地址,并向学习单元返回所 写入MAC地址的存储地址。
先入先出存储单元405,用于保存学习单元403写入的MAC地址以及 该MAC地址在緩存单元中402中的存储地址,并供CPU404读取,并且其 先写入的数据先被CPU 404读取。
学习单元403,用于在接收到当前输入报文时,向从快速转发表存储单 元401查找当前报文的MAC地址,如果没有查找到则查询緩存单元402中 是否已保存了当前报文的MAC地址,是则结束对当前报文MAC地址的学习,否则将当前报文的MAC地址写入緩存单元402,并将当前报文的MAC 地址和该MAC地址在緩存单元402中存储地址上报给CPU 404;当CPU 404 返回需要进行学习的判断结果时,将所述指定信息和接收所述当前报文的端 口之间的对应关系保存到快速转发表存储单元401 ,并根据判断结果中包含 的当前报文的MAC地址在緩存单元402中存储地址,从緩存单元402中删 除当前报文的MAC地址;当CPU404返回不需进行学习的判断结果时,根 据该判断结果中包含的当前报文的MAC地址在緩存单元402中存储地址, 从緩存单元402中删除当前报文的MAC地址,结束对当前报文MAC地址 的学习过程。
CPU 404,用于从先入先出存储单元405中读取学习单元403上报的 MAC地址和该MAC地址在緩存单元402中存储地址,并判断该MAC地址 是否需要进行学习,并向学习单元403返回包含该MAC地址在緩存单元402 中存储地址的判断结果。
为了使图4所示装置的学习MAC地址的过程更加清楚,下面以流程图 的方式来描述其学习MAC地址的过程。
图5是图4所示的装置学习MAC地址的流程图。如图5所示,包括以 下步骤
步骤501,学习单元403检测是否接收到报文,是则执行步骤502,否 则继续进行检测。
步骤502,学习单元403根据所接收报文的MAC地址查找快速转发表 存储单元402,如果命中则执行步骤503,否则执行步骤504。
步骤503,学习单元403根据命中的MAC地址表项,将所接收的报文 从相应的端口发送出去,并返回步骤501。
步骤504,学习单元403查询緩存单元402中是否已经保存了所接收报 文的MAC地址,是则执行步骤505,否则执行步骤506。
步骤505,学习单元403结束所接收报文的MAC地址的学习,返回步 骤501。
步骤506,学习单元403将所接收报文的MAC地址保存到緩存单元402, 并将所述MAC地址以及緩存单元402返回的该MAC地址在緩存单元402 中的存储地址上报给CPU 404。
本步骤中,学习单元403将需要上报给CPU 404的信息写入先入先出 存储单元405, CPU404从先入先出存储单元405读取学习单元403上报的
4吕息。
步骤507, CPU 404判断是否需要对所接收的MAC地址进行学习,是 则执行步骤509,否则执行步骤508。
步骤508, CPU 404向学习单元403返回无需学习所接收报文的MAC 地址的判断结果,且其中包含所述MAC地址在緩存单元402中的存储地址。 学习单元403根据判断结果中的地址信息,从緩存单元402中删除所接收报 文的MAC地址,并4丸行步骤501 。
步骤509, CPU 404向学习单元403返回需要学习所接收报文的MAC 地址的判断结果,且其中包含所述MAC地址在緩存单元402中的存储地址。 学习单元403接收到判断结果后,将所接收报文的MAC地址和接收该报文 的端口之间的对应关系保存到快速转发表存储单元401 ,并根据判断结果中 的地址信息,从緩存单元402中删除所接收报文的MAC地址,并执行步骤 501。
在上述图4和图5所示的实施例中以MAC地址的学习过程对本发明的 技术方案进行了说明。对于其它的报文信息学习过程,如五元组的学习过程, 与图4和图5的学习过程相同,只需要将MAC地址替换为五元组即可,这 里不再复述。
综上所述,本发明根据当前所接收报文中的指定信息查找快速转发表;
如果从所述快速转发表中没有查找到所述指定信息,则查询緩存表中是否已
保存了所述指定信息,是则结束对当前接收报文信息的学习,否则将所述指
定信息保存到所述緩存单元,并上报给CPU;当接收到CPU返回的需要学
习所述指定信息的指令时,将所述指定信息和接收所述当前报文的端口之间 的对应关系保存到所述快速转发表中;当接收到CPU返回的不需要学习所
述指定信息的指令时,结束当前报文信息的学习。上述技术方案中,由于将
当前报文中的指定信息上报给CPU之前先保存到緩存表中,因此,在CPU 响应所上报的当前报文的指定信息之前,如果与当前报文属于同 一会话的下 一个报文到达,则可以通过查询緩存表来获知CPU是否已经在处理所述下 一个到达报文的指定信息,如果是则不再学习所述下一个到达报文的指定信 息,即不再向CPU上报该指定信息,从而提高了报文信息的学习效率,减 轻了 CPU的处理负荷。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围,凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1、一种报文信息学习装置,其特征在于,该装置包括快速转发表存储单元、缓存单元、学习单元和CPU,其中,快速转发表存储单元,用于存储快速转发表;缓存单元,用于保存学习单元写入的指定信息;学习单元,用于从快速转发表存储单元查找当前接收报文中的指定信息,如果没有查找到则查询所述缓存单元中是否已保存了所述指定信息,是则结束对当前接收报文信息的学习,否则将所述指定信息写入缓存单元,并将所述指定信息上报给CPU;当CPU返回需要进行学习的判断结果时,将所述指定信息和接收所述当前报文的端口之间的对应关系保存到所述快速转发表存储单元;当CPU返回不需进行学习的判断结果时,结束当前报文信息的学习;CPU,用于根据学习单元上报的所述指定信息判断是否进行学习,并向学习单元返回判断结果。
2、 如权利要求l所述的装置,其特征在于,所述緩存单元,用于保存学习单元写入的指定信息的同时,向学习单元 反馈所述指定信息的存储地址;所述学习单元,用于在向CPU上报所述指定信息时,进一步将所述指 定信息在緩存单元中的存储地址上报给CPU;所述CPU,在向学习单元返回判断结果的同时,将所述指定信息在緩 存单元中的存储地址下发给学习单元;所述学习单元,进一步用于在接收到CPU返回的判断结果后,根据其 中携带的地址信息,从緩存单元中删除所述指定信息。
3、 如权利要求2所述的装置,其特征在于,所述装置进一步包括先入 先出存储单元,所述学习单元,用于将需要上报给CPU的指定信息以及该指定信息在緩存单元中的存储地址存入所述先入先出存储单元; 息以及该指定信息在緩存单元中的存储地址。
4、 如权利要求i至3中任一项所述的装置,其特征在于,该装置设置于二层或三层网络设备中。
5、 如权利要求1至3中任一项所述的装置,其特征在于, 所述快速转发表存储单元所存储的快速转发表为MAC地址表; 所述学习单元从快速转发表存储单元和緩存单元查找的所述指定信息为MAC地址。
6、 一种报文信息学习方法,其特征在于,该方法包括 根据当前接收报文中的指定信息查找快速转发表; 如果从所述快速转发表中没有查找到所述指定信息,则查询缓存表中是否已保存了所述指定信息,是则结束对当前接收报文信息的学习,否则将所 述指定信息保存到所述緩存表,并上报给CPU;当接收到CPU返回的需要学习所述指定信息的指令时,将所述指定信 息和接收所述当前报文的端口之间的对应关系保存到所述快速转发表中;当 接收到CPU返回的不需要学习所述指定信息的指令时,结束当前报文信息 的学习。
7、 如权利要求6所述的方法,其特征在于,该方法进一步包括向CPU上报所述指定信息的同时,还将所述指定信息的存储地址上报 给CPU;所述在接收到CPU返回的指令后,还根据其中携带的保存所述指定信息的存储地址,删除该地址上保存的所述指定信息。
8、 如权利要求6所述的方法,其特征在于,所述向CPU上报信息包括 将需要上报给CPU的信息存入先入先出队列中;CPU从先入先出队列读取上报信息。
9、 如权利要求6至8中任一项所述的方法,其特征在于,所述快速转 发表为MAC地址表,所述指定信息为MAC地址。
10、如权利要求6至8中任一项所述的方法,其特征在于,所述指定信 息包括媒体接入控制地址,和/或五元组信息。
全文摘要
本发明公开了一种报文信息学习方法,该方法包括根据当前接收报文中的指定信息查找快速转发表;如果从所述快速转发表中没有查找到所述指定信息,则查询缓存表中是否已保存了所述指定信息,是则结束对当前接收报文信息的学习,否则将所述指定信息保存到所述缓存表,并上报给CPU;当接收到CPU返回的需要学习所述指定信息的指令时,将所述指定信息和接收所述当前报文的端口之间的对应关系保存到所述快速转发表中;当接收到CPU返回的不需要学习所述指定信息的指令时,结束对当前接收报文信息的学习。本发明还公开了一种报文学习装置。本发明的技术方案能够提高报文信息学习效率,并减轻CPU的处理负荷。
文档编号H04L12/56GK101197787SQ20081005599
公开日2008年6月11日 申请日期2008年1月3日 优先权日2008年1月3日
发明者彬 王 申请人:杭州华三通信技术有限公司