[发明专利]一种阿瑞斯协议分析系统中双缓存的设计与实现方法无效
申请号: | 201110085747.8 | 申请日: | 2011-04-02 |
公开(公告)号: | CN102143083A | 公开(公告)日: | 2011-08-03 |
发明(设计)人: | 王汝传;周东旭;李致远;韩志杰;徐鹤;邵星;赵丹 | 申请(专利权)人: | 南京邮电大学 |
主分类号: | H04L12/56 | 分类号: | H04L12/56;H04L29/06 |
代理公司: | 南京经纬专利商标代理有限公司 32200 | 代理人: | 叶连生 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 阿瑞斯 协议 分析 系统 缓存 设计 实现 方法 | ||
技术领域
本发明是一种针对阿瑞斯协议分析系统的缓存的设计与实现,主要用来解决阿瑞斯网络报文的截获和篡改重定向之间速率不匹配的问题,解决了高速实时和变速可延时模块共享数据导致处理速率下降的问题,属于缓冲技术领域。
背景技术
近些年来P2P流量大量地占据了主干网络,使得运营成本不断增加,如何降低主干网的压力,有效控制P2P流量是关键。阿瑞斯协议也是一个比较优秀的P2P协议,为了达到控制该协议流量的目的,我们需要对该协议进行实时地分析,然后控制它在主干网上的流量,使阿瑞斯协议的客户端尽量能够在城域网范围内完成下载功能,降低主干网的负担。为了解决阿瑞斯协议分析中实时处理和延时等待的问题,我们必须采用一定的存储技术来实现模块间的良好运转。
缓冲技术就是为了协调吞吐速度相差很大或者实时性要求很高的设备以及模块之间的数据传送工作。在数据到达与离去速度不匹配的地方,就应该使用缓冲技术。缓冲技术好比是一个水库,如果上游来的水太多,下游来不及排走,水库就起到“缓冲”作用,先让水在水库中停留一段时间,等下游能继续排水,再把水送往下游。它的应用非常广泛,在计算机硬件技术领域,通常CPU的速度要比I/O设备的速度快得多得多,所以可以设置缓冲区,对于从CPU来的数据,先放在缓冲区中,然后设备可以慢慢地从缓冲区中读出数据,这样的缓冲区有内存以及cache缓存。在计算机软件技术领域,通常为了匹配两个不同模块的工作速率或者工作延迟,我们可以也采用软缓冲技术来实现,如使用缓冲技术在线播放视频。常见的缓冲技术有:单缓冲,双缓冲,循环缓冲,缓冲池。
当然,缓冲区的高效管理也离不丌一个合理的数据存储结构,不同的数据存储结构体现出不同的访问性能,对于不同的使用场合,就应该使用对应的存储结构。现今的数据存储结构大体上包括了线性结构、树形结构、图形结构、集合结构等。
因此一个灵活的,高效的缓冲区的设计不但需要考虑需求本身的因素,而且还要综合考虑它的数据结构的存取性能,代价因素等等。针对阿瑞斯协议分析系统,我们考虑到内核抓包模块对数据包抓取的实时性要求很高,但内核数据处理模块需要对数据进行延时处理,所以有必要设计一个高效的,符合要求的缓冲区,以提高各个模块的工作性能。
发明内容
技术问题:本发明的目的是提供一种阿瑞斯协议分析系统中双缓存的设计与实现方法,缓冲高速实时模块(内核抓包模块)和变速可延时模块(内核数据处理模块),以提高各模块的工作效率。本发明相比以往的方案,有效分离高速实时模块和变速可延时模块,具有运行的高效性、稳定性、灵活性。
技术方案:本发明的方法采用了哈希链表的存储结构对截获的阿瑞斯协议的哈希搜索数据包进行存储,并使用数据包的源端的IP地址和端口号作为输入,计算其MD5值作为哈希链表的哈希值的来源,并使用了双哈希链表的方式,分离了两个不同模块的共享数据,使两个不同模块对共享数据的读、写分开,互补干扰,以提高高速实时模块(即内核抓包模块)的运行效率,将不需要或者无法实时处理的部分放到内核数据处理模块当中,进一步细化模块分工。
该方法为:
步骤1)进行需求分析,对内核抓包模块需要存储的信息进行详细分析,并生成需求分析文档;
步骤2)根据步骤1的分析文档,理清内核抓包模块和内核数据处理模块的处理流程以及他们之间的逻辑关系,并生成逻辑交互图以及功能说明文档;
步骤3)根据步骤2的逻辑关系以及功能说明文档,设计并实现了内核抓包模块中有关数据处理的相关步骤,并针对该模块对高速度和实时性的要求,专门设计了基于哈希值的哈希链表结构的存储模式,该存储结构具有存储的灵活性,较线性表存储结构而言,具有更好的查询优势,并使用链表结构,可以随意增减哈希链表的容量;
步骤4)根据步骤2的逻辑关系以及功能说明文档,设计并实现了内核数据处理模块,实现了该模块与用户态的NETLINK(一种内核态与用户态的通信套接字)通信,对哈希链表的读取操作,以及通知内核抓包模块完成双哈希链表之间的轮换,有效提高了模块与模块之间的独立性;
步骤5)根据步骤2的逻辑关系以及功能说明文档,定义了3种结构,包括:节点结构、线性表结构、哈希表头结构,设计并实现了双缓冲结构下的哈希链表的节点创建、存储、读取、删除、获取节点个数等操作,借鉴了内存池的相关特性在删除操作上使用了只清空节点信息,而不释放内存的方式以提高写入速度,同时使用了内核态的锁机制,对公共数据区进行数据保护,实现了数据的可靠操作。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京邮电大学,未经南京邮电大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110085747.8/2.html,转载请声明来源钻瓜专利网。