[发明专利]一种基于软件查表的数据包转发方法有效
申请号: | 201510512632.0 | 申请日: | 2015-08-20 |
公开(公告)号: | CN105099957B | 公开(公告)日: | 2018-05-18 |
发明(设计)人: | 涂晓东;谢军;孟中楼;陈大伟;杨军;张毅 | 申请(专利权)人: | 电子科技大学 |
主分类号: | H04L12/931 | 分类号: | H04L12/931;H04L12/935;H04L12/741 |
代理公司: | 电子科技大学专利中心 51203 | 代理人: | 张杨 |
地址: | 611731 四川省成*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明涉及一种基于软件查表的数据包转发方法。该方法基于Intel DPDK,采用硬件提取数据包头、数据快速传递软件高效批量地传递数据和软件灵活查表的方式实现交换机中的数据包转发功能。查表算法通过使用布谷鸟哈希表和开放地址法结合,实现能够存储足够多的表项以及提高查表速度。使得网络设备同时具备如下特性:多端口线速转发、灵活的大容量查表、低成本。组合了硬件的高速组包能力、数据快速传递软件的大批量数据包处理转发能力以及软件的高速灵活查找能力。相对于传统的硬件交换机具有更好的可扩展性和可编程特性;而相对于传统的软件交换机,可以提供更大的吞吐率和更小的延时。 | ||
搜索关键词: | 一种 基于 软件 数据包 转发 方法 | ||
【主权项】:
1.一种基于软件查表的数据包转发方法,基于Intel DPDK,所用的网络交换机的输入接口模块一路输出接PCIE接口模块,一路输出接输入缓存模块,PCIE接口模块接与网络交换机的CPU连接的内存,PCIE接口模块一路输出接调度模块,调度模块接输入缓存模块,输入缓存模块接交换矩阵,交换矩阵接输出接口模块,具体数据包转发方法包括以下步骤:步骤①:网络设备输入端口一直处于监测输入端口是否有数据包到来的状态,当正确检测到有数据包到来时,输入端口根据数据包的类型提取包头关键信息组成数据包描述符并上传到PCIE接口模块,同时将完整的数据包发送至输入缓存模块进行暂存,等待后续处理;步骤②:PCIE接口模块将数据包描述符发送到PCIE总线上;利用数据快速传递软件中的UIO内核驱动内核模块和环境抽象层模块、UIO驱动用户空间模块批量地写入到与CPU相连的内存中去;步骤③:数据包描述符查表软件进行查表,首先用户空间中的数据包描述符查表软件从内存中读取需要匹配的数据包描述符,提取需要匹配的字段,然后到布谷鸟哈希表中去查找该匹配的字段,布谷鸟哈希表为每个待匹配的字段提供了两个可以存储的哈希桶,到这两个哈希桶中去查找含有待匹配的字段的表项;最后根据查找到的结果生成数据包处理描述符,该描述符格式包括操作指示、缓存地址、数据长度、输入端口和输出端口五个部分,数据包处理描述符决定了数据包的输出动作:输出到某一个端口、丢弃或上传至软件进行进一步分析;步骤④:数据包描述符查表软件将数据包处理描述符存放到内存中;步骤⑤:数据快速传递软件将内存中相应的数据包处理描述符发送至PCIE接口模块;步骤⑥:PCIE接口模块将数据包处理描述符发送至调度模块;步骤⑦:调度模块根据数据包处理描述符中的信息向对应的输入缓存模块发出相应的操作请求;步骤⑧:数据缓存模块按照数据包处理描述符的规定,将数据包做出:1)若操作指示为Forward ALL,发送到输出端口;或者2)若操作指示为Drop,被丢弃;或者3)若操作指示为Forward CONTROLLER,经过PCIE进入CPU内存,等待进一步分析;若操作类型为1),则进行步骤⑨,否则在本步骤中止;步骤⑨:数据包经过交换矩阵到达对应的输出端口后发送到链路上。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于电子科技大学,未经电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510512632.0/,转载请声明来源钻瓜专利网。