CN100571100C - 一种平滑ip媒体流突发帧率的方法 - Google Patents
一种平滑ip媒体流突发帧率的方法 Download PDFInfo
- Publication number
- CN100571100C CN100571100C CNB2006100890564A CN200610089056A CN100571100C CN 100571100 C CN100571100 C CN 100571100C CN B2006100890564 A CNB2006100890564 A CN B2006100890564A CN 200610089056 A CN200610089056 A CN 200610089056A CN 100571100 C CN100571100 C CN 100571100C
- Authority
- CN
- China
- Prior art keywords
- frame
- present frame
- time interval
- smoothing
- buffer queue
- 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
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种平滑IP媒体流突发帧率的方法,包括:从计算机的系统内存中取出一帧,准备发送;计算当前帧的预计发送时间与上一帧的实际发送时间的时间间隔,将发送时间间隔与用户设定的两帧间最小时间间隔进行比较,根据比较的结果判断帧率是否超限;若帧率超限,将当前帧送入发送缓存队列的尾部延迟发送;若帧率不超限,将当前帧送入发送缓存队列中或直接发送到物理链路上。本发明不仅可以将因分时多任务系统流媒体路由器本身原因引起的突发帧速率限制在指定的速率之下,而且对上级路由器输入的媒体流中已有的突发帧率也有同样的平滑作用;系统资源的占用率极低,从而使得平滑过程对整个系统的运行无任何显著的不良影响。
Description
技术领域
本发明涉及IP网络流媒体服务质量的保障,特别涉及在分时多任务操作系统下,对路由器的网卡在IP路由任务过程中可能出现的间歇突发性的帧率进行平滑的方法。
背景技术
在当今流媒体服务日益成为IP网络增值业务重心的形势下,增强流媒体服务质量成为该业务能否正常运营的关键所在,因此服务的质量(QOS,Quality Of Service)是下一代互联网建设中需要考虑的核心问题之一。对于流式传输媒体而言,其质量主要通过带宽、抖动、时延和分组丢失率来衡量。同一业务流中不同分组所呈现的时延不同称为时延变化,高频率的时延变化即称为抖动。抖动如果限制在一定范围内,不会对业务质量造成影响,但当抖动现象较为严重时则可能引起图像停顿、声音断续等问题。
典型的IP报文路由处理过程是:当一个流媒体IP报文到达路由器的一个网卡时,首先由网卡控制芯片从链路上接收该帧至网卡物理缓存,而后网卡通过中断通知操作系统,操作系统在中断处理中进行DMA控制,DMA过程完成IP报文从网卡缓存至系统内存的拷贝过程。该过程完成后将再次发出中断,通知操作系统已收到一个IP报文,以便操作系统作进一步处理。操作系统通过将该IP报文与路由规则集相比较,若匹配某一条规则,该报文将按照规则指定的方向被送往另一块网卡,即通过DMA将该帧从系统内存传送至网卡物理缓存,然后在网卡芯片的控制下将该帧传送到物理链路上从而完成路由过程。
由上可以看出,在理想情况下,输出的码率将与输入的码率在宏观时间和微观时间尺度上都将保持一致。但由于该路由过程中,IP报文在系统内存中的操作需要由系统CPU进行处理,而对于一个分时多任务系统(常见的如windows,linux均不是实时操作系统)而言,当网卡上的流量比较大并且系统中同时运行多个任务时,系统并不能保证每次的路由过程都能够及时地得到响应,这将会导致流式IP包在系统缓存中堆积。一旦路由任务获得CPU时间片,在该时间片内将会对堆积的多个IP报文进行转发,在较短时间内以网卡的最大码率发送多个IP报文,直至系统缓存中堆积的IP报文均被处理为止。在微观上,该过程会导致包输入速率为匀速的码流在路由输出后成为间歇有一个较大峰值速率(类似于毛刺)的非匀速码流,从而降低了码流的质量。当该现象较为严重时,其主要不良影响有:当下级路由器遇到多个上级路由器的峰值同时出现时,可能会导致下级路由器丢包的行为发生;当接收端为性能较低的嵌入式终端时,以网卡的全速率发送也会导致终端因不及处理而导致的丢包现象。此二种现象都会对流媒体的播放质量造成严重影响,从而导致画面停顿等现象的发生。
发明内容
本发明的目的在于克服分时多任务系统作为流媒体的路由传输设备时,由于操作系统的多任务分时性导致帧输出速率在微观上出现大的波动,影响流媒体服务质量的缺陷,从而提供一种平滑流媒体帧输出速率的方法。
为了实现上述目的,本发明提供了一种平滑IP媒体流突发帧率的方法,包含以下步骤:
1)、从计算机的系统内存中取出一IP媒体帧,准备发送;
2)、计算当前帧的预计发送时间与上一帧的实际发送时间的时间间隔,将该时间间隔记为发送时间间隔,将计算得到的发送时间间隔与用户设定的两帧间最小时间间隔进行比较,若发送时间间隔大于或等于两帧间最小时间间隔,则当前帧的帧发送速率没有超出限制,执行步骤4),若发送时间间隔小于两帧间最小时间间隔,则当前帧的帧发送速率超出限制,执行下一步;
3)、将当前帧送入发送缓存队列的尾部延迟发送,跳转到步骤8);
4)、判断发送缓存队列是否为空,若该队列不为空,则执行下一步,否则,执行步骤7);
5)、在发送缓存队列中有历史遗留帧,将当前帧送入发送缓存队列的尾部;
6)、在每个CPU时间片,从发送缓存队列的队列头中取出M个帧发送到物理链路上,然后跳转到步骤8);
7)、将当前帧直接发送到物理链路上,然后执行下一步;
8)、通知系统当前帧已被处理,退出处理过程。
上述技术方案中,在所述的步骤2)中,所述的当前帧的预计发送时间为发送当前帧前的时间。
上述技术方案中,在所述的步骤6)中,所述的M是一个用户设定的正整数,可根据需要调整大小,以适应不同的帧率限制需求。
本发明的优点在于:
1、本发明不仅可以将因分时多任务系统流媒体路由器本身原因引起的突发帧速率限制在指定的速率之下,而且对上级路由器输入的媒体流中已有的突发帧率也有同样的平滑作用。
2、本发明对系统资源的占用率极低,可保证不会因引入平滑机制而导致系统负载能力的大幅降低,从而使得平滑过程对整个系统的运行无任何显著的不良影响。
附图说明
图1为本发明的平滑IP媒体流突发帧率的方法的流程图;
图2为在一个实施例中平滑前的帧率图;
图3为一个实施例中平滑后的帧率图。
具体实施方式
下面结合附图和具体实施方式对本发明的方法做进一步的说明。
在背景技术中对现有的IP报文的路由处理过程进行了描述,本发明的平滑IP媒体流突发帧率的方法,应用在上面所描述的“用DMA方式发送IP报文至网卡物理缓存”之前的一种方法。本实施例的平滑IP媒体流突发帧率的方法,具体包含以下步骤:
步骤1、从计算机的系统内存中取出一IP媒体帧,准备发送。例如,一视频帧。
步骤2、计算当前帧的预计发送时间T1与上一帧的实际发送时间T2的时间间隔Td,将该时间间隔记为发送时间间隔,将所述发送时间间隔与用户设定的两帧间最小时间间隔Tmin进行比较,若发送时间间隔大于或等于两帧间最小时间间隔,则当前帧的发送不会使帧速率超限,执行步骤5,若发送时间间隔小于两帧间最小时间间隔,则表明此时若发送当前帧,则会使帧速率超限,执行下一步;其中,所述的预计发送时间T1用发送当前帧前的时间来替代。
在本步骤中,所要实现的是帧速率超限的判定。由于流媒体通常具有较为平稳变化甚至恒定不变的帧速率,因此,在现有技术中为计算某一点的瞬时帧速率,通常可用该帧前单位时间间隔内已发送的帧数除以单位时间的方法,以前向帧平均速率估算该点的瞬时帧速率。但当遇到帧速率快速变化情况时产生两个问题:
A、“前向”特点导致该值对帧速率超限的判断滞后,导致判断出帧速率超限时,已经以超限的帧速率发送出去了若干个包;
B、“平均”特点使得帧速率曲线中的高频分量缺失,导致当真实帧速率曲线出现超限的“毛刺”时,计算出的值却在帧速率限定范围内,从而无法检测出该超限现象。
基于现有技术在判定帧速率超限时存在上述的缺陷,本发明采用了上述的计算相邻两帧间的时间间隔的方法来检测帧发送速率的超限现象。
例如,假定用户设定的两帧间最小时间间隔Tmin为5ms,而当前帧与上一帧的时间间隔为7ms,则当前帧在发送时没有超限,若当前帧与上一帧的时间间隔为3ms,则当前帧的帧发送速率过快,超出了限制。
步骤3、将当前帧送入发送缓存队列的尾部延迟发送;
步骤4、通知系统当前帧已被处理,退出处理过程。
如前所述,本发明的方法是在操作系统要将IP包通过DMA方式送往网卡物理缓存之前,相当于在系统的IP包处理流程中插了一步,将IP包截获并进行本算法所描述的处理。在一般的流程中,IP包由系统发送,但在本发明方法中,对IP包有一个发送操作,因此,无论是步骤3中对IP帧做缓存操作,还是在后续步骤中对IP帧做直接发送处理,都要通知操作系统:当前帧已处理(消费)完成,不需要操作系统再发送一次,避免同一个帧被发送两次。本步骤可通过一个在操作系统上注册的钩子函数实现IP帧的截获,然后由钩子函数向操作系统返回drop值通知操作系统丢弃当前帧,避免对帧的重复发送。
步骤5、判断待发送缓存队列是否为空,若该队列不为空,则执行下一步,否则,执行步骤9。
步骤6、在发送缓存队列中有历史遗留帧,将当前帧送入发送缓存队列的尾端;
步骤7、在每个CPU时间片,从发送缓存队列的队列头中取出M个帧发送到物理链路上;在本实施例中,所述的M可以取2。
步骤8、通知系统当前帧已被处理,退出处理过程。
步骤9、将当前帧直接发送到物理链路上。
步骤10、通知系统当前帧已被处理,退出处理过程。
从上述的步骤5开始是对帧的缓存与延时发送的操作,在现有技术中,对帧做延时发送通常有以下方法:
a)、在内核线程中采用阻塞的做法延时一段时间;
b)、采用timer定时器触发;
c)、采用空循环的方法来模拟一段时间延迟。
但上诉三种方法均不适用于本应用场合。方案a无法应用于中断环境,而即使在非中断环境下,由于典型的时间间隔的值Td在1毫秒量级,需要延时的时间往往在几百甚至几十个微秒内,而阻塞过程的时间控制精度无法达到该要求,因此无法适用。方案b也存在精度不够的问题,另外多个定时器的引入也导致结构复杂。方案c的实现结构简单,也可以通过空循环的次数精确控制延时,但若要实现相同的延时,所需的空循环次数与宿主系统计算能力相关,不适合推广,另外系统的空循环是采用穷尽消耗CPU计算能力的方式实现延时,对系统资源的消耗过大。因此,在本发明的方法中通过创建缓存队列实现对帧的延时发送。
本发明的方法增加的计算负载主要有两方面:一为对每一帧都需要进行时间比较操作,每帧增加了一次获取时间的函数调用,增加了一次计算Td和比较Td,Tmin的操作。而在存储资源上需要增加3个时间变量T1、T2、Tmin。二为对偶尔的超速帧需要进行的入、出队列操作,在存储资源上增加了一个缓冲队列。理论上讲,该队列大小取决于输入与限额输出速率的差,以及速度超限时间的长度,队列容量的精确计算应是一个速度差对时间的积分,若采取简易计算,假设最大输入速率为RM,系统支持的最大超速时间为TM,则需保证队列大小为TM*RM,对于千兆网,若系统性能要求可以平滑长度为0.3秒的超速流量,则队列大小需要0.3s*1000Mbps/8=37.5Mbyte。
通过上述说明可知,本发明的方法对系统总负载的增加极小,但却可以成功地将任意大的峰值帧输出速率降低到“M×阈值帧速”以下(其中,阈值帧速通过设置Tmin的值进行控制),达到了平滑帧率的效果。
图2和图3分别是帧输出速率在平滑前后的效果图,图2是平滑前的帧率图,在该图中的6.450s附近有明显一个明显的毛刺,帧速率峰值远远高于帧速率的平均值。图3是平滑后的帧率图,平滑后的帧输出帧率与平滑前相比,不再有明显的毛刺,并且帧速率峰值被限制在平均值的两倍以下。
Claims (3)
1、一种平滑IP媒体流突发帧率的方法,包含以下步骤:
1)、从计算机的系统内存中取出一IP媒体帧,准备发送;
2)、计算当前帧的预计发送时间与上一帧的实际发送时间的时间间隔,将该时间间隔记为发送时间间隔,将所述发送时间间隔与用户设定的两帧间最小时间间隔进行比较,若发送时间间隔大于或等于两帧间最小时间间隔,则当前帧的帧发送速率没有超出限制,执行步骤4),若发送时间间隔小于两帧间最小时间间隔,则当前帧的帧发送速率超出限制,执行下一步;
3)、将当前帧送入发送缓存队列的尾部延迟发送,跳转到步骤8);
4)、判断发送缓存队列是否为空,若该队列为空,执行步骤7),否则,执行下一步;
5)、在发送缓存队列中有历史遗留帧,将当前帧送入发送缓存队列的尾部;
6)、在每个CPU时间片,从发送缓存队列的队列头中取出M个帧发送到物理链路上,然后跳转到步骤8);
7)、将当前帧直接发送到物理链路上,然后执行下一步;
8)、通知系统当前帧已被处理,退出处理过程。
2、根据权利要求1所述的平滑IP媒体流突发帧率的方法,其特征在于,在所述的步骤2)中,所述的当前帧的预计发送时间为发送当前帧前的时间。
3、根据权利要求1所述的平滑IP媒体流突发帧率的方法,其特征在于,在所述的步骤6)中,所述的M是一个用户设定的正整数,可根据需要调整大小,以适应不同的帧率限制需求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100890564A CN100571100C (zh) | 2006-08-01 | 2006-08-01 | 一种平滑ip媒体流突发帧率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100890564A CN100571100C (zh) | 2006-08-01 | 2006-08-01 | 一种平滑ip媒体流突发帧率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101119175A CN101119175A (zh) | 2008-02-06 |
CN100571100C true CN100571100C (zh) | 2009-12-16 |
Family
ID=39055131
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100890564A Expired - Fee Related CN100571100C (zh) | 2006-08-01 | 2006-08-01 | 一种平滑ip媒体流突发帧率的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100571100C (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103546824A (zh) * | 2013-10-25 | 2014-01-29 | 中国科学院声学研究所 | 流媒体发送速率的控制方法和装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492691A (zh) * | 2003-04-18 | 2004-04-28 | 西安通视数据有限责任公司 | 一种单向广播流媒体传输中的音频纠错方法 |
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输系统中的速率控制方法 |
-
2006
- 2006-08-01 CN CNB2006100890564A patent/CN100571100C/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1492691A (zh) * | 2003-04-18 | 2004-04-28 | 西安通视数据有限责任公司 | 一种单向广播流媒体传输中的音频纠错方法 |
CN1655547A (zh) * | 2004-09-09 | 2005-08-17 | 上海川海信息科技有限公司 | 一种流媒体传输系统中的速率控制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101119175A (zh) | 2008-02-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Montazeri et al. | Homa: A receiver-driven low-latency transport protocol using network priorities | |
US6308228B1 (en) | System and method of adaptive message pipelining | |
CN108243116B (zh) | 一种流量控制方法及交换设备 | |
US7330430B2 (en) | Packet-based traffic shaping | |
CN107948103B (zh) | 一种基于预测的交换机pfc控制方法及控制系统 | |
CN105978821B (zh) | 网络拥塞避免的方法及装置 | |
EP2439878B1 (en) | Method and system for network congestion management | |
CN101282173A (zh) | 一种数据包发送速率的调整方法、系统和装置 | |
CN102916903B (zh) | 缓存调整方法及装置 | |
EP3961981A1 (en) | Method and device for congestion control, communication network, and computer storage medium | |
CN110784415B (zh) | 一种ecn快速响应的方法及装置 | |
CN108540395B (zh) | 无丢失网络中的拥塞判断方法及交换机 | |
CN102811176B (zh) | 一种数据流量控制方法和装置 | |
Zhang et al. | Congestion detection in lossless networks | |
CN107682279B (zh) | 一种时延控制方法、装置及存储介质、程序产品 | |
CN109863782A (zh) | 5g拥塞控制 | |
CN113992588A (zh) | 数据传输方法、装置、电子设备及可读存储介质 | |
US6724776B1 (en) | Method and system for providing optimal discard fraction | |
CN103428104A (zh) | 一种基于内容中心网络的拥塞控制方法 | |
CN100571100C (zh) | 一种平滑ip媒体流突发帧率的方法 | |
CN102487330B (zh) | 运行、管理和维护报文的发送方法及装置 | |
CN112491573B (zh) | 一种网络参数配置方法及装置 | |
CN113132246B (zh) | 一种流量控制方法及相关设备 | |
Zhang et al. | Revisiting congestion detection in lossless networks | |
Hamadneh et al. | Dynamic weight parameter for the random early detection (RED) in TCP networks |
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 | ||
C17 | Cessation of patent right | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20091216 Termination date: 20120801 |