CN1214579C - 一种虚电路共用缓冲区描述链的方法 - Google Patents

一种虚电路共用缓冲区描述链的方法 Download PDF

Info

Publication number
CN1214579C
CN1214579C CNB021229694A CN02122969A CN1214579C CN 1214579 C CN1214579 C CN 1214579C CN B021229694 A CNB021229694 A CN B021229694A CN 02122969 A CN02122969 A CN 02122969A CN 1214579 C CN1214579 C CN 1214579C
Authority
CN
China
Prior art keywords
virtual circuit
chain
virtual
bdused
bandwidth
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
CNB021229694A
Other languages
English (en)
Other versions
CN1464702A (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.)
Huawei Technologies Co Ltd
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 CNB021229694A priority Critical patent/CN1214579C/zh
Publication of CN1464702A publication Critical patent/CN1464702A/zh
Application granted granted Critical
Publication of CN1214579C publication Critical patent/CN1214579C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明涉及一种在虚电路发送报文时共用缓冲区描述链的方法,属于数据通信技术领域。本方法将BD链分成多个虚拟BD链,为每条虚电路分配一个虚拟的BD链,每条虚电路保留两个计数:为该虚电路分配的BD个数BDmax和保存该虚电路已用的BD个数BDused。发送报文时,判断BDused是否小于BDmax,若小于,则进行发送,并将BDused的值加1,发送完成后将BDused的值减1,若等于,则将报文放入缓存中。每发出一个已占用BD的滞留报文,BDused的值减1,直到BDused小于BDmax,发送缓存中的报文。本发明方法,使每条虚电路都有一个虚拟的BD链,实现虚电路之间的隔离,从而避免拥塞的虚电路影响没有拥塞的虚电路。

Description

