背景技术
随着通信技术的发展和Internet传输能力的增长,实时多媒体技术的应用在过去几年越来越多的得到应用,但实时多媒体技术应用需要引入业务保证,现有能实现业务保证的方式主要有交换设备调度和缓存管理两种。在交换设备调度的方式中,调度程序控制传输资源;在缓存管理的方式中,则主要对存储资源进行控制。对于实时多媒体业务的服务质量,缓存管理的方式更为重要。
交换设备中数据传输通常以令牌桶的形式处理,有固定传输速率,同时允许短期的速率波动,对超过固定传输速率的包,通过丢弃、整形或者标记进行处理。但在多媒体传输应用中,由于传输质量难以预测,可能出现传输速率在一段时间内超过规定速率,或者应用层爆发发送数据包并超过了规定爆发速率的情况,丢弃一些数据可能导致传输质量的下降,对数据流进行整形又可能导致附加的网络传输时延,必然降低传输质量。因此对交换设备而言,需要开发一种缓存管理机制,以最小的代价,实现以下目标:
一、对实时传输,满足用户的服务质量要求;
二、对过量传输,服务质量要求范围内尽量传输;
三、对各种网络应用场合,满足服务质量要求;
四、对共享缓存资源,保证资源共享的公平性。
在交换设备中,当输入端口收到数据后,经过调度处理,到达输出端口的缓存队列,等待转发。为了提高资源利用率,输出端口的缓存队列采用共享机制。全局丢包模块在全局缓冲区占用率达到全局阈值时,进行全局性的丢包;进入共享队列之前,数据流首先经过一个令牌桶整形模块,对突发性流量进行整形,然后是输出队列共享缓冲区中局部丢包模块将其逻辑的分为多个出端口。全局缓冲区和队列等缓存的管理机制与设备转发数据性能密切相关,如何设计缓存管理机制,是一个极为重要的问题。
现有缓存管理一般采用动态门限管理机制。这里,所述动态门限管理机制包括两种设置和调整,第一种机制是全局门限设置和调整,称为全局门限设置,其基本机制是对交换设备已分配的缓存进行控制,以保证突发流量。全局门限设置需要控制各输出端口占用缓存的总体门限。第二种机制则是对各输出端口缓存队列门限的设置和调整,称为队列门限设置,其基本机制是对各输出端口队列长度门限进行设置。在队列长度达到下限门限值时,开始随机丢包,在队列长度达到上限门限值时,丢弃所有转发到该端口的数据包,以保证其他输出端口队列的公平性。
但是,全局控制和队列控制这两种机制都是必不可少的,如果只进行全局门限设置,容易导致某一个输出端口大量抢占缓存,设备的公平性无法保证。如果只进行队列门限设置,则不能适应网络场景的变化,对短时间内的爆发数据流,无法及时响应,从而影响设备的吞吐量。
发明内容
有鉴于此,本发明的主要目的在于提供一种网络设备中多媒体数据的传输控制方法,其采用双动态门限调度机制,从全局门限及端口门限即双动态门限着手,对全局和队列缓存进行调度控制,以保证和控制多媒体网络传输时延和丢包率。
为达到上述目的,本发明的技术方案是这样实现的:
一种网络设备中多媒体数据的传输控制方法,该方法包括如下步骤:
A、初始时,各端口的队列按照最小门限长度分配缓存区,全局门限值按轻载时的标准进行设置,并对队列缓存和全局缓存同时进行动态控制;
B、当网络设备收到数据帧时,将全局缓存占用长度值加1,并将输出端口队列长度加1,然后执行步骤C;
C、判断全局门限是否存在拥塞,若全局缓存不存在拥塞,就不进行丢包处理,并执行步骤D;否则,如果全局缓存出现拥塞,而且该输出端口占用的全局缓存大于各端口的平均缓存值时,则丢弃数据包;如果输出端口占用的全局缓存小于各端口的平均缓存值时,执行步骤D;
D、判断输出端口的数据帧队列长度值是否大于设定的输出端口全部丢弃的队列门限值的一半,如果不大于,则继续转发,然后结束本次传输过程;如果输出端口的数据帧平均队列长度值大于所设置的输出端口队列全部丢弃的门限值时,则丢弃数据包;否则按设定的概率进行丢包处理;然后执行步骤E;
E、调整全局门限值和端口队列门限值,直至所有的输出端口都被分析完毕,然后返回执行步骤B,直至传输结束。
其中,步骤A所述轻载的标准是指:当前队列长度小于等于全局缓存占用值的一半进行划分。
步骤E所述全局门限值的设置,除了考虑已占用的全局缓存大小外,同时还根据不同的场景,对缓存共享的程度也进行考虑;为了实时检测传输场景,需要根据已分配的缓存空间和各输出端口占用的缓存来区分应用的场景,如果已分配的缓存空间除以单个输出端口占用的缓存小于2.8,则表明当前存在热点流状况,调整缓存共享系数值为相应热点流情形,按热点流情形设置全局缓存门限;否则,表明数据流分布比较平均,按照一般传输的缓存共享系数值设置相应的全局门限值。
步骤E所述端口队列门限值的设置,具体为:
当输出端口队列中数据帧数量达到一个门限时,首先判断该端口队列的占用率,若占用率小于平均占用率门限值的下限,则线性减少该队列的全部丢弃门限值,开始丢包长度值也相应减少;对每一个输出端口,计算其当前输出端口队列长度对应的平均传输级别,若其级别能够满足用户的要求,那么新的队列门限值有效,否则维持不变。
进一步包括:当队列门限值减少到队列丢弃门限值的下限值后,即使短时间内该端口队列缓冲区的占用率继续低于平均占用率门限值的下限,不再减低,由于输出端口队列门限减小,而增加的缓存资源由其他端口共享;若该端口队列缓冲区的占用率大于平均占用率门限值的上限值时,线性增加该出端口队列的丢弃门限值,但不能超过队列门限设置的上限。
其中,所述队列门限值的调整,包括比例控制法或减少振荡的比例控制方法,其分别为:
比例控制方法,首先计算需要调整的门限值,然后乘以一个系数0.8,实际门限值的调整值按照0.8倍的需要调整值进行动态修改;以及
减少振荡的比例控制方法,首先计算需要调整的门限值,对调整的门限值乘以系数0.8,加上一个常数,常数根据交换设备的不同进行设置,一般取为缓存大小的5%。
本发明所提供的网络设备中多媒体数据的传输控制方法,具有以下优点:
该方法能有效改善多媒体的传输性能,并提高多媒体传输质量。其结合多媒体数据对时延和丢包率敏感的特点,根据网络交换设备数据转发的流程,提出了一种基于语音质量测量中传输级别的动态门限控制,该发明依据网络传输环境,将交换设备的缓存管理分为全局门限控制和队列门限控制两部分。全局门限控制通过判断不同的传输场景,对门限值进行不同的预留,以适应不同环境下的爆发流量。而队列门限控制则基于语音质量测量中传输级别参数,进行门限的划分和调整,保证多媒体的传输质量。
具体实施方式
下面结合附图及本发明的实施例对本发明的方法作进一步详细的说明。
本发明的基本思想是:通过采用双动态门限调度机制,从全局门限及端口队列门限即双动态门限着手,对全局和队列数据缓存进行调度控制,以保证和控制多媒体网络传输时延和丢包率。所述的动态门限调度机制,是一种基于语音质量测量中传输级别的双动态门限控制,从所述的全局门限和端口门限两个方面同时进行调整和设置。其中,通过全局门限控制,判断不同的传输场景;通过队列门限控制,对基于语音质量测量中传输级别参数进行门限的划分和调整,保证多媒体的传输质量。
图1为本发明网络设备中多媒体数据的传输控制方法流程图,通过一张队列长度历史记录表记录一定时间长度内输出端口的平均队列长度,下列步骤中存在的单位有:全局缓存占用长度、交换设备端口数、输出端口队列全部丢弃的门限、开始按概率丢包的门限等;本发明采用双门限控制,对全局缓存和列队缓存同时进行控制,且方式为动态调整方式。如图1所示,该方法对收到的数据帧进行处理的步骤如下
步骤11、初始时,各端口按最小门限长度来分配缓冲区,全局门限值按轻载时的标准进行设置,并对队列缓存和全局缓存同时进行动态控制。
这里,根据实际应用情况,以缓存占用的值的一半来分辩重载和轻载,将开始按概率进行丢包的门限值设置为该输出端口队列丢弃门限值的一半,是因为如果开始丢包门限过于接近全部丢弃门限,重载时容易造成门限变化频繁;另外一面,若开始丢包门限过小,则对轻载传输不利。
所述全局门限值的设置,初始时,全局门限按照全局缓存中数据帧为0,传输场景按照一般传输的缓存共享系数值设置相应的门限。在下一周期中,该数据会很快和实际运行一致。
所述队列门限值的设置,具体为:初始时,假定处于轻载状态,各端口队列长度按照队列门限值的下限进行设置。。
步骤12、当网络设备(如交换设备)收到数据帧时,将全局缓存占用长度值加1,相应的,输出端口队列长度同样加1,然后执行步骤13。
步骤13、判断全局门限是否存在拥塞,若全局缓存不存在拥塞,则执行步骤14;否则,如果全局缓存出现拥塞,执行步骤15。
步骤14、不需要进行丢包处理,然后执行步骤16。
步骤15、判断全局缓存分配的公平性,如果输出端口占用的全局缓存大于各端口的平均缓存值时,则丢弃数据包,执行步骤21;如果输出端口占用的全局缓存小于各端口的平均缓存值时,执行步骤16
步骤16、判断单位时间内某个输出端口的平均队列长度值是否大于设定的输出端口全部丢弃的队列门限值的一半,若不大于(包括小于和等于),则执行步骤17;否则,若单位时间内某个输出端口的平均队列长度值大于所设置的输出端口队列全部丢弃的门限值的一半(而一般又小于输出端口队列全部丢弃的门限值时),执行步骤18。
步骤17、继续转发数据包,直至传输完成后。
步骤18、判断输出端口的数据帧队列长度值是否大于设定的输出端口全部丢弃的队列门限值,如果不大于(包括小于和等于),则执行步骤19;如果输出端口的数据帧平均队列长度值大于所设置的输出端口队列全部丢弃的门限值时,执行步骤20进行丢包处理;
步骤19、按设定的概率进行丢包处理,然后执行步骤21。
这里,所述丢包的概率根据当前队列长度而动态变化。
步骤20、对该数据帧进行丢弃,然后执行步骤21。
步骤21、调整门限值,直至所有的输出端口分析完毕,然后执行步骤22。
这里,所述动态门限的调整包括如下两部分:全局门限设置和队列门限设置,以下分别说明。
一、对全局门限设置的步骤,具体包括:
在全局门限设置中,门限值为各输出端口队列分配缓存之和的上限,如果将动态门限值与相应的服务质量(QoS)参数进行结合,这种动态门限的调整只能适用于特定的场合,并不能满足实际网络传输。因此,对于全局门限设置,本发明除了调整门限值外,同时根据不同的场景,对缓存共享的程度也进行调整。为了实时检测传输场景,需要根据已分配的缓存空间和各输出端口占用的缓存来区分应用的场景,如果已分配的缓存空间除以单个输出端口占用的全局缓存小于2.8,则表明当前存在热点流状况,调整缓存共享系数值为相应热点流情形,按热点流情形设置全局缓存门限;否则,表明数据流分布比较平均,按照一般传输的缓存共享系数值设置相应的门限。根据网络实际运行情况,一般一种场景的传输会持续数秒时间,因此实际运行中的缓存共享系数值不会频繁抖动。对热点流,全局门限设置的最优缓存共享系数值为[0.5,2]之间,针对交换设备实际应用情况,本发明中可将该缓存共享系数值取为1,对于一般传输,无论重载与轻载,缓存共享系数值的最优值为大于4,而且与端口数量无关,本发明取为8。
对缓存的控制,如果剩余全局缓存小于全局缓存大小减去门限值除以共享系数,表明全局缓存不存在拥塞,不需要进行丢包处理,反之,如果剩余全局缓存大于缓存大小减去门限值除以共享系数,则表示全局缓存出现拥塞。需要开始进行丢包。
为了保证最大最小公平带宽分配,需要计算公平缓存大小,公平缓存大小的计算,为全局缓存门限值除以参与转发的端口数量;在所有输出端口占用全局缓存之和超过全局门限时,控制所有出端口缓存大小保持公平一致。对于某个出端口,若其占用全局缓存小于交换机的公平共享缓存大小,转发到该输出端口的所有包都不会丢弃;若该出端口占用全局缓存大于交换机的公平共享缓存大小,则该端口收到的所有包都将被丢弃,因此其输出队列长度不可能超过交换机的公平共享缓存的大小。
二、队列门限设置的步骤,包括:
本发明中,队列门限设置按照语音质量测量中的传输级别要求,对队列门限进行设置和调整。对实时多媒体来说,用户的满意程度主要体现在数据包的时延和丢包率两个方面。根据对应流媒体传输的传输级别计算对应的队列门限值,该门限值为丢弃门限值。
根据计算出的队列门限值,将开始按概率进行丢包的门限值设置为该输出端口队列丢弃门限值的一半,因为如果开始丢包门限过于接近全部丢弃门限,重载时容易造成门限变化频繁;另外一面,若开始丢包门限过小,则对轻载传输不利。因此本发明根据实际应用情况,以缓存占用的值的一半来分辨重载和轻载。
因此本发明对于各输出端口队列门限的丢包机制如下:
1)若当前队列长度小于该队列门限值的一半,则不丢包;
2)若当前队列长度大于该队列的门限值,则直接丢弃;
3)若该端口的队列长度介于该队列的门限值和门限值的一半之间,则按概率进行丢包,概率根据当前队列长度动态变化。
三、此外,关于队列门限值调整的方法,这里可以采用任选两种方法之一:
1)比例控制方法:
先计算需要调整的门限值,然后乘以一个系数0.8,实际门限值的调整值按照0.8倍的需要调整值进行动态修改,这样做的目的是由于传输数据的动态变化,为了保持调整的稳定性,同时减少估计偏差,从而对门限值进行合理的调整。
2)减少振荡的比例控制方法:
该方法为比例控制算法的一种优化方法,同样首先计算需要调整的门限值,对调整的门限值乘以系数0.8,加上一个常数,常数根据交换设备的不同进行设置,一般取为缓存大小的5%。这样可以减少比例控制方法的震荡,同时由于有较高的比例系数,收敛较快。
步骤22、清空队列长度历史表中的记录,返回执行步骤12,等待接收数据。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。