一种动态管理异步传输模式中虚连接的方法转让专利

申请号 : CN200710308521.3

文献号 : CN101471842B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 陈向荣何建伟郭寿益

申请人 : 北京大唐高鸿数据网络技术有限公司

摘要 :

本发明提供了一种动态管理异步传输模式中虚连接的方法。该方法中,把需要管理的整个VPI/VCI空间划分成若干等分的区间,区间的大小根据实际应用情况来设置。实际运行中,当用到了某个VPI/VCI的时候,ATM系统才通过多级指针连续指向的方式申请该VPI/VCI所在区间的内存。这样就大大节省了整个ATM系统的内存空间,在保证时间效率的基础上提升了内存的空间使用效率。

权利要求 :

1.一种动态管理异步传输模式中虚连接的方法,通过管理虚通道标识符和虚通路标识符来实现,其特征在于:(1)确定在实际应用中需要的所述虚通道标识符和所述虚通路标识符的位数,并进一步确定所述虚通道标识符和所述虚通路标识符的管理粒度;

(2)根据所述位数和管理粒度,将要管理的虚通道标识符和虚通路标识符分成等分的区间,并以所述区间为单位进行虚通道标识符和虚通路标识符的管理;

(3)在需要用到某个虚通道标识符或虚通路标识符时,先判断该虚通道标识符或虚通路标识符所在的区间是否已经申请了相应的内存空间;

(4)如果已经申请内存空间,则在该内存空间中申请虚通道标识符或虚通路标识符,如果没有申请内存空间,则申请内存空间并在该内存空间中申请虚通道标识符或虚通路标识符;

(5)所述虚通道标识符或虚通路标识符使用完毕之后,释放所述虚通道标识符或虚通路标识符,并判断所述区间内所有的虚通道标识符或虚通路标识符是否都已经释放,如果是,则释放相应的内存。

2.如权利要求1所述的动态管理异步传输模式中虚连接的方法,其特征在于:所述虚通道标识符包括两个部分:指向虚通路标识符队列的指针和该区间已建连接的总数。

3.如权利要求1所述的动态管理异步传输模式中虚连接的方法,其特征在于:所述虚通路标识符包括三个部分:虚通道连接或虚通路连接标志、该区间已建连接的总数和指向虚通路标识符比特池指针队列的指针,所述虚通路标识符比特池是实施虚连接管理时所申请的内存空间,该内存空间的每一个比特与一对虚通道标识符/虚通路标识符值对应。

4.如权利要求3所述的动态管理异步传输模式中虚连接的方法,其特征在于:虚通道连接通过所述虚通路标识符中的虚通道连接标志来表示,所述虚通道连接不需要申请所述虚通路标识符比特池指针队列和虚通路标识符比特池的内存空间。

5.如权利要求1所述的动态管理异步传输模式中虚连接的方法,其特征在于:虚通路连接的每一对虚通道标识符/虚通路标识符与虚通路标识符比特池中的一个比特位对应。

说明书 :

一种动态管理异步传输模式中虚连接的方法

技术领域

[0001] 本发明涉及一种能够对ATM(Asynchronous Transfer Mode,异步传输模式)中使用的虚连接实施动态管理的方法,属于宽带通信技术领域。

背景技术

[0002] ATM是在传统电路传输模式和分组传输模式基础上发展起来的新兴数据传输模式。在该模式中,数据被组织成53个字节的信元(其中48个字节为有效信息,5个字节为标头或称信元头,标头上存储传输地址的信息等),然后进行快速分组交换,以满足不同业务传输的需求。由于各个信元不需要周期性出现,因此把这种数据传输模式称为异步传输模式。这里的“异步”是指不需要对发送方的信号按一定的步调(同步)进行发送。ATM技术具有传输速度快、距离不受限制等特点,尤其适合宽带多媒体业务中使用。 [0003] 在ATM的信元结构中,VPI和VCI是最重要的两个部分。VPI(Virtual Path Identifier)是虚通道标识符的简称;VCI(VirtualConnection Identifier)是虚通路标识符的简称。VPI和VCI合起来构成了一个信元的路由信息。在ATM中,地址是呼叫建立过程中通过UNI信令确定的,然后据此寻找合适的路由,并建立VC(虚连接)。虚连接由一系列VPI/VCI路由构成,并用VPI/VCI标识。ATM交换机根据各个信元上的VPI/VCI来决定把它们送到哪一条线路上去。
[0004] 在ATM技术的使用过程中,对虚连接的管理实质上就是对VPI/VCI的管理。实现有效管理和查找操作存在两个需要重点关注的问题,一个是查找VPI/VCI所占用的CPU的时间长短,另外一个是存储VPI/VCI所占用的内存空间大小。现有技术中常用的解决方案包括直接地址查找法和哈希算法。但这两种方法各自存在自身的不足。直接地址查找法需要消耗巨大的内存;哈希算法存在两个问题:一个是存在哈希冲突,另外一个是支持的连接数量特别大的时候,也需要巨大的内存空间,而且在这种情况下,产生哈希冲突的概率也增加了。
[0005] 在申请号为03101344.9的中国专利申请中,提供了实现ATM链接查找的方法。该方法采用再哈希法处理哈希冲突。与目前查找异步传输模式链接的现有技术(直接地址、CAM表查找法)相比,该方法有如下优点:(1)对RAM容量要求较低,可以在FPGA内部实现;(2)很容易支持较多数目的链接查找,且端口值、VPI值、VCI值范围不受限制;(3)实现起来方法简单,链接数目增加时,很容易实现扩充。
[0006] 另外,在申请号为02155154.5的中国专利申请中,介绍了一种异步传输模式设备虚通路标识符的管理方法,包括申请VCI和释放VCI。其中申请VCI包括:生成比特集;组成比特集池;设置比特集中相应比特的标记;设置比特集的标志位;若VCI的VPI首次用于VC连接,到比特集池申请一个空闲比特集,挂在相应的VPI下,将该比特集的标志位置为占用,并将相应的VCI比特置为1;若该连接的VPI已经被其它VC连接所使用,检查该VPI指向的比特集中的比特位,若为1,则要重新选取VCI,否则将该位置为1。释放VCI包括:检查VPI比特集的相应比特,若为1,将其置为0,否则表明该VCI根本没有被占用;若该VPI下没有VC连接,将该比特集归还给比特集池,并将该比特集的标志位置为空闲。 [0007] 但是,上述各技术方案仍然存在查找速度不够快,无法支持任意的VPI/VCI位数的缺陷,仍然需要进一步加以改进。

发明内容

[0008] 本发明的目的是提供一种动态管理ATM(异步传输模式)中虚连接的方法。该方法通过控制VPI/VCI的管理粒度,可以获得恒定高速的查找速度和高效的内存使用效率。 [0009] 为实现上述的发明目的,本发明采用下述的技术方案:
[0010] 一种动态管理异步传输模式中虚连接的方法,通过管理虚通道标识符和虚通路标识符来实现,其特征在于:
[0011] (1)确定在实际应用中需要的所述虚通道标识符和所述虚通路标识符的位数,并进一步确定所述虚通道标识符和所述虚通路标识符的管理粒度;
[0012] (2)根据所述位数和管理粒度,将要管理的虚通道标识符和虚通路标识符分成等分的区间,并以所述区间为单位进行虚通道标识符和虚通路标识符的管理; [0013] (3)在需要用到某个虚通道标识符或虚通路标识符时,先判断该虚通道标识符或虚通路标识符所在的区间是否已经申请了相应的内存空间;
[0014] (4)如果已经申请内存空间,则在该内存空间中申请虚通道标识符或虚通路标识符,如果没有申请内存空间,则申请内存空间并在该内存空间中申请虚通道标识符或虚通路标识符;
[0015] (5)所述虚通道标识符或虚通路标识符使用完毕之后,释放所述虚通道标识符或虚通路标识符,并判断所述区间内所有的虚通道标识符或虚通路标识符是否都已经释放,如果是,则释放相应的内存。
[0016] 其中,所述虚通道标识符包括两个部分:指向虚通路标识符队列的指针和该区间已建连接的总数。
[0017] 所述虚通路标识符包括三个部分:虚通道连接或虚信道连接标志、该区间已建连接的总数和指向虚通路标识符比特池指针队列的指针。
[0018] 虚通道连接通过所述虚通路标识符中的虚通道连接标志来表示,所述虚通道连接不需要申请所述虚通路标识符比特池指针队列和虚通路标识符比特池的内存空间。 [0019] 虚通路连接的每一对虚通道标识符/虚通路标识符与虚通路标识符比特池中的一个比特位对应。
[0020] 本发明通过控制VPI/VCI的管理粒度来优化内存使用的效率。与现有异步传输模式的VPI/VCI查找技术相比较,本方法具有以下的优点:1)对内存容量的要求低;2)查找速度恒定高效;3)可扩展性强,支持任意数量的VPI/VCI,可以在ATM(异步传输模式)的任何环境中得到应用。

附图说明

[0021] 下面结合附图和具体实施方式对本发明作进一步的说明。
[0022] 图1为本发明的整体实施过程示意图;
[0023] 图2为初始化过程的实施流程图;
[0024] 图3为申请VPI/VCI过程的实施流程图;
[0025] 图4为释放VPI/VCI过程的实施流程图。

具体实施方式

[0026] 本方法的基本思路是把需要管理的整个VPI/VCI空间划分成若干等分的区间,每个区间的大小可以根据实际情况来设置。实际运行中, 当用到了某个VPI/VCI的时候,ATM系统才在内存中申请该VPI/VCI所在的区间。这样就大大节省了整个ATM系统的内存空间,从而在保证时间效率的基础上提升了内存的空间使用效率。
[0027] 上述的VPI空间指要管理的所有VPI的值空间,假设支持的VPI位数为8位,则VPI空间为0~255;VCI空间指要管理的所有VCI的值空间,假设支持的VCI位数为12位,则VCI空间为0~4095;VCI BIT池是实施虚连接管理时所申请的内存空间,该内存空间的每一个BIT与一对VPI/VCI值对应。
[0028] 参见图1所示,VPI队列把ATM系统所支持的VPI空间分成若干等分的区间,队列中的每个表项对应1个区间。在每个VPI表项中,包括两个部分:指向VCI队列的指针和该区间已建连接的总数。通过上述指向VCI队列的指针,使VCI队列的每个表项与VPI队列的其中1个区间代表的VPI一一对应。在每一个VCI表项中,包括三个部分:VPC(虚通道连接)或VCC(虚通路连接)连接标志、该区间已建连接的总数和指向VCI BIT(比特)池指针队列的指针。上述的该区间已建连接的总数包括VCC和VPC的总数。VCI表项通过指向VCI BIT池指针队列的指针与VCI BIT池指针队列建立联系。VCI BIT池指针队列把系统支持的VCI分成若干等分的区间,指针队列的每个表项对应1个区间。在每一个VCI BIT池指针项中,包括两个部分:申请的VCI BIT池指针和该区间已建VCC的连接数。VCI BIT池指针指向VCI BIT池,BIT池中的每一个BIT按从低位到高位的顺序与该VCI区间的每个VCI值从小到大一一对应。这样,本发明通过多级指针连续指向的方式,使VCI BIT池的每个BIT与一对VPI/VCI值对应。
[0029] 假设系统支持的VPI位数为a,支持的最大VCI位数为b。设置VPI的管理粒度为x,VCI的管理粒度为y(其中a,b,x,y都是二进制的位数)。则图1中VPI队列的大小为2的a-x次方,VCI队列大小为2的x次方;VCI BIT池指针队列大小为2的b-y次方,VCI BIT池大小为2的y-3次方。需要说明的是,此处隐含的限制条件是a≥x,b≥y,y≥3,x≥0。
[0030] 例如,假设需要管理的虚通道标识符位数为8位,则合法虚通道标识符为0~255;设定的管理粒度为16,则把256个虚通道标识符分成16等份,0~15为第1份,16~31为第2份,依次类推;假设需要 管理的虚通路标识符位数为12位,则合法虚通路标识符为
0~4095,设定的管理粒度为16,则把4096个虚通道标识符分成16等份,0~255为第1份,256~511为第2份,依次类推。
[0031] VPI队列的第1项对应的VPI值为0~2的x次方-1,第2项对应的VPI值为2的x次方~2的2x次方-1,依次类推,最后一项对应的VPI值为2的a-x次方~2的a次方-1。VPI表项指向的VCI队列与其本身对应的一组VPI值按顺序一一对应。 [0032] VCI BIT池指针队列第1项对应的VCI值为0~2的y次方-1,第2项对应的VCI值为2的y次方~2的2y次方-1,依次类推,最后一项对应的VCI值为2的b-y次方~2的b次方-1。VCI BIT池指针队列表项指向的VCI BIT池按照从小到大的顺序与VCI值一一对应,即BIT池第1项的第0个BIT对应的VCI值为VCI BIT池指针队列表项对应的第1个VCI值,最后1项的第7个BIT对应的VCI值为VCI BIT池指针队列表项对应的最后1个VCI值。
[0033] VCI表项中VPC(1)或VCC(0)连接标志为1时,表示该VPI用于VPC,所以不需要再申请VCI BIT池指针队列空间和VCI BIT池空间。VCI BIT池的BIT置1表示该VCI已经被占用,BIT置0表示该VCI为空闲。
[0034] 下面进一步介绍通过控制VPI/VCI的管理粒度来优化内存使用效率的基本实施步骤。首先参见图2所示,初始化的过程包括如下的步骤:在开始之后,确定支持的VPI位数a,支持的VCI位数b;进一步地,确定VPI的管理粒度x,VCI的管理粒度y;然后申请VPI队列的空间,初始化VPI队列;将所有表项的所有内容置0。由此完成初始化的过程。 [0035] 在需要用到某个VPI/VCI时,先判断该VPI/VCI所在的区间是否已经申请了相应的内存空间.如果已经申请内存空间,则在该内存空间中申请VPI/VCI,如果没有申请内存空间,则申请内存空间并在该内存空间中申请VPI/VCI。
[0036] 具体参见图3所示,首先在VPI队列中找到与分配的VPI对应的表项,判断该表项中已经建立的连接总数是否为0。如果已经建立的连接总数为0的话,申请VCI队列空间,将指针填入VPI表项中,然后进一步判断要建立的是否是VPC连接,如果是的话,则设置与分配 的VPI对应的VCI队列的表项,其中连接标志置1,连接总数也置1,此时认为VPI/VCI申请成功;如果要建立的不是VPC连接,则申请VCIBIT池指针队列空间,把指针填入VCI队列的相应表项中,并进一步申请VCI BIT池空间,把指针填入相应的VCI BIT池指针队列的表项中,然后将VCI BIT池中与分配的VCI对应的BIT置1、VCC连接数加1、VCI表项连接总数加1、VPI表项连接总数也加1,此时认为VPI/VCI申请成功。在上述已经建立的连接总数不为0的情况下,进一步判断VCI队列中对应的VCI表项的连接总数是否为0,如果为0的话,转入上述的判断要建立的是否是VPC连接的步骤,否则判断VPC连接标志是否是1,如果是1的话,则认为VPI/VCI申请失败,如果不是1的话,进一步判断对应的VCI BIT池指针项中的连接总数是否是0,如果是0则认为VPI/VCI申请失败,如果不是0则进一步判断与分配的VCI对应的VCI BIT池中的BIT位是否是1,如果不是1的话则对应的VCI BIT池中的BIT位置1,认定VPI/VCI申请成功;否则的话认定VPI/VCI申请失败。 [0037] VPI/VCI申请成功之后,采用ATM模式中通行的方式使用VPI/VCI。在VPI/VCI使用完毕之后,按照图4所示的步骤释放VPI/VCI,并在判断区间内所有的VPI/VCI都已经释放的前提下,释放相应的内存。具体的释放步骤如下:
[0038] 首先,依次进行如下的判断:1.与释放的VPI对应的VPI表项连接总数是否是0 ? 2.与释放的VPI对应的VCI表项连接总数是否是0 ?3.释放的是否是VPC连接?4.与释放的VCI对应的VCI BIT池指针项的连接总数是否是0 ? 5.VCI BIT池中对应的BIT位是否是0?在上述的各项判断中,有任意一项判断为是则认为释放VPI/VCI失败,只有所有的判断结果都为否定时才进一步设置该BIT位为0,设置VCIBIT池指针项连接总数减1,VCI表项和VPI表项的连接总数都减1,然后判断VCI BIT池指针项连接总数是否为0,如果是否定的结果则认为释放VPI/VCI成功,如果为肯定的结果则进一步释放VCI BIT池空间,将对应指针置0,然后判断VCI表项的连接总数是否为0,如果是否定的结果则认为释放VPI/VCI成功,如果为肯定的结果则进一步释放VCI BIT池指针队列的空间,将对应指针置0,接下来判断VPI表项的连接总数是否为0,如果是否定的结果则认为释放VPI/VCI成 功,如果为肯定的结果则进一步释放VCI队列的空间,将对应指针置0。此时也认为释放VPI/VCI成功。
[0039] 需要指出的是,在执行上述的第三项判断:释放的是否是VPC连接时,如果为肯定的结果,也可以进一步判断对应VCI表项的VPC标志位是否是1,如果结果是否定的话,则认为释放VPI/VCI失败;如果结果是肯定的话,则置该VCI表项的VPC标志位为0,连接总数为0,并将VPI表项的连接总数减1,然后判断VPI表项的连接总数是否为0,如果是否定的结果则认为释放VPI/VCI成功,如果为肯定的结果则进一步释放VCI队列的空间,将对应指针置0。此时也认为释放VPI/VCI成功。
[0040] 上面虽然通过实施例描绘了本发明,但本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,所附的权利要求将包括这些变形和变化。