一种虚电路共用缓冲区描述链的方法
技术领域
本发明涉及一种虚电路共用缓冲区描述链的方法,属于数据通信技术领域。
背景技术
通信设备中,异步传输模式(Asynchronous Transfer Mode,以下简称ATM)接口是一种常见的接口。ATM复用采用分组交换中的统计复用,在同一物理传输线路上存在许多虚电路。
在数据通信中,通过接口收发使用最多的就是缓冲区描述(以下简称BD)的概念了。所谓BD就是Buffer Descriptor的缩写,它是发送或接收的缓冲的描述。BD是为了保证底层硬件能够快速地操作而使用的缓冲队列技术。业界的ATM芯片通常支持的BD链个数较少,如美国Mindspeed公司生产的BT8230芯片支持1个BD链,美国Mindspeed公司生产的CN8236芯片支持32个BD链。但ATM芯片支持的虚电路数量要大得多,如美国Mindspeed公司生产的BT8230芯片和CN8236芯片支持的虚电路数量都在2048条以上。这样,在发送方向,就不可避免的要使多条虚电路共用一个BD链。
当多个虚电路共用一个BD链时,如果其中的一条虚电路发生拥塞,即当发送报文的速率大于该虚电路分配的带宽时,这条拥塞的虚电路会影响其它没有拥塞的虚电路。例如有两条虚电路,分别为VC1和VC2,带宽都为1M,VC1的流量为10M,VC2的流量为1M。由于VC1和VC2共用一个BD链,因此,VC1和VC2抢占到BD的比例为10∶1。由于VC2实际使用的BD数为总数的1/11,因此,VC2有可能因为实际使用的BD数太少而导致发送速率达不到1M。值得注意的是,虽然VC1实际使用的BD数为总数的10/11,但由于带宽的限制,其发送速率仍为1M。
发明内容
本发明的目的是针对已有技术的缺点,提出一种虚电路共用BD链的方法,使每条虚电路都有一个虚拟的BD链,实现虚电路之间的隔离,从而避免拥塞的虚电路影响没有拥塞的虚电路。
本发明提出的虚电路共用缓冲区描述链的方法,包括以下步骤:
(1)将缓冲区描述链(BD链)分成多个不同长度的虚拟BD链;
(2)为每条虚电路分配一个虚拟的BD链,每条虚电路保留两个计数,一个记录为该虚电路分配的BD链的BD个数(BDmax),一个记录虚电路已用的BD个数(BDused)。
上述方法用于发送报文时,其过程为:
(1)发送报文时,首先判断BDused是否小于BDmax,若BDused小于BDmax,则进行发送,并将BDused的值加1,发送完成后将BDused的值减1;
(2)若Bdused等于BDmax,表明没有空余的BD,则将报文放入缓存中,等待发送,每发出一个已占用BD的滞留报文,BDused的值减1,直到BDused小于BDmax,表明有空余的BD,则发送缓存中的报文。
本发明提出的虚电路共用BD链的方法,通过软件方法使每条虚电路都有一个虚拟的BD链,实现虚电路之间的隔离,从而避免拥塞的虚电路影响没有拥塞的虚电路。采用本方法后,可以使报文的带宽得到保证,满足语音业务、虚拟私有网络、电子商务的要求。
附图说明
图1是实际BD链与虚拟BD链的关系示意图。
具体实施方式
图1表示了实际BD链与本发明中使用的虚拟BD链的关系。将实际的BD链分成许多个虚拟的BD链,并为每条虚电路设置一个虚拟的BD链。虚拟BD链的BD个数可根据虚电路的带宽进行分配,也可由专家系统分配。在图1中,虚拟BD链1有1个BD,虚拟BD链2有3个BD,虚拟BD链3有2个BD。
本发明提出的在虚电路发送报文时共用BD链的方法,首先为每条虚电路保留两个计数BDmax与Bdused,BDmax用来记录为该虚电路分配的BD个数,BDused用来保存该虚电路已用的BD个数。在创建虚电路时,BDmax和BDused被赋初值,在更改虚电路带宽时,BDmax的值被更新。BDmax值的确定可根据虚电路的带宽,或根据专家系统来确定。
BDused在创建虚电路的时候被赋初值零,在ATM接口发送报文的过程中,物理硬件发送每个报文需要使用一个BD。发送报文时首先判断BDused是否小于BDmax。如果BDused小于BDmax,表明有空余的BD可以使用,将报文交给物理硬件进行发送并将BDused的值加1。物理硬件发送完成后,将BDused的值减1。如果BDused等于BDmax,表明没有空余的BD可以使用,则将报文放入缓存中,等待有空余BD的时候再进行发送。当发送报文的速率大于为虚链路分配的带宽时,也就是说,将报文交给物理硬件的速度大于物理硬件的发送能力时,物理硬件中将会滞留报文,导致BDused逐渐增大,直到等于BDmax。当BDused等于Bdmax,表明已没有空余的BD可以使用,后续的报文将被放入缓存中,物理硬件每发出一个已占有BD的滞留报文,就会将BDused的值减1,直到BDused小于BDmax,表明有空余的BD可以使用,则发送缓存中的报文。
仍假定有两条虚电路,分别为VC1和VC2,带宽都为1M,VC1的流量为10M,VC2的流量为1M。采用某种方法为VC1和VC2分配的BD数都为5,VC1和VC2共用一个BD链。由于使用了Bdused和Bdmax对该虚电路使用的BD数进行了限制,因此,VC1和VC2最多都可使用5个BD。这样,VC1和VC2的1M带宽都可以得到保证。
本方法中,用专家系统确定BDmax的值,可以将专家的经验用于实际系统,且可以最大限度的使用系统资源。
根据专家的经验,虚电路的带宽在64K与256K之间且内存使用量小于内存总量的50%时,应为虚电路分配1个BD,依此类推,得到如下规则:
规则1:如果虚电路的带宽在64K与256K之间并且内存使用量小于内存总量的50%,则为虚电路分配1个BD。
规则2:如果虚电路的带宽在256K与512K之间并且内存使用量小于内存总量的50%,则为虚电路分配4个BD。
规则3:如果虚电路的带宽在512K与4M之间并且内存使用量小于内存总量的50%,则为虚电路分配16个BD。
规则4:如果虚电路的带宽在4M与32M之间并且内存使用量小于内存总量的50%则,为虚电路分配64个BD。
规则5:如果虚电路的带宽在4M与32M之间并且内存使用量大于内存总量的50%,则为虚电路分配16个BD。
规则6:如果虚电路的带宽在32M以上并且内存使用量小于内存总量的50%,则为虚电路分配128个BD。
规则7:如果虚电路的带宽在32M以上并且内存使用量大于内存总量的50%,则为虚电路分配64个BD。
将这些规则存储在知识库中,以供智能决策时使用。
根据系统的当前状态,将虚电路的带宽和内存使用量与知识库中的规则进行匹配,虚电路的BD数的取值为与其相匹配的规则所分配的BD数。
BDmax的具体取值需要通过测试手段得到,或根据专家的经验得到。BDmax的取值要满足以下条件:(1)要考虑到系统的限制,一方面要考虑到内存的使用量,另一方面要考虑硬件的限制。(2)要满足性能的要求,即不能因为BD数目太少而导致虚电路的性能达不到为其分配的带宽。(3)要使传输控制协议(以下简称TCP)流的性能达到最优。现实网络中的流量多为TCP流,由于TCP协议的慢启动机制与拥塞避免机制,BDmax值太大时,反而导致TCP流的性能下降。
本发明的一个实施例是:在高端路由器NetEngine05/08/16都采用本方法发送报文,用测试仪器对其进行测试,建立两条虚电路,分别为VC1和VC2,VC1的带宽为10M,VC2的带宽为1M,VC1的流量为20M,VC2的流量为1M。测试结果表明,VC1的实际带宽为10M,VC2的带宽为1M。因此,VC1和VC2的带宽都得到了严格保证。
与之相比,采用已有的方法,在同样的条件下进行测试,其结果如下:建立两条虚电路,分别为VC1和VC2,VC1的带宽为10M,VC2的带宽为0.8M,VC1的流量为20M,VC2的流量为1M。测试结果表明,VC1的实际带宽为10M,VC2的带宽为0.8M。由于VC1拥塞的影响,导致VC2的带宽达不到为其分配的1M,只有0.8M。

