CN1214579C - 一种虚电路共用缓冲区描述链的方法 - Google Patents
一种虚电路共用缓冲区描述链的方法 Download PDFInfo
- 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
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。
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)
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ドコモ | 移動通信方法、無線基地局及び移動局 |
-
2002
- 2002-06-13 CN CNB021229694A patent/CN1214579C/zh not_active Expired - Fee Related
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 |