发明内容
本发明目的是提供一种异步传输模式数据分发装置及方法,是基于AAL2协议对ATM数据进行处理,按照简单低成本的方式分发到各用户协议处理单元作进一步的用户协议数据处理。
本发明所述的数据分发是指数据经过传输层以及第二类适配层处理后,根据AAL2适配层标志转换为媒体接入控制层(MAC,Media AccessControl)地址进行标志的MAC帧通过MAC层快速交换实现进一步的用户协议处理,同时对于收到的MAC帧数据根据MAC地址适配到AAL2上,进一步送到ATM网络上。
本发明的一种ATM数据分发装置,由以下几部分组成(参见图1):一个ATM网络连接控制单元1k,它连接ATM网络和AAL2层协议处理单元1b,负责正确收发ATM网络上承载在物理层帧上的ATM数据,并送至AAL2协议处理单元1b。ATM网络连接控制单元1k是由收发FIFO(First In First Out)和ATM信元收发队列控制单元1a组成,;一个AAL2协议处理单元1b,它连接ATM网络连接控制单元1a和以太网MAC帧处理单元1c,并对AAL2层协议进行处理,以减轻后续的用户协议处理器的负荷,取出上层的用户业务数据,并根据用户标志分别存储在各自缓冲区;一个以太网MAC帧处理单元1c,它连接AAL2协议处理单元1b和以太网交换控制单元1d,并根据各用户和目的MAC地址之间的映射关系,将用户数据封装成以太网的MAC帧格式,这里用户和目的MAC地址之间允许一对一和多对一的映射关系;一个以太网交换控制单元1d,它连接以太网MAC帧处理单元1c,负责将已经封装成MAC帧的用户数据的MAC包正确交换到目的地址,作进一步的用户协议的处理。
本发明还提供了一种ATM数据和以太网MAC帧之间的转换,以实现一种数据分发的方法。包括以下步骤:
在由ATM信元到MAC帧的方向上:
1.初始化设置存储在存储器单元中的一个接续路由表(如图5所示),一个MAC帧状态信息表(如图8所示)和一个MAC帧头表(如图3所示),帧头表中的帧头包括本地MAC地址和目的装置的MAC地址(即MAC帧的源地址和目的地址)。
2.当ATM信元接收队列非空时,对信元作相应的适配层处理,并获得用户标识。
3.然后根据适配处理中获取的用户标识信息访问存储单元中的接续路由表(如图5所示),从而获取一个目的装置号,该装置号同时也是MAC帧缓冲区号。
4.通过该号码从MAC帧状态信息表(如图8所示)中得到一个写指针和最大帧长,当写指针加上适配处理后的用户数据长度大于最大帧长时,该MAC帧净荷完成。此后写指针即帧长,用户数据将放入新的MAC帧。
5.MAC帧净荷完成时,再根据上面得到的目的装置号,取出一个对应的帧头,并加上帧长信息与完成的净荷一起,传到MAC帧的发送队列中等待发送。
在相反方向上:
1.初始化设置存储在存储单元中的一个接续路由表(如图6所示),一个信元状态信息表(如图7所示)和信元头表(如图2所示)。
2.当收到一个MAC帧时,根据源地址得到源装置号,再根据MAC帧净荷中包含的附加用户标识信息,读取接续路由表(如图6所示),以得到目的信元用户标识及ATM适配处理的辅助信息,从而得到一个信元缓冲区号,并根据该缓冲区号从信元状态信息表(如图7所示)中取出一个写指针和有效净荷长度。
3.然后根据用户数据长度指示取出源用户数据进行适配处理,将适配后的用户数据写入信元缓冲区直到写指针等于有效净荷长度,算完成一个信元净荷。
4.将信元净荷和前面取出的信元头一起送到信元的发送队列等待发送。
具体实施方式
下面结合附图对本发明作进一步的详细描述。
图1给出了本发明的一个实施例的协议处理系统的ATM数据分发装置。
如图1所示,本发明装置由以下几部分组成:ATM网络连接控制单元1k;AAL2协议处理单元1b;以太网MAC帧处理单元1c;以太网交换控制单元1d;时钟逻辑产生单元1e;CPU接口控制单元1f;存储器接口控制单元1g;存储器单元1h。
各组成部分的功能作用以及工作原理如下:
ATM网络连接控制单元1k的功能作用是为装置提供和ATM传输网络的接口,负责处理ATM传输网络上的ATM信元,处理物理层和ATM层的功能,主要包括物理层的比特定时,物理媒体连接,根据图2所示的ATM信元头进行信元速率解调,信元头差错处理,信元定界,传输帧适配,传输帧处理以及ATM层的一般流量控制,信元翻译、提取和插入,信元复用和分路等。
ATM网络连接控制单元1k的工作过程如下:一个ATM信元收发队列控制单元1a通过存储器接口控制单元1g将接收信元FIFO收到的ATM信元数据进行上述的物理层和ATM层处理,得到ATM信元净荷数据,然后通过存储器接口控制单元1g存储到存储器单元1h中。
或者对存储器单元1h进行访问,取出其中的ATM信元净荷数据,经过ATM层和物理层的处理通过发送信元FIFO发送到ATM传输网络。
AAL2协议处理单元1b的功能作用是连接ATM网络连接控制单元1k和以太网MAC帧处理单元1c,实现AAL2层的协议处理,取出用户净荷数据,或者对用户净荷数据进行AAL2层协议封装。
AAL2协议处理单元1b的工作过程如下:通过存储器接口控制单元1g访问存储在存储单元1h的ATM信元净荷数据,进行AAL2层协议处理,取出其中封装的用户净荷数据以及用户标识,并通过存储器接口控制单元1g的控制存储到存储单元1h中。
或者通过存储器接口控制单元1g对存储单元1h进行访问,取出以太网MAC帧处理单元1c处理后的MAC帧缓冲区的用户标识以及用户净荷数据,然后根据该用户数据对应的MAC帧缓冲区号(即图6中的源装置号)和用户标识(即图6中的源用户标识)查询MAC帧到ATM信元的接续路由表(图6),得到该用户的VC通道号,目的用户标识以及连接属性等信息,进而进行AAL2层协议封装后,再通过存储器接口控制单元1g放到存储单元1h中,供ATM网络连接控制单元1k使用。
以太网MAC帧处理单元1c的功能作用是连接AAL2协议处理单元1b和以太网交换控制单元1d,实现用户数据的MAC帧封装处理,或者从MAC帧数据取出用户数据。
以太网MAC帧处理单元1c的工作过程如下:根据用户数据用户标识以及VC通道号等信息通过存储器接口控制单元1g查询存储在存储器单元1h中的ATM信元到MAC帧的接续路由表(图5),得到该用户标识的目的装置号(即对应图4中的MAC帧缓冲区号和图3中的MAC帧头号),目的用户标识以及连接属性等信息。然后根据所得到的目的装置号可以知道该用户对应的MAC帧缓冲区号(图4),以及对应的MAC帧头号(图3)。用户数据将被存放在该MAC帧缓冲区号对应的缓冲区中,供以太网交换控制单元1d使用。
或者接收以太网交换控制单元1d送来的MAC帧数据,根据MAC帧数据的目的地址由图3得到MAC帧头号(即图4中的MAC帧缓冲区号和图5中的目的装置号),从而将数据通过存储器接口控制单元1g存储在存储器单元1h中的该缓冲区号对应的缓冲区中,以供AAL2协议处理单元1b处理。
以太网交换控制单元1d的功能作用是为装置提供到用户协议处理单元的以太网接口,对用户协议处理单元的以太网数据进行必要的交换控制。
以太网交换控制单元1d的工作过程如下:进行物理层的适配,接收用户协议处理单元的用户MAC帧数据,通过存储器接口控制单元1g的控制存储在存储器单元1h中,供以太网MAC帧处理单元1c处理。
或者访问MAC帧头表取出MAC帧头,加上MAC帧长,与MAC帧缓冲区的净荷一起构成MAC帧送到MAC帧发送队列等待发送到各自目的装置MAC地址端口,最终实现到用户协议处理单元的分发。
时钟逻辑产生单元1e的功能作用是与ATM网络连接控制单元1k,以太网交换控制单元1d连接,为它们提供ATM传输网络和以太网的收发基本时钟。
CPU接口控制单元1f提供CPU接口,实现主控CPU对装置的各组成部分的配置、管理和维护工作。
存储器单元1h除存储ATM信元数据和MAC帧缓冲区数据以外,还包括MAC帧头表、信元头表、ATM信元到MAC帧接续路由表、从MAC帧到ATM信元接续路由表、信元状态信息表、MAC帧状态信息表等,如图2、3、4、5、6、7、8所示。
图2是ATM信元头表,存放各虚通道的ATM信元头。包含了信元头号、一般流量控制(GFC,General Flow Control)、虚路径标识(VPI,Virtual Path Identifier)、虚通道标识(VCI,Virtual Channel Identifier)、净荷类型(PT,Payload Type)、信元丢失优先级(CLP,Cell Loss Priority)、信头差错控制(HEC,Header Error Control)等信息,总共5个字节。其中,信元头号可以作为访问信元头表寻址信息。
图3是MAC帧头表,存放到各个目的装置的MAC帧的帧头。包含了MAC帧头号、一个6字节的目的地址和一个6字节的源地址。其中MAC帧头号作为访问帧头表的寻址信息。
图4是MAC帧缓冲区结构,存放各个MAC帧净荷,包含了一个MAC帧缓冲区号和多个用户业务数据单元。每个MAC帧的净荷部分可以包含多个用户业务数据单元SDU。每个用户业务数据单元应该包括业务数据长度、用户标识、业务类型和用户业务数据等内容。
图5是由信元到MAC帧(各目的装置)的接续路由表。路由表信息由VC通道号、源用户标识、目的装置号、目的用户标识和连接属性组成。其中VC通道号和源用户标识作为访问该路由表的寻址信息。
图6是由MAC帧(各目的装置)到ATM信元的接续路由表。接续路由信息包含源装置号、源用户标识、目的VC通道号、目的用户标识和连接属性。其中含源装置号和源用户标识作为该路由表的寻址信息。
图7是信元状态信息表。存放由MAC帧到ATM时组成信元的状态信息,包含信元缓冲区号、信元缓冲区写指针(PtrBUF)和有效净荷长度(CellLen)。信元缓冲区号作为访问该信息表时的寻址信息。
图8是MAC帧状态信息表。存放由ATM到MAC时组成MAC帧的状态信息,包含MAC帧缓冲区号、MAC帧缓冲区写指针(MacPtrW)、最大净荷长度(MacLen)。
图9是由ATM信元到MAC帧的分发转换过程。
图10是由MAC帧到ATM信元的转换过程。
下面结合图9和图10的流程图分别对由ATM信元到各目标装置(目标用户协议处理单元)的数据分发过程和将各个用户协议处理单元过来的MAC帧转换成ATM信元的实施过程详细说明。
步骤9a:在初始状态,系统执行一个初始化操作,初始化设置存储在存储器单元1h中如图3、5、8所示的MAC帧头表、接续路由表及MAC帧状态信息表。
步骤9b:之后转入对图1中ATM信元队列控制单元1a的信元接收队列的查询。
步骤9c:如果接收队列空,继续查询直到非空。如果信元接收队列非空,则取出信元,在图1的1b中进行相应的AAL层处理,得到用户业务数据单元SDU,SDU长度SduLen,及源用户标识。
步骤9d:然后根据适配处理中获取的用户标识信息访问存储单元1h中如图5所示的接续路由表,从而获取一个目的装置号,该装置号同时也是MAC帧缓冲区号。
步骤9e:通过上一步骤得到的目的装置号,访问存储单元1h中如图8所示的MAC帧状态信息表中得到一个写指针MacPtrW和最大帧长MacLen。
步骤9f:将步骤9e得到的MAC帧写指针MacPtrW和步骤9c得到的SDU长度SduLen相加,若和小于步骤9e得到的最大帧长,则转入步骤9h。否则,转入步骤9g。
步骤9g:根据目的装置号访问存储单元1h中如图3所示的MAC帧头表取出MAC帧头,加上MAC帧长,与MAC帧缓冲区的净荷一起构成MAC帧送到MAC帧发送队列等待发送(发送出去的MAC帧经过以太网交换控制单元1d送到各目的装置)。
步骤9h:将SDU按MAC帧写指针指向的位置写入如图4所示的MAC帧缓冲区,MacPtrW增加SduLen。然后再回到步骤9b,查询ATM信元的接收队列。
(其中步骤9e到9h在图1的MAC帧处理单元1c进行。)
步骤10a:在初始状态,系统执行一个初始化操作,初始化设置存储在存储器单元1h中如图2、6、7所示的信元头表、接续路由表及ATM信元状态信息表。
步骤10b:之后转入对图1中以太网交换控制单元1c的MAC帧接收队列的查询。
步骤10c:如果接收队列空,继续查询直到非空。如果信元接收队列非空,则取出信元,在图1的1c中进行相应的帧处理,取出一个用户业务数据单元SDU,SDU长度SduLen,源装置号及源用户标识。并将这些信息送到图1的1b中进行处理。
步骤10d:然后步骤10c中获取的源装置号和源用户标识信息访问存储单元1h中的图6所示的接续路由表,从而获取一个目的VC通道号和目的用户标识,该VC号同时也是图7中的信元缓冲区号和图2的信元头号。
步骤10e:在图1的1b中对步骤10c中取出的业务数据单元进行AAL层处理,得到信元净荷信息。
步骤10f:通过步骤10d得到的信元缓冲区号,访问存储单元1h中如图7所示的信元状态信息表,从中得到一个信元缓冲区写指针PtrBUF和信元净荷长CellLen。
步骤10g、10h:根据步骤10f得到的信元缓冲区写指针PtrBUF将步骤10e得到的信元净荷写入信元缓冲区,每写入一个字节修改一次指针PtrBUF,并判断它是否等于信元净荷长度CellLen。若不等,转到步骤10j,否则转到10i。
步骤10i:根据步骤10d得到的信元头号,从图2所示的信元头表中取出相应的信元头,与净荷一起组成一个ATM信元,送到图1中ATM信元队列控制单元的发送队列中,并将信元缓冲区写指针PtrBUF清零。
步骤10j:判断当前所处理的MAC帧是否处理完,若处理完,则转到步骤10b,检查是否有新到的MAC帧待处理。否则转到步骤10c,处理下一个用户业务数据单元。