首页 / 拥塞控制方法与拥塞控制装置

拥塞控制方法与拥塞控制装置无效专利 发明

技术内容

技术领域 本发明实施例涉及数据传输技术领域,尤其涉及一种拥塞控制方法与拥 塞控制装置。 背景技术 拥塞控制是提高网络资源利用率、优化传输质量的重要手段,拥塞处理 的好坏直接影响系统的性能。主动队列管理在有线网络中已经得到广泛的应 用,并产生了尾丢弃算法、随机早期检测算法。 尾丢弃算法是为每个新到达的数据包分配随机数,然后将该随机数和 计算出的丢弃概率进行比较,如果随机数大于丢弃概率,不丢弃该数据包, 否则丢弃该数据包。随机数的使用带来了额外的开销,同时对拥塞的反应性 也比较低。 随机早期检测算法设定了拥塞门限和最大队长门限,当队列长度低于拥 塞门限时不丢包;当队列长度超过拥塞门限而低于最大队长门限时,以一定 的概率丢弃缓存队列中某个数据包,一直到设定的最大丢弃概率;当超过最 大队长门限时,以概率1丢弃队列中的数据包。随机早期检测算法的丢包率 会随队列长度增加而线性增长,丢包率对参数配置的变化非常敏感,在实际 应用中难以控制,一直没有得到广泛的应用。 另外还有一种拥塞控制的方法,设置了拥塞门限和最大队长门限,以及 丢包间隔数值N,丢包间隔数值N表示对缓存队列进行丢包处理的频度,N值 越大表示丢弃数据包的密度越小,在一定时间内丢弃数据包的个数就少,N 值越小在一定时间内丢弃数据包的个数就多。该拥塞控制方法具体操作是当 缓存队列的长度低于拥塞门限是,不丢弃数据包;当缓存队列的长度高于拥 塞门限但低于最大队长门限时,以N为间隔丢弃数据包,即每隔N个数据包 丢弃一个数据包;当队列长度大于最大队长门限时,新到达的数据包都会从 队列中丢弃。 在实现本发明的过程中,发明人发现上述方法中至少存在以下问题:在 上述拥塞控制方法的实施过程中,丢包间隔数值N为一固定值,这样的设定 会带来一定的弊端,因为若N值设定过小,丢包密度过大,则容易造成链路 利用率低;N值设定过大,丢包密度过小,则仍可能发生拥塞,另外随着传 输控制协议连接数增加的情况下,缓存队列的队长控制力度逐渐减弱。所以 该方法的控制能力有限。 发明内容 本发明实施例提供一种拥塞控制方法与拥塞控制装置,提高拥塞控制的 能力。 本发明实施例的一个方面,提供了一种拥塞控制方法,包括: 检测当前缓存占用量的大小; 将当前缓存占用量和门限集合中的至少一个门限进行比较; 根据比较的结果选择更新丢包间隔数值; 根据更新后的丢包间隔数值丢弃缓存队列中的数据包。 本发明实施例的另一个方面,提供了一种拥塞控制装置,包括: 第一检测模块,用于检测当前缓存占用量的大小; 第一比较模块,用于将所述当前缓存占用量和门限集合中的至少一个门 限进行比较; 选择更新模块,用于根据比较结果选择更新丢包间隔数值; 丢包模块,用于按照更新后的丢包间隔数值丢弃缓存队列中的数据包。 本发明实施例中,通过实时检测网络的缓存占用量,即缓存队列的长度, 根据缓存占用量与门限集合中门限的关系调整丢包间隔数值,使得丢弃数据 包的情况与当前缓存占用量相适应,提高了拥塞控制的能力。 附图说明 图1为本发明拥塞控制方法实施例一的流程图; 图2为本发明拥塞控制方法实施例二的流程图; 图3为本发明拥塞控制装置实施例一的结构示意图; 图4为本发明拥塞控制装置实施例二的结构示意图。 具体实施方式 下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。 图1为本发明拥塞控制方法实施例一的流程图,如图1所示,本实施例 的具体步骤包括: 步骤101、检测当前缓存占用量的大小; 步骤102、将当前缓存占用量和门限集合中的至少一个门限进行比较; 步骤103、根据比较的结果选择更新丢包间隔数值; 步骤104、根据更新后的丢包间隔数值丢弃缓存队列中的数据包。 本实施例中实现实时检测当前缓存占用量,并根据缓存占用量与门限集 合中门限的关系调整丢包间隔数值,使得丢弃数据包的情况与当前缓存占用 量相适应,提高拥塞控制的能力。 本实施例中设有的门限集合可以包括拥塞门限、目标门限及最大队长门 限,其中最大队长门限大于所述目标门限,所述目标门限大于所述拥塞门限。 本实施例中检测的当前缓存占用量为接收到的数据包总长度与当前缓存队列 长度之和,在缓存占用量大于或等于目标门限时,减小丢包间隔数值,按照 减小后的丢包间隔数值丢弃缓存队列中的数据包,即在拥塞比较严重的情况 下减小丢包数值间隔,增大了丢包密度,能够从更大程度上解决网络的拥塞 问题,这种实时根据网络状况调整丢包密度的方法提高了拥塞控制能力。 具体实施中还可以在缓存占用量介于拥塞门限和目标门限之间(即缓存 占用量大于或等于拥塞门限、小于目标门限)时,增大丢包间隔数值,减小 丢包密度,按照增大后的丢包间隔数值及预先设定的丢包策略丢弃缓存队列 中的数据包,这样在解决网络拥塞的同时又不至于丢弃过多的数据包,保证 了链路利用率。 在缓存占用量大于或等于目标门限时,减小丢包间隔数值具体包括:在 缓存占用量介于预先设置目标门限和最大队长门限之间(即大于或等于目标 门限、小于最大队长门限)时,减小丢包间隔数值;当前缓存占用量大于预先 设置的最大队长门限时,表明拥塞现象已经非常的严重了,因此将丢包间隔 数值设为零,即连续丢弃数据包。在缓存占用量小于拥塞门限时,即没有发 生拥塞时就不需要丢弃数据包了。 丢弃数据包可以有不同的方式,具体可以是头部丢弃、尾部丢弃,其中 头部丢弃为丢弃缓存队列头部的数据包;尾部丢弃为丢弃缓存队列尾部的数 据包,也可以是直接丢弃新接收到的数据包。也可以使用显式拥塞说明标识, 即每次利用向数据包发送端发送该标识来代替丢弃数据包,接收到该标识的 发送端会降低发送速率,减少缓存单位时间内接收到的数据包数量,也能够 减小缓存队列的长度,是丢弃数据包的另一种表现形式,且相对于传统的丢 包方式,该方法能够保证传输数据的完整性,提高传输质量。 进一步的,本实施例中的预先设定的拥塞门限、目标门限和最大队长门 限为确定的数量值或按照一定的比例关系设定。其中确定的数量值是指缓存 队列的实际长度大小;按照一定的比例设定中的比例值是不同用户的缓存队 列长度与整体缓存队列长度的比值,为门限集合每一个门限固定一个门限比 例值,当检测到一个用户的缓存队列长度后与整体缓存队列长度进行比较得 到一个比例值,根据该比例值与门限比例值的关系确定当前的拥塞情况,这 种按照比例设定的方式可以应用到具有不同整体缓存队列长度的系统中,按 照一定比例值设定门限集合的方法可以应用在通用分组无线服务技术中。 在实施过程中既可以采用瞬时队长作为队长控制量,即判断缓存占用量 时检测的是缓存队列的瞬时队列长度,拥塞门限、目标门限和最大队长门限 是根据瞬时队列长度设定的。也可以采用平均队长作为队长控制量,平均队 长可以使用滤波的方式得到: Fn=(1-a)·Fn-1+a·Mn 其中a=1/2(k/2)。Mn为本次瞬时队长测量值;Fn-1为上次队长滤波值;Fn 为本次队长滤波值,即平均队长。使用平均队长作为队长控制量时,对队列 长度控制的稳定性会比较好,使用瞬时队长作为队长控制量时,在实时反应 性上会更好,因此实际应用时候需要权衡。另外在采用平均队长作为队列长 度控制量,可以通过调整K值而在稳定性和实时性之间得到一个折中。 在数据传输过程中可能会有后续的数据包传输到缓存中,在计算当前缓 存占用量的时候通常将即将到达的数据包包括在内,此时缓存占用量为接收 到的数据包总长度与当前缓存队列长度之和。在接收数据包时还应当统计接 收到的数据包数量,统计接收到的数据包数量有两个用途:一是控制丢包, 具体是在每次丢弃数据包前,比较接收到的数据包数量与丢包间隔数值之间 的关系,只有达到了丢包间隔数值才能丢弃数据包,此时对接收到数据包数 量的统计是在第一次接收到数据包和每次丢弃数据包后开始计数;二是控制 丢包间隔数值的更新,预先设定一更新数值,该更新数值控制着丢包间隔数 值的更新,只有接收到的数据包数量达到该更新数值后丢包接隔数值才可以 更新,包括增大和减小,上述的统计数据包的数量是在第一次接收到数据包 或每次丢包间隔数值更新后开始统计接收到的数据包数量,设置该更新数值 能够防止丢包间隔数值更新过频。 在很多情况下一个缓存由多个业务流共享,此时业务两端需要三次握手 来建链,建链的两端依次发送三次握手包,为了防止建链失败,不能丢弃三 次握手包,因此就需要区分三次握手包,三次握手包通常很小,只有几百个 字节,因而可以通过检测包的大小来判断是否是三次握手包。当遇到三次握 手包到达缓存时,直接将三次握手包放到缓存队列的头部优先传送;当检测 到网络拥塞需要丢弃数据包时,如果是尾丢弃,就要从队尾往队头开始检测, 遇到三次握手包则保留,直到找到第一个非三次握手包时丢弃该数据包,如 果是头丢弃,则需要从缓存队列头部开始检测,遇到三次握手包则保留,直 到找到第一个非三次握手包时丢弃该数据包。 本实施例的拥塞控制方法的实现位置可以有两种情况,一是在数据包进 入接收缓存前检测当前缓存占用量,再进行判断是否丢弃数据包等操作;二 是在数据包离开接收缓存前检测缓存占用量,再进行判断是否进行丢弃数据 包等操作。上述两种方案在参数配置合理的情况下效果相当,但后一种方案 带来的硬件开销较大,也会存在一定的控制滞后,当参数配置不合理时会导 致拥塞控制不力,造成缓存占用量过大。 本实施例的拥塞控制方法中设置了目标门限这一介于最大队长门限和拥 塞门限之间的中间值,在发生拥塞的情况下通过对比缓存占用量和目标门限 的关系,确定是否更新丢包间隔数值,当缓存占用量大于或等于目标门限时 就减小丢包间隔数值,即增大丢包密度;当缓存占用量小于目标门限时就增 加丢包间隔数值,即减小丢包密度,这是一种自适应的丢包方式,能够实时 根据网络拥塞状况调整丢包密度,避免丢包密度与网络拥塞状态出现大的偏 差,能够在很大程度上提高拥塞控制能力。 图2为本发明拥塞控制方法实施例二的流程图,如图2所示,具体步骤 包括: 步骤201、设定计数器一C1、计数器二C2的初始值为零,丢包间隔数值 N的初始值,并设定丢包间隔数值N状态为不能变化。 步骤202、接收一个数据包,并检测到达数据包的长度和当前队列长度; 步骤203、将计数器一C1的值增加一,计数器二C2设置为当前计数器 二的值增加一后与预先设定的丢包间隔数值更新数值之间的较小值。 步骤204、判断到达数据包的长度和当前队列长度的和是否大于等于预 先设定的最大队长门限,若大于等于预先设定的最大队长门限,执行步骤205, 否则,执行步骤206; 步骤205、丢弃一个数据包,并设置计数器一C1的值为零,丢包间隔数 值N为不能变化状态,然后执行步骤218;该步骤是在拥塞非常严重的情况 下,需要连续的丢弃数据包,因此在执行完本步骤后继续接收数据包并判断 缓存占用量的大小,若缓存占用量不能小于最大队长门限,连续丢弃数据包, 丢包间隔相当于零; 步骤206、判断到达数据包的长度和当前队列长度之和是否大于或等于 预先设定的目标门限,若大于或等于预先设定的目标门限,执行步骤207, 否则,执行步骤212; 步骤207、设置丢包间隔数值为不能变化状态,执行步骤208; 步骤208、判断计数器一C1的值是否大于或等于当前丢包间隔数值N, 若大于等于当前丢包间隔数值执行步骤209,否则执行步骤218; 步骤209、丢弃至少一个数据包;并设置计数器一C1的值为零;执行步 骤210 步骤210、判断计数器二C2的值是否大于或等于预先设定的更新数值M; 若大于等于预先设定的更新数值执行步骤211,否则执行步骤218; 步骤211、将所述丢包间隔数值N减小一,在减小后的数值和预先设定 的下限之间取一个较大值作为丢包间隔数值,保证丢包间隔数值大于等于预 先设定的下限,并设置计数器二C2的值为零,然后执行步骤218; 步骤212、判断到达数据包的长度和当前队列长度的和是否大于或等于 预先设定的拥塞门限,若大于或等于预先设定的拥塞门限执行步骤213,否 则执行步骤217; 步骤213、判断计数器一C1的值是否大于或等于当前丢包间隔数值,若 大于或等于当前丢包间隔数值,执行步骤214,否则执行步骤218; 步骤214、丢弃至少一个数据包,并设置计数器一C1的值为零,执行步 骤215; 步骤215、判断丢包间隔数值是否处在可变化状态,若可变化执行步骤 216,否则执行步骤218; 步骤216、将丢包间隔数值的值N增大一,在增大后的数值和预先设定 的上限之间取一个较小值作为丢包间隔数值,以保证丢包间隔数值的值小于 或等于预先设定的上限,并设置计数器二C2的值为零,然后执行步骤218; 步骤217、若到达数据包的长度和当前队列长度的和小于预先设定的拥 塞门限,则设置计数器一C1的值为零;将所述丢包间隔数值N设置为可变化 状态,执行步骤218; 步骤218、接收下一个到达数据包,然后执行步骤202。 上述步骤为在实施例一的基础上,结合具体使用环境得到的一个拥塞控 制方法的实施例,该实施例中使用了两个计数器,分别是计数器一C1和计数 器二C2。计数器一用来统计接收到的数据包的数量,控制丢弃数据包,其内 部保存有丢包间隔数值,只有在接收到的数据包数量已经达到该丢包间隔数 值时,才丢弃数据包,在每次丢弃数据包后计数器一的值要清零;计数器二 也是用来统计接收到的数据包的数量,控制丢包间隔数值的更新,其内部保 存有预先设定的更新数值,只有接收到的数据包数量达到更新数值后才能更 新丢包间隔数值。计数器一和计数器二的使用能够防止过快的更新包丢弃间 隔数值,既能保证实现自适应的调整丢包密度,又不至于更新过于频繁,本 实施例中的缓存占用量是指新到达的数据包的长度和缓存队列的长度之和。 进一步的为丢包间隔数值设定一个上限和下限,本实施例中采取的是丢弃新 接收到的数据包,属于尾丢弃的类型。 作为本发明拥塞控制方法的另一实施例,该方法可以应用到宽带码分多 址(Wideband Code-Division Multiple Access,即WCDMA)技术中,丢弃的 数据包为宽带码分多址数据包。相对于有线链路的带宽,无线链路的带宽要 小得多,因而无线链路成为端到端的瓶颈。在当前有线和无线通信系统的可 靠性传输中,大多数数据业务都使用了传输层控制协议,而传输层控制协议 具有先天的不公平性或者说贪婪性,数据从有线网络向无线网络传输时,势 必会造成作为有线网络和无线网络的分界点的无线网络控制器中分组数据汇 聚协议缓存中的数据的囤积,发生网络拥塞,导致数据传输性能恶化,很有 必要在该技术中运用上述实施例中的拥塞控制方法,对于其他的分组域网络 也同样适用。 上述实施例中的拥塞控制方法可以在分组数据汇聚协议层头压缩之前实 现,因此该方法中的拥塞门限、目标门限以及最大队长门限都是针对分组数 据汇聚协议缓存进行设置。实际实施过程中,不同的无线网络控制器其分组 数据汇聚协议层会存在很大的差异,但只要无线网络控制器的互联网传输协 议包的入口处存在缓存,就可运用上述实施例中的拥塞控制方法。 在本发明拥塞控制方法的再一实施例,该拥塞控制方法也可以运用到通 用分组无线服务(General Packet Radio Service,即GPRS)技术中,此时的 拥塞控制方法在分组控制单元中实现,对分组控制单元中的每个下行非确认 模式的逻辑链路控制分组数据单元分别进行管理。 该方案在实施过程中需要对上述实施例中的拥塞控制方法做一些改变, 具体包括如下: 1、将上述实施例中预先设置的拥塞门限、目标门限和最大队长门限由原 来的按照固定的数量值设定变为按照一定的比例值设定,由原来的长度门限 调整为比例门限,同时在判断当前缓存占用量与上述三个门限的关系时,也 是按照用户的缓存队列的长度与整体缓存队列长度的比值来判断。 2、由于分组控制单元管理的是逻辑链路控制分组数据单元,因此在丢弃 数据包时,需要将逻辑链路控制分组数据单元组合成互联网传输协议数据包, 然后进行丢弃。而对于加密的逻辑链路控制分组数据单元,其中用于指示逻 辑链路控制分组数据单元所属互联网传输协议数据包的指示位也被加密,因 此很难区分属于同一个互联网传输协议数据包的逻辑链路控制分组数据单 元。此时可以通过判断逻辑链路控制分组数据单元的长度来确定,在逻辑链 路控制分组数据单元的包头中有一个限定其大小的位,它用来指示逻辑链路 控制分组数据单元的大小,在支持节点进行包的拆分时,会按照上上述限定 位的值对分组数据单元组进行拆分,拆分后并不对未满的包进行填充,由此 可以判断出属于同一个互联网传输协议数据包的逻辑链路控制分组数据单 元,拥塞控制方法的实施可以有效增加系统的吞吐量。同样的方法也可以应 用到数据增强型移动通信技术中。 图3所示为本发明拥塞控制装置实施例一的结构示意图,如图3所示, 该拥塞控制装置包括:第一检测模块301、第一比较模块302、选择更新模块 303和丢包模块304,其中第一检测模块301用于检测当前缓存占用量;第一 比较模块302用于将当前缓存占用量和门限集合中的至少一个门限进行比 较,其中的门限集合可以包括拥塞门限、目标门限及最大队长门限,其中最 大队长门限大于目标门限,目标门限大于拥塞门限;在当前缓存占用量介于 预先设置的拥塞门限与目标门限时,增大丢包间隔数值,根据增大后的丢包 间隔数值与预先设置的策略丢弃数据包;在当前缓存占用量大于或等于目标 门限时,减少预先设置的丢包间隔数值,并根据减少后的丢包间隔数值和预 先设置的策略丢弃数据包;选择更新模块303用于根据所述第一比较模块的 比较结果选择更新丢包间隔数值,具体为在所述当前缓存占用量大于或等于 所述目标门限时,减小预先设置的丢包间隔数值,在当前缓存占用量处于拥 塞门限和目标门限之间时,增大丢包间隔数值;丢包模块304用于按照更新 后的丢包间隔数值丢弃缓存队列中的数据包。 丢包策略可以为头部丢弃、尾部丢弃或使用显式拥塞说明标识,其中头 部丢弃为丢弃缓存队列头部的数据包,尾部丢弃可以为丢弃缓存队列尾部的 数据包,也可以是直接丢弃新接收到的数据包,使用显式拥塞说明标识即当 拥塞发生时,设置互联网传输协议分组的显式拥塞说明标识为真,使得当该 标识到达发送端后通知发送端较低发送速率。 本发明实施例中,第一检测模块能够实时检测网络的缓存占用量,即缓 存队列的长度,第一比较模块能够比较出缓存占用量与门限集合中各门限的 关系,本实施例中门限集合包括拥塞门限、目标门限及最大队长门限,选择 更新模块根据比较的结果调整丢弃数据包的密度,使丢包模块的丢包密度始 终处于一个合适的范围,能够提高拥塞控制的能力。 如图4所示,为本发明拥塞控制装置实施例二的结构示意图,在装置实 施例一的基础上,拥塞控制装置除包括第一检测模块301、第一比较模块302 和丢包模块304外还包括接收模块305、统计模块306、第二比较模块307, 装置实施例一中的选择更新模块303进一步分为判断单元3031和更新单元 3032。其中第一检测模块301用于检测当前缓存占用量,当前缓存占用量为 数据包长度与当前缓存队列长度之和;第一比较模块302用于将当前缓存占 用量和门限集合中的至少一个门限进行比较,判断当前缓存的拥塞程度;接 收模块305用于接收数据包;统计模块306用于接收模块接收数据包时,统 计接收到的数据包数量;第二比较模块307用于比较接收到的数据包数量与 丢包间隔数值之间的关系,在接收到的数据包数量达到丢包间隔数值时,由 丢包模块304丢弃数据包。判断单元3031用于判断接收到的数据包数量是否 达到预先设置的更新数值,更新单元3032用于在数据包数量达到所述更新数 值后更新丢包间隔数值时减少或增加丢包间隔数值,同时还要将更新结果传 送给第二比较模块307。 本发明实施例中把该数据包的长度与当前缓存队列长度之和作为当前缓 存占用量,能够真实的反映当前缓存的使用状况。同时设置统计模块统计接 收到的数据包的数量,第二比较模块用于比较该数量值和丢包间隔数值之间 的关系,只有达到丢包接隔数值后才由丢包模块丢弃数据包,选择更新模块 的判断单元用于比较该数量值与更新数值之间的关系,只有接收到的数据包 数量达到更新数值后才可以更新丢包间隔数值,这些设置都是为了规范丢包 过程,防止丢包间隔数值更新过频。 本发明实施例提供的一种拥塞控制方法和拥塞控制装置中,设置了目标 门限这一介于最大队长门限和拥塞门限之间的中间值,在发生拥塞的情况下 通过对比缓存占用量和目标门限的关系,确定是否更新丢包间隔数值,当缓 存占用量大于或等于目标门限时就减小丢包间隔数值,即增大了丢包密度; 当缓存占用量小于目标门限时就增加丢包间隔数值,即减小了丢包密度,这 是一种自适应的丢包方式,能够实时根据网络拥塞情况调整丢包密度,避免 丢包密度与网络拥塞状态出现大的偏差,能够在很大程度上提高拥塞控制能 力。拥塞控制能力提高的数据传输网络,可以有效降低交互性要求较高的传 输控制协议业务流的时延,如网页的访问和下载,能够提高尽力而为业务流 间带宽分配的公平性,对于通用分组无线服务网络,还能够提高系统的吞 吐量。 最后应说明的是:以上实施例仅用以说明本发明的技术方案而非对其进 行限制,尽管参照较佳实施例对本发明进行了详细的说明,本领域的普通技 术人员应当理解:其依然可以对本发明的技术方案进行修改或者等同替换, 而这些修改或者等同替换亦不能使修改后的技术方案脱离本发明技术方案的 精神和范围。