Claims (3)

1、一种虚电路共用缓冲区描述链的方法,其特征在于该方法包括以下步骤:
(1)根据虚电路的条数和带宽,将缓冲区描述BD链分成多个不同长度的虚拟BD链;
(2)为每条虚电路分配一个虚拟的BD链,每条虚电路保留两个计数,一个记录为该虚电路分配的BD链个数等于BDmax,一个记录虚电路已用的BD链个数BDused,BDused小于等于BDmax。
2、一种在虚电路发送报文时共用缓冲区描述链的方法,其特征在于该方法包括以下步骤:
(1)根据虚电路的条数和带宽,将缓冲区描述链(BD链)分成多个不同长度的虚拟BD链;
(2)为每条虚电路分配一个虚拟的BD链,每条虚电路保留两个计数,一个记录为该虚电路分配的BD链个数等于BDmax,一个记录虚电路已用的BD链个数BDused,BDused小于等于BDmax;
(3)发送报文时,首先判断BDused是否小于BDmax,若BDused小于BDmax,则进行发送,并将BDused的值加1,发送完成后将BDused的值减1;
(4)若BDused等于BDmax,表明没有空余的BD,则将报文放入缓存中,等待发送,每发出一个已占用BD的滞留报文,BDused的值减1,直到BDused小于BDmax,表明有空余的BD,则发送缓存中的报文。
3、如权利要求2所述的方法,其特征在于其中所述的为虚电路分配BD个数的方法是:
如果虚电路的带宽在64K与256K之间并且内存使用量小于内存总量的50%,则为虚电路分配1个BD;
如果虚电路的带宽在256K与512K之间并且内存使用量小于内存总量的50%,则为虚电路分配4个BD;
如果虚电路的带宽在512K与4M之间并且内存使用量小于内存总量的50%,则为虚电路分配16个BD;
如果虚电路的带宽在4M与32M之间并且内存使用量小于内存总量的50%,则为虚电路分配64个BD;
如果虚电路的带宽在4M与32M之间并且内存使用量大于内存总量的50%,则为虚电路分配16个BD;
如果虚电路的带宽在32M以上并且内存使用量小于内存总量的50%,则为虚电路分配128个BD;
如果虚电路的带宽在32M以上并且内存使用量大于内存总量的50%,则为虚电路分配64个BD。
CNB021229694A 2002-06-13 2002-06-13 一种虚电路共用缓冲区描述链的方法 Expired - Fee Related CN1214579C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021229694A CN1214579C (zh) 2002-06-13 2002-06-13 一种虚电路共用缓冲区描述链的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021229694A CN1214579C (zh) 2002-06-13 2002-06-13 一种虚电路共用缓冲区描述链的方法

