[发明专利]基于FPGA的分级并行高速网络TCP流重组方法有效

专利信息
申请号: 201310057076.3 申请日: 2013-02-22
公开(公告)号: CN103117948A 公开(公告)日: 2013-05-22
发明(设计)人: 王勇;刘勇;陶晓玲;何倩 申请(专利权)人: 桂林电子科技大学
主分类号: H04L12/803 分类号: H04L12/803;H04L12/869
代理公司: 桂林市持衡专利商标事务所有限公司 45107 代理人: 陈跃琳
地址: 541004 广*** 国省代码: 广西;45
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开一种基于FPGA的分级并行高速网络TCP流重组方法,采用基于FPGA的分级并行结构,作为第一级的主节点对捕获网络数据包实现负载均衡调度,在保证流粒度的前提下,将高速网络数据流瞬时均衡地调度至作为第二级的从节点中;从节点先并发访问快表以及基于哈希的双向循环链表,若访问快表先找到流记录则结束哈希双向循环链表查找流记录,否则将依赖哈希双向循环链表查找结果,从而确定该TCP流的状态,再判定此次访问TCP流记录的数据包是否有序,对于乱序数据包才为其分配存储空间,并以静态链表维护该流中的乱序数据包来实现TCP流局部重组,在保证该TCP流数据包局部有序的前提下,实现该TCP流的数据包整体有序。
搜索关键词: 基于 fpga 分级 并行 高速 网络 tcp 重组 方法
【主权项】:
基于FPGA的分级并行高速网络TCP流重组方法,其特征是包括如下步骤:S1.负载均衡调度,主节点FPGA对捕获的数据包实现负载均衡调度,在保证流粒度的前提下,使数据流均衡地调度至从节点FPGA上;即S11.提取数据包首部信息,FPGA采用TEMAC核将物理层比特流封装成MAC帧,再相应提取源IP地址、目的IP地址、源端口、目的端口、复位RST、同步SYN和终止FIN,然后并发执行哈希运算与流映射管理,并采取流映射端口优先的策略选择输出端口;S12.根据输出端口并发执行将数据包从相应端口发出,将数据包相应信息写入对应端口队列并按周期反馈当前最大剩余数据量,以及统计并反馈本周期内的最小流量端口同时基于速率反馈动态调整下一次统计的周期;S2.TCP流记录访问,包括流记录添加、流记录查找和流记录清除;即S21.提取数据包首部信息,FPGA采用TEMAC核将物理层比特流封装成MAC帧,然后再相应提取源IP地址、目的IP地址、源端口、目的端口、序号、确认号、复位RST、同步SYN和终止FIN;S22.将提取的源IP地址和目的IP地址匹配快表中的CAM,若匹配命中,则将匹配命中的CAM地址作为地址访问RAM得到该TCP流记录的首地址,再根据该首地址访问TCP流记录并反馈该TCP流记录的报文确认号以及该数据包的报文序号及确认号,同时反馈该TCP流记录中乱序数据包组首地址并更新时间标记,然后结束哈希双向循环链表访问TCP流记录;若匹配不命中,则不做任何处理;S23.对提取的源IP地址、目的IP地址、源端口和目的端口进行四元组哈希运算,并将哈希结果求模取余数,然后判断TCP新建连接,若SYN=1,则为该TCP流记录分配存储空间,并将该TCP流记录插入根据哈希取模结果对应的双向循环链表中,另外将源IP地址、目的IP地址、确认号、链表前驱与后继地址、时间标记、乱序数据包组首地址写入该TCP流记录存储空间中,之后反馈该TCP流记录的报文确认号以及访问该流记录的数据包的报文序号及确认号,同时反馈该TCP流记录中乱序数据包组首地址,最后将上述数据包的源、目的IP地址写入快表中的CAM,另外以该CAM地址作为地址访问RAM,将该流记录首地址写入RAM,从而达到更新快表的目的;若SYN=0,则执行S24;S24.根据哈希取模结果访问对应双向循环链表,若找到流记录,则判断TCP复位,若RST=1,则将该TCP流记录首地址和对应乱序数据包组首地址以及对应的分块数据包组首地址分别写入指定FIFO以示清除,从 而解决存储空间不够用的情况,若RST=0,则执行S25;若没有找到流记录,则不做任何处理;S25.反馈该TCP流记录的报文确认号以及访问该流记录的数据包的报文序号及确认号,同时反馈该TCP流记录中乱序数据包组首地址并更新时间标记,最后将上述数据包的源、目的IP地址写入快表中的CAM,另外以该CAM地址作为地址访问RAM,将该流记录首地址写入RAM,从而达到更新快表的目的,再判断TCP终止,若FIN=1,则将该TCP流记录首地址和对应乱序数据包组首地址以及对应的分块数据包组首地址分别写入指定FIFO以示清除,尽量解决存储空间不够用的情况,否则不做任何处理;S3.TCP流重组,对TCP流中的乱序数据包分配对应存储空间并对其重组,从而使得该TCP流的数据包整体有序;即S31.比较流记录确认号与访问流记录的数据包的TCP报文序号,若确认号等于报文序号,则为按序到来的数据包,然后用上述数据包的报文确认号更新该流记录中确认号,同时更新其时间标记并将该按序数据包发出;否则,执行S32;S32.根据乱序数据包组首地址访问乱序数据包组,将该乱序数据包的报文序号、确认号与数据包长度写入该静态链表中,然后判断该数据包大小与额定存储块的大小,若该数据包大小大于额定存储块大小,则分配存储空间,将该数据包分块,并采用分块数据包组维护上述分块;否则,执行S33;S33.按确认号先后顺序维护静态链表,进而实现TCP流局部重组,并更新流记录中乱序数据包组首地址,然后判断链表首部数据包中报文序号与流记录中的确认号,若上述报文序号等于流记录确认号,则乱序数据包已经重组为有序的数据包,将该数据包的存储空间首地址以及分块数据包首地址分别存储于对应FIFO中以示清除,尽量解决存储空间不够用的情况,之后用上述数据包的报文确认号更新流记录中确认号,同时更新其时间标记并将该按序数据包发出;否则,不做任何处理;S4.TCP流记录超时检测,根据TCP流时间标记更新哈希循环链表中流记录,即周期性地访问每一条哈希双向循环链表,比较该TCP流记录时间标记与当前时间标记,删除超时的TCP流记录,并重新维护该哈希双向循环链表。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于桂林电子科技大学,未经桂林电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201310057076.3/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top