采用指针技术存储数据包的方法技术

技术编号:3547007 阅读:199 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了网络技术领域的一种采用指针技术存储数据包的方法。所述方法将存储空间分成工作区和备用区,在工作区空闲存储空间小于一个门限时将存储空间由工作区切换到备用区并存入数据,在备用区空闲存储空间小于一个门限时则清除所有工作区的数据包,将工作区和备用区进行互换,克服了现有技术中存在的数据包存储效率低,易受数据包种类的影响,存储空间的利用率低,存储操作的可靠性差等问题,提高了存储单元的利用率,降低了存储过程受数据包大小影响的可能性,同时避免出现错误指针内容而导致存储系统故障的现象,避免存储指针的累计效应,提高了存储系统的可靠性。

【技术实现步骤摘要】
采用指针技术存储数据包的方法
本专利技术涉及网络
,尤其涉及一种数据包存储方法。
技术介绍
从上世纪90年代开始,网络技术得到快速发展,网络方面的标准体系逐步完善,新技术的应用带动产品价格大幅下降,国家骨干数据网络的建设,使得网络技术开始进入人们的日常生活,成为通讯费用外的一个新消费点。传统的电话网络采用点对点通讯技术,用户完全占用一个通讯信道,具有独占性,无论用户是否在通话,通讯效率比较低,通讯系统复杂,灵活性差,成本高。网络技术采用数据包方式通讯,所有用户共享整个通讯网络,当一个用户不使用时,通讯信道可被其他用户使用,效率高,通讯系统简单,成本低,因此网络技术产品发展迅速。网络产品的核心是数据包交换,在数据包交换过程中,需要将数据包先储存起来,然后通过数据包的开销字节进行处理,寻找路由,在路由方向确定后才取出数据包,然后发送出去。在产品中需要一个大的缓存单元,存储接收到的数据包。网络技术处理数据包具有如下特点:A、操作速度快,在短时间内需要交换大量的数据包,要求存入、取出的速度非常大;B、分类按照次序存放,交换时涉及不同的数据包种类,根据不同类的数据包进行分类存放;C、数据包长度不等,数据包的长度不确定,是随机的,最短为64字节,最长9600字节。-->一般实现存储数据包时,采用如下几种方法:1、数据包连续存储,一个数据包的数据连续存放在连续的地址单元上;2、采用简单的指针技术存储数据包,根据指针值来存储数据包;3、指针技术和连续存放结合。以上所述的几种技术都存在如下问题:1、因为数据包的长度变化很大,当连续存放一个数据包时,不知道数据包的大小,因此需要分配最大包的存储空间,这个空间在存放小数据包时,浪费很严重;2、由于存在一个端口进入的数据包可能会发向所有不同方向去,一个方向接受的数据包可能来自不同的方向,因此需要根据数据包的不同方向进行分类存放,不同类别的数据包容易混淆,这样将整个存储空间分成许多小类别的存储区,端口越多,分的区越多,每区分配的空间都必须按最大缓存包数目来分配,但实际工作中有的分区数据包数目可能很少,有的可能不够用,造成存储空间浪费;3、在电路工作可能遇到意外干扰,如雷击、辐射、温变等原因,造成个别数据位错位,如果正好是指针值错误,则无法寻找其他数据,导致存储操作混乱,系统崩溃,可靠性差。
技术实现思路
本专利技术的目的是解决现有技术中存在的数据包存储效率低,存储效率易受数据包种类多少的影响,存储空间的利用率低,错误数据包内容给系统带来负面影响,整个存储单元(块)操作的可靠性差等问题,以提供一种采用指针技术存储数据包方法。本专利技术所述采用指针技术存储数据包方法包括以下步骤:第一步,将存储空间分成两个区域,即工作区和备用区;第二步,初始化两个存储区,将存储区分成许多小存储单元,将所述存储单元通过指针联接起来,形成存储空间;-->第三步,检查工作区是否有空闲存储空间,如果有,则写入指针内容,校验内容,开始存入数据包内容,如果没有存储空间,则先转移:清除备用区的所有数据包,将工作区和备用区切换,新工作区全部为空闲存储空间,然后写入指针内容,校验内容,开始存入数据包内容;第四步,根据指针,读出一个数据前面存储单元,通过校验位核实指针是否正确:如果正确,回收用过的存储空间,同时根据指针继续读数据包其他内容;如果错误,直接丢弃数据包;第五步,如果工作区空闲存储空间小于一个门限,则开始切换存储空间,向备用区存入数据;第六步,如果备用区空闲存储空间小于一个门限,则清除所有工作区的数据包,工作区和备用区进行互换。采用本专利技术所述的采用指针技术存储数据包的方法,可以存储任意大小的数据包,提高了存储单元的利用率,降低了存储过程受数据包大小影响的可能性,同时避免出现错误指针内容而导致存储系统故障的现象,存储技术能够正确判断指针内容是否正确,对于错误的指针内容直接丢弃,不影响存储操作,存储系统可以初始化原来的存储结构,避免存储指针的累计效应,存储系统可靠性很高。附图说明图1是本专利技术所述采用指针技术存储数据包方法的流程图;图2是存储空间中存储单元的结构示意图;图3是现有技术中数据包在存储空间存放结果示意图;图4是存储单元中指针值、校验值、数据包结构示意图;图5是在保护方式下数据包在存储单元中的结构示意图;图6是数据包存储区域切换过程示意图;-->图7是工作区、备用区切换后数据包的存储结构示意图。具体实施方式下面结合附图,对本专利技术所述的采用指针技术存储数据包方法进行详细描述。图1是本专利技术所述的采用指针技术存储数据包方法的流程图。将存储空间分成两部分:工作区和备用区,然后初始化两个区,将每个存储区分成多个小存储单元,将所述存储单元通过指针联接起来,形成存储空间。开始存储数据包操作:判断是存入数据包还是读出数据包。如果存入数据包,判断工作区是否有空闲空间,如果有则直接存入数据包;如果没有则开始切换工作区域,如果备用区为空闲,则直接切换,否则先清除备用区的所有数据包,然后切换、初始化备用区。开始存入数据包,写入数据包操作结束。如果需要读出数据包,则直接读出相应的数据包,判断数据包校验是否正确,如果校验正确,判断是否回收读出后产生的新空闲存储块,如果需要回收,则回收新的空闲存储块,否则丢弃。输出数据包,读出数据包操作结束。如果读出的数据包校验错误,则直接丢弃数据包,也不回收新空闲存储块,读出数据包操作结束。图2是存储空间中存储单元的结构示意图。采用指针技术时所用的存储空间分成许多存储单元,数据包就存放在这些存储单元内,一个数据包可能需要许多存储单元来存放,存储单元在物理地址上可能不是连续的,它们之间通过指针来连接起来。图3是现有技术中数据包在存储空间存放结果示意图。产生该存储结果的原因是由数据包的特点决定的,网络产品的核心是数据包交换,需要先对不同的数据包进行判断,判断数据包应该去的方向,然后发送到相应的方向去。由于数据包的数量很大,处理过程复-->杂,处理数据包需要一些时间,因此在数据包没有判断方向、发送前,需要先缓存起来,在确定发送方向(路由)后发送出去。由于数据包的速度很快,数据包长度不定,一个数据包可能分成好几段时间段接收完,同时有许多不同的接收方向,也有不同的发送方向,因此可能同时出现不同方向接收的数据包去同一个方向,也可能出现同一方向分时接收不同种类的数据包,因此数据包的存储方式很重要。为了适应数据包的变换,可以将整个缓存器分成许多小的存储单元,每个数据包存储在这些存储单元上,大的数据包占用多个存储单元,小数据包占少量存储单元,以适应数据包大小的变换。为了实现同时接收许多数据包,在一个数据包没有接收完前,可以开始接收另外的数据包,在存储时,不采用连续存储方式,也就是一个数据包占用的存储单元物理空间不连续,这样可以在一个数据包没有接收完前,接着存储另外的数据包。为了知道数据包中所有数据的存储位置,需要将物理上不连续的数据包联接起来,这就需要采用指针技术,每个存储单元中设立一个指针,指出下一个存储单元位置,这样实现一个完整的数据包的存储。将所有数据包的包头位置存储起来,形成队列指针组,每个指针指向一个数据包包头的存储位置,指针队列管理着整个存储的数据包,但存储一个数据包时,将新数据包包头位置指针插入队本文档来自技高网
...

【技术保护点】
一种采用指针技术存储数据包的方法,其特征在于,包括以下步骤:第一步,将存储空间分成两个区域,即工作区和备用区;第二步,初始化两个存储区,将存储区分成多个小存储单元,将所述存储单元通过指针联接起来,形成存储空间;第三步 ,检查工作区是否有空闲存储空间,如果有,则写入指针内容,校验内容,开始存入数据包内容,如果没有存储空间,则先转移;第四步,根据指针,读出一个数据前面存储单元,通过校验位核实指针是否正确:如果正确,回收用过的存储空间,同时根据指针继续 读数据包其他内容;如果错误,直接丢弃数据包;第五步,如果工作区空闲存储空间小于一个门限,则开始切换存储空间,向备用区存入数据;第六步,如果备用区空闲存储空间小于一个门限,则清除所有工作区的数据包,工作区和备用区进行互换。

【技术特征摘要】
1、一种采用指针技术存储数据包的方法,其特征在于,包括以下步骤:第一步,将存储空间分成两个区域,即工作区和备用区;第二步,初始化两个存储区,将存储区分成多个小存储单元,将所述存储单元通过指针联接起来,形成存储空间;第三步,检查工作区是否有空闲存储空间,如果有,则写入指针内容,校验内容,开始存入数据包内容,如果没有存储空间,则先转移;第四步,根据指针,读出一个数据前面存储单元,通过校验位核实指针是否正确:如果正确,回收用过的存储空间,同时根据指针继续读数据包其他内容;如果错误,直接丢弃数据包;第五步,如果工作区空闲存储空间小于一个门限,则开始切换存储空间,向备用区存入数据;第六步,如果备用区空闲存储空间小...

【专利技术属性】
技术研发人员:刘峰
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1