Publications (2)

Publication Number Publication Date
CN1464702A CN1464702A (zh) 2003-12-31
CN1214579C true CN1214579C (zh) 2005-08-10

Family

ID=29743391

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021229694A Expired - Fee Related CN1214579C (zh) 2002-06-13 2002-06-13 一种虚电路共用缓冲区描述链的方法

Country Status (1)

Country Link
CN (1) CN1214579C (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101188560B (zh) * 2007-12-18 2010-04-21 杭州华三通信技术有限公司 基于转发能力动态检测的板间流控方法和装置
JP5744809B2 (ja) * 2012-09-05 2015-07-08 株式会社Nttドコモ 移動通信方法、無線基地局及び移動局

Also Published As

Publication number Publication date
CN1464702A (zh) 2003-12-31

Similar Documents

Publication Publication Date Title
AU650339B2 (en) Low delay or low loss cell switch for ATM
CN107426117B (zh) 网络交换机中的缓冲区空间的有效使用
US5467348A (en) Bandwidth allocation system of virtual path in asynchronous transfer mode
JP4845310B2 (ja) 接続型ネットワークの共用出力バッファを仕切るための双モード制御システム及び方法
JP3002726B1 (ja) 可変速度ディジタル交換方式
AU2006222038B2 (en) Priority-sensitive reallocation of buffer space
US20010043564A1 (en) Packet communication buffering with dynamic flow control
US7382728B2 (en) Networking switching apparatus and method for congestion control
JPH08251233A (ja) メモリ割り付けを改善したパケット通信システム及び方法
EP1152574A2 (en) Packet switching system and method
KR20010045783A (ko) 이더넷 스위치에서의 흐름제어 방법 및 장치
US6473815B1 (en) Queue sharing
CN101547159A (zh) 一种避免网络拥塞的方法和设备
CN103036805B (zh) 用于改善分组共享存储器体系结构组播性能的系统和方法
CN102035719A (zh) 一种报文处理方法和装置
CN111052689A (zh) 用于在网络设备中缓冲分组的混合分组存储器
EP3487132B1 (en) Packet processing method and router
CN1426666A (zh) 用于管理交换机内分组队列的方法与装置
CN1214579C (zh) 一种虚电路共用缓冲区描述链的方法
US7382792B2 (en) Queue scheduling mechanism in a data packet transmission system
CN101001210A (zh) 输出队列的实现装置、方法以及网络设备和芯片
US20030156538A1 (en) Inverse multiplexing of unmanaged traffic flows over a multi-star network
CN112311678B (zh) 报文分发的实现方法及装置
US6694373B1 (en) Method and apparatus for hitless switchover of a voice connection in a voice processing module
US20070206619A1 (en) Method and Arrangement for an Improved Buffer Solution Within a Communication Network Switch

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: 20050810

Termination date: 20150613

EXPY Termination of patent right or utility model