CN102014064B - 基于Linux系统的报文转发方法和装置 - Google Patents
基于Linux系统的报文转发方法和装置 Download PDFInfo
- Publication number
- CN102014064B CN102014064B CN201010576839.1A CN201010576839A CN102014064B CN 102014064 B CN102014064 B CN 102014064B CN 201010576839 A CN201010576839 A CN 201010576839A CN 102014064 B CN102014064 B CN 102014064B
- Authority
- CN
- China
- Prior art keywords
- retransmitting paramater
- forwarding
- layers
- destination interface
- message
- 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
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了基于Linux系统的报文转发方法和装置,其中,该方法包括:接收需要被转发的报文;从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数;根据上述转发参数将上述报文转发给上述目的端口。本发明解决了现有技术中报文转发方法的效率较低的问题,达到提高转发效率的目的。
Description
技术领域
本发明涉及嵌入式转发领域,具体而言,涉及一种基于Linux系统的报文转发方法和装置。
背景技术
Linux作为一种优秀的操作系统,它具备完备的网络协议栈处理功能。同时它还支持多用户,多进程,实时性好,功能强大而且稳定,具有良好的兼容性和可移植性,是一种非常适合应用于嵌入式转发设备的操作系统,用户可以根据需要方便的对其进行裁剪和相关性能的改进。
如图1和图2所示,Linux协议栈采用虚设备描述各个转发接口,而转发表的查找都是以寻找到目的虚设备为目标的。查找到目的设备后,通过回调目的设备的发包回调函数,继而调用驱动接口,就可以完成数据包的转发。在发包时可以选择两种方式,由设备的回调函数直接发包,或者采用qdisk(linux设备处理报文的发送队列)队列缓冲发包的方法。这种处理方法尽管满足了大多数转发设备的发包需求,但在具体的应用过程中,尤其是针对性能要求较高的系统,其并不能完全满足性能的要求。
由上可知,相关技术中的报文转发方法的转发效率较低。
发明内容
本发明的主要目的在于提供一种基于Linux系统的报文转发方法和装置,以至少解决上述问题。
根据本发明的一个方面,提供了一种基于Linux系统的报文转发方法,其包括:接收需要被转发的报文;从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数;根据上述转发参数将上述报文转发给上述目的端口。
进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数的步骤包括:
从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。
进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,还包括:将目的端口在嵌入式转发设备中对应的转发参数作为上述二层转发参数存储在二层转发使用的mac表中。
进一步地,从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,还包括:通过路由、地址解析协议(ARP)和mac表之间的关系计算出三层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将上述出接口的参数作为上述三层转发参数保存在上述转发表的数据区中。
进一步地,根据上述转发参数将上述报文转发给上述目的端口的步骤包括:在上述报文的报文头中添加上述转发参数;根据上述报文头将上述报文转发给上述目的端口。
进一步地,根据上述报文头将上述报文转发给上述目的端口的步骤包括:调用驱动接口将携带有上述报文头的报文转发给上述目的端口。
根据本发明的另一方面,提供了一种基于Linux系统的报文转发装置,其包括:接收单元,用于接收需要被转发的报文;获取单元,用于从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数;转发单元,用于根据上述转发参数将上述报文转发给上述目的端口。
进一步地,上述获取单元包括:获取模块,用于从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。
进一步地,还包括:表项管理单元,用于从转发表中获取上述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,将目的端口在嵌入式转发设备中对应的转发参数作为上述二层转发参数存储在二层转发使用的mac表中;和/或,通过路由、ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将上述出接口的参数作为上述三层转发参数保存在上述转发表的数据区中。
进一步地,上述转发单元包括:处理模块,用于在上述报文的报文头中添加上述转发参数;转发模块,用于根据上述报文头将上述报文转发给上述目的端口。
在本发明中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参数的转发表,然后对linux转发系统进行修改,不再需要查找目的设备,只需要从转发表里获取目的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱动接口即可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提高转发效率的目的。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图l是根据相关技术的嵌入式转发系统转发表表项单元的示意图;
图2是根据相关技术的linux协议栈查找目的设备并转发处理流程的示意图;
图3是根据本发明实施例的基于Linux系统的报文转发方法的一种优选流程图;
图4是根据本发明实施例的基于Linux系统的报文转发装置的一种优选结构图;
图5是根据本发明实施例的修改后的linux协议栈转发查表处理流程的示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本发明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
实施例1
图3是根据本发明实施例的基于Linux系统的报文转发方法的一种优选流程图,其包括如下步骤:
S302,接收需要被转发的报文;
S304,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;
S306,根据所述转发参数将所述报文转发给所述目的端口。
在本优选的实施例中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参数的转发表,然后对linux转发系统进行修改,不再需要查找目的设备,只需要从转发表里获取目的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱动接口即可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提高转发效率的目的。
优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数的步骤包括:从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。在本优选的实施例中,通过获取二层转发参数和/或三层转发参数,实现了二层和三层的报文高效转发。
优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,根据本发明实施例的基于Linux系统的报文转发方法还包括:将目的端口在嵌入式转发设备中对应的转发参数作为所述二层转发参数存储在二层转发使用的mac(Media AccessControl,媒体地址控制)表中。在本优选的实施例中,通过存储具体的二层转发参数,实现了二层的报文高效转发。
优选的,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,根据本发明实施例的基于Linux系统的报文转发方法还包括:通过路由、ARP(AddressResolution Protocol,地址解析协议)和mac表之间的关系计算出三层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将所述出接口的参数作为所述三层转发参数保存在所述转发表的数据区中。在本优选的实施例中,通过存储具体的三层转发参数,实现了三层的报文高效转发。
优选的,根据所述转发参数将所述报文转发给所述目的端口的步骤包括:在所述报文的报文头中添加所述转发参数;根据所述报文头将所述报文转发给所述目的端口。在本优选的实施例中,通过将转发参数添加到报文头,利用原有转发流程即可提高转发效率,从而简化了流程。
优选的,根据所述报文头将所述报文转发给所述目的端口的步骤包括:调用驱动接口将携带有所述报文头的报文转发给所述目的端口。在本优选的实施例中,通过调用驱动接口来转发报文,可以保证发送的准确性和高效性。
实施例2
图4是根据本发明实施例的基于Linux系统的报文转发装置的一种优选结构图,其包括:接收单元402,用于接收需要被转发的报文;获取单元404,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;转发单元406,用于根据所述转发参数将所述报文转发给所述目的端口。
在本优选的实施例中,针对嵌入式转发系统,构建便于查找嵌入式系统转发参数的转发表,然后对linux转发系统进行修改,不再需要查找目的设备,只需要从转发表里获取目的端口在嵌入式转发设备中对应的转发参数,对报文头进行相关修改后调用驱动接口即可完成报文的发送,从而解决了现有技术中报文转发效率较低的问题,达到提高转发效率的目的。
优选的,所述获取单元404包括:获取模块,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数。在本优选的实施例中,通过获取二层转发参数和/或三层转发参数,实现了二层和三层的报文高效转发。
优选的,根据本发明实施例的基于Linux系统的报文转发装置还包括:表项管理单元408,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,将目的端口在嵌入式转发设备中对应的转发参数作为所述二层转发参数存储在二层转发使用的mac表中;和/或,通过路由、ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在嵌入式转发设备中对应的出接口,并将所述出接口的参数作为所述三层转发参数保存在所述转发表的数据区中。在本优选的实施例中,通过存储具体的二层和三层转发参数,实现了二层和三层的报文高效转发。
优选的,所述转发单元406包括:处理模块,用于在所述报文的报文头中添加所述转发参数;转发模块,用于根据所述报文头将所述报文转发给所述目的端口。在本优选的实施例中,通过将转发参数添加到报文头,利用原有转发流程即可提高转发效率,从而简化了流程。
优选的,所述转发单元406调用驱动接口将携带有所述报文头的报文转发给所述目的端口。在本优选的实施例中,通过调用驱动接口来转发报文,可以保证发送的准确性和高效性。
实施例3
本发明实施例提出了一种linux转发系统在嵌入式设备上的改进应用方法,其采用了以下模块:表项管理模块和转发模块。
上述模块主要执行以下步骤:
第一阶段:构建表项管理模块。针对二层转发使用的mac(硬件地址)表,直接将目的端口在嵌入式转发设备中对应的参数存储在mac表里。针对三层转发使用到的路由表、主机路由表,通过路由、ARP,mac表之间的关系,计算出路由、主机路由在嵌入式转发系统中对应出接口,并把出接口对应的相关参数保存在转发表的数据区中。这样在查找二、三层转发表时,就能够快速的找到报文在嵌入式系统中转发需要填写的参数。在转发流程中,去除linux转发系统查找转发表时必须搜寻目的设备的处理流程,改为从改进的转发表里直接获取目的端口在嵌入式系统中对应的转发参数,并填充报文头,然后调用驱动接口就可以完成报文的转发。
第二阶段:启动嵌入式转发处理器,完成报文的转发功能。
如图5所示,本优选的实施例修改了现有的linux转发系统查找转发表时必须搜寻目的设备的处理流程,改为从改进的转发表里直接获取目的端口在嵌入式系统中对应的转发参数,并修改报文头,然后调用驱动接口就可以完成报文的转发。
本优选的实施例可以达到以下有益效果:采用本实施例所述方法,与现有的使用linux协议栈的转发系统相比,通过对便于查找嵌入式转发参数的表管理模块的构建及对linux转发系统的修改,使得在查转发表时不再需要查找目的设备,只需要从改进的转发表里获取目的端口在嵌入式设备中对应的转发参数,修改报文头并调用驱动接口即可完成报文的发送,达到了提高转发效率的目的。
本发明中所描述的基于Linux系统的报文转发方法和装置的应用范围:适用于采用linux内核的嵌入式转发系统。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (3)
1.一种基于Linux系统的报文转发方法,其特征在于,包括:
接收需要被转发的报文;
从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;
根据所述转发参数将所述报文转发给所述目的端口;
其中,根据所述转发参数将所述报文转发给所述目的端口的步骤包括:在所述报文的报文头中添加所述转发参数;根据所述报文头将所述报文转发给所述目的端口;
其中,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数的步骤包括:从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的二层转发参数和/或三层转发参数;
其中,从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数之前,还包括:将所述目的端口在所述嵌入式转发设备中对应的转发参数作为所述二层转发参数存储在二层转发使用的mac表中;或者,通过路由、地址解析协议ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在所述嵌入式转发设备中对应的出接口,并将所述出接口的参数作为所述三层转发参数保存在所述转发表的数据区中。
2.根据权利要求1所述的方法,其特征在于,根据所述报文头将所述报文转发给所述目的端口的步骤包括:
调用驱动接口将携带有所述报文头的报文转发给所述目的端口。
3.一种基于Linux系统的报文转发装置,其特征在于,包括:
接收单元,用于接收需要被转发的报文;
获取单元,用于从转发表中获取所述报文转发的目的端口在嵌入式转发设备中对应的转发参数;
转发单元,用于根据所述转发参数将所述报文转发给所述目的端口;
其中,所述转发单元包括:处理模块,用于在所述报文的报文头中添加所述转发参数;转发模块,用于根据所述报文头将所述报文转发给所述目的端口;
其中,所述获取单元包括:获取模块,用于从所述转发表中获取所述报文转发的所述目的端口在所述嵌入式转发设备中对应的二层转发参数和/或三层转发参数;
其中,所述装置还包括:表项管理单元,用于从所述转发表中获取所述报文转发的所述目的端口在所述嵌入式转发设备中对应的转发参数之前,将所述目的端口在所述嵌入式转发设备中对应的转所述发参数作为所述二层转发参数存储在二层转发使用的mac表中;和/或,通过路由、ARP和mac表之间的关系计算出三层转发使用到的路由、主机路由在所述嵌入式转发设备中对应的出接口,并将所述出接口的参数作为所述三层转发参数保存在所述转发表的数据区中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010576839.1A CN102014064B (zh) | 2010-12-07 | 2010-12-07 | 基于Linux系统的报文转发方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010576839.1A CN102014064B (zh) | 2010-12-07 | 2010-12-07 | 基于Linux系统的报文转发方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102014064A CN102014064A (zh) | 2011-04-13 |
CN102014064B true CN102014064B (zh) | 2015-01-28 |
Family
ID=43844085
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010576839.1A Expired - Fee Related CN102014064B (zh) | 2010-12-07 | 2010-12-07 | 基于Linux系统的报文转发方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102014064B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102769557B (zh) * | 2012-08-09 | 2015-08-12 | 深圳市共进电子股份有限公司 | 一种业务数据报文的传输方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377550C (zh) * | 2005-12-13 | 2008-03-26 | 华为技术有限公司 | 一种路由表下一跳ip地址到mac地址解析方法 |
CN101494605A (zh) * | 2009-03-05 | 2009-07-29 | 中兴通讯股份有限公司 | 一种基于以太网驱动的数据转发方法和装置 |
CN100555991C (zh) * | 2006-12-29 | 2009-10-28 | 华为技术有限公司 | 报文访问控制的方法、转发引擎装置和通信设备 |
CN101867518A (zh) * | 2010-05-24 | 2010-10-20 | 北京星网锐捷网络技术有限公司 | 二层交换设备用报文转发处理方法、处理装置和设备 |
-
2010
- 2010-12-07 CN CN201010576839.1A patent/CN102014064B/zh not_active Expired - Fee Related
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100377550C (zh) * | 2005-12-13 | 2008-03-26 | 华为技术有限公司 | 一种路由表下一跳ip地址到mac地址解析方法 |
CN100555991C (zh) * | 2006-12-29 | 2009-10-28 | 华为技术有限公司 | 报文访问控制的方法、转发引擎装置和通信设备 |
CN101494605A (zh) * | 2009-03-05 | 2009-07-29 | 中兴通讯股份有限公司 | 一种基于以太网驱动的数据转发方法和装置 |
CN101867518A (zh) * | 2010-05-24 | 2010-10-20 | 北京星网锐捷网络技术有限公司 | 二层交换设备用报文转发处理方法、处理装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN102014064A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101207604B (zh) | 一种虚拟机系统及其通信处理方法 | |
CN108270676B (zh) | 一种基于Intel DPDK的网络数据处理方法及装置 | |
CN107948076B (zh) | 一种转发报文的方法及装置 | |
CN101136926B (zh) | 非对称路由情况下的报文转发方法及网络地址转换网关 | |
CN104869063B (zh) | 虚拟子网中的主机路由处理方法及相关设备和通信系统 | |
KR20170010835A (ko) | 플로우 테이블 관리 방법, 및 관련 디바이스 및 시스템 | |
CN102857414A (zh) | 一种转发表写入、报文转发方法及装置 | |
CN101695047A (zh) | 一种实现动态隧道报文转发的方法及交换机 | |
WO2014139481A1 (zh) | 报文处理方法及设备 | |
CN103326948B (zh) | 一种交换处理系统和方法 | |
CN110099115B (zh) | 一种透明调度转发的负载均衡方法及系统 | |
EP3313031B1 (en) | Sdn-based arp realization method and apparatus | |
JP7046983B2 (ja) | パケット伝送方法及び装置 | |
US20190273697A1 (en) | Data Migration Method and Apparatus | |
CN102457386A (zh) | 一种通信设备的双向pim中组播报文转发方法和通信设备 | |
CN101252531A (zh) | 一种实现负载分担和主备倒换的方法、系统及设备 | |
CN104811383A (zh) | 一种报文转发方法和设备 | |
CN106209644A (zh) | 一种基于等价路由的报文转发方法和装置 | |
CN110213320B (zh) | 通信连接的方法、装置、电子设备及计算机可读存储介质 | |
CN103139068B (zh) | 转发报文的方法、路由器和系统 | |
CN102014064B (zh) | 基于Linux系统的报文转发方法和装置 | |
CN1742465A (zh) | 无线/lan路由器排队方法和系统 | |
US20120294310A1 (en) | Wide Area Network Interface Selection Method and Wide Area Network System Using the Same | |
CN102647347B (zh) | 实现基于连接的流量的处理方法及系统 | |
CN105656994B (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: 20150128 Termination date: 20211207 |