CN100474840C - 一种基于信令协议的缓冲区的管理方法 - Google Patents

一种基于信令协议的缓冲区的管理方法 Download PDF

Info

Publication number
CN100474840C
CN100474840C CNB2004101040939A CN200410104093A CN100474840C CN 100474840 C CN100474840 C CN 100474840C CN B2004101040939 A CNB2004101040939 A CN B2004101040939A CN 200410104093 A CN200410104093 A CN 200410104093A CN 100474840 C CN100474840 C CN 100474840C
Authority
CN
China
Prior art keywords
buffering area
memory space
data
signaling protocol
effective memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CNB2004101040939A
Other languages
English (en)
Other versions
CN1725728A (zh
Inventor
汪碧海
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ren Xiuhua
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CNB2004101040939A priority Critical patent/CN100474840C/zh
Publication of CN1725728A publication Critical patent/CN1725728A/zh
Application granted granted Critical
Publication of CN100474840C publication Critical patent/CN100474840C/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)
  • Communication Control (AREA)

Abstract

本发明提供一种基于信令协议的缓冲区的管理方法,其核心为:设置预定存储空间的基于信令协议的缓冲区,以循环队列读写数据的形式对所述缓冲区进行数据存取管理;本发明通过对预定存储空间的缓冲区以循环队列的形式进行数据存储,使数据在缓冲区中的末端和首端能够连续存储,使缓冲区不会产生存储空间碎片,有效的利用了缓冲区的存储空间;从而实现了提高系统性能,提高缓冲区利用率的目的。

Description

一种基于信令协议的缓冲区的管理方法
技术领域
本发明涉及网络通讯技术领域,具体涉及一种基于信令协议的缓冲区的管理方法。
背景技术
信令协议系统是现代通信网络中的关键技术。
信令协议中的TCP(传输控制协议)、SCTP(流控制传输协议)等信令协议提供可靠的数据传输方法,这类信令协议往往需要一个发送缓冲区,将所有发送出去的数据暂时存储在该缓冲区中,直到接收到对端的证实消息后,才从其发送缓冲区中删除证实消息对应的数据。
目前,提供发送缓冲内存的信令协议对发送缓冲内存的使用和管理的方法主要有两种:
方法一:直接将系统的动态内存作为发送缓冲区来使用。在信令协议需要发送数据时,直接向系统申请一块内存空间来存放该数据,在接收到对端的证实消息后,释放对应的内存空间。在该方法中,信令协议依赖系统对内存空间进行管理,信令协议频繁的申请、释放内存容易使系统的内存空间形成过多的内存碎片。
方法二:将缓冲区分为空间大小不同的缓冲区来使用和管理,如将发送缓冲区分为大、中、小三种缓冲区,协议在发送数据时根据数据包长度和路径MTU(最大传输单元)将数据存储在相应大小的缓冲区中。
下面以路径MTU大于大缓冲区空间的大小为例对分配缓冲区的具体实现过程进行描述。
若发送数据的路径MTU大于大缓冲区空间的大小,则对发送数据包的长度和小缓冲区空间的大小进行比较。
如果发送数据包的长度≤小缓冲区空间的大小,则优先使用小缓冲区,当小缓冲区不够时,则可依次使用中缓冲区和大缓冲区。
如果小缓冲区空间的大小<发送数据包的长度≤中缓冲区空间的大小,则优先使用中缓冲区,当中缓冲区不够时,则可依次使用大缓冲区和小缓冲区。
如果发送数据包的长度>中缓冲区空间的大小,则优先使用大缓冲区,当大缓冲区不够时,则可依次使用中缓冲区和小缓冲区。
该方法在大缓冲区空间全部被用完后,只能使用剩余的中、小缓冲区空间来存储数据,这样势必会造成系统性能的下降,而且发送缓冲区中总是有一定的缓冲空间没有存放有效数据,造成了发送缓冲内存的资源浪费。
综上所述,现有的发送缓冲内存的使用和管理方法不能够对发送缓冲内存进行有效管理,致使系统性能差、缓冲内存利用率低。
发明内容
本发明的目的在于,提供一种基于信令协议的缓冲区的管理方法,利用循环队列读取数据的方式来对预定存储空间的缓冲区进行数据管理,以实现提高系统性能,提高缓冲区利用率的目的。
为达到上述目的,本发明提供的一种基于信令协议的缓冲区的管理方法,包括:
设置预定存储空间的基于信令协议的缓冲区;
当所述缓冲区需要存储数据时,根据所述缓冲区的首地址、有效存储空间、有效存储空间的起始写地址进行数据存储,并相应更新所述有效存储空间和有效存储空间的起始写地址;
当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间。
所述信令协议包括:传输控制协议、流控制传输协议。
所述缓冲区为:具有连续地址的缓冲区。
所述缓冲区包括:发送缓冲区、接收缓冲区。
所述设置预定存储空间的基于信令协议的缓冲区包括:
根据需要设置预定存储空间的基于信令协议的缓冲区,并确定该缓冲区的首地址;
确定所述缓冲区的有效存储空间和所述有效存储空间的起始写地址。
当所述缓冲区为初始化状态时,所述缓冲区的预定存储空间与有效存储空间相同,所述首地址与所述有效存储空间的起始写地址相同。
所述当所述缓冲区需要存储数据时,根据所述首地址、有效存储空间、起始写地址进行数据存储,并相应更新所述有效存储空间和有效存储空间的起始写地址包括:
当所述缓冲区需要存储数据时,将数据包长度不大于有效存储空间的数据从起始写地址开始向缓冲区的末端依次存储;
当所述数据存储完成时,判断所述存储的数据是否存储至缓冲区的末端;
如果没有存储至缓冲区的末端,将缓冲区的有效存储空间、起始写地址根据所述存储的数据包的长度进行更新;
如果存储至缓冲区的末端,将缓冲区的有效存储空间根据所述存储的数据包的长度进行更新,并将所述有效存储空间的起始写地址根据首地址进行更新;
当所述数据存储至缓冲区的末端仍有剩余数据没有被存储时,将所述剩余数据从所述首地址继续存储,直至所述剩余数据存储完成,并将所述缓冲区的有效存储空间根据数据包的长度进行更新,将所述有效存储空间的起始写地址根据所述首地址、剩余数据包的长度进行更新。
所述当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间包括:
当接收到基于信令协议的证实消息,证实所述缓冲区中存储的从首个数据包开始的一个或连续的多个数据包已被接收端接收时,从所述缓冲区中存储的首个数据包开始删除相应的一个或连续的多个数据包,并根据所述删除的数据包的长度更新所述缓冲区的有效存储空间。
所述当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间包括:
当所述缓冲区中存储的从首个数据包开始的一个或连续的多个数据包已被用户读取时,从所述缓冲区中存储的首个数据包开始删除相应的一个或连续的多个数据包,并根据所述删除的数据包的长度更新所述缓冲区的有效存储空间。
通过上述技术方案的描述可明显得知,本发明中的缓冲区为预定存储空间的缓冲区,通过对缓冲区以循环队列读写数据的形式进行数据存取,使缓冲区不会产生存储空间碎片;当预定存储空间的缓冲区为具有连续地址的一段内存时,使本发明对缓冲区中数据的存取管理更方便;本发明可以通过设置预定存储空间的首地址、有效存储空间、有效存储空间的起始写地址,且有效存储空间、起始写地址随存储或删除的数据包的长度随时更新,能够使数据在缓冲区中的尾部和首部的有效存储空间连续存储,使本发明能够简单、有效的实现以循环队列读写数据的形式对缓冲区的数据存取管理;从而实现了提高系统性能,提高缓冲区利用率的目的。
附图说明
图1是本发明的具有预定存储空间的发送缓冲区示意图;
图2是本发明的发送缓冲区存储数据时的示意图;
图3是本发明的发送缓冲区删除、存储数据时的示意图。
具体实施方式
本发明的核心是:设置预定存储空间的基于信令协议的缓冲区,以循环队列读写数据的形式对缓冲区进行数据存取管理。
下面以基于信令协议的发送缓冲区为例,对本发明提供的缓冲区的管理方法做进一步的描述。
在传输性可靠的信令协议如TCP、SCTP中,对于其需要发送的数据首先应存储在发送缓冲区中,并且在接收到接收端传输来的证实消息,证实发送缓冲区中存储的某个数据包已被成功接收时,需要将发送缓冲区中存储的相应数据删除。
本发明中为TCP、STCP等信令协议而设置的发送缓冲区是具有预定存储空间的发送缓冲区,而且该发送缓冲区可以是一段地址连续的内存,如附图1所示。发送缓冲区的存储空间可根据不同系统的具体需求来确定。
本发明可以通过设置发送缓冲区的有效存储空间、有效存储空间的起始写地址、发送缓冲区的首地址来实现以循环队列读写数据的形式对发送缓冲区中的数据进行存取管理,其具体实现方法如下所述:
在本发明中,发送缓冲区的初始化状态可以为:有效存储空间与预定存储空间相同,即发送缓冲区中还没有存储任何数据,此时,发送缓冲区的首地址和有效存储空间的起始写地址相同。
当发送缓冲区需要存储数据时,应该将数据从有效存储空间的起始写地址开始依次向发送缓冲区的末端存储,有效存储空间应随着存储的数据包的长度而相应减小、起始写地址应相应更新为起始写地址与存储的数据包的长度之和。存储至发送缓冲区中的数据的长度始终应该不大于发送缓冲区的有效存储空间。当数据包的长度大于有效存储空间时,发送缓冲区不存储该数据。
当发送缓冲区接收到接收端传输来的证实消息,证实发送缓冲区中存储的从首个数据包开始的一个或连续的多个数据包已被接收端成功接收时,缓冲区应将从其存储的首个数据包开始删除相应的一个或连续的多个数据包,有效存储空间应随着删除的数据包的长度而相应增加。
设定本发明在存储一定的数据之后,预定存储空间的发送缓冲区、有效存储空间、有效存储空间的起始写地址、发送缓冲区的首地址如附图2所示。
在图2中,发送缓冲区中依次存储了序列号为1、序列号为2和序列号为3的数据,此时发送缓冲区的有效存储空间为:发送缓冲区的预定存储空间与序列号为1、序列号为2、序列号为3的各数据包长度之差;有效存储空间的起始写地址应在序列号为3的数据包的后面,即起始写地址应为首地址与序列号为1、序列号为2、序列号为3的各数据包的长度之和。
当信令协议接收到接收端传输来的序列号为2的数据对应的证实消息时,信令协议需要从发送缓冲区中存储的首个数据包开始删除序列号为1的数据和序列号为2的数据。数据被删除后,发送缓冲区如附图3中的(a)图所示,此时,有效存储空间的起始写地址不发生改变,有效存储空间更新为有效存储空间与序列号为1的数据包长度、序列号为2的数据包长度之和。
从附图3中(a)图所示的有效存储空间可明显看出,此时的有效存储空间包括两部分,即从首地址开始到序列号为3的数据的首部有效存储空间、从起始写地址开始到发送缓冲区末端的尾部有效存储空间。
当附图3中的(a)图所示的发送缓冲区需要存储数据,如需要存储附图3(b)图所示的序列号为4的数据时,如果序列号为4的数据包的长度不大于有效存储空间,则应该将该序列号为4的数据从有效存储空间的起始写地址开始向发送缓冲区的末端依次存储。
在将数据包长度不大于有效存储空间的序列号为4的数据存储至发送缓冲区中的有效存储空间时,可能会出现三种不同的情况,即序列号为4的数据包的长度小于尾部有效存储空间、序列号为4的数据包的长度等于尾部有效存储空间、序列号为4的数据包的长度大于尾部有效存储空间。
当序列号为4的数据包的长度小于尾部有效存储空间时,将序列号为4的数据从起始写地址开始向发送缓冲区末端顺序存储,存储完成后,如附图3中(c)图所示,有效存储空间更新为有效存储空间与序列号为4的数据包的长度之差,起始写地址更新为起始写地址与数据包长度之和。
当序列号为4的数据包的长度等于尾部有效存储空间时,将序列号为4的数据从起始写地址开始向发送缓冲区末端顺序存储,存储完成后,如附图3中(d)图所示,有效存储空间更新为有效存储空间与序列号为4的数据包的长度之差,起始写地址更新为首地址。
当序列号为4的数据包的长度大于尾部有效存储空间时,将序列号为4的数据从起始写地址开始向发送缓冲区末端顺序存储,存储至发送缓冲区的末端后,将剩余没有存储完成的数据从首地址开始顺序存储在首部有效存储空间中,直至将剩余数据存储完成。此时如附图3中(e)图所示,有效存储空间更新为有效存储空间与序列号为4的数据包的长度之差,起始写地址更新为首地址与剩余数据包长度之和。剩余数据包长度为序列号为4的数据包的长度与尾部有效存储空间之差。
由于本发明中发送缓冲区的存储空间是固定的,所以尾部有效存储空间、首部有效存储空间可方便的通过发送缓冲区的存储空间、有效存储空间、起始写地址获得,如:
末端有效存储空间=(发送缓冲区的预定存储空间-起始写地址);
首端有效存储空间=(有效存储空间-(发送缓冲区的存储空间-起始写地址)。
上述实施例是以基于信令协议的发送缓冲区为例进行说明的,本发明的缓冲区的管理方法同样适用于基于信令协议的接收缓冲区。接收缓冲区同样可以为具有预定存储空间的具有连续地址的缓冲区。接收缓冲区存储数据与删除数据的过程与发送缓冲区的过程基本一致,只是接收缓冲区是在用户将其存储从首个数据包开始的一个或连续的多个数据包读取后,需要从其存储的从首个数据包开始删除相应的一个或连续的多个数据包,在本实施方式中不再详细描述。
本发明的缓冲区的管理方法同样可以适用于缓冲区删除数据时,是从其存储的首个数据包开始删除的缓冲区。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化。

Claims (9)

1、一种基于信令协议的缓冲区的管理方法,其特征在于包括:
设置预定存储空间的基于信令协议的缓冲区;
当所述缓冲区需要存储数据时,根据所述缓冲区的首地址、有效存储空间、有效存储空间的起始写地址进行数据存储,并相应更新所述有效存储空间和有效存储空间的起始写地址;
当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间。
2、如权利要求1所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述信令协议包括:传输控制协议、流控制传输协议。
3、如权利要求1所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述缓冲区为:具有连续地址的缓冲区。
4、如权利要求1所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述缓冲区包括:发送缓冲区、接收缓冲区。
5、如权利要求1所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述设置预定存储空间的基于信令协议的缓冲区包括:
根据需要设置预定存储空间的基于信令协议的缓冲区,并确定该缓冲区的首地址;
确定所述缓冲区的有效存储空间和所述有效存储空间的起始写地址。
6、如权利要求5所述的一种基于信令协议的缓冲区的管理方法,其特征在于:
当所述缓冲区为初始化状态时,所述缓冲区的预定存储空间与有效存储空间相同,所述首地址与所述有效存储空间的起始写地址相同。
7、如权利要求5所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述当所述缓冲区需要存储数据时,根据所述缓冲区的首地址、有效存储空间、有效存储空间的起始写地址进行数据存储,并相应更新所述有效存储空间和有效存储空间的起始写地址包括:
当所述缓冲区需要存储数据时,将数据包长度不大于有效存储空间的数据从起始写地址开始向缓冲区的末端依次存储;
当所述数据存储完成时,判断所述存储的数据是否存储至缓冲区的末端;
如果没有存储至缓冲区的末端,将缓冲区的有效存储空间、起始写地址根据所述存储的数据包的长度进行更新;
如果存储至缓冲区的末端,将缓冲区的有效存储空间根据所述存储的数据包的长度进行更新,并将所述有效存储空间的起始写地址根据首地址进行更新;
当所述数据存储至缓冲区的末端仍有剩余数据没有被存储时,将所述剩余数据从所述首地址继续存储,直至所述剩余数据存储完成,并将所述缓冲区的有效存储空间根据数据包的长度进行更新,将所述有效存储空间的起始写地址根据所述首地址、剩余数据包的长度进行更新。
8、如权利要求5所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间包括:
当接收到基于信令协议的证实消息,证实所述缓冲区中存储的从首个数据包开始的一个或连续的多个数据包已被接收端接收时,从所述缓冲区中存储的首个数据包开始删除相应的一个或连续的多个数据包,并根据所述删除的数据包的长度更新所述缓冲区的有效存储空间。
9、如权利要求5所述的一种基于信令协议的缓冲区的管理方法,其特征在于所述当所述缓冲区需要删除数据时,删除所述缓冲区中存储的相应数据,并根据所述删除的数据包的长度相应更新所述缓冲区的有效存储空间包括:
当所述缓冲区中存储的从首个数据包开始的一个或连续的多个数据包已被用户读取时,从所述缓冲区中存储的首个数据包开始删除相应的一个或连续的多个数据包,并根据所述删除的数据包的长度更新所述缓冲区的有效存储空间。
CNB2004101040939A 2004-07-22 2004-12-19 一种基于信令协议的缓冲区的管理方法 Expired - Fee Related CN100474840C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB2004101040939A CN100474840C (zh) 2004-07-22 2004-12-19 一种基于信令协议的缓冲区的管理方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN200410054819.2 2004-07-22
CN200410054819 2004-07-22
CNB2004101040939A CN100474840C (zh) 2004-07-22 2004-12-19 一种基于信令协议的缓冲区的管理方法

Publications (2)

Publication Number Publication Date
CN1725728A CN1725728A (zh) 2006-01-25
CN100474840C true CN100474840C (zh) 2009-04-01

Family

ID=35924977

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004101040939A Expired - Fee Related CN100474840C (zh) 2004-07-22 2004-12-19 一种基于信令协议的缓冲区的管理方法

Country Status (1)

Country Link
CN (1) CN100474840C (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102523387B (zh) * 2011-12-09 2014-06-18 深圳万兴信息科技股份有限公司 一种在视频中实现火焰特效的方法和装置
CN103838679B (zh) * 2012-11-22 2017-08-04 中兴通讯股份有限公司 一种缓存处理方法及装置
CN105550124A (zh) * 2015-12-09 2016-05-04 四川长虹电器股份有限公司 一种信息处理方法和电子设备
CN107016054A (zh) * 2017-03-03 2017-08-04 京信通信技术(广州)有限公司 一种日志信息存储的方法及装置

Also Published As

Publication number Publication date
CN1725728A (zh) 2006-01-25

Similar Documents

Publication Publication Date Title
US8068512B2 (en) Efficient utilization of cache servers in mobile communication system
CN107888657A (zh) 低延迟分布式存储系统
EP1940107A1 (en) A method for processing data synchronization and client terminal, server and data synchronization system thereof
CN101330472B (zh) 流媒体数据的缓存处理方法
EP2461527B1 (en) Route switching device and data cashing method thereof
CN101656985B (zh) 一种管理url资源缓存的方法和装置
CN101626384A (zh) 一种基于tcp协议传输数据包的方法和系统
CN101877666B (zh) 基于零拷贝方式的多应用程序报文接收方法和装置
JP2002534033A (ja) マルチメディアアプリケーションにおける固定サイズパケットに対して優先順位を決定したバッファ管理
CN101510838A (zh) 实现持久化数据队列的方法
CN105488108A (zh) 一种多个视频文件高速并行存储的方法及装置
CN101043300B (zh) 重新发送控制电路、控制方法以及发送装置
CN100474840C (zh) 一种基于信令协议的缓冲区的管理方法
CN101699421B (zh) 串口共享的方法和服务端
WO2010142213A1 (zh) 一种移动多媒体数据广播业务处理的方法及系统
CN101150525B (zh) 缓存地址释放方法、系统及逻辑模块
US7113516B1 (en) Transmit buffer with dynamic size queues
CN111541624B (zh) 空间以太网缓存处理方法
EP1032885B1 (en) Apparatus and method for protocol application data frame operation requests interfacing with an input/output device
CN102520879B (zh) 基于优先级的文件信息存储方法、装置及系统
CN101964751A (zh) 数据包的传输方法及装置
JP2005501329A (ja) シーケンシャルおよび非シーケンシャルブロックアクセスを有するバッファ・システム
CN114401072A (zh) 一种基于hinoc协议的拆帧重排序队列的动态缓存控制方法及系统
CN101021846A (zh) 一种不定帧长结构数据流的存储方法
CN109688085B (zh) 传输控制协议代理方法、存储介质及服务器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20170926

Address after: 075000 Zhangjiakou, Hebei, Wanquan Town, Wanquan County, 36

Patentee after: Ren Xiuhua

Address before: 518129 intellectual property department, F1-18 building, research center of Bantian HUAWEI headquarters, Longgang District, Shenzhen, Guangdong

Patentee before: Huawei Technologies Co., Ltd.

CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20090401

Termination date: 20171219