[发明专利]基于两级表存储和查询传输层信息的IP分片处理方法有效

专利信息
申请号: 201110043982.9 申请日: 2011-02-23
公开(公告)号: CN102123090A 公开(公告)日: 2011-07-13
发明(设计)人: 赵国鸿;陆华彪;苏金树;陈一骄;陈曙晖;唐勇;孙志刚;崔向东;毛席龙;吕高锋;李韬 申请(专利权)人: 中国人民解放军国防科学技术大学
主分类号: H04L12/56 分类号: H04L12/56;H04L29/06
代理公司: 国防科技大学专利服务中心 43202 代理人: 郭敏
地址: 410073 湖*** 国省代码: 湖南;43
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于两级表存储和查询传输层信息的IP分片处理方法,目的是为网络设备提供一种存储开销小、实现简单的IP分片处理方案,降低网络设备成本和复杂度。技术方案是先设计由分片报文解析模块、网络层传输层分片数据缓存区、控制模块、哈希模块、地址生成模块、两级表、超时维护模块组成的IP分片报文处理逻辑,两级表由初始分片信息表、冲突分片信息表组成,然后由IP分片报文处理逻辑对IP分片分为首片分片报文、其它分片(中间片或者尾片)报文、非分片报文进行处理,同时对两级表中存储的分片信息进行周期维护。采用本发明消耗的存储空间少,提高了分片信息存储和传输层信息查询的效率,特别适合基于FPGA等可编程器件实现逻辑处理的网络设备。
搜索关键词: 基于 两级 存储 查询 传输 信息 ip 分片 处理 方法
【主权项】:
一种基于两级表存储和查询传输层信息的IP分片处理方法,其特征在于包括以下步骤:第一步,设计IP分片报文处理逻辑,IP分片报文处理逻辑与报文头缓存区、完整网络层传输层信息缓存区和系统控制逻辑相连,它从报文头缓存区取报文头数据,从报文头数据提取并存储完分片信息或者查询获得传输层信息后构造由网络层和传输层信息组成的分片处理结果,将分片处理结果写入完整网络层传输层信息缓存区;IP分片报文处理逻辑的参数包括尝试距离、尝试阈值、超时维护周期通过系统控制逻辑设置;IP分片报文处理逻辑由分片报文解析模块、网络层传输层分片数据缓存区、控制模块、哈希模块、地址生成模块、两级表、超时维护模块组成;分片报文解析模块与报文头缓存区和网络层传输层分片数据缓存区相连,从报文头缓存区读取报文头数据,根据IP报文头中的分片标志字段flag、分段偏移字段fragmentoffset判断报文的分片状态,解析报文头数据,提取网络层的srcIP、dstIP、ID、TYPE信息和传输层信息,若是中间片或者尾片分片报文则只提取srcIP、dstIP、ID、TYPE信息并将传输层信息复位为0;然后将srcIP、dstIP、ID、TYPE、传输层信息、两位分片状态标志位(Frag,FD)写入网络层传输层分片数据缓存区,其中Frag表示本报文是否是分片报文,FD表示本报文是否是首片分片报文;标志字段flag有三位,第一位保留,第二位为DF,表示报文是否分片,最后一位为MF,表示IP原始报文分片是否还有更多分片报文;网络层传输层分片数据缓存区是一片组织成队列结构的存储空间,与分片报文解析模块和控制模块相连,负责响应分片报文解析模块的写请求,存储srcIP、dstIP、ID、TYPE、传输层信息、分片状态标志位信息,同时响应控制模块的读请求,以先来先服务的方式给控制模块提供srcIP、dstIP、ID、TYPE、传输层、分片状态标志位信息;两级表是一个双端口存储器,通过端口A与控制模块的第一控制逻辑、当前地址寄存器、传输层结果寄存器相连,通过端口B与超时维护模块相连,负责给控制模块提供存储分片信息以及查询传输层信息的读写接口,并为超时维护模块提供维护分片信息的读写接口;两级表的每个表项都存储一个分片原始报文的分片信息,两级表由第一级表‑‑‑初始分片信息表、第二级表‑‑‑冲突分片信息表组成,第二级表的表项数大于等于第一级表的表项数;分片报文经过哈希模块的hash计算后得到访问第一级表地址,初始分片信息表用于在该第一级表地址所指示的表项匹配当前分片报文时存储分片信息和查询传输层信息,冲突分片信息表用于该第一级表地址所指示的表项不匹配当前分片报文时通过多次尝试本表的不同位置来试图找到匹配当前分片报文的表项;两级表的端口A由输入数据线data_1、命令数据线w/r_1、地址数据线addr_1和读结果数据线q_1组成,给控制模块提供向两级表存储分片信息和从两级表查询传输层信息的读写通道;两级表的端口B由输入数据线data_2、命令数据线w/r_2、地址数据线addr_2和读结果数据线q_2组成,给超时维护模块提供从两级表读取表项内容以及向两级表更新超时定时器、删除表项的读写通道;控制模块与网络层传输层分片数据缓存区、哈希模块、地址生成模块、两级表、外部的完整网络层传输层信息缓存区及系统控制逻辑相连,负责从网络层传输层分片数据缓存区读取一个报文的网络层传输层分片数据,当该分片数据指示为首片分片报文时将分片信息存储到两级表中,当该分片数据指示为其它分片即中间片或者尾片报文时查询两级表获得传输层信息;控制模块由第一控制逻辑、当前地址寄存器、当前网络层传输层分片数据寄存器、传输层结果寄存器、尝试阈值寄存器、尝试次数计数器、第一两级表参数寄存器组成;第一控制逻辑与哈希模块、地址生成模块、以及控制模块的当前地址寄存器、当前网络层传输层分片数据寄存器、传输层结果寄存器、尝试阈值寄存器、尝试次数计数器、第一两级表参数寄存器相连,负责对哈希逻辑、地址生成模块、两级表端口A、控制模块的尝试次数寄存器进行控制,并读取当前网络层传输层分片数据寄存器、传输层结果寄存器、尝试阈值寄存器、第一两级表参数寄存器的值,完成分片报文的分片信息存储或者传输层信息查询的功能;当前地址寄存器与第一控制逻辑及地址生成模块相连,负责指示访问两级表的当前表项位置;当前网络层传输层分片数据寄存器与网络层传输层分片数据缓存区及第一控制逻辑相连,负责寄存控制模块当前正在处理报文的网络层传输层分片数据;传输层结果寄存器与第一控制逻辑以及两级表的读结果数据线q_1相连,负责寄存第一控制逻辑处理首片时分片数据中的传输层信息或者处理其它分片时从两级表中查询得到的传输层信息;尝试阈值寄存器与第一控制逻辑以及外部的系统控制逻辑相连,寄存用户通过系统控制逻辑设定的访问两级表中第二级表的最大尝试次数,第一控制逻辑通过访问尝试阈值寄存器来判断何时终止尝试;尝试次数计数器与第一控制逻辑相连,负责记录第一控制逻辑已经尝试访问两级表中第二级表的次数,由第一控制逻辑在取一个新的网络层传输层分片数据时复位为0,第一控制逻辑在每访问一次两级表中第二级表的表项时将尝试次数寄存器增加1;第一两级表参数寄存器与第一控制逻辑以及外部的系统控制逻辑相连,负责存储两级表中第一级表的基地址、第一级表的总表项数;第一控制逻辑是一个状态机,由空闲、取分片数据、计算hash、访问第一级表、匹配、地址生成、访问第二级表、结果处理8个状态组成;哈希模块与控制模块的当前网络层传输层分片数据寄存器及第一控制逻辑相连,哈希模块收到第一控制逻辑发来的激励信号后,从第一控制模块的当前网络层传输层分片数据寄存器读取srcIP、dstIP、ID、TYPE信息,采用低位补0的方式将srcIP、dstIP、ID、TYPE信息填充成hash函数要求的位数,通过hash函数计算后得到哈希值返回给控制模块;地址生成模块与控制模块的第一控制逻辑、当前地址寄存器及外部的系统控制逻辑相连,负责在收到控制模块发来的生成下一个地址信号后,读取控制模块的当前地址寄存器并生成下一个地址返回给控制模块;地址生成模块由第二控制逻辑、尝试距离寄存器、第二两级表参数寄存器组成;第二控制逻辑与尝试距离寄存器、第二两级表参数寄存器、控制模块的当前地址寄存器及第一控制逻辑相连,负责在收到控制模块的生成下一个地址信号后读取控制模块的当前地址寄存器并根据尝试距离寄存器和第二两级表参数寄存器生成下一个地址返回给控制模块;尝试距离寄存器与第二控制逻辑及外部的系统控制逻辑相连,负责寄存用户设定的当前地址与生成的下一个地址间的间隔大小,尝试距离与第二级表的总表数互素;第二两级表参数寄存器存储两级表中第二级表的总表数以及第二级表的基地址;超时维护模块与两级表的端口B及外部的系统控制逻辑相连,负责周期更新两级表中所有有效表项的超时定时器,当有表项的超时定时器超过超时阈值寄存器时,将该表项删除;超时维护模块由周期定时器、管理周期寄存器、超时阈值寄存器、第三两级表参数寄存器、表项内容寄存器、当前地址计数器及扫描器组成;周期定时器是一个计时器,与扫描器相连,负责定时将其自身增加1,当其值等于管理周期寄存器时激励扫描器从休眠状态进入扫描状态,网络设备初始化时被复位为0;管理周期寄存器与扫描器及外部的系统控制逻辑相连,通过系统控制逻辑设定,当周期定时器等于管理周期寄存器时,扫描器状态转为扫描状态,开始新一周期的超时维护处理,管理周期寄存器决定了扫描器周期维护两级表的粒度;超时阈值寄存器与扫描器及外部的系统控制逻辑相连,通过系统控制逻辑设定,表示两级表中表项信息可以有效存储的管理周期数;第三两级表参数寄存器与扫描器及外部的系统控制逻辑相连,存储两级表参数,包括两级表中第一级表的基地址、第一级表的总表项数、第二级表的基地址、第二级表的总表项数;表项内容寄存器与两级表端口B的输入数据线data_2、读结果数据线q_2及扫描器相连,寄存扫描器当前访问的两级表表项内容;当前地址计数器与扫描器及两级表端口B的地址数据线addr_2相连,记录扫描器访问的两级表的当前位置,初始化时复位为两级表中第一级表的基地址;扫描器与两级表端口B的命令数据线w/r_2、周期定时器、管理周期寄存器、超时阈值寄存器、第三两级表参数寄存器、表项内容寄存器、当前地址计数器相连;扫描器是一个状态机,由休眠、扫描2个状态组成;第二步,IP分片报文处理逻辑对IP分片进行处理,具体流程为:2.1.网络设备启动时对IP分片报文处理逻辑进行初始化;网络层传输层分片数据缓存区复位为空,第一控制逻辑状态复位为空闲,两级表中所有表项复位为空闲即有效位为0,超时维护模块中的周期定时器复位为0,超时维护模块中的当前地址计数器复位为两级表中第一级表的基地址,超时维护模块中的扫描器状态复位为休眠;2.2.当报文头缓存区中有报文可读且后面的网络层传输层分片数据缓存区可写时,分片报文解析模块从报文头缓存区中取出一个报文的报文头数据,并根据该报文头数据的IP报文头中的标志字段flag、分段偏移字段fragment offset来判断报文的分片状态并置两位分片状态标志位(Frag,FD);分片报文解析模块从报文头数据中提取srcIP、dstIP、ID、TYPE这四个域的信息和传输层信息,将srcIP、dstIP、ID、TYPE、传输层信息、两位分片状态标志位(Frag,FD)写入网络层传输层分片数据缓存区中,转步骤2.3;报文头缓存区中无报文可读或者网络层传输层分片数据缓存区不可写时,转步骤2.2等待;2.3.控制模块的第一控制逻辑处于空闲状态,当网络层传输层分片数据缓存区有分片数据可读并且外部的完整网络层传输层信息缓存区可写时,将状态转为取分片数据状态,执行步骤2.3.1,否则保持在空闲状态,转步骤2.3等待;2.3.1第一控制逻辑处于取分片数据状态,将尝试次数计数器复位为0,从网络层传输层分片数据缓存区读取分片数据写入当前网络层传输层分片数据寄存器中;判断读取的分片数据中的标志位Frag是否为1,若标志位Frag不为1则将分片数据中的传输层信息写入传输层结果寄存器中,将状态转为结果处理状态,转步骤2.4;若标志位Frag为1则将状态转为计算hash状态,转步骤2.3.2;2.3.2第一控制逻辑处于计算hash状态,给哈希模块发激励信号;2.3.3哈希模块收到第一控制逻辑发来的激励信号后,从控制模块的当前网络层传输层分片数据寄存器中读取srcIP、dstIP、ID、TYPE信息,采用低位补0的方式将srcIP、dstIP、ID、TYPE信息填充成hash函数要求的位数,将其通过hash函数计算后得到的哈希值返回给第一控制逻辑;2.3.4第一控制逻辑将哈希模块返回的哈希值模第一两级表参数寄存器中的第一级表的总表项数再加上第一两级表参数寄存器中的第一级表基地址得到访问第一级表的地址存入当前地址寄存器,将状态转为访问第一级表状态,判断控制模块的当前网络层传输层分片数据寄存器中的标志位FD是否为1,若为1转步骤2.3.5,否则转步骤2.3.6;2.3.5第一控制逻辑处于访问第一级表状态,将控制模块中的当前网络层传输层分片数据寄存器中的传输层信息赋值给控制模块中的传输层结果寄存器,访问当前地址寄存器所指示的两级表中第一级表表项,将状态转为匹配状态,执行步骤2.3.5.1;2.3.5.1第一控制逻辑处于匹配状态,判断两级表端口A的读结果数据线q_1返回的数据是否指示该表项空闲,若指示该表项空闲,则将当前网络层传输层分片数据寄存器中的srcIP、dstIP、ID、TYPE、传输层信息以及有效位超时定时器写入该表项并将状态转为结果处理状态,转步骤2.4;若指示该表项被占用则判断尝试次数计数器是否等于尝试阈值寄存器,若等于将状态转为结果处理状态,转步骤2.4,若不等则将状态转为地址生成状态,转步骤2.3.5.2;2.3.5.2第一控制逻辑处于地址生成状态,向地址生成模块的控制逻辑发生成下一个地址信号;2.3.5.3地址生成模块的第二控制逻辑接收第一控制逻辑发来的生成下一个地址信号后,读取控制模块的当前地址寄存器,为尝试访问两级表的第二级表生成下一个地址,并将该下一个地址返回给控制模块的第一控制逻辑;2.3.5.4第一控制逻辑处于地址生成状态,将地址生成模块的第二控制逻辑返回的下一个地址存入当前地址寄存器中,将状态转为访问第二级表状态;2.3.5.5第一控制逻辑处于访问第二级表状态,访问当前地址寄存器所指示的两级表中第二级表表项,尝试次数计数器增加1,将状态转为匹配状态,转步骤2.3.5.1;2.3.6第一控制逻辑处于访问第一级表状态,访问当前地址寄存器所指示的两级表中第一级表表项,将状态转为匹配状态,执行步骤2.3.6.1;2.3.6.1第一控制逻辑处于匹配状态,判断两级表端口A的读结果数据线q_1返回的数据的srcIP、dstIP、ID、TYPE域与控制模块中的当前网络层传输层分片数据寄存器的相应域是否相等及返回的数据的有效位是否为1,若相等且有效位为1,则将两级表端口A的读结果数据线q_1返回的数据中传输层信息存入控制模块的传输层结果寄存器中,将状态转为结果处理状态,转步骤2.4;若不相等或者有效位为0则判断尝试次数计数器是否等于尝试阈值寄存器,若等于则置传输层结果寄存器为默认的全0并将状态转为结果处理状态,转步骤2.4,若不等则将状态转为地址生成状态,转步骤2.3.6.2;2.3.6.2第一控制逻辑处于地址生成状态,向地址生成模块的第二控制逻辑发生成下一个地址信号;2.3.6.3第二控制逻辑收到第一控制逻辑发来的生成下一个地址信号后,读取控制模块的当前地址寄存器,为尝试访问两级表的第二级表生成下一个地址,并将该下一个地址返回控制模块的第一控制逻辑;2.3.6.4第一控制逻辑处于地址生成状态,将地址生成模块返回的下一个地址存入当前地址寄存器中,将状态转为访问第二级表状态;2.3.6.5第一控制逻辑处于访问第二级表状态,访问当前地址寄存器所指示的两级表中第二级表表项,尝试次数计数器增加1,将状态转为匹配状态,转步骤2.3.6.1;2.4.第一控制逻辑处于结果处理状态,将控制模块中的当前网络层传输层分片数据寄存器中的srcIP、dstIP、TYPE及传输层结果寄存器中的传输层信息组装写入完整网络层传输层信息缓存区,将状态转为空闲状态,转步骤2.2;2.5.在步骤2.2至2.4运行的同时,超时维护模块维护两级表分片信息,具体步骤如下:2.5.1扫描器处于休眠状态,判断周期定时器是否等于管理周期寄存器,若等于将周期定时器复位为0,将当前地址计数器置为两级表中第一级表的基地址,将状态转为扫描状态,转步骤2.5.2;若不等于则保持休眠状态,转步骤2.5.1等待周期定时器;2.5.2扫描器处于扫描状态,扫描器访问当前地址计数器指示的两级表表项,获取表项内容,存入表项内容寄存器中,表项内容指有效位、srcIP、dstIP、ID、TYPE、传输层信息和超时定时器;如果表项内容寄存器中有效位为1,说明该表项有效,则判断表项内容寄存器中的超时定时器值是否等于超时阈值寄存器,若等于则将该表项清除,即将有效位以及srcIP、dstIP、ID、TYPE、传输层信息和超时定时器所有这些域都置为0后重新写入当前地址计数器指示的表项中,若不等则将表项内容寄存器中超时定时器增加1,然后将更新后的表项内容寄存器重新写入当前地址计数器指示的表项,完成超时定时器更新;如果表项内容寄存器中有效位为0,说明该表项无效,则不作任何处理;2.5.3扫描器处于扫描状态,判断当前地址计数器是否等于两级表中第二级表的尾地址,若等于将状态转为休眠状态,转步骤2.5.1;否则将当前地址计数器赋值为两级表下一个表项地址,状态保持在扫描状态,转步骤2.5.2。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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