CN101212399B - 一种内存管理方法 - Google Patents
一种内存管理方法 Download PDFInfo
- Publication number
- CN101212399B CN101212399B CN2006101577986A CN200610157798A CN101212399B CN 101212399 B CN101212399 B CN 101212399B CN 2006101577986 A CN2006101577986 A CN 2006101577986A CN 200610157798 A CN200610157798 A CN 200610157798A CN 101212399 B CN101212399 B CN 101212399B
- Authority
- CN
- China
- Prior art keywords
- msub
- mrow
- mover
- overbar
- data packet
- 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
Links
- 238000007726 management method Methods 0.000 title claims abstract description 15
- 230000005540 biological transmission Effects 0.000 claims abstract description 17
- 238000000034 method Methods 0.000 claims abstract description 14
- 230000008569 process Effects 0.000 claims abstract description 10
- 239000000725 suspension Substances 0.000 abstract 1
- 230000008859 change Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000004883 computer application Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供了一种内存管理方法,所述方法包括:在数据接收过程中,当连续的数据包所占用的缓存容量达到Ms时,向上层应用递交对该块缓存的处理权;当连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当缓存的使用量小于等于MI时,向服务器发送流媒体协议播放控制指令恢复数据包的传送;MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;MI为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>MI。保证内存不会溢出的同时节约了内存使用量。
Description
技术领域
本发明属于计算机应用领域,尤其涉及一种内存管理方法。
背景技术
在流媒体系统中,IP(Internet Protocol)网络是以包传输为基础进行断续的异步传输。数据在IP网络传输中被分解为许多适量大小的数据包,由于网络是动态的,各个数据包的路由选择可能不同,因此到达接收端的时间延迟也不相同,此时数据包的顺序会由于这种延迟的变化(即网络抖动)出现错乱。在视频应用程序中,抖动表现为图像闪动,而在语音传输中,它表现的效果与丢包产生的效果相似,某些语句听不清楚或错误。目前主要是利用缓冲机制来缓解网络抖动引起数据包的乱序问题,使用缓存可以尽量保证数据包的顺序正确。
理论上缓存容量越大越能容纳大的抖动,但是缓存的增大会线性地增大图像或语音的延时,所以应该在避免数据包抖动的情况下根据可接受延时设置抖动缓存的容量。现有的一技术方案如图1所示,假设设置一块容量为TM(单位:KB)的内存作为抖动缓存,Ms表示向上层应用提交的连续数据包所占该缓存的容量,即当该缓存中连续数据包所占缓存容量达到Ms时,将该块缓存的使用权上交给上层应用,当上层应用处理完该块缓存后,释放该块缓存的使用权,使该缓存能被重新利用,Ms值的设置可以根据网络理想情况下数据流的传输速率等因素估计得到。MP表示向上层应用提交的连续和非连续的数据包所占缓存的容量,即当连续和非连续的数据包所占缓存容量达到MP时,此时即使连续包所占缓存容量还未达到Ms,仍将容量为MP的缓存的使用权上交给上层应用,同样,当上层应用处理完该块缓存后,释放该块缓存的使用权。MP值的设置可以根据网络理想情况下数据流的传输速率和可接受延时等因素估计得到。以传输码率为3.75Mb/s的视频为例,假设可接受延迟为4ms,则接收端设置的缓冲区容量至少为3.75Mb/s*4ms=15kb,此时,可设置TM、MP和MS分别为30kb,22.5kb和15kb,假设可接受延迟为6ms,则此时,可设置TM,MP和MS分别为36kb,34kb和22.5kb。
在上述方案中向上层应用递交容量为MP的缓存使用权后,但该块缓存的使用权还没有被上层应用释放时,网络上仍然会不断传来数据包缓存到TM中,如果TM中剩下的缓存全部被占用,则此时会出现内存上溢的问题。内存上溢将导致数据包丢失,造成在媒体播放时画面失真、断续以及语音不连贯等。
发明内容
本发明实施例的目的在于提供一种内存管理方法,旨在解决现有技术中存在的由于上层应用未释放缓存,而网络上继续传输数据包造成内存上溢的问题。
本发明实施例是这样实现的,一种内存管理方法,所述方法包括:
在数据接收过程中,当连续的数据包所占用的缓存容量达到MS时,向上层应用递交对该块缓存的处理权;
当存储的连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当存储的连续和非连续的网络数据包所占用的缓存小于等于M1时,向服务器发送流媒体协议播放控制指令恢复数据包的传送;
其中,MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;M1为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>M1。
所述流媒体协议暂停控制指令为实时流协议的PAUSE指令;所述流媒体协议播放控制指令为实时流协议的PLAY指令。
所述Ms的值采用线性动态控制。
所述MS通过下式计算得出:
当Dt′∈[Dt-P,Dt+P],MS=MS0;
当Dt′<Dt-P,
当Dt′>Dt+P,
其中,Dt为前一个时间段t内数据包到达接收端的时间间隔的平均值;Dt′为当前时间段t内数据包到达接收端的时间间隔的平均值;P表示控制强度,且P<Dt;MS0为网络理想情况下连续数据包所占用的最大缓存容量,且MP>MS0>MI。
本发明实施例提供的内存管理方法,在数据接收过程中通过流媒体协议控制指令保证内存不会溢出的同时节约了内存使用量。同时,通过线性控制向上层应用提交的连续数据包占用缓存的容量,缓解了缓存的输出速率大幅度的阶越式变化,减小了上层应用程序的内存管理复杂度。
附图说明
图1是现有技术中内存管理方法的一个示例图;
图2是本发明实施例提供的内存管理方法的一个示例图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例通过在客户端接收数据的过程中发送流媒体协议控制指令有效的防止了内存上溢。常用的流媒体协议有实时流协议(RealTime StreamingProtocol,RTSP)以及超文本传输协议(Hypertext Transfer Protocol,HTTP)等。
图2示出了本发明的一个示例,假设作为抖动缓存的一块内存的容量为TM,MI表示向上层应用提交的连续和非连续的数据包所占缓存的最小容量, MI的值可以根据在网络理想情况下使内存不出现下溢,保持播放的连续性等因素进行估计设置。与现有技术方案相同,MP表示向上层应用提交的连续和非连续的数据包所占缓存的容量,Ms表示向上层应用提交的连续数据包所占缓存的容量,且MP>MS>MI。
在数据接收过程中,当连续的数据包所占用的缓存容量达到Ms时,向上层应用递交对该块缓存的处理权,当连续的和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,例如:RTSP的PAUSE指令。同时向上层应用递交对该块缓存的处理权,当上层应用处理完该块缓存中的数据,并释放该块缓存后,此时如果缓存的使用量小于等于MI时,再通过向服务器发送流媒体协议播放控制指令恢复数据包的传送,例如:RTSP的PLAY指令。从而通过上述流媒体协议控制指令有效的防止了内存上溢或下溢,同时,因为内存不会上溢,且发送完PAUSE指令后,还可能会收到少量几个数据包,所以用做抖动缓存的实际内存容量可设置为略大于MP,而不需要大量的冗余量(TM-MP)用于防止内存溢出,从而大大节约了内存。
在本发明的一优选实施例中,为了缓解由于网络加速或延迟造成缓存的输出速率大幅度的阶越式变化(即连续数据包所占用的缓存容量达到Ms时在网络加速状态下所耗费的时间与在网络延迟状态下所耗费的时间相差较大)对MS的设定采用线性动态控制,而对MP和MI的设定保持不变,具体过程详述如下:
假设在数据接收过程中,第n个数据包与第n+1个数据包到达时刻的时间间隔为Dn,那么,Dn=Tn+1-Tn;
其中,Tn表示第n个包的到达时刻,Tn+1表示第n+1个包的到达时刻。
假设在时间段t范围内(t的大小可以根据需要进行取值),有M个数据包到达接收端,那么,数据包到达接收端的时间间隔的平均值Dt为:
如果在下一个同样长时间段t’范围内,数据包到达接收端的时间间隔的平均值Dt′∈[Dt-P,Dt+P],则认为网络处于平稳状态,此时,MS=MS0;
其中,P为一表示控制强度的常量,P始终小于Dt,可以根据需要进行调整;MS0为网络理想情况下连续数据包所占用的最大缓存容量,可以根据网络理想情况下数据流的传输速率等因素估计设置,且MP>MS0>MI。
如果Dt′<Dt-P,则认为网络处于加速状态,此时,
如果Dt′>Dt+P,则认为网络处于延迟状态,此时,
通过上述对MS的线性控制缓解了由于网络加速或延迟造成缓存的输出速率大幅度的阶越式变化,有效的降低了上层应用程序的内存管理复杂度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (4)
1.一种内存管理方法,其特征在于,所述方法包括:
在数据接收过程中,当连续的数据包所占用的缓存容量达到MS时,向上层应用递交对该块缓存的处理权;
当存储的连续和非连续的网络数据包所占用的缓存容量达到MP时,向服务器发送流媒体协议暂停控制指令暂停数据包的传输,同时向上层应用递交对该块缓存的处理权,当存储的连续和非连续的网络数据包所占用的缓存小于等于M1时,向服务器发送流媒体协议播放控制指令恢复数据包的传送;
其中,MP为向上层应用提交的连续和非连续的数据包占用的最大缓存容量;MS为向上层应用提交的连续数据包占用的最大缓存容量;M1为向上层应用提交的连续和非连续的数据包占用的最小缓存容量,且MP>MS>M1。
2.如权利要求1所述的内存管理方法,其特征在于,所述流媒体协议暂停控制指令为实时流协议的PAUSE指令;所述流媒体协议播放控制指令为实时流协议的PLAY指令。
3.如权利要求1或2所述的内存管理方法,其特征在于,所述Ms的值采用线性动态控制。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101577986A CN101212399B (zh) | 2006-12-27 | 2006-12-27 | 一种内存管理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2006101577986A CN101212399B (zh) | 2006-12-27 | 2006-12-27 | 一种内存管理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101212399A CN101212399A (zh) | 2008-07-02 |
CN101212399B true CN101212399B (zh) | 2011-11-09 |
Family
ID=39612087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006101577986A Expired - Fee Related CN101212399B (zh) | 2006-12-27 | 2006-12-27 | 一种内存管理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101212399B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101902295B (zh) * | 2009-05-26 | 2013-08-21 | 国际商业机器公司 | 控制应用服务器的负载接收速率的方法及装置 |
CN105100172B (zh) * | 2014-05-22 | 2018-03-27 | 华为技术有限公司 | 一种http协议的缓存状态更新方法和设备、处理机 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1674490A (zh) * | 2004-02-27 | 2005-09-28 | 三菱电机株式会社 | 用于动态自动重发请求窗口管理的方法和设备 |
CN1756226A (zh) * | 2004-09-29 | 2006-04-05 | 中兴通讯股份有限公司 | 一种专用信道的流控方法 |
US7061868B1 (en) * | 2000-10-25 | 2006-06-13 | Switchcore, Ab | Method for flow control in a switch and a switch controlled thereby |
-
2006
- 2006-12-27 CN CN2006101577986A patent/CN101212399B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7061868B1 (en) * | 2000-10-25 | 2006-06-13 | Switchcore, Ab | Method for flow control in a switch and a switch controlled thereby |
CN1674490A (zh) * | 2004-02-27 | 2005-09-28 | 三菱电机株式会社 | 用于动态自动重发请求窗口管理的方法和设备 |
CN1756226A (zh) * | 2004-09-29 | 2006-04-05 | 中兴通讯股份有限公司 | 一种专用信道的流控方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101212399A (zh) | 2008-07-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7080173B2 (en) | Reducing information reception delays | |
KR102039778B1 (ko) | 서버에서 멀티 비트 레이트 스트림 미디어를 적응적으로 제공하기 위한 방법 및 장치 | |
US9306994B2 (en) | Stabilization of adaptive streaming video clients through rate limiting | |
CN101662676B (zh) | 流媒体缓冲的处理方法 | |
EP3322145A1 (en) | Method, server side and system for computing bandwidth of network transmission of streaming media | |
US9930097B2 (en) | Transport accelerator systems and methods | |
US9420022B2 (en) | Media requests to counter latency and minimize network bursts | |
CN106416179A (zh) | 实现扩展传输控制功能的传输加速器 | |
CN102547449A (zh) | 一种控制终端缓冲媒体流数据的方法、机顶盒及媒体服务器 | |
CN110113662B (zh) | 一种适应多种网络状况的视频监控客户端系统 | |
CN112995048B (zh) | 数据中心网络的阻塞控制与调度融合方法及终端设备 | |
CN112866746A (zh) | 一种多路串流云游戏控制方法、装置、设备及存储介质 | |
CN101212399B (zh) | 一种内存管理方法 | |
CN101090369B (zh) | 一种在流媒体系统中控制数据包发送速率的方法 | |
CN1855824A (zh) | 用于流式处理数据的方法和设备 | |
CN105245946B (zh) | 可变码率媒体流的流量控制方法、装置以及系统 | |
US7450599B2 (en) | Apparatus and method for communicating with a network | |
CN112737971A (zh) | 数据处理方法、装置、存储介质及网络设备 | |
JP2003069613A (ja) | データ品質保証システム | |
CN107370687A (zh) | 一种网络tcp流量控制方法 | |
WO2012106902A1 (zh) | 一种队列管理方法、装置及系统 | |
US7447789B2 (en) | Method and apparatus for buffering data at a transport layer on a client | |
WO2024080973A1 (en) | Content recovery in real-time online meetings | |
JP2011234233A (ja) | 映像配信装置及び映像配信方法 | |
WO2024080974A1 (en) | Media adaptation for lost content recovery in real-time online meetings |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20111109 |
|
CF01 | Termination of patent right due to non-payment of annual fee |