分类: 系统运维
2007-01-31 10:50:02
一、ATM中的数据链路层
ATM物理层大体包括了OSI物理层 和数据链路层,包括功能像OSI物理层的物理介质决定了子层和与数据链路功能一样的传输汇集(TC)子层。对于ATM,没有特殊的物理层特性。相反,是由SONET,FDDI及其他传输系统运送ATM信元的。因此,我们这里将集中于TC子层的数据链路功能。
当一个应用程序产生了一条要发送的消息后,此消息要进入传输线路上,向下传到ATM协议栈,加上头部和尾部,并把分段放入ATM信元中。最后,这些信元到达TC子层进行传输。让我们看一下出了门后,在路上所发生的事情。
第一步是进行头部的校验和。每个信元都有一个5字节的头部,头部中包括4字节的虚拟电路及控制信息和1字节的校验和。校验和只包括了前4个头部字节,而不占用有效载荷字节。它是由32个头部位除以多项式x^8+x^2+x+1后,所得的余数构成的。校验和加上常数01010101。
做出只校验头部的决定,是为了减少由于头部错误,而造成不正确传递信元的可能,也为了避免其校验开始要大得多的有效载荷字段的校验。如果确需校验有效载荷字段,就要上到较高的层上完成这一功能。由于校验和字段只位于头部,因此这8位校验和字段被称为头部错误控制HEC(header error control)。
一旦产生出HEC,并插入信元头部,那么此信元就作好了发送准备。传输手段分成两组:异步的和同步的。当使用异步方式时,只要准备好了发送它,就可以发送,没有时间限制。
使用同步方式,信元就必须按照事先确定的时间节拍发送。如果在需要时无数据信元可用,TC子层就必须发明一个,这种信元称为空闲信元(idle cell)。
无数据信元的另一种类型是操作和维护OAM(operation and maitenance)信元。ATM机制也使用OAM信元来交换控制及其他必需的信息,以保证系统的运行。把ATM输出速率与从事传输系统的速率相匹配是TC子层的重要任务。
在接收方,空闲信元在TC子层中进行处理,但OAM信元交给了ATM层。
TC子层的另一项重要任务是:如果有的话,针对从事传输的系统,产生成帧信息。比如,一个ATM摄象机在线路上只产生一系列信元,但它也可能用ATM信元产生SONET帧,嵌入SONET有效载荷中。在后一种情况下,TC子层将产生SONET或帧,并把ATM信元打包,这并不完全是一个不必要的步骤,因为SONET有效载荷不能支持53字节信元的整数倍。
尽管电话公司明确地使用SONET作为ATM的传输系统,但是也可以定义成把ATM对应到其他系统的有效载荷字段,并且这种新帧已在工作。尤其是,映射成T1,T3或FDDI帧也是可以的。
在输出处,TC子层的工作是取得一系列信元,在每个信元上增加一个HEC,把此结果转变成比特流,并通过加入OAM信元,将比特流匹配为进行物理传输系统的速率。在输入处,TC层准确地进行逆变换。它取来到达的比特流,设定信元边界,确定信元头(丢弃拥有不合法头部的信元),处理OAM信元,并把数据信元上传给ATM层。
最困难的部分是在到来的比特流中设定信元边界。在某些情况下,进行传输的物理层提供了帮助。然而,有时物理层对成帧并不能提供帮助。这时应该怎么办?
技巧是使用HEC。随着比特流到达TC子层,保留一个40位移位寄存器,比特流从左边进入,右边出来。TC子层然后审查这40位,看是否可能存在一个合法的信元头部。如果有,最右边的8位将是合法的HEC,而最左边的32位则不是。如果不存在这种情况,则缓冲区没有存在一个合法信元,在这种情况下,缓冲区中所有的位都向右移动一位,使得后端空出一位,于是一个新的输入位就加到最左端。不断重复此过程,直到定位一个合法的HEC。此时,明确了信元边界,因为移位寄存器包括了一个有效的头部。