专利名称:一种维护tcp流表结构和乱序缓冲区的方法
技术领域:
本发明涉及内存管理领域,具体涉及一种维护TCP流表结构和乱序缓冲区的方法。
背景技术:
计算机软件在当今社会得到了越来越广泛的应用,一方面,计算机软件正在被应 用于越来越多的领域当中;另一方面,计算机软件的用户也由原来的专业的计算机工程师, 转变为现在的不同知识水平的广大用户。这就要求10计算机软件功能强大,但简单易用, 这种要求直接导致计算机软件规模变大,复杂度增加,使得用户在应用计算机软件时,软件 错误的发生率增加,其中,最主要、最常见的错误就是软件在进行内存访问时引起的错误。 这种错误总体表现为两种形式一种是读写地址引用错误;另一种是读写权限违反许可, 这两种错误统称为非法内存访问。目前,非法内存访问会导致严重的不良后巧果非法读内 存,会引起数据引用出错,导致系统混乱;非法写内存,会破坏内存中的正常数据,严重时, 还会导致系统瘫痪板卡设计中,内存空间大小有限,增加内存空间相应也增加了成本,合理使用内存 变得很重要。目前存在的连接管理系统中,将内存作为单表结构使用,每个结点存储一个连 接信息,需要几十字节,某些结点不被使用,造成内存空间浪费严重。本系统使用双表结构, 第一个表只记录连接信息表的地址信息,地址只需要几个字节,即便结点不被使用,空间浪 费显然减少了 10倍之多。
发明内容
本发明提供了一种维护TCP流表结构和乱序缓冲区的方法,步骤如下A、根据内存空间大小和用途,将记录连接信息的空间地址存入连接地址池中,将 记录乱序连接信息的地址存入乱序缓冲区地址池中;B、系统初始化后,从连接地址池和乱序缓冲区地址池中读出I个地址分别存入 两个先进先出缓冲区队列。C、新建连接时,从连接地址队列中取出一个可用地址,并将连接信息写入该地址 指向的缓冲区;D、如果连接乱序,从乱序缓冲区队列中取出一个可用地址,将该地址和乱序连接 信息提交乱序重排模块进行处理。E、连接断开时,将分配给该TCP连接的连接地址和乱序缓冲区地址回收到接收释 放地址缓冲区队列中。F、检查可用地址队列快空信号和释放地址队列的快满信号,如果可用地址队列快 空,从地址池中取地址,如果释放地址队列快满,回收地址到地址池中。本发明充分利用内存空间,不导致浪费,只要用完就释放,可以被其他连接使用。
图1为本发明原理图
具体实施例方式A、根据内存空间大小和用途,将记录连接信息的空间地址存入连接地址池中,将 记录乱序连接信息的地址存入乱序缓冲区地址池中;B、系统初始化后,从连接地址池和乱序缓冲区地址池中读出I个地址分别存入 两个先进先出缓冲区队列。C、新建连接时,从连接地址队列中取出一个可用地址,并将连接信息写入该地址 指向的缓冲区;D、如果连接乱序,从乱序缓冲区队列中取出一个可用地址,将该地址和乱序连接 信息提交乱序重排模块进行处理。E、连接断开时,将分配给该TCP连接的连接地址和乱序缓冲区地址回收到接收释 放地址缓冲区队列中。F、检查可用地址队列快空信号和释放地址队列的快满信号,如果可用地址队列快 空,从地址池中取地址,如果释放地址队列快满,回收地址到地址池中。充分利用内存空间,不导致浪费,只要用完就释放,可以被其他连接使用。
权利要求
1. 一种维护TCP流表结构和乱序缓冲区的方法,其特征在于步骤如下A、根据内存空间大小和用途,将记录连接信息的空间地址存入连接地址池中,将记录 乱序连接信息的地址存入乱序缓冲区地址池中;B、系统初始化后,从连接地址池和乱序缓冲区地址池中读出I个地址分别存入两个 先进先出缓冲区队列。C、新建连接时,从连接地址队列中取出一个可用地址,并将连接信息写入该地址指向 的缓冲区;D、如果连接乱序,从乱序缓冲区队列中取出一个可用地址,将该地址和乱序连接信息 提交乱序重排模块进行处理。E、连接断开时,将分配给该TCP连接的连接地址和乱序缓冲区地址回收到接收释放地 址缓冲区队列中。F、检查可用地址队列快空信号和释放地址队列的快满信号,如果可用地址队列快空, 从地址池中取地址,如果释放地址队列快满,回收地址到地址池中。
全文摘要
本发明提供了一种维护TCP流表结构和乱序缓冲区的方法,TCP连接管理系统使用片外存储器记录连接信息和乱序连接信息,为每个连接分配的内存空间大小相同,把每个连接的内存空间地址放在地址池中,建立连接时或者乱序时,从地址池中取出一个地址使用,释放连接时将该连接所占用地址回收至地址池。本发明充分利用内存空间,不导致浪费,只要用完就释放,可以被其他连接使用。
文档编号G06F12/02GK102147766SQ20101059843
公开日2011年8月10日 申请日期2010年12月17日 优先权日2010年12月17日
发明者刘兴奎, 刘朝辉, 张英文, 李静, 窦晓光, 纪奎 申请人:曙光信息产业股份有限公司