[发明专利]一种数据报文转发方法及装置在审
申请号: | 201110239908.4 | 申请日: | 2011-08-19 |
公开(公告)号: | CN102957600A | 公开(公告)日: | 2013-03-06 |
发明(设计)人: | 郭红燕;王日红;靳海燕 | 申请(专利权)人: | 中兴通讯股份有限公司 |
主分类号: | H04L12/70 | 分类号: | H04L12/70 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 黄志华 |
地址: | 518057 广东省深圳市南山*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据 报文 转发 方法 装置 | ||
技术领域
本发明涉及Linux操作系统上的数据转发技术,特别是指一种数据报文转发方法及装置。
背景技术
IT行业的激烈竞争,产品价格的不断下跌,都对IT企业带来了严峻的挑战。大家都纷纷将目光投到低价的嵌入式(Linux)操作系统上,Linux的普及以及发展就此展开。对终端类的网络产品来说,Linux无疑是操作系统的一个很好的选择。
而且随着网络的发展,IP网络的使用越来越广泛,几乎每个人都有使用网络查询数据、电子邮件往返和玩联机游戏的经验。在这种情况下,用户对网速的要求也越来越高。
但是目前光网络接入终端中非本地产生数据包的路由过程包括数据包接收、数据包选路、数据包发送三个步骤。当网卡收到一个数据包,会产生一个硬中断,网卡中断处理函数会识别出接收到一个数据包并调用硬中断处理函数进行处理,硬中断处理函数申请一个sk_buff(sk_buff是Linux网络代码中的一个重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用),然后将数据从网卡拷贝至sk_buff所分配的数据空间。数据包经过硬中断后到接收软中断,然后上协议栈(在协议栈上经过桥处理到IP分发,再寻找路由),然后进QOS队列,再转给发送软中断,最后经硬件发送。至此,数据包离开本机,整个转发过程结束。
IP的路由过程经历了数据接收,转发寻路和数据发送三个过程,在一般情况下,一个连接的所有数据包都将使用同一路径进行转发,在CPU都需要上协议栈进行处理,严重降低了报文转发的速度。而且sk_buff的结构变量比较多,由于协议栈中的很多模块都使用它,创建这个结构时很多变量都需要初始化,在快速转发时很多变量都用不到但也会初始化。
发明内容
本发明提供一种数据报文转发方法及装置,用于快速提高数据包的转发速度。
本发明实施例提供了一种数据报文转发方法,包括:
当网卡终端处理单元识别出网卡接收到一个数据包时,通知硬中断处理单元进行处理;
硬中断处理单元申请fk_buff数据存储结构,将该数据包从网卡中复制到fk_buff的数据区;确定该数据包是否满足转发条件;
如果该数据包满足转发条件,则快速转发模块根据该数据报文的五元组信息索引设置的转发表中的转发表项,获得对应的转发路径,并按照转发路径利用硬件发送函数将fk_buff的数据区中的数据包转发;
如果不满足转发条件,则将fk_buff作为sk_buff的数据上传给协议栈处理。
本发明实施例提供的一种数据报文转发装置,包括:
网卡终端处理单元,识别出网卡接收到一个数据包时,通知硬中断处理单元网卡处理数据包;
硬中断处理单元,用于收到网卡收到数据包的通知时,申请fk_buff数据存储结构,将该数据包从网卡中复制到fk_buff的数据区;确定该数据包是否满足转发条件;
快速转发单元,用于如果该数据包满足转发条件,则根据该数据报文的五元组信息索引转发表中的转发表项,获得对应的转发路径,并按照转发路径利用硬件发送函数将fk_buff的数据区中的数据包转发;如果不满足转发条件,则将fk_buff作为sk_buff的数据上传给协议栈处理。
本发明实施例中,网卡终端处理单元收到数据报文时,通知硬中断处理单元网卡处理数据包;硬中断处理单元收到网卡收到数据包的通知时,申请fk_buff数据存储结构,将该数据包从网卡中复制到fk_buff的数据区;确定该数据包是否满足转发条件;如果该数据包满足转发条件,快速转发单元则根据该数据报文的五元组信息索引转发表中的转发表项,获得对应的转发路径,并按照转发路径利用硬件发送函数将fk_buff的数据区中的数据包转发;如果不满足转发条件,则将fk_buff作为sk_buff的数据上传给协议栈处理。采用这种方案,IP数据包的一个连接的所有数据包都使用同一路径进行转发,在连接的开始阶段记录下连接的转发路径,那么后续数据包的转发就可以提前进行,而不用每次都上传到协议栈的网络层去执行,因此,提高了报文转发速度。
附图说明
图1为本发明实施例的数据报文转发方法的流程示意图;
图2为fk_buff和sk_buff的对比示意图;
图3为本发明实施例转发表的具体的维护流程示意图;
图4为本发明实施例的快速转发路径的示意图;
图5为本发明实施例的数据报文转发装置的结构示意图。
具体实施方式
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中兴通讯股份有限公司,未经中兴通讯股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110239908.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种能够伸缩、翻动的椅子搁脚板
- 下一篇:防跌坐垫
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置