专利名称:一个电信系统以及其中传递微信元的方法
技术领域:
本发明一般涉及ATM信元用于传输语音类型数据和其它类型用户数据的电信系统。话音类型数据在微信元中携带,微信元又在ATM信元的有效负荷中携带。其它类型用户数据直接在ATM信元的有效负荷中携带。
本发明更特别地涉及包括发送实体、接收实体以及发送和接收实体之间在特定独立ATM连接上传递ATM信元的ATM链路的电信系统。ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,信头包括ATM连接指针。微信元具有携带可变大小用户数据分组的有效负荷以及包括识另微信元连接的码(CID)的微信元信头。不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分。微信元大小信息与每个微信元有关。
根据本发明的方法涉及在刚才所描述类型的电信系统中传递微信元的方法。
有关领域的描述异步转移模式(ATM)是在电信网络中为多种电信业务提供带宽有效利用的技术。由于基于同步转移模式(STM)技术的现有设备中的大量投资,ATM和STM技术并存的混合网络类型很可能要发展和持续相当一段时间。
ATM规定数据在53个八比特组的固定大小分组中携带。该分组称为ATM信元。但是ATM信元大小不利于一些窄带业务。与窄带业务有关的用户信息——例如Plain Old Telephony Service(POTS)的语音抽样,在用户终端——例如电话或其它——转换成低速率数字数据流。这种数据称为话音类型数据。话音类型数据可能来自话音以外的其它信息源,例如压缩视频。
将数据打包并将它放置在信元的有效负荷中所需的时间产生称为信元打包延时的延迟。从用户终端收集足够的话音类型数据,完全添满一个ATM信元需要相当长的时间。对于POSTS,典型地以64kbit/s的速率,等待能容纳进一个ATM信元的有效负荷的48个八比特组需要6ms。因此这个信元打包延时为6ms。
以前面所述的低速率流格式的话音类型数据每次进入前述混合网络的一个ATM域,就要在话音类型数据的整个延时上附加6ms的信元打包延时。
话音类型数据是对延时敏感的,一般因为它涉及交互式业务。当总延时——包括例如传播延时——超过一定值后,网络的不足之处使回声抵消器成为必需。这个值基于网络的质量,而且往往小于25ms。回声抵消器为提供业务增加了成本。即使有回声抵消器,100ms以上的延时引起的业务下降也开始使用户感到明显。
有了6ms的信元打包延时,为得到高业务质量而做的总话音数据延时预算是很容易透支的。业务质量甚至可能使用户不能接受。新话音业务,例如移动电话,比传统的POSTS占用较少的带宽。这种较低带宽业务的信元打包延时比POTS大,因此使情况更加恶化。
ATM信元可以选择性地只用话音数据部分填充,而产生较低的信元打包延时。但是部分填充的ATM信元的带宽利用率不如完全填充信元的利用率高。例如携带4个话音数据八比特组的ATM信元的带宽利用率小于10%。
通过在ATM信元的有效负荷中以可变大小分组携带话音类型数据可以得到话音类型数据的合理延时,而不牺牲ATM域的大量带宽。这样的分组称为微信元,因为它们一般比ATM信元要小得多,但是在结构和使用上是类似的。
几个微信元可以容纳在同一个ATM信元中。通过允许将不能整个放入一个ATM信元其余位置中的微信元分成填入这样的ATM信元其余位置的第一部分,和放入另一个ATM信元的第二部分,从而进一步改进其利用率。
但问题是,接收微信元的节点要寻找微信元的边界,才能实现微信元的同步。
在GB 2,270,820-A中描述了一个STM/ATM网络接口,其中信息在分组中携带,分组可以再在ATM信元中携带。分组信头中的奇偶校验和分组大小指示器用于同步。
发明概述本发明的一个目的是解决上述的在电信系统的接收节点中寻找微信元边界的问题。
这个目的和下面还将出现的其它目的通过所附权利要求中定义的一种方法和系统来实现。
根据第一方面,上面定义的电信系统具有微信元边界指示码,包括位于第一个数据单元的每个ATM信元中的微信元起始指针并指向ATM信元有效负荷内的第一个新微信元。微信元起始指针包括能够表示分开的微信元其余部分大小的码。
根据第二方面,电信系统具有微信元边界指示码,包括位于第一个数据单元的每第n个ATM信元中的微信元起始指针并指向ATM信元有效负荷内的第一个新微信元。微信元起始指针包括能够表示分开的微信元其余部分大小的码。位于每个ATM信元信头中的码能够设置为表示ATM信元中的第一个数据单元是否是信元起始指针。
在上述两个方面中,微信元起始指针能够取一个值,表示紧跟在微信元指针后的ATM信元有效负荷的整个其余部分包括部分微信元。
根据第三方面,电信系统具有微信元边界标识码,包括位于每个ATM信元信头中的微信元划分指示码并能够设置为表示ATM信元中的第一个微信元是一个新的还是一个被分出的微信元。
根据第四方面,电信系统具有规定ATM信元有效负荷只允许以新微信元起始的码。微信元边界指示码包括这样的码,规定如果ATM信元有效负荷中的最后数据单元位置不足以放入另一个微信元,那么这个微信元将在属于同一连接的下一个ATM信元中发送。该位置将被未被指定到任何微信元连接的微信元填充。
在所有上述方面中,微信元大小信息可以按大小指示器的形式置于每个微信元信头中,或置于一个表中。
本发明的优点将从下面的详细说明中显现出来。
附图的简要描述本发明现在将参照所附的图做更详尽的描述,其中
图1示意性地说明包括发送实体、接收实体以及它们之间的ATM链路的电信系统,图2示意性地说明一个ATM信元的结构,图3示意性地说明微信元的示范结构,图4a-c示意性地说明在ATM信元有效负荷中定位微信元流的第一方法的基本原则,图5更详细地表示在第一种定位方法中微信元是如何复接并在ATM信元之间划分的,图6示意性地说明在ATM信元有效负荷中定位微信元流的第二方法的基本原则,图7示意性地说明在ATM信元有效负荷中定位微信元流的第三方法的基本原则,图8是说明处理数据以便从发送实体到接收实体传递的步骤的高层功能流程图,图9示意性地说明图8中表示的微信元打包功能操作的方法,图10示意性地说明根据图9的微信元打包功能的实现,图11是说明按照图10所示结构执行的打包步骤的流程图,图12、13和14a-c示意性地说明图8-11所示结构中包括的ATM信元打包功能操作的方法,图15是说明ATM信元打包功能中的ATM链路处理的流程图,图16示意性地说明图8所示的ATM信元拆包功能和微信元拆包功能的基本机制,图17还是示意性地,但更详细地说明图16所说明结构的示范实施例,图18是说明图16机制中拆包处理的基本流程图,图19a-c是说明分别按照参考图4和5、6和7描述方法定位的微信元拆包的流程图。
图20a-b是更详细说明图19a-c中一些步骤的流程图,图21以类似于图4的角度说明了第四种定位方法的基本原理,图22按照与图13相同的角度结合第四种方法示意性地说明了ATM信元打包功能的示范实施例,图23是说明当用于执行根据图21的方法时图22所示结构所执行的打包步骤的流程图,图24a-b构成说明根据图21-23的方法中拆包过程的基本流程图。
优选实施例的详细描述图1示意性地表示了发送ATM信元的发送实体102、接收ATM信元的接收实体104、以及从发送实体向接收实体传输ATM信元的互连链路106。互连链路可能是本领域所熟知的标准类型。更具体地,它可能是一条单一的物理互连接,或由多个物理互连接和节点组成的ATM网络。链路106传输具有有效负荷的ATM信元流108,有效负荷中可能包括大小不同的微信元110。
发送实体102和接收实体104可能是一个交换机或端目标设备。例如,可能存在瑞典专利申请No.9402051-8中所描述类型的交换机的问题,该申请于1994年6月13日提交,题为“Circuit emulating exchange usingmicrocclls”(采用微信元的电路仿真交换机)。同样的交换机也可用做端设备。这个专利申请有一个对照物,即US专利申请No.08/459,127,在这里结合作为参考。
图2示意性地表示了ATM信元的结构,例如它可能包括5个八比特组的信头202,48个八比特组的有效负荷204。标准的ATM信头包括多个指示器。为了表示连接的类型,这个标准ATM信头包括12比特的码,称为虚通道标识符,以下称为VPI并以206表示,并包括16比特的码,称为虚信道标识符,以下称为VCI并以208表示。
为了在用户ATM信元和非用户ATM信元之间区分,还有称为“有效负荷类型指示器”的3比特码,称为PTI并以210表示。只有标识为用户ATM信元的ATM信元才能在它的有效负荷中携带微信元。标识用户ATM信元的PTI码在所谓业务数据单元的不同类型之间区分,称为SDU类型参考ATM信元有效负荷。因此,码0和2表示SDU-类型=0而码1和3表示SDU-类型=1。
此外,ATM信头202包括称为信元丢失优先级CLP的1比特码,以212表示,以及称为信头差错检验HEC的8比特码,用于信元同步并以214表示。
图3示意性地说明微信元的示范结构。微信元基本包括信头302和有效负荷304。信头包括称为电路标识符CID的9比特码306、称为操作管理比特OAM的1比特码308、称为奇偶校验0比特P0的1比特码310、以及称为奇偶校验1比特P1的1比特码312。
CID 306的9个比特在图3中标为b0到b8。CID用于标识微信元电路。在所表示的情况中可以区分多达511条电路。
OAM比特308区分分配到同一电路的用户微信元和OAM微信元。在用户微信元情况下,微信元有效负荷304包括用户数据。在OAM微信元情况下,微信元有效负荷304包括用于运行和故障管理的数据。
P0比特310用于得到P0比特和CID比特0、2、4、6、8的奇校验。P1比特用于得到P1比特、OAM比特和CID比特1、3、5、7的奇校验。奇偶校验比特用于验证CID和OAM比特的正确性。
有效负荷304包括用户数据。有效负荷大小隐含地由CID值规定。实际大小在电路连接建立时协商,或对于某个CID具有预定值。微信元信头大小根据应用类型而变。
一些应用不需要图3中所示大小的信头。因此,例如,完整的信头可以小到只有6比特,4比特CID、1个OAM比特以及1个奇偶校验比特。
此外,可以添加额外的指示码字段,例如用于序列编号和大小。分配给同一电路和ATM连接的OAM微信元可以有不同于用户微信元的大小。在那种情况下OAM微信元的大小固定。
CID值0用于未分配的微信元,该微信元用于解除连接并隐含地表示填充ATM信元有效负荷的其余部分。所有其它的CID值定义为分配的信元并为用户保留。未分配的信元不管OAM比特。分配的信元也用于解除连接,但在这种情况下具有固定大小,例如2个八比特组。任何检测到的奇偶错误将被作为该微信元未分配处理。
图1的发送实体102应该包括处理微信元并将它们放入ATM信元有效负荷中的装置。微信元根据该微信元所需的结构打包。因此生成所有的比特。发送实体102应该能够确认来自交换机的微信元,该交换机能够按照电路建立时达成的协议处理微信元或者取用户数据并装入微信元中。
发送实体102还应该能够以规则间隔在送往电路的流中插入OAM微信元。OAM微信元包括自从上一个OAM微信元以来的信息数据,例如微信元的数目以及收集的校验数据等。从用户数据中为故障和运行管理产生OAM微信元所携带的数据的不同的方法和方案是熟知的。
建立电路,即在CID及其大小上达成协议,通过熟知的ATM网络中的标准信令过程来完成。信令协议确保将相同的静态数据提供给发送和接收实体中的打包和拆包状态机。
接收实体104应该包括对微信元拆包的装置。OAM微信元根据已知的故障和运行管理原则处理。用户分配的微信元能被映射到一个能够交换微信元的交换机、或被拆包为话音抽样或任何其它电路建立时协商好的格式。未分配的微信元被浪费。
下面将描述一些用于在ATM信元有效负荷中定位微信元流,即在接收实体中找到微信元边界的方法。
现在将参考图4描述第一种方法的基本原理。图4a说明了三种ATM信元402,每一种具有信头404和有效负荷406,有效负荷406的第一个八比特组也以比信元402放大的比例在408中表示。第一个八比特组408包括微信元起始指针410,下面也称为MSP,以及两个奇偶校验比特P0 412和P1414。MSP 410用于表示ATM信元有效负荷406中微信元的起点,而奇偶校验比特412和414用于验证MSP 410的正确性。
MSP 410的主功能是定位微信元流。通过MSP 410,丢失的微信元定位可以在ATM信元时间帧内恢复。P0比特412用于得到P0比特和MSP比特1、3、5的奇校验。P1比特414用于得到P1比特和比特0、2、4的奇校验。
第一个八比特组之后ATM信元有效负荷406的其余47个八比特组可用于微信元416。到了ATM信元有效负荷的最后八比特组尚未结束的微信元可以被分开并在属于同一ATM连接(相同的VPI和VCI)的下一ATM信元中继续,标为416’和416”。如果没有分配的微信元填充ATM信元有效负荷的其余部分,必须将未分配的微信元放在那里。未分配的微信元总是与ATM信元其余的八比特组数目相同。位于第一个ATM信元402的第一个微信元信头中的微信元大小指示器通过指向微信元结尾的箭头417为例来表示。每个微信元信头应该包括这样的大小指示器,提供各个分配微信元的大小。另一种通过列表信息提供分配微信元大小的可能性在后面参考图17描述。
微信元可以在ATM信元有效负荷的任何地方起始。MSP 410计算以值1开始并以值47结束的八比特组,前一值表示ATM信元有效负荷中第一个八比特组,后一值表示ATM信元有效负荷中的最后一个八比特组。等于0或大于47的值不被接受。参考图4b,值0表示正在讨论的ATM,以418表示,它只包括一个分开的微信元的420b部分,该微信元开始于前面ATM信元422有效负荷中的420a,并在后面ATM信元424有效负荷中以420c继续。因此,ATM信元418的有效负荷不包括任何完整的微信元。不包括完整微信元的ATM信元的另一个例子在图4c中表示,其中ATM信元426的有效负荷以分开的微信元的第一部分428a结束。这个分开的微信元在后一个ATM信元430的有效负荷中以428b继续。在ATM信元430中,微信元的428b部分后面紧跟另一个分开的微信元的第一部分432a。这个分开的微信元在后一个ATM信元434有效负荷中以第二部分432b结束。因此,ATM信元430的有效负荷也不包括任何完整的微信元。图5更详细地表示了微信元是如何复接的以及如何在ATM信元之间分开,而且不属于同一连接的ATM信元如何混杂在其中。来自不同连接的ATM信元的复接是ATM的基础而且实际上是熟知的。在图5中表示了三个ATM信元502n,502n+1及502n+2,具有各自的信头504、506和508,以及各自的有效负荷510、512和514。
在ATM信元502n的有效负荷510中所示的只有两个完整微信元516和518以及另一个微信元的第一部分520a。在ATM信元502n+1的有效负荷512中所示的只有两个完整微信元522和524。在ATM信元502n+2的有效负荷514中所示的只有微信元的其余部分520b——该微信元的第一部分520a位于ATM信元502n中,以及完整微信元526。因此可以看到,通过将两个ATM信元,即信元502n和502n+2的有效负荷重叠可以将一个微信元,即微信元520a、b在两个ATM信元——即信元510和514——之间分开。认为这两个ATM信元502n和502n+2属于同一ATM连接,而它们中间的ATM信元502n+1属于另一个ATM连接。
在ATM信元502n的信头504中,VPI的值是5且VCI的值是4。该连接表示信元在ATM信元有效负荷510中携带微信元。用MSPn表示的这个信元的微信元起始指针此时指向CID值为2的微信元516,CID表示该微信元的长度。CID值为6的微信元518跟在第一个微信元516之后,这个CID表示该信元的长度。此后CID值为5的微信元部分520a出现在ATM信元的有效负荷510中。
从上面的描述可以看到,诸如微信元520这样的微信元,其长度比ATM信元有效负荷的剩余位置长,将被分开而且其余部分将被放入ATM信元流中后面的ATM信元的开始处。可能是下一个ATM信元,也可能是不定数目的ATM信元之后的一个。根据ATM的性质,这是由于ATM信元以不定的顺序异步复接成一个流所造成的。只有属于同一连接的ATM信元不允许彼此穿插,因此必须是按顺序排列的。在现在这种情况中,ATM信元502n+1是穿插进来的。在这个信元的信头506中,VPI值为2,VCI的值为6,表示ATM信元502n+1属于另一个连接。ATM信元502n+1也包括微信元,在这个构想的例子中ATM由VPI和VCI隐含定义。但是,它也可以在ATM信元有效负荷中包含任意类型的数据。
MSPn+1的值为1,表示微信元随后起始,即微信元522。微信元522和524的CID值可以分别是,例如,8和6。ATM信元有效负荷512的微信元位置剩余部分以528表示而且可以用于其它的分配微信元或以未分配微信元填充。
在ATM信元502n+2的信头508中,VPI的值应该是5且VCI的值是4,如前所述表示这个ATM信元与ATM信元502n属于同一连接。MSPn+2后面的第一个微信元是在ATM信元502n中以520a开始的未完的微信元的剩余部分520b。为此应该存在两个指示。一是MSPn+2应该指向下一个微信元526,如箭头530所示。第二,该ATM连接(VPI=5且VCI=4)的状态机应该用CID=5表示未完的微信元520a,b。有效负荷514中八比特组的其余数目可以在接收实体中用两种方式恢复。一种方式是在属于该ATM连接的变量中存储八比特组的当前数目。另一种方式是使用MSPn+2字段中包含的指针530。MSP值给出了分开的微信元其余部分的大小。ATM信元502n+2有效负荷的微信元位置514的其余部分532可以用于其它的分配微信元或用未分配微信元填充。
现在参考图6描述在ATM信元有效负荷中定位微信元流,即在接收实体中找到微信元边界的第二种方法的基本原理。
图6示意性地说明了两个ATM信元602和604。第二种方法基于使用上面参考图2所描述的PTI字段。ATM信元602和604的PTI字段分别以606和608表示。这就允许将ATM信元有效负荷的第一个八比特组用于微信元,而不是象第一种方法那样是微信元起始指针。因此,所有48个八比特组都可以用于携带微信元。SDU-类型=0的码用于表示一个新微信元在ATM信元有效负荷的第一个八比特组中开始,如ATM信元604的610所示。SDU-类型=1的码用于表示一个分开的微信元在ATM信元有效负荷的第一个八比特组中继续,如ATM信元602的612所示。分开的微信元八比特组的其余数目必须从处理ATM连接的状态机中取得。为了能在合理时间内重定位,发送实体102应该有办法在发送SDU-类型=0的ATM信元之前对于给定连接只允许有限数目的SDU-类型=1的连续ATM信元。因此当微信元同步丢失时,藉此允许接收实体104重新定位。对SDU编码的方法在本领域中是已知的而且前面已经结合图2做了描述。这里简单重复一下,每个SDU类型代表指向PTI字段的两个码。SDU-类型=0编码为0和2.SDU-类型=1编码为1和3。
现在参考图7描述在ATM信元有效负荷中定位微信元流,即在接收实体中找到微信元边界的第三种方法的基本原理。
图7示意性地说明两个ATM信元702和704。第三种方法基于ATM信元有效负荷的第一个八比特组总是开始于一个新微信元而且不允许重叠,如图7所示,相应信元702和704的第一个微信元为706和708。所有48个八比特组都可用于携带微信元。VPI和VCI隐含地表示ATM信元有效负荷总是以新微信元开始。如果最后一个微信元不能填入剩余位置,就必须在属于同一连接的下一ATM信元中发送。ATM信元有效负荷的剩余位置必须用未分配的微信元占据,如ATM信元704的微信元710所示。
图8是说明从发送实体802向接收实体804传输时处理数据步骤的高级功能流程图。
发送实体802包括应用功能806,将用户数据808提供给微信元打包功能810。应用功能806可以是,诸如交换机、时分复用线或来自蜂窝网络的打包话音分组的形式。假设以分组形式到达的用户数据能够被直接放入微信元有效负荷中。微信元的大小在连接建立时选定以便能放入一个分组。
微信元打包功能810将用户数据放入所产生的微信元的有效负荷中。然后,按照箭头812,微信元被传递到ATM信元打包功能814。ATM信元打包功能814将该微信元与其它微信元一起复接成ATM链路816上到达接收实体804的ATM信元流。
ATM信元流在ATM信元拆包功能818中终结。ATM信元有效负荷中的微信元被提取并传递到——箭头820——微信元拆包功能822。微信元拆包功能822从有效负荷中提取用户数据并将其提供给——箭头824接收实体804中的应用功能826。这里的应用功能也可以是,诸如交换机、时分复用线或来自蜂窝网络的打包话音分组。
图9示意性地说明图8中微信元打包功能810的操作方式。功能810产生多个功能实体9021-902n,一个连接有一个。功能实体为相应连接接收——箭头808——用户数据并传递完整的微信元——箭头812。这里以及此后使用的术语“功能实体”意思是带有执行该项处理的硬件的一个处理过程。
更具体地,每个功能实体902具有一个用户微信元打包功能904,将用户数据放入用户微信元的有效负荷中,并具有一个OAM微信元产生器906,在预定个数的用户信元之后产生OAM微信元。微信元复接功能908在用户微信元和OAM微信元之间接收并选择,如箭头910和912。其输出812提供给ATM信元打包功能814。
图10示意性地说明微信元打包功能的实现。包括所有微信元连接公用的控制逻辑1002和数据通道。每个连接所需数据存储在CID表1004中,一个连接占一个位置,用1006表示的这些位置中特殊的一个带有一个放大的视图1007。到达的用户数据808和有关指针1008放入FIFO 1010。实施控制逻辑1002。控制逻辑1002的一种简单实现可以是一个处理器或特殊硬件,执行后面参考图11所描述的处理步骤。控制逻辑1002从FIFO1010中接收指针1008并用其寻址——虚箭头1012——CID表1004中的有关位置1006。
CID表1004中的每个位置包括微信元连接所需的所有数据和状态变量。参考位置1006的放大图1007,可以将它们分为4个特定部分,即微信元信头1014、连接的状态变量1016、OAM微信元数据1018以及指向一个将携带微信元的ATM VP/VC连接的ATM连接指针1020。
首先,按照连接1022所示,控制逻辑1002读取ATM连接指针1020和微信元大小、并因此从位置1006中得到微信元信头1014。ATM连接指针1020和微信元信头1014被馈入用于对微信元打包的复接器908,如箭头1024所示。在ATM连接指针1020和微信元信头1014读完之后,控制逻辑1002将复接器908移向FIFO 1010并通过复接器908向微信元添加用户数据部分808,如箭头1026所示。
用户数据的大小作为一个状态变量1016存储。控制逻辑1002也拾取,如线1022所示,并计算OAM数据1018以及属于该连接的有关的状态变量1016。如果将要发出OAM微信元,控制逻辑1002就从位置1006读取——线1022——整个的OAM微信元数据内容1018。为了确定是否要发OAM微信元,控制逻辑1002应查询状态变量1016中包括的一个OAM计数器值和一个OAM微信元门限。
图11是说明参考图10描述的结构所执行的打包步骤的流程图。微信元打包功能810为它所处理的每个连接产生一个处理。该处理在连接建立时产生,即步骤1102,并在拆除连接时终止。在建立时定义一个微信元信头,即步骤1104。该处理一般处于空闲状态1106,等待用户数据出现。用户数据的到达——在1108表示——激活该处理。在步骤1110用户信元被打包,如上面已经解释的,通过拾取该连接的微信元信头并将其放在用户数据的前面而完成。在步骤1112,打包的微信元与ATM连接指针1020一起被送到ATM信元打包功能814。
在步骤1114,收集积累的OAM数据并产生和存储新的OAM数据。积累的值根据选定的算法加到用户数据值中。OAM计数器递增。在步骤1116,检查OAM计数器的计数值。如果OAM计数器没有计到预定的OAM信元门限,处理就返回空闲状态1106,如箭头1118。否则,处理进行到步骤1120,在其中将OAM微信元打包并将积累的OAM数据放入OAM微信元的有效负荷中。在步骤1122,打包的OAM微信元与ATM连接指针1020一起被发送到ATM信元打包功能814。
图12、13和14用于说明在不同的抽象级上ATM信元打包功能814的操作方式。
参考图12,为每个ATM连接产生一个功能实体1202n-1。当ATM连接建立时产生一个实体并当连接拆除时去掉。在实体1202中,来自微信元打包功能810的微信元在1204中复接到特定连接的打包ATM信元的有效负荷中。当ATM信元的有效负荷完全用微信元打包之后,它被传递到ATM链路发送实体1206。在实体1206中,属于不同ATM连接的到达ATM信元,这里标为1到n,如1208所示,在ATM信元复接器1210中复接并作为连续流放入ATM链路816。在复接器1210没有ATM信元输入的情况下,必须产生所谓空闲ATM信元以维持ATM信元流。
图13示意性地说明了一个ATM信元打包功能814的示范实施例。功能814包括所有ATM连接公用的控制逻辑1302和数据通道。每个连接所需的数据存储在ATM表1304中,每个ATM连接在表中有一个位置。从微信元打包功能810到达的微信元流812的微信元以及它附带的ATM连接指针1020和微信元大小激活控制逻辑1302。控制逻辑1302可能是一个处理器或特定硬件,执行后面将针对图14a-c进行描述的处理步骤。微信元暂时存储在多个FIFO 1306中的一个内,每个ATM连接一个。控制逻辑1302拾取——箭头1308——并使用ATM连接指针1020以标识并选择——线1310所示——所处理的特定FIFO(1到n),图13中标为1306n。更具体地,控制逻辑1302使用并控制解复接器1312,将微信元放入FIFO1306n。控制逻辑也使用ATM连接指针1020寻址——箭头1307——ATM表1304中的有关位置。
如前所述,ATM表1304为每个ATM连接准备一个位置,其中一个特定的位置被标为1314,带有标为1316的放大视图。参考视图1316,每个位置,例如位置1314,为该连接和打包处理包括相应的ATM信头1318和状态变量1320。
前面三种不同的打包方法已经分别参考图4-5、6和7做了描述。根据所使用的方法,变量1318的类型可以不同。不同方法所需的变量类型从下面对图14a-c流程图的描述中可以看到。
当根据所选择的方法,FIFO 1306中为一连接存储的微信元数目足够填充ATM信元有效负荷时,将ATM信元打包并通过复接器1324送到FIFO 1322中。这个处理开始于从ATM表1304中读取ATM信头1318并通过输入1326放在到复接器1324的ATM链路上。然后复接器1324立即切换到属于所处理的ATM连接的FIFO 1306n上,然后FIFO被卸载直到ATM信元的有效负荷被填满。线1328表示复接器1324在控制逻辑1302的控制下实现切换。
在上面参考图4和5描述的第一种方法情况下,控制逻辑1302将微信元起始指针MSO和奇偶校验比特P0和P1一起打包并直接放在ATM信元信头后面作为ATM信元有效负荷的第一个八比特组。MSP作为状态变量1320存储,在微信元被分开的情况下,其值可以由控制逻辑计算。复接器输入1328用于插入第一个八比特组。
在前面参考图6描述的第二种方法的情况下,在ATM信元的信头中PTI要相应修改。
在前面参考图7描述的第三种方法的情况下,控制逻辑1302用未分配的微信元填充ATM信元有效负荷的其余部分。
FIFO 1322和复接器1330构成ATM链路发送器1332的一部分,用于将ATM信元发送到ATM链路816上。如果ATM信元出现在FIFO 1332中,它就通过复接器1330发送到ATM链路816上。如果没有出现ATM信元,连接到复接器1330的空闲信元产生器1334就产生一个空闲ATM信元并被发出以维持ATM链路816上的ATM信元流。
图14a是说明参考图13描述的结构,当用于执行参考图4和5所描述的方法时,所执行的打包步骤的流程图,根据该方法微信元起始指针MSO被引入ATM信元有效负荷的第一个八比特组。
在步骤1402建立连接时,步骤1404定义一个ATM信头。在1406,表示一个状态,其中MSP指向ATM信元有效负荷中的八比特组1。有效负荷指针跟踪ATM信元有效负荷中的当前填充位置。MSP和有效负荷指针作为状态变量1320存储在ATM表1304为该连接分配的位置中。在1408,表示了一个空闲状态,其中处理正在等待属于该连接的微信元的出现。
在1410,表示在流812中发送的微信元的到达。步骤1412对有效负荷指针增加当前微信元大小。有效负荷指针跟踪ATM信元有效负荷中的当前填充水平。当有效负荷指针表示填充水平已经超过了有效负荷,即47比特时,ATM信元就被完整打包了。该情况一出现,就返回到空闲状态1408,如判决符号1414所表示的。
在步骤1418,ATM信元根据上面参考图13的描述来打包并发送到FIFO 1322。在步骤1420,FIFO 1322中的ATM信元将触发后面参考图15描述的的一个处理。
在步骤1422,为属于该连接的下一个ATM信元的打包准备有效负荷指针。在步骤1424,MSP被设置为指向属于该连接的下一个ATM信元的ATM信元有效负荷的信头开始处,然后根据箭头1426,处理返回到状态1408。
图14b是说明参考图13描述的结构,当用于执行参考图6所描述的方法时,所执行的打包步骤的流程图。由于该流程非常类似于图14a,使用相同的参考号表示与图14a相同的步骤和状态。相比图14a中一些相应步骤和状态而修改或替换的步骤和状态用加撇号的相同参考号来表示。
在步骤1402建立连接时,步骤1404定义ATM信头。在1406’,表示了一个状态,其中SDU类型表示微信元在ATM信元有效负荷的第一个八比特组中开始。有效负荷指针跟踪ATM信元有效负荷中的当前填充位置。SDU值和有效负荷指针都作为状态变量1320存储在ATM表1304中为该连接分配的位置上。在1408,表示了一个空闲状态,此时该处理等待属于该连接的微信元出现。
在1410,表示在流812中发送的微信元的到达。步骤1412’为有效负荷指针增加当前微信元大小。有效负荷指针跟踪ATM信元有效负荷中的当前填充水平。当有效负荷指针表示填充水平已经达到或超过有效负荷,即47个八比特组时,ATM信元就被完整打包了。该情况一出现,就返回到空闲状态1408,如判决符号1414’所表示的。
在步骤1418’,ATM信元根据上面参考图13的描述被打包。有关FIFO1306n中前48个八比特组被卸载并发送到FIFO 1322。ATM信元信头中的PTI码反映当前SDU类型。相应地,ATM信元信头中的HEC由控制逻辑1302重新计算。在步骤1420,FIFO 1322中的ATM信元将触发后面参考图15描述的一个处理。
步骤1428通过“有效负荷指针=47?”来检查ATM信元有效负荷中的最后微信元是否恰好与ATM信元有效负荷一起结束,即最后的微信元八比特组放入最后的ATM信元八比特组中。如果是,处理根据箭头1430返回到1406’,意味着下一个ATM信元的SDU-类型设置为0,表示ATM信元有效负荷以一个新微信元开始。因此,没有出现重叠。否则,处理进行到步骤1422,其中通过设置“有效负荷指针=有效负荷指针-47”而准备用于对属于该连接的下一ATM信元打包的有效负荷指针。在步骤1424’,SDU类型被设为反映下一ATM信元将以分开的微信元开始,然后根据箭头1426’处理返回到状态1408。
所描述的流程没有包括保证新微信元在一定个数的ATM信元之后开始的功能。但是,可以在为此目的分配的存储区1320中包括一个用于此目的的状态变量。如果因此而使用的计数器超过预定门限,ATM信元的剩余部分用未分配的微信元添满,这样下一个微信元将在下一个ATM信元的第一个八比特组中开始。
图14c是说明参考图13描述的结构,当用于执行参考图7所描述的第三种方法时,所执行的打包步骤的流程图。由于该流程非常类似于图14b,使用相同的参考号表示与图14b相同的步骤和状态。相比图14b中一些相应步骤和状态而修改或替换的步骤和状态用加”号的相同参考号来表示。
下面的描述引入一个新状态变量,称为“卸载指针”。卸载指针的目的是表示将从所处理的FIFO 1302n中收集的八比特组的个数。根据第三种方法填充到ATM信元有效负荷剩余部分的未分配微信元由控制逻辑1302产生。
在步骤1402建立连接时,步骤1404定义ATM信头。在1406”,表示了一个状态,其中有效负荷指针跟踪ATM信元有效负荷中的当前填充位置。有效负荷指针作为状态变量1320存储在ATM表1304中为该连接分配的位置上。在1408,表示了一个空闲状态,此时该处理等待属于该连接的微信元出现。
在1410,表示在流812中发送的微信元的到达。步骤1412”将有效负荷指针增加当前微信元大小。有效负荷指针跟踪ATM信元中的当前填充水平。当有效负荷指针表示填充水平已经达到有效负荷,即47个八比特组时,ATM信元就被完整打包了。该情况一出现,就返回到空闲状态1408,如判决符号1414”所表示的。
在步骤1418”,检查ATM信元中的最后微信元是否恰好与ATM信元有效负荷一起结束。因此需要一个卸载指针检查是否将使用未分配微信元填充ATM信元有效负荷的剩余部分。一旦最后的微信元与ATM信元一起结束,步骤1432就将卸载指针设置为有效负荷指针的值。然后在步骤1434,将有效负荷指针设置为0,表示下一个微信元将放入下一个ATM信元中。
一旦当前微信元,即步骤1410中到达的那个,不能填入当前ATM信元,就必须继续下去并放入下一个ATM信元。在步骤1436,卸载指针现在表示存储微信元的FIFO 1306只能卸载到最后一个微信元,因此将它留在FIFO 1306中。在步骤1438,有效负荷指针更新为必须留在FIFO中的微信元的大小,藉此才能恰当地填充下一个ATM信元。在ATM打包步骤1418”,从卸载指针到当前微信元最后八比特组之间的位置用未分配的微信元填充。
在步骤1418”,ATM信元根据上面参考图13的描述来打包。有关FIFO1306n中前48个八比特组被卸载并发送到FIFO 1322。在步骤1420”,FIFO 1322中的ATM信元将触发后面参考图15描述的一个处理。图13c的流程如箭头1440所示从空闲状态1408重复。
图15是说明在ATM链路816上维持ATM信元流所需步骤的流程图。如果从参考图14a-c描述的流程中得到用户ATM信元,则发送ATM信元,否则就产生并发出空闲信元,如步骤1502-1506。该流程对应于描述的ATM链路发送器1332的功能。
图16示意性地说明ATM信元拆包功能818和微信元拆包功能822的基本功能。入ATM信元流816在1602,1604和1606这几个阶段解复接直到每个独立连接的微信元在ATM信元拆包功能中被识别。每个微信元连接在微信元拆包功能822中具有它自己的功能实体16081-n。每个功能实体的输出是提交给应用功能826的用户数据824。
阶段1602是定位入ATM信元流,即查找ATM信元边界并使用解复接器1620从用户ATM信元中分离空闲ATM信元的ATM链路接收机实体。如在1622表示的,该空闲ATM信元被浪费掉。
阶段1604是ATM连接分配器,传输分配给用户的ATM信元给它。ATM连接分配器1604使用对每一个ATM连接具有一个输出16261-n的解复接器1620分离每个ATM连接。
阶段1606包括用于每一个特定ATM连接的多个功能性实体16061-n。属于特定ATM连接的ATM信元被传输到连接建立时产生的有关功能实体1606n。该功能实体拆包ATM信元并且使用对每一个微信元连接具有一个输出16301-n的解复接器1628分离每个微信元连接的微信元。同样还有根据图4-5,6和7中描述的3种方法定位入微信元流的功能。
微信元拆包功能822中的微信元拆包功能实体16081-n的数目等于ATM连接的数目乘以每个ATM连接上复接的微信元连接数。每一个实体1608在连接建立时建立并且在连接清除时删除。
每一个实体1608具有从分配给用户的微信元中分离OAM微信元的解复接器1632,如1634所表示的。用户微信元信头被删除,如1636所示,并且将得到的用户数据824送给应用826。在OAM微信元的情况下,内容在OAM微信元分析功能1638中分析。
图17更详细的,虽然仍然是示意性的,说明ATM信元拆包功能818和微信元拆包功能822的示范实施例。从入ATM链路816到应用826的数据流以及拆包操作由控制逻辑1702控制,该控制逻辑可以是处理器或具体的硬件。控制逻辑1702使用存储在ATM表1704中的ATM连接数据和存储在CID表1706中的微信元连接数据来区分为连接建立的不同过程。控制逻辑1702使用相应的地址和数据线1708和1710访问表1704和1706中的数据。
离开解复接器1620的用户ATM信元被临时地存储在FIFO 1712中。同时使用复接器1714从FIFO 1712中将ATM信头读到控制逻辑1702中。该复接器1714支持大多数拆包功能。有两个基本功能,一个是在从FIFO1714读出ATM信头和微信元信头并将微信元用户数据送到解复接器1716时,分别提出ATM信头和微信元信头。另一个功能是将指针插入用户数据,比较图11中的步骤1110。
解复接器1716,FIFO阵列1718和复接器1720用于根据前面参考图4-5和6描述的方法管理分开的微信元。在参考图7描述的第三种方法的情况下,不需要这些功能。
如上面提到的,复接器1714和控制逻辑1702执行基本拆包功能。为了查找正在讨论的ATM连接和微信元连接的存储数据,分别使用了ATM表1704和CID表1706。
标识ATM连接的VC/VP用于寻址ATM表1704中的有关位置1724,如虚线箭头1722所示。所建立的每个ATM连接都在ATM表中有一个位置。ATM表中的每一个位置保存它所表示的连接的状态变量。该变量的具体用途将从后面参考图18-19中所示流程进行的描述中看出。ATM表1704每一个位置中的状态变量,如位置1724,包括—CID表指针1726,给出分配给ATM连接的微信元连接的起始地址。
—拆包状态,指出是否分开的微信元当前正被处理,这是根据图4-5和6的复接方法所需要的。
需要临时存储的状态参数是CID,OAM微信元,根据图6的方法的剩余微信元大小,和FIFO指针。FIFO指针的唯一目的是在分开的微信元的情况下确定微信元的第一部分存储的位置。分开的微信元临时存储在FIFO阵列1718中。在FIFO阵列1718中每一个ATM连接需要一个FIFO。
如虚线箭头1728所示,使用1730所示的相加器将CID表指针加到当前的CID上,虽然实际的加法是在控制逻辑1702中完成的。每一个微信元连接在CID表1706中有一个位置,如1732所示。这个位置保存维护微信元连接所需的数据和状态变量。它们分别是分配的微信元大小,OAM积累检验数据和用户数据指针。用户数据使将用户数据传递到分配给微信元连接的应用成为可能。这里使用表提供分配的微信元大小信息的方法是前面参考图4a描述的在微信元信头中使用微信元大小指示器的替代方法。
通过使用存储在表1704和1706中的信息,可以从复接器1714获得用户数据和指针,由1732和1734所分别表示的。如果用户数据是完整的,意味着微信元不是分开的,则控制逻辑1702直接将用户数据1732和指针1734送到输出FIFO 1736。如果微信元是分开的,则指针和用户数据的第一部分临时存储在FIFO阵列1718中分配给该ATM连接的特定FIFO中。解复接器1716就用于这个目的。当用户数据的最后部分出现时,它就被加到正处理的FIFO中。完成时,指针和用户数据被复接器1720从该分配的FIFO中卸载并且存储在FIFO 1736中。可能需要输出FIFO 1736以适合于拆包过程中发生的不同速率。当完整的用户数据加载到FIFO 1736中后,附属于当前使用的微信元连接的应用就会启动并且FIFO 1736被卸载。
在拆包过程中,OAM数据被累加并且存储在CID表中分配给该连接的位置上。当OAM微信元出现时,将它的内容与累加数据相比较。OAM微信元因此在复接器1714后不再向前传递。它被控制逻辑1702彻底消耗。
图18是说明拆包过程的基本流程图。
在起始处步骤1802的功能是用来建立ATM和微信元连接,即,将配置数据加载到ATM表1704和CID表1706中。符号1804“空闲”表示等待ATM信元到达的状态。在步骤1806,ATM信元到达FIFO 1712并且控制逻辑1702被启动。在步骤1808,根据HEC和VP/VC有效,即属于一个已经建立的ATM连接,对ATM信元信头进行完整性检查。如果完整性检查失败,则删除整个ATM信元并且返回空闲状态1804。
在步骤1812,删除ATM信元信头以启动微信元拆包过程。符号1814和1818表示到图19a-c所示微信元定位流程的更详细流程图的连接点。
在步骤1816,微信元定位功能定位微信元并且分别拆包每一个微信元直到处理完全部ATM信元有效负荷。根据参考图4-5,6和7描述的方法不同,也使用了不同的定位方法。这些定位方法分别在图19a,b,c中描述。
图19a是说明根据参考图4和5描述的方法拆包定位的微信元的流程图。
在步骤1902,检查当前微信元是否是分开的,即,在ATM表中是否指示有已经拆包部分存在。如果是,该拆包过程在步骤1904恢复。处理所需的有关数据从ATM表1704和CID表1706中获得。
在步骤1906,检查MSP的完整性,即,根据P0和P1考察MSP是否正确。如果不正确就进入空闲状态1802。
在步骤1908将有效负荷指针设到MSP。该有效负荷指针是用于在ATM信元有效负荷中跟踪当前位置的变量,通过测试确定没有超过48八比特组ATM信元有效负荷的限制。通过这样做,微信元流不管怎样都被重新定位。
在步骤1910,检查微信元信头的完整性,即,根据P0和P1检查微信元信头是否正确。如果不正确就进入空闲状态。
在步骤1912检查是否有未分配的微信元。在未分配的微信元的情况下进入空闲状态1802。未分配的微信元表示它是当前ATM信元中的最后微信元,填充ATM信元有效负荷的剩余部分,从那里开始当前ATM信元的最后八比特组。
在步骤1914,检查在当前ATM信元中是否完整地包括下一个微信元。如果是,流程进行到步骤1916,包括在这个ATM信元中的部分被拆包并且将相关的参数存储,因此在剩余部分出现时该拆包过程可以恢复。这个过程在1818点结束。
在步骤1918将整个微信元拆包。
在步骤1920,检查是否当前微信元恰好与ATM信元有效负荷一起结束。如果不是,步骤1922准备拆包包含在当前ATM信元有效负荷中的下一个微信元,并且过程返回到步骤1910。如果是,在该过程在1818点结束。
图19b是说明根据参考图6描述的方法拆包定位的微信元的流程图。
在步骤1930,检查SDU-类型是否等于1,即,当前ATM信元是否从第一有效负荷八比特组中的新微信元开始。如果不是,在步骤1932将有效负荷指针设为0。有效负荷指针功能已经在上面参考图19a解释,步骤1908。如果是,就执行如图19a中的同样步骤1904。这个步骤1904或步骤1932后面跟着进行同样的步骤1910-1922,如参考图19a所描述的。
图19c是说明根据参考图7描述的方法拆包定位的微信元的流程图。
第一步骤与图19b中的步骤1932相同,即,将有效负荷指针设为0。有效指针功能已经在上面参考图19a解释,步骤1908。
下面的步骤与图19a中的步骤1910-1922相同,除了步骤1916被步骤1802代替,即,如果步骤1914的结论是肯定的,就进入空闲状态。
图20a是更详细地说明图19a和19b中的步骤1904以及图19a,19b,和19c中的步骤1918的流程图。在第一步2002,检查微信元信头,或存储在ATM表中的分开的微信元的数据是否指示OAM微信元。如果不是,在步骤2004累加OAM数据以便能在属于该连接的OAM微信元出现时加以比较。跟着是步骤2006,将用户数据传送到FIFO 1736并且启动应用。如果步骤2002的结论是肯定的,就进行步骤2008,将OAM微信元中提供的数据与前面属于同一微信元连接的用户微信元中累加的OAM数据比较。
图20b是说明图19a和19b中的步骤1916的流程图,其中只拆包分开的微信元的第一部分。步骤2002和2004与图20a中的相同。如果步骤2002的结论是肯定的,就在步骤2010将可用的用户数据存储在分配给该ATM连接的FIFO 1718中。
图21看上去类似图4说明第四种定位方法的基本原则。如根据图4的第一方法,本方法使用微信元起始指针2102,MSP,加上两个用于完整性的奇偶校验比特2104和2106,以定位ATM信元有效负荷中的微信元。MSP可以插入到间隔中,即,每n个微信元一次,这由发送实体确定。
通过只在特定的间隔发送MSP可以获得带宽增益。在差的ATM连接中,可以更频繁地发送MSP,例如每个ATM信元一次。在高质量ATM连接中,MSP可以例如每32个ATM信元发送一次。这样就节约了链路带宽。每个ATM信元发送一次MSP花费大约2%的带宽,假设MSP与奇偶校验比特一起占用一个8比特组。通过每32个ATM信元发送一个MSP,所占用的带宽可以小于0.1%。
位于每个ATM信元信头中的SDU-类型0和1用于表示ATM信元中的第一个八比特组是否分别包含MSP或微信元。
四个连续的ATM信元以2108、2110、2112和2114表示。举例而言,每两个ATM信元发送一次MSP,即,ATM信元2108和2112,它们的MSP分别表示为2116和2118。在ATM信元2108中,根据箭头2120,MSP 2116指向开始于ATM有效负荷第二个八比特组的微信元2122。另一个微信元以2124表示。ATM信元2108也包括以2126a表示的分开的微信元,该微信元在ATM信元2110中继续,以2126b表示。由于ATM信元2110不包括任何MSP,分开的微信元中的第二部分2126b从ATM信元有效负荷中的第一个八比特组开始。ATM信元2110还具有微信元2128和另一个分开的微信元的第一部分2130a。ATM信元2112从ATM信元2110的分开的微信元剩余部分2130b开始。由于ATM信元2112在第一个八比特组中包括MSP 2118,所以2130b部分从有效负荷的第二个八比特组开始。MSP 2118——根据箭头2132——指向跟在分开的微信元后面的微信元2134的开始。另一个微信元在2136开始。由于ATM信元2114并不包括任何MSP,微信元2138从它的有效负荷的第一个八比特组开始。
如上所述,如果SDU类型=0,ATM信元有效负荷中的第一个八比特组包括微信元起始指针MSP 2102和两个奇偶校验比特P0 2104和P12106。这是通过指向跟在第一个八比特组后面的MSP的ATM信元信头中的填充环2139a所表示的。SDU类型=1用于表示第一个八比特组包括微信元,这是未填充的环2139b所表示的。MSP用于表示ATM信元有效负荷中的微信元的起始,而奇偶校验比特用于校验MSP的正确性。微信元可以从ATM信元有效负荷中的任何地方开始。微信元起始指针MSP以0值开始计数八比特组,表示ATM信元有效负荷中的第一个八比特组,而终值47指向ATM信元有效负荷中的最后八比特组。等于0或大于47的值是不接受的。如参考图4和5并比较图4b描述的第一方法,值0隐含表示所处理的ATM信元有效负荷仅包括微信元的一部分,并且既不是有效负荷中的起始,也不是有效负荷中的末尾。值47表示新微信元从ATM信元有效负荷的最后一个八比特组开始。MSP的主要功能是定位微信元流。通过MSP,失去的微信元定位可以在ATM信元时间帧中恢复。
P0比特用于获得如下比特的奇校验P0,MSP,比特1、3、5。P1比特用于获得如下比特的奇校验P1,MSP,比特0、2、4。
图22以等同于图13的角度示意性地说明ATM信元打包功能814的示范实施例。在图22中,以22开始的标号的最后两位数字与图13中以13开始的标号的最后两位数字相同,而且表示同一部件。对这些组件所缺的解释可以参考针对图13的描述。
到达的微信元812和它所带的ATM连接指针1040以及微信元大小激活控制逻辑2202。控制逻辑2202可以是一个实现下面参考图23所描述的流程的处理器或特定硬件。微信元暂时存储在一个FIFO 2206中。每个ATM连接需要一个FIFO。控制逻辑使用ATM连接指针识别所处理的特定FIFO(1到n)。控制逻辑2202使用解复接器2212将微信元放入有关的FIFO。ATM表2204为每个ATM连接准备一个位置2214。该位置包括用于该连接和打包过程的ATM信头2218和状态变量2220。状态变量类型由参考图23的描述给出。
当为该连接存储的微信元数目足够填充ATM信元有效负荷时,就将ATM信元打包并送到FIFO 1322。ATM信头2218从ATM表2204中读出并通过复接器2224及其输入2226放到ATM链路上。因此设置ATM信元信头的PTI字段中的SDU类型。如果在第一个八比特组中没有出现微信元起始指针,SDU类型=0。如果应插入MSP作为ATM信元有效负荷中的第一个八比特组,SDU类型=1。
如果应包括微信元起始指针MSP,它与奇偶校验比特P0和P1一起打包并直接放在ATM信元信头之后作为ATM信元有效负荷中的第一个八比特组。MSP作为状态变量2220存储在表2214中,在分开的微信元情况下,允许计算该值。复接器输入2226用于插入第一个八比特组。此后,复接器2224立即转换到属于所处理的ATM连接的FIFO 2206,该FIFO被卸载到ATM信元有效负荷被完全添满为止。
ATM链路发送器2232在ATM链路上发送ATM信元。如果ATM信元出现在FIFO 1322中,就通过复接器1330发送到ATM链路上。如果没有出现ATM信元,就通过空闲信元产生器2234产生一个空闲ATM信元并发出,以便维持ATM链路上的ATM信元流。
图23是说明参考图22所描述的结构,当用于执行参考图21所描述的方法时,所执行的打包步骤的流程图。
该流程以ATM连接建立开始,即步骤2302。当连接清除时结束。
在步骤2304定义ATM信头,即定义VCI和VPI。MSP发送的频繁程度也在MSP门限参数中设置,例如每八个ATM信元发一次。
在步骤2306,MSP现在指在第一个ATM信元有效负荷中的八比特组1。有效负荷指针是一个状态变量,跟踪ATM信元有效负荷中的当前填充水平。MSP和有效负荷指针作为状态变量2220存储在ATM表2204中为该连接分配的位置2214中。
在步骤2308,因此为包括MSP的ATM信元设置变量。SDU类型=0表示开始后紧接MSP。MSP被设置为指向微信元信头。
步骤2310是一个空闲状态,等待属于该连接的微信元出现。在步骤2312,从图11中的步骤1120或1122发出的微信元到达。
在步骤2314,通过设置有效负荷指针为有效负荷指针+微信元大小,从而根据当前微信元大小调整有效负荷指针。
在步骤2316,通过有效负荷指针>47?检查当前微信元是否重叠到下一个ATM信元。如果没有,根据箭头2318返回到空闲状态2310。否则在步骤2320对ATM信元打包,如参考图22所描述的。如果SDU类型=0,在控制逻辑2202通过输入2226的控制下,MSP和相应的奇偶校验比特P0和P1作为第一个八比特组下载到复接器2224。紧接着的47个八比特组从有关FIFO 2206中取得。如果SDU类型=1,那么紧接着的48个八比特组从有关的FIFO 2206中取得,在ATM信元信头之后直接下载到复接器2224中。
在步骤2321,放在FIFO 1322中的ATM信元触发参考图15描述的处理。
通过在步骤2322设置有效负荷指针为有效负荷指针-48,为属于该连接的下一个ATM信元的打包做准备。
根据箭头2324,现在流程进行到步骤2326,在其中测试MSP计数器,看MSP是否作为ATM信元的第一个八比特组发出。每当MSP计数器等于MSP门限,就发出一个MSP。
如果要发出MSP,流程就进行到以步骤2308开始的新的一个。否则,在步骤2328中为不包括任何MSP的ATM信元相应地设置变量。通过设置MSP计数器为MSP计数器+1和SDU类型为1来完成。
图24a、b构成说明拆包过程的基本流程图。图24a以步骤2402起始,包括通过将配置数据装入ATM表1704(160)和CID表1706建立ATM和微信元连接,如参考图17所描述的。
步骤2404是等待ATM信元到达的空闲状态。
在步骤2406,ATM信元出现在FIFO 1712中并激活控制逻辑1702。
在步骤2408,根据HEC和VP/VC有效——即属于一个建立的ATM连接——对ATM信元信头进行完整性检查。如果完整性检查失败,就删除整个ATM信元并返回到空闲状态2404,如2410所示。
在步骤2412,ATM信元信头从FIFO 1712中去掉,以便启动微信元拆包处理。
在步骤2414,检查当前ATM信元信头中的SDU类型。如果SDU类型=0,那么带奇偶校验比特的MSP占据ATM信元有效负荷的第一个八比特组,否则该八比特组携带一个微信元。
如果在步骤2414,SDU类型=0,那么紧接步骤2416,其中包含MSP和奇偶校验比特的第一个八比特组从FIFO 1712中去掉。在步骤2416对MSP完整性进行检查。如果不正确,进入空闲状态2404,如2418所示。暂时存储MSP。在步骤2420,检查当前微信元是否是分开的,即ATM表1704中是否表示所处理的连接存在一个已经拆包的部分。如果还有其余部分,拆包过程在步骤2422恢复。其余的微信元大小从MSP-1计算。处理所需的其它有关数据从ATM表1704和CID表1706中取得。FIFO 1712中的其余微信元数据移到分配给当前ATM连接的有关FIFO 1718中。在步骤2424有效负荷指针设置到MSP。这样可以重新定位微信元流。
如果在步骤2414,SDU类型为1,那么有效负荷指针在步骤2426设置为零,因为ATM信元有效负荷第一个八比特组携带了微信元的一部分。在步骤2428,检查当前微信元是否是分开的,即ATM表1704中是否表示所处理的连接存在一个已经拆包的部分。如果还有其余部分,拆包过程在步骤2430恢复。处理所需的有关数据,包括微信元的其余大小,从ATM表1704和CID表1706中取得。FIFO 1712中的其余微信元数据移到分配给当前ATM连接的有关FIFO 1718中。在步骤2432,通过设置有效负荷指针为有效负荷指针+其余微信元大小来调整该指针,以便跟踪ATM信元有效负荷中的其余八比特组。
符号2440表示流程在图24b中继续。在步骤2442检查微信元信头的完整性。如果不正确,进入空闲状态2404,如2444所示。
在步骤2446,检查未分配的微信元。如果存在一个,就进入空闲状态2404,如2447所示。如前面所提到的,一个未分配的微信元其特征在于,以预定的CID值为并表示ATM信元有效负荷的剩余部分由未分配的微信元占据。
在步骤2448,由微信元大小+有效负荷指针>47?来检查是否下一个微信元和当前ATM信元重叠。如果是,在步骤2450,这个ATM信元中包含的部分被拆包并存储有关参数,以便当其余部分出现时能够继续拆包处理。该处理以空闲状态2404结束。
如果在步骤2448结果为否定,整个微信元在步骤2452进行拆包。
在步骤2454,由微信元大小+有效负荷指针=47?来检查当前微信元是否与ATM信元有效负荷一起结束。如果否,在步骤2456用微信元大小更新有效负荷指针,以便在当前ATM信元中准备下一次拆包。根据箭头2458,由返回步骤2442开始一次新的处理。如果是,在步骤2454,处理以空闲状态2404结束。
权利要求
1.一个电信系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,其特征在于微信元边界指示码包括位于所述第一个数据单元的每个ATM信元中的微信元起始指针(MSP)并指向ATM信元有效负荷内的第一个新微信元,所述微信元起始指针包括分开微信元大小指示码,表示分开的微信元其余部分的大小。
2.一个电信系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,其特征在于微信元边界指示码包括位于第一个所述数据单元的每n个ATM信元中的微信元起始指针(MSP)并指向ATM信元有效负荷内的第一个新微信元,微信元起始指针包括能够表示分开的微信元其余部分大小的码,位于每个ATM信元信头中的码(SDU)并能够设置为表示ATM信元中的第一个数据单元是否是微信元起始指针。
3.一个电信系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,其特征在于微信元边界指示码包括位于每个ATM信元信头中的微信元划分指示码(SDU)并能够设置为表示ATM信元中的第一个微信元是新的一个还是被分出的一个。
4.一个电信系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,还具有与每个微信元有关的微信元大小信息,其特征在于ATM信元有效负荷只允许以新微信元开始,所述微信元边界指示码包括这样的码,规定如果ATM信元有效负荷中的最后数据单元位置不足以输入另一个微信元,这个微信元将在属于同一连接的下一个ATM信元中发送,所述位置将被以不指定到任何微信元连接的微信元填充。
5.根据权利要求1或2的系统,其特征在于,微信元起始指针能够取一个值(0),表示微信元指针后面的ATM信元有效负荷的全部剩余包括微信元的一部分。
6.根据权利要求1-4中任意一个的系统,其特征在于,微信元大小信息在每个微信元信头中以大小指示器的形式存在。
7.根据权利要求1-4中任意一个的系统,其特征在于,微信元大小信息位于一张表中。
8.根据前面权利要求中任意一个的系统,其特征在于,所述发送实体(802)包括用户数据接收装置(806),接收包括各带有一个目标指针的可变大小数据包形式数据的用户数据,微信元打包装置(810、902、904),根据接收数据包各自的目标信息为其提供相应的微信元信头,以便在微信元连接特定处理(9021-n)中构成微信元,用户ATM信元打包装置(814、1202、1204、1206、1210),包括,响应来自微信元打包装置的接收微信元,并在各微信元信头中所示的微信元连接的控制下,为每个所需的ATM连接产生一个ATM连接特定处理(1202n)的装置,在每个ATM连接特定处理中将各个接收微信元复接成用户ATM信元有效负荷的装置;所述接收实体(804)包括ATM连接分配装置(1604、1624),接收用户ATM信元并根据它们各自的ATM信元信头中标识的ATM连接将它们分配到ATM连接特定输出上(1626),ATM信元拆包装置(1606、1628),包括响应从分配装置接收的ATM信元、并在各ATM信元信头中所示的ATM信元连接的控制下为每个所需的微信元连接产生一个微信元特定处理的装置,从每个ATM连接特定输出中解复接出ATM信元的装置,包括通过使用所述微信元边界指示码标识它们的边界从而将微信元定位的装置,以及在微信元连接特定输出(1630)上将定位的微信元分开并分配的装置,微信元拆包装置(1608、1636),从每个微信元连接特定输出中接收微信元,去掉用户微信元信头并恢复它的数据包。
9.根据权利要求8的系统,其特征在于,ATM信元打包装置包括ATM连接特定FIFO装置(1306),用于暂时存储到达的微信元,ATM表(1304),存储每个连接所需的ATM连接特定数据,ATM信元打包控制逻辑(1302),接收到达微信元的ATM连接指针,为每个到达微信元标识并选择一个ATM连接特定FIFO装置,使用该指针在ATM表(1314)中寻址(1307)每个有关的连接特定数据(1314)以便读取它,微信元复接装置(1324),接收控制逻辑(1302)读取的数据以及来自有关FIFO(1306)的相应微信元,并将它们打包构成ATM信元。
10.根据权利要求1和9的系统,其特征在于ATM表在每个位置中作为状态变量存储微信元起始指针(MSP),该指针值在微信元分开时能够由控制逻辑计算,控制逻辑将微信元起始指针和码(OAM)一起打包并传递,该码(OAM)在用户微信元和包括用于运行和故障管理的数据的微信元之间区分,并将它们传递到微信元复接装置(1314),直接放到ATM信元信头之后,作为ATM信元有效负荷中的第一个数据单元。
11.根据权利要求2和9的系统,其特征在于,ATM表在每个位置中作为状态变量存储微信元起始指针(MSP),该指针值在微信元分开时能够由控制逻辑计算,而且控制逻辑设置位于每个ATM信元信头中的微信元划分指示码(SDU),表示第一个数据单元是否包含微信元起始指针,如果包含,将微信元起始指针打包并传递以便直接放入ATM信元信头之后,作为ATM信元有效负荷中的第一个数据单元。
12.根据权利要求3和9的系统,其特征在于,控制逻辑设置位于每个ATM信元信头中的微信元划分指示码(SDU),表示ATM信元中的第一个微信元是否是新的一个或分开的一个。
13.根据权利要求4和9的系统,其特征在于控制逻辑计算ATM信元有效负荷中的最后数据单元位置是否不够输入另一个微信元而且如果是这种情况,就将未分配微信元插入ATM信元有效负荷的剩余位置中。
14.根据权利要求8-13中任意一个的系统,其特征在于接收实体包括微信元连接数据表(1706),为每个微信元连接存储数据,包括微信元大小数据和端目标指针,ATM表(1704),为每个ATM连接存储数据,包括表示存在分开的微信元的数据、与分开的微信元有关的数据、以及指向微信元连接数据表的指针(1726),为这张分配给当前ATM连接的微信元连接表中的数据提供地址,FIFO装置(1712),暂时存储到达的用户ATM信元,ATM信元拆包控制逻辑(1702),包括从驻留在FIFO装置(1712)中的每个ATM信元中读取ATM信头和微信元信头的逻辑,以及读取指向微信元连接数据表(1706)的ATM表指针的逻辑,并藉此从微信元连接数据表(1706)中读取端目标指针,复接装置(1714),在控制逻辑(1702)的控制下,当从FIFO装置(1712)读取时,提取ATM信头和微信元信头,并通过给每个数据分组插入端目标指针而将用户数据打包,传递装置,在控制逻辑(1702)的控制下,将用户数据和端目标指针传递到输出装置(1736)。
15.根据权利要求14和权利要求1-3中任意一个及权利要求14的系统,其特征在于,所述传递装置包括解复接装置(1716),在分开微信元情况下并受控制逻辑(1702)控制,接收以指针和来自复接装置(1714)的用户数据第一部分形式的分开用户数据,多个FIFO装置(1718),从解复接装置(1716)接收每个分开的用户数据并暂时存储在分配给当前ATM连接的FIFO装置(1718)的特定一个中,复接装置(1720),当FIFO装置中存储的分开用户数据以用户数据的最后部分出现而结束时,在控制逻辑控制下,卸载每个FIFO装置到输出装置(1736)。
16.根据权利要求8-15中任意一个的系统,其特征在于,电路标识码(CID)包括能够表示微信元未分配给任何连接并用于占据不足以在其中输入分配的微信元的ATM信元有效负荷的剩余位置的码。
17.根据权利要求8-16中任意一个的系统,其特征在于,微信元信头包括在用户微信元和包括用于运行和故障管理的数据的微信元之间进行区分的码(OAM)。
18.根据权利要求17的系统,其特征在于,微信元信头包括验证电路识另码(CID)和区分码(OAM)的正确性的码(P0、P1)。
19.根据权利要求15和权利要求17或18的系统,其特征在于,在拆包处理过程中,积累区分码(OAM数据)所产生的数据并存储在微信元连接数据表(CID)中,而且当包括用于运行和故障管理的数据的微信元出现时,这个微信元被控制逻辑截获。
20.一种在电信系统中传递微信元的方法,该系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,该方法包括,在所述第一个数据单元的每个ATM信元中作为微信元边界指示码引入微信元起始指针(MSP)并指向ATM信元有效负荷内的第一个新微信元,而且在微信元起始指针中引入能够表示分开的微信元剩余部分大小的码。
21.一种在电信系统中传递微信元的方法,该系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,该方法包括,在所述第一个数据单元的每第n个ATM信元中作为微信元边界指示码引入微信元起始指针(MSP)并指向ATM信元有效负荷内的第一个未分开的微信元,而且在每个ATM信元信头中引入能够设置为表示第一个数据单元是否包括微信元起始指针的码(SDU)。
22.一种在电信系统中传递微信元的方法,该系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分,还具有与每个微信元有关的微信元大小信息,该方法包括,在每个ATM信元信头中引入能够设置为表示ATM信元中第一个微信元是否是新的一个或分开的一个的码(SDU)。
23.一种在电信系统中传递微信元的方法,该系统包括发送实体(802)、接收实体(804)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元的ATM链路(816),所述ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元中携带数据,所述信头包括ATM连接指针,所述微信元具有携带可变大小用户数据包的有效负荷以及包括识别微信元连接的码(CID)的微信元信头,还具有与每个微信元有关的微信元大小信息,该方法包括,只允许ATM信元有效负荷以新微信元开始,如果有效负荷中最后的数据单元位置不足以在其中输入另一个微信元,就将这个微信元在属于同一连接的下个ATM信元中发送,而且用未分配给任何微信元连接的微信元填充所述位置。
24.一种根据权利要求20-23中任意一个的方法,包括根据各微信元信头中标识的ATM连接将微信元复接到用户ATM信元的有效负荷中,相应的信头标识同一个相应的ATM连接,在每个ATM信元中引入微信元边界指示码;根据相应ATM信元信头中标识的ATM连接将用户ATM信元分配到ATM连接特定输出上(1626),将来自每个ATM连接特定输出的ATM信元拆包并通过标识它们的边界定位微信元,将定位的微信元分开并分配到微信元连接特定输出上(1630),为每个微信元去掉用户微信元信头并恢复它的数据包。
25.一种根据权利要求20-24中任意一个的方法,包括暂时存储到达的微信元,存储每个连接所需的ATM连接特定数据,使用到达微信元的ATM连接指针标识并暂时存储每个到达的微信元,并使用该指针提供有关的ATM连接特定数据(1314),将数据和相应的微信元打包,构成ATM信元。
26.一种根据权利要求20和25的方法,包括,作为状态变量存储微信元起始指针(MSP),在分开微信元情况下,该指针值可以由控制逻辑计算,将微信元起始指针和验证电路标识码(CID)和区分码(OAM)正确性(P0、P1)的码(P0、P1)一起打包并传递,将它们直接放在ATM信元信头之后作为ATM信元有效负荷中的第一个数据单元。
27.一种根据权利要求21和25的方法,包括,设置微信元划分指示码(SDU),表示ATM信元中的第一个微信元是否是新的一个或分开的一个。
28.一种根据权利要求22和25的方法,包括,作为状态变量存储微信元起始指针(MSP),在分开微信元情况下,该指针值可以由控制逻辑计算,将微信元起始指针和验证电路标识码(CID)和区分码(OAM)正确性(P0、P1)的码(P0、P1)一起打包并传递,将它们直接放在ATM信元信头之后作为ATM信元有效负荷中的第一数据单元,设置微信元划分指示码(SDU),表示第一个数据单元是否包括微信元起始指针。
29.一种根据权利要求23和25的方法,包括,计算ATM信元有效负荷中最后的数据单元位置是否不够输入另一个微信元,如果是,将未分配微信元插入ATM信元有效负荷的其余位置。
30.一种根据权利要求20-29中任意一个的方法,包括,表示是否微信元没有分配给任何连接并占据不够在其中输入分配微信元的ATM信元有效负荷的其余位置。
31.一种根据权利要求24-30中任意一个的方法,包括,引入微信元信头码(OAM),在用户微信元和包括用于运行和故障管理数据的微信元之间区分。
32.一种根据权利要求31的方法,包括,引入微信元信头码(P0、P1),验证电路标识码(CID)和区分码(OAM)的正确性。
33.一种根据权利要求24-32中任意一个的方法,所述ATM信元的拆包包括,为每个微信元连接存储数据,包括微信元大小数据和端目标指针,为每个ATM连接存储数据,包括表示存在分开微信元的数据,有关分开微信元的数据,以及指向微信元连接数据表的指针(1726),为这张分配给当前ATM连接的微信元连接表中的数据提供地址,暂时存储到达的用户ATM信元,从每个暂时存储的ATM信元中读取ATM信头和微信元信头并读取指向微信元连接数据表(1706)的ATM表指针并藉此从微信元连接数据表(1706)中读取端目标指针,当读取并通过给每个数据分组插入端目标指针而打包用户数据时,提取ATM信头和微信元信头,将用户数据和端目标指针传递到输出装置(1736)。
34.一种根据权利要求20、24和33的方法,包括,在分开微信元情况下,接收指针和用户数据第一部分形式的分开用户数据,暂时存储每个分开的用户数据,当用户数据的最后部分出现从而分开用户数据的最后部分已经结束时,将暂时存储的数据卸载到输出装置(1736)。
35.一种根据权利要求33或34的方法,包括在拆包处理过程中积累区分码(OAM数据)产生的数据并将其存储在微信元连接数据表(CID)中,而且当包括用于运行和故障管理的数据的微信元出现时,截获这个微信元。
全文摘要
一个电信系统包括发送实体(102)、接收实体(104)以及发送和接收实体之间在特定的独立ATM连接上传递ATM信元(108)的ATM链路(106)。ATM信元包括带有信头和有效负荷的用户ATM信元,包括确定数目的数据单元形式的数据,数据单元在微信元(110)中携带数据。信头包括ATM连接指针。微信元具有携带可变大小用户数据分组的有效负荷以及包括识别微信元连接的码的微信元信头。不能全部装入属于某个ATM连接的ATM信元其余位置的微信元被分成位于属于同一ATM连接的至少一个后续ATM信元中的第一部分。微信元大小信息与每个微信元有关。提供了找到微信元边界的方法。
文档编号H04Q3/00GK1182514SQ9619348
公开日1998年5月20日 申请日期1996年4月23日 优先权日1995年4月24日
发明者L·G·佩特尔松, M·奥尔斯特 申请人:艾利森电话股份有限公司