专利名称:基于Linux系统的报文转发方法和装置的制作方法
技术领域:
本发明涉及嵌入式转发领域,具体而言,涉及一种基于Limix系统的报文转发方 法和装置。
背景技术:
Linux作为一种优秀的操作系统,它具备完备的网络协议栈处理功能。同时它还 支持多用户,多进程,实时性好,功能强大而且稳定,具有良好的兼容性和可移植性, 是一种非常适合应用于嵌入式转发设备的操作系统,用户可以根据需要方便的对其进行 裁剪和相关性能的改进。如图1和图2所示,Linux协议栈采用虚设备描述各个转发接口,而转发表的查 找都是以寻找到目的虚设备为目标的。查找到目的设备后,通过回调目的设备的发包回 调函数,继而调用驱动接口,就可以完成数据包的转发。在发包时可以选择两种方式, 由设备的回调函数直接发包,或者采用qdiskClimix设备处理报文的发送队列)队列缓冲发 包的方法。这种处理方法尽管满足了大多数转发设备的发包需求,但在具体的应用过程 中,尤其是针对性能要求较高的系统,其并不能完全满足性能的要求。由上可知,相关技术中的报文转发方法的转发效率较低。
发明内容
本发明的主要目的在于提供一种基于Linux系统的报文转发方法和装置,以至少 解决上述问题。根据本发明的一个方面,提供了一种基于Limix系统的报文转发方法,其包括 接收需要被转发的报文;从转发表中获取上述报文转发的目的端口在嵌入式转发设备中 对应的转发参数;根据上述转发参数将上述报文转发给上述目的端口。进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应 的转发参数的步骤包括从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的二层转发 参数和/或三层转发参数。进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应 的转发参数之前,还包括将目的端口在嵌入式转发设备中对应的转发参数作为上述二 层转发参数存储在二层转发使用的mac表中。进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应 的转发参数之前,还包括通过路由、地址解析协议(ARP)和mac表之间的关系计算出 三层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将上述出接口 的参数作为上述三层转发参数保存在上述转发表的数据区中。进一步地,根据上述转发参数将上述报文转发给上述目的端口的步骤包括在 上述报文的报文头中添加上述转发参数;根据上述报文头将上述报文转发给上述目的端
4
进一步地,根据上述报文头将上述报文转发给上述目的端口的步骤包括调用 驱动接口将携带有上述报文头的报文转发给上述目的端口。根据本发明的另一方面,提供了一种基于Limix系统的报文转发装置,其包括 接收单元,用于接收需要被转发的报文;获取单元,用于从转发表中获取上述报文转发 的目的端口在嵌入式转发设备中对应的转发参数;转发单元,用于根据上述转发参数将 上述报文转发给上述目的端口。进一步地,上述获取单元包括获取模块,用于从转发表中获取上述报文转发 的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。进一步地,还包括表项管理单元,用于从转发表中获取上述报文转发的目的 端口在嵌入式转发设备中对应的转发参数之前,将目的端口在嵌入式转发设备中对应的 转发参数作为上述二层转发参数存储在二层转发使用的mac表中;和/或,通过路由、 ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在嵌入式转发设备中 对应的出接口,并将上述出接口的参数作为上述三层转发参数保存在上述转发表的数据 区中。进一步地,上述转发单元包括处理模块,用于在上述报文的报文头中添加上 述转发参数;转发模块,用于根据上述报文头将上述报文转发给上述目的端口。在本发明中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参数的转发 表,然后对Iimix转发系统进行修改,不再需要查找目的设备,只需要从转发表里获取目 的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱动接口即 可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提高转发效 率的目的。
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本 发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图 中图1是根据相关技术的嵌入式转发系统转发表表项单元的示意图;图2是根据相关技术的Iimix协议栈查找目的设备并转发处理流程的示意图;图3是根据本发明实施例的基于Linux系统的报文转发方法的一种优选流程图;图4是根据本发明实施例的基于Linux系统的报文转发装置的一种优选结构图;图5是根据本发明实施例的修改后的Iinux协议栈转发查表处理流程的示意图。
具体实施例方式下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突 的情况下,本申请中的实施例及实施例中的特征可以相互组合。实施例1图3是根据本发明实施例的基于Linux系统的报文转发方法的一种优选流程图, 其包括如下步骤
S302,接收需要被转发的报文;S304,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转 发参数;S306,根据所述转发参数将所述报文转发给所述目的端口。在本优选的实施例中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参 数的转发表,然后对Kmix转发系统进行修改,不再需要查找目的设备,只需要从转发表 里获取目的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱 动接口即可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提 高转发效率的目的。优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的 转发参数的步骤包括从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对 应的二层转发参数和/或三层转发参数。在本优选的实施例中,通过获取二层转发参数 和/或三层转发参数,实现了二层和三层的报文高效转发。优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的 转发参数之前,根据本发明实施例的基于Limix系统的报文转发方法还包括将目的 端口在嵌入式转发设备中对应的转发参数作为所述二层转发参数存储在二层转发使用的 mac (Media Access Control,媒体地址控制)表中。在本优选的实施例中,通过存储具体 的二层转发参数,实现了二层的报文高效转发。优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的 转发参数之前,根据本发明实施例的基于Linux系统的报文转发方法还包括通过路 由、ARP (Address Resolution Protocol,地址解析协议)和mac表之间的关系计算出三层转
发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将所述出接口的参数 作为所述三层转发参数保存在所述转发表的数据区中。在本优选的实施例中,通过存储 具体的三层转发参数,实现了三层的报文高效转发。优选的,根据所述转发参数将所述报文转发给所述目的端口的步骤包括在所 述报文的报文头中添加所述转发参数;根据所述报文头将所述报文转发给所述目的端 口。在本优选的实施例中,通过将转发参数添加到报文头,利用原有转发流程即可提高 转发效率,从而简化了流程。优选的,根据所述报文头将所述报文转发给所述目的端口的步骤包括调用驱 动接口将携带有所述报文头的报文转发给所述目的端口。在本优选的实施例中,通过调 用驱动接口来转发报文,可以保证发送的准确性和高效性。实施例2图4是根据本发明实施例的基于Linux系统的报文转发装置的一种优选结构图, 其包括接收单元402,用于接收需要被转发的报文;获取单元404,用于从转发表中获 取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;转发单元406,用于 根据所述转发参数将所述报文转发给所述目的端口。在本优选的实施例中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参 数的转发表,然后对Kmix转发系统进行修改,不再需要查找目的设备,只需要从转发表 里获取目的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱动接口即可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提 高转发效率的目的。优选的,所述获取单元404包括获取模块,用于从转发表中获取所述报文转 发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。在本优选 的实施例中,通过获取二层转发参数和/或三层转发参数,实现了二层和三层的报文高 效转发。优选的,根据本发明实施例的基于Linux系统的报文转发装置还包括表项管 理单元408,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转 发参数之前,将目的端口在嵌入式转发设备中对应的转发参数作为所述二层转发参数存 储在二层转发使用的mac表中;和/或,通过路由、ARP和mac表之间的关系计算出三 层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将所述出接口的 参数作为所述三层转发参数保存在所述转发表的数据区中。在本优选的实施例中,通过 存储具体的二层和三层转发参数,实现了二层和三层的报文高效转发。优选的,所述转发单元406包括处理模块,用于在所述报文的报文头中添加 所述转发参数;转发模块,用于根据所述报文头将所述报文转发给所述目的端口。在 本优选的实施例中,通过将转发参数添加到报文头,利用原有转发流程即可提高转发效 率,从而简化了流程。优选的,所述转发单元406调用驱动接口将携带有所述报文头的报文转发给所 述目的端口。在本优选的实施例中,通过调用驱动接口来转发报文,可以保证发送的准 确性和高效性。实施例3本发明实施例提出了一种Iinux转发系统在嵌入式设备上的改进应用方法,其采 用了以下模块表项管理模块和转发模块。上述模块主要执行以下步骤第一阶段构建表项管理模块。针对二层转发使用的mac(硬件地址)表,直 接将目的端口在嵌入式转发设备中对应的参数存储在mac表里。针对三层转发使用到的 路由表、主机路由表,通过路由、ARP,mac表之间的关系,计算出路由、主机路由在嵌 入式转发系统中对应出接口,并把出接口对应的相关参数保存在转发表的数据区中。这 样在查找二、三层转发表时,就能够快速的找到报文在嵌入式系统中转发需要填写的参 数。在转发流程中,去除Knux转发系统查找转发表时必须搜寻目的设备的处理流程, 改为从改进的转发表里直接获取目的端口在嵌入式系统中对应的转发参数,并填充报文 头,然后调用驱动接口就可以完成报文的转发。第二阶段启动嵌入式转发处理器,完成报文的转发功能。如图5所示,本优选的实施例修改了现有的Iinux转发系统查找转发表时必须搜 寻目的设备的处理流程,改为从改进的转发表里直接获取目的端口在嵌入式系统中对应 的转发参数,并修改报文头,然后调用驱动接口就可以完成报文的转发。本优选的实施例可以达到以下有益效果采用本实施例所述方法,与现有的使 用Iinux协议栈的转发系统相比,通过对便于查找嵌入式转发参数的表管理模块的构建及 对Iimix转发系统的修改,使得在查转发表时不再需要查找目的设备,只需要从改进的转
7发表里获取目的端口在嵌入式设备中对应的转发参数,修改报文头并调用驱动接口即可 完成报文的发送,达到了提高转发效率的目的。本发明中所描述的基于Linux系统的报文转发方法和装置的应用范围适用于 采用Iinux内核的嵌入式转发系统。显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通 用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所 组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它 们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或 者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于 任何特定的硬件和软件结合。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的 技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的 任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种基于Limix系统的报文转发方法,其特征在于,包括接收需要被转发的报文;从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;根据所述转发参数将所述报文转发给所述目的端口。
2.根据权利要求1所述的方法,其特征在于,从转发表中获取所述报文转发的目的端 口在嵌入式转发设备中对应的转发参数的步骤包括从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数 和/或三层转发参数。
3.根据权利要求2所述的方法,其特征在于,从转发表中获取所述报文转发的目的端 口在嵌入式转发设备中对应的转发参数之前,还包括将所述目的端口在所述嵌入式转发设备中对应的转发参数作为所述二层转发参数存 储在二层转发使用的mac表中。
4.根据权利要求2所述的方法,其特征在于,从转发表中获取所述报文转发的目的端 口在嵌入式转发设备中对应的转发参数之前,还包括通过路由、地址解析协议ARP和mac表之间的关系计算出三层转发使用到的路由、 主机路由在所述嵌入式转发设备中对应的出接口,并将所述出接口的参数作为所述三层 转发参数保存在所述转发表的数据区中。
5.根据权利要求1所述的方法,其特征在于,根据所述转发参数将所述报文转发给所 述目的端口的步骤包括在所述报文的报文头中添加所述转发参数;根据所述报文头将所述报文转发给所述目的端口。
6.根据权利要求5所述的方法,其特征在于,根据所述报文头将所述报文转发给所述 目的端口的步骤包括调用驱动接口将携带有所述报文头的报文转发给所述目的端口。
7.—种基于Limix系统的报文转发装置,其特征在于,包括接收单元,用于接收需要被转发的报文;获取单元,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应 的转发参数;转发单元,用于根据所述转发参数将所述报文转发给所述目的端口。
8.根据权利要求7所述的装置,其特征在于,所述获取单元包括获取模块,用于从所述转发表中获取所述报文转发的所述目的端口在所述嵌入式转 发设备中对应的二层转发参数和/或三层转发参数。
9.根据权利要求8所述的装置,其特征在于,还包括表项管理单元,用于从所述转发表中获取所述报文转发的所述目的端口在所述嵌入 式转发设备中对应的转发参数之前,将所述目的端口在所述嵌入式转发设备中对应的转 所述发参数作为所述二层转发参数存储在二层转发使用的mac表中;和/或,通过路 由、ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在所述嵌入式转 发设备中对应的出接口,并将所述出接口的参数作为所述三层转发参数保存在所述转发 表的数据区中。
10.根据权利要求7所述的装置,其特征在于,所述转发单元包括 处理模块,用于在所述报文的报文头中添加所述转发参数; 转发模块,用于根据所述报文头将所述报文转发给所述目的端口。
全文摘要
本发明提供了基于Linux系统的报文转发方法和装置,其中,该方法包括接收需要被转发的报文;从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数;根据上述转发参数将上述报文转发给上述目的端口。本发明解决了现有技术中报文转发方法的效率较低的问题,达到提高转发效率的目的。
文档编号H04L12/56GK102014064SQ201010576839
公开日2011年4月13日 申请日期2010年12月7日 优先权日2010年12月7日
发明者段军垒 申请人:中兴通讯股份有限公司