组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:高明辉(roamer21cn minghuigao@263.net)
译文发布时间:2002-02-28
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须保留本文档的翻译及版权信息。
Network Working Group Juha Heinanen
Reguest for Comments: 1483 Telecom Finland
July 1993
通过ATM适应层5的多协议封装
(RFC1483--Multiprotocol Encapsulation over ATM Adaptation Layer 5)
本备忘录的状态 2
摘要 2
1. 简介 2
2. 多路复用方法的选择 2
3. AAL5帧格式 3
4. LLC 封装 4
4.1. 路由协议的LLC封装 4
4.2. 桥接协议的LLC封装 5
5. 基于VC的多路复用技术 9
5.1. 路由协议的VC多路复用技术 9
5.2. 桥接协议的VC多路复用技术 9
6. ATM网络中的桥接 11
7. 未来研究 11
感谢 11
安全事项 11
参考 12
附录A. 基于FR-SSCS的多协议封装 12
附录B. OUI 00-80-C2的局部指定值列表 14
附录C. NLPID的部分条目 14
作者地址 14
本备忘录的状态
这篇RFC(Request For Comments)为Internet社区详细说明了一个IAB(Internet Architectrue Board , Internet架构委员会)标准跟踪协议,需要通过讨论和建议来改进。如果想知道这个协议的标准化状态,请参考最近的“IAB正式协议标准”的版本。
本备忘录的发布不受任何限制。
摘要
本备忘录描述了两种通过ATM AAL5传送网络互连信息的封装形式。第一种方法允许在单一的ATM虚电路上复用多种协议,而第二种方法每一种协议都承载在不同的ATM虚电路上。
1. 简介
基于网络的异步传输模式(Asynchronous Transfer Mode,ATM)在局域和全局应用中正在引起越来越多的兴趣。本备忘录描述了在ATM网络上两种不同的方法来承载无连接的网络互连业务信息,路由和桥接协议数据单元(Protocol Data Units,PDUs)。第一种方法允许在单一的ATM虚电路上复用多种协议,承载PDU的协议类型通过给PDU加一个IEEE802.2 标准的LLC(Logical Link Control,逻辑链路控制)标题来标识,这种方法在后面被称作“LLC封装”,它的一个子集初期定义为SMDS[1]。第二种方法将高层协议类型隐含在ATM虚电路(VC)上,在后面称作“基于VC多路复用”。
ATM是以信元(cell)为基本载体的传输模式,要求不同长度的用户信息分段成短的、固定长度的信元,或者由短的、固定长度的信元重组成不同长度的用户信息。本备忘录并不是为路由和桥接协议数据单元(PDU)指定一种新的分段和重组(Segmentation And Reassembly,SAR)方法,而是由ATM适应层5(AAL5)公共部分会聚子层(Common Part Convergence Sublayer,CPCS)的负载区来承载PDU。
注意,本备忘录仅仅描述如何在AAL5的CPCS子层上传输路由和桥接PDU。也就是,这时AAL5的业务特定部分会聚子层(Service Specific Convergence Sublayer,SSCS)为空。如果I.36x.1 [3]定义的帧中继(Frame Relay,FR)业务特定部分会聚子层(FR-SSCS)用于AAL5的CPCS子层上,这时,路由和桥接PDU将由RFC1294[4]中描述的NLPID多路复用方法来承载。附录A中描述了FR-SSCS-PDU的格式,也描述了RFC1294中如何将IP和CLNP PDU封装在FR-SSCS之上的。
2. 多路复用方法的选择
可以想象,基于VC多路复用技术在在快速、方便地动态建立大量ATM VC的环境中将占很大优势。这种环境可能在专用ATM网络中占据主导地位。另一方面,由于某些原因,在每一种协议都承载在不同的VC的方法不实用,这时LLC封装可能会比较适宜。例如,如果一个ATM网络仅仅支持PVC(Permanent Virtual Circuits,永久虚电路)或者过分依赖于一定数量的SVC。
当两个ATM站点要交换基于无连接的网络互连通信数据时,在PVC的情况下可以通过手动配置来实现多路复用方法的选择,或者在SVC的情况下用B-ISDN的信令过程来实现。有关B-ISDN信令请参照CCITT [5]。但是,可以认为B-ISDN信令信息包括了一个“底层兼容性”的信息元素,有了这个元素我们就可以同AAL5及其承载(或者封装)的协议进行协商。
3. AAL5帧格式
无论选择哪一种多路复用技术,路由和桥接PDU都应该被封装在AAL5 CPCS-PDU负载区,下面给出AAL5 CPCS-PDU的格式
AAL5 CPCS-PDU 格式
+-------------------------------+
| . |
| . |
| CPCS-PDU 负载 |
| (1至65535字节) |
| . |
| . |
+-------------------------------+
| PAD(0至47字节) |
+-------------------------------+ -------
| CPCS-UU(1字节) |
+-------------------------------+
| CPI(1字节) |
+-------------------------------+CPCS-PDU尾部
| 长度(2字节) |
+-------------------------------|
| CRC(4字节) |
+-------------------------------+ -------
负载区可以包含1至65535字节的用户信息。
PAD区用来填充CPCS-PDU使CPCS总长度为48字节的整数倍,这样由SAR子层产生的最后48字节信元载荷正好与信元中CPCS-PDU的尾部对齐。
CPCS-UU(User-to-User indication,用户到用户标识)用来透明地传输用户到用户信息,在本备忘录中描述的多协议的ATM封装中该字段没有作用,可以被置成任意值。
CPI(Common Part Indicator,通用部分指示)字段是为了使CPCS-PDU的尾部按64 bit对齐,在CCITT标准中为了未来可能增加的功能预留。在它的作用只是为了64 bit对齐的情况下,该字段应该编码为0x00。
长度字段指示了以字节为单位负载区的长度,最大值是65535字节。长度字段编码为0x00用于异常功能。
CRC字段提供了CRC字段本身以外的整个CPCS-PDU的差错检查。
4. LLC 封装
当需要在相同的一条VC上传输多种协议的情况下就需要使用LLC封装。为了让接收端能正确地处理接收到的AAL5 CPCS-PDU,承载区必须包含必要的信息来标识是路由或桥接协议。在LLC封装中,这些信息在承载PDU前面的LLC头中统一编码。
尽管本备忘录只是解决了在LLC类型1(无连接的模式)业务上运行的协议,同样的封装原理也适用于在LLC类型2(基于连接的模式)业务上运行的协议。在后一种情况中,LLC封装的头的格式或者内容会与在下面给出的不同。
4.1. 路由协议的LLC封装
在LLC封装中,路由PDU的协议是通过给PDU前面加一个IEEE 802.2 LLC标题头来标识,后面可能紧跟着一个IEEE 802.1a SNAP(SubNetwork Attachment Point)的标题头。在LLC类型1的操作中,LLC标题头包括三个byte字段:
+------+------+------+
| DSAP | SSAP | Ctrl |
+------+------+------+
在路由协议的LLC封装中,Ctrl字段的值始终是0x03,用来指定是无编号的信息命令PDU。
LLC标题头的值为0xFE-FE-03标识后面是一个路由ISO PDU(请看[6]和附录B)。Ctrl字段的值0x03指定是无编号的信息命令PDU。因此,AAL5 CPCS-PDU承载区的路由ISO PDU的格式如下所示:
路由ISO PDU的负载格式
+-------------------------------+
| LLC 0xFE-FE-03 |
+-------------------------------+
| . |
| ISO PDU |
| (1至65532字节) |
| . |
+-------------------------------+
路由ISO协议由一个字节的NLPID字段来标识,这个字段是协议数据的一部分。NLPID的值由ISO和CCITT来确定,它们的定义在ISO/IEC TR 9577 [6]中,附录C中列举了当前一些定义
按照ISO/IEC TR 9577中的定义,一个NLPID的值为0x00是标识空的网络层或者设置为非活动状态,由于在这种封装形式下它没有意义,所以在ATM封装中,一个NLPID的值为0x00是无效的
尽管IP不是ISO协议,但是IP有一个NLPID值0xCC,所以,对IP来讲,也有可能采用上面的封装形式。这种格式不一定使用,跟其他一些非ISO路由协议的封装形式一样,可以通过在LLC标题头的后面的SNAP标题中标识出。
LLC标题头的值0xAA-AA-03标识SNAP标题,SNAP标题的格式:
+------+------+------+------+------+
| OUI | PID |
+------+------+------+------+------+
三个字节OUI(Organizationally Unique Identifier ,组织唯一标识符)标识给后面的两个字节PID(Protocol Identifier ,协议标识符)规定意义的组织。二者合在一起标识了一个独特的路由或桥接协议。OUI的值0x00-00-00说明后面的PID是以太类型。
非ISO PDU在AAL5 CPCS-PDU负载区格式如下所示:
非ISO 路由 PDU格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-00-00 |
+-------------------------------+
| 以太类型 (2 字节) |
+-------------------------------+
| . |
| 非ISO PDU |
| (1-2^16 - 9 字节) |
| . |
+-------------------------------+
在IP PDU详细的格式中,以太类型的值为0x08-00:
路由IP PDUs的负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-00-00 |
+-------------------------------+
| 以太类型 0x08-00 |
+-------------------------------+
| . |
| IP PDU |
| (1-2^16 - 9 字节) |
| . |
+-------------------------------+
这与RFC1042[7]兼容,本备忘录应该随着RFC1042指定的标题格式的修改而修改。
4.2. 桥接协议的LLC封装
在LLC封装中,通过在SNAP标题中指定桥接媒体的类型对桥接PDU进行封装。与非ISO路由协议的LLC封装类似,LLC标题头的值0xAA-AA-03标识SNAP标题。桥接协议的LLC封装中,SNAP标题OUI字段的值是802.1组织的代码0x00-80-C2,目前桥接媒体的类型是有两个字节的PID指明的。另外,PID指明在桥接PDU中是否保留了FCS(Frame Check Sequence ,帧校验序列)。用于ATM封装的媒体类型(PID)在附录B中列出。
因此,承载桥接PDU的AAL5 CPCS-PDU负载区应该是下面格式中的一种。为了使桥接PDU的用户信息字段按照4个字节对齐,在必要的时候,可以在PID字段的后面进行填充。
桥接Ethernet/802.3 PDU负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-01 或 0x00-07 |
+-------------------------------+
| PAD 0x00-00 |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
|LAN FCS(如果PID的值是0x00-01)|
+-------------------------------+
桥接Ethernet/802.4 PDU负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-02 or 0x00-08 |
+-------------------------------+
| PAD 0x00-00-00 |
+-------------------------------+
| 帧控制字节(1字节) |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| LAN FCS (如果PID是0x00-02) |
+-------------------------------+
桥接Ethernet/802.5PDU负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-03 或 0x00-09 |
+-------------------------------+
| PAD 0x00-00-XX |
+-------------------------------+
| 帧控制字节(1 octet) |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| LAN FCS (如果PID是0x00-03) |
+-------------------------------+
注意,在802.5 AC(Access Control,接入控制)字段在局域802.5子网以外没有任何意义,因此它可以看作是三个字节的PAD字段的最后一个字节,可以赋以任意值(XX)。
桥接FDDI PDU的负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-04 或 0x00-0A |
+-------------------------------+
| PAD 0x00-00-00 |
+-------------------------------+
| 帧控制字节(1 octet) |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| LAN FCS (如果PID是0x00-04) |
+-------------------------------+
桥接802.6PDU负载格式
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-0B |
+---------------+---------------+ ------
| 保留 | BE标签 | 普通
+---------------+---------------+ PDU
| Basize | 标题
+-------------------------------+ -------
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| |
| 普通PDU尾 |
| |
+-------------------------------+
注意,在桥接802.6 PDU中,PID的值只有一种选择,因为在MAC帧标题中CRC-32的标识值由CIB指定。
普通PDU标题头和尾部在出口桥接设备允许通过送入802.6子网。有一点明确的是,普通PDU的标题头中包含Basize字段,这个字段标识了PDU的长度。如果出口桥接设备不能得到这个字段,那么直到它接收到整个PDU,计算它的长度,然后把长度填入Basize字段,才开始传送分片的PDU。如果出口桥接设备能得到这个字段,那么出口802.6桥接设备就能从普通PDU标题头中Basize字段提取出长度,然后把它插入第一个分片的相应的字段,然后立即把这个分片发送到802.6子网。这样,桥接设备就能在它收到整个的PDU之前就开始传送802.6PDU。
+-------------------------------+
| LLC 0xAA-AA-03 |
+-------------------------------+
| OUI 0x00-80-C2 |
+-------------------------------+
| PID 0x00-0E |
+-------------------------------+
| |
| 802.1(d) 或 802.1(g) |
| 定义的BPDU |
| |
+-------------------------------+
注意封装帧的普通PDU标题头和尾部不能简单地复制到802.6出口子网中,因为封装的Betag值可能会与这个桥接设备先前传输的Betag值发生冲突。
通过把它的长度字段的值置为0,一个入口的802.6桥接设备可以中止一个AAL5 CPCS-PDU。如果出口桥接设备已经开始向一个802.6子网传输分片,这时发现该AAL5 CPCS-PDU已经被中止了,它会立即产生一个EOM信元,这样就可以使接收端拒绝接收该802.6 PDU。例如,可以使普通PDU的尾部的长度字段中包含一个非法的值。
5. 基于VC的多路复用技术
在基于VC的多路复用技术中,承载网络互连的协议隐含着由连接两个ATM站点的VC来区分的,也就是说,每一种协议必须运行于各自不同的VC上,因此在AAL5 CPCS-PDU的负载上就没有必要再包含额外的多路复用信息,这样就使得占用少量的带宽和处理开销。
通过上面的简要说明,可以看出,每条VC上承载的协议,要么手动配置,要么在呼叫建立过程中,通过信令处理来进行动态的协商。当相关的标准具有一定的可用性时,在其他的RFC中会对信令进行详细的定义。
5.1. 路由协议的VC多路复用技术
路由协议的PDU应该被承载在AAL5 CPCS-PDU 的负载区,所以AAL5 CPCS-PDU的负载区的格式如下:
路由PDU的负载格式
+-------------------------------+
| . |
| 被承载的PDU |
| (1-2^16字节) |
| . |
| . |
+-------------------------------+
5.2. 桥接协议的VC多路复用技术
桥接协议的PDU只是准确地包含了在4.2节中描述的AAL5 CPCS-PDU负载的PID字段以后的部分。因此承载一个桥接PDU的AAL5 CPCS-PDU负载区应该是以下的某一种格式:
桥接Ethernet/802.3 PDUs负载格式
+-------------------------------+
| PAD 0x00-00 |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| LAN FCS (VC dependent option) |
+-------------------------------+
桥接802.4/802.5/FDDI PDUs负载格式
+-------------------------------+
| PAD 0x00-00-00 or 0x00-00-XX |
+-------------------------------+
| 帧控制字节(1 octet) |
+-------------------------------+
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| LAN FCS (VC dependent option) |
+-------------------------------+
注意,在802.5 AC(Access Control,接入控制)字段在局域802.5子网以外没有任何意义,因此它可以看作是三个字节的PAD字段的最后一个字节,可以赋以任意值(XX)。
桥接Ethernet/802.6 PDUs负载格式
+---------------+---------------+ -------
| 保留 | BEtag | 普通
+---------------+---------------+ PDU
| BAsize | 标题
+-------------------------------+ -------
| 目的MAC地址 |
+-------------------------------+
| |
| (MAC帧的剩余部分) |
| |
+-------------------------------+
| |
| 普通PDU尾部 |
| |
+-------------------------------+
在以太网中,802.3,802.4,802.5,和FDDI PDU因为没有包含PID字段,所以尾部LAN FCS的有无就隐含由VC来标识。这样,即使桥接的媒体类型是相同的,带有LAN FCS和没有LAN FCS的PDU也可以区分开不同的协议。
BPDU负载格式
+-------------------------------+
| |
| BPDU as defined by |
| 802.1(d) or 802.1(g) |
| |
+-------------------------------+
6. ATM网络中的桥接
作为网桥的一个ATM接口必须能涌出、转发和过滤桥接PDU。
通过把PDU发送到所有可能相关的目的地来实现涌出,在ATM的环境下,这就意味着把PDU发往每一条相关的VC。要实现这以功能,可以把PDU拷贝到每一条VC上,或者利用一条组播VC。
要转发一个PDU,一个网桥必须能通过VC与目的MAC地址联系上。要求一个网桥静态地为每一条VC配置与之相关的每一个可能的目的MAC地址是不现实的,也是不可能的,因此,ATM网桥必须提供足够的信息,从而允许一个ATM接口能够动态地学习ATM站点外的外部目的地。
要实现动态的学习,桥接PDU应该与在第4章中描述的封装形式一致,这样,接收的ATM接口就能够通过解析桥接PDU来学习在外部目的地和ATM站点之间的连接。
7. 未来研究
由于ATM组播,寻址,和信令机制还不完备,与多路复用方法协商的详细内容以及地址解析只好留给以后的RFC了。
感谢
这篇文档是RFCs [1]和[4]的发展,很多资料都取自它们,感谢它们的作者T. Bradley, C. Brown, A. Malis, D. Piscitello, and C. Lawrence。另外,IETF ATM工作组专家的建议起了很大的作用,特别感谢CERN 的Brian Carpenter, IBM 的Rao Cherukuri, Motorola的Dan Grossman, Network Systems 的Joel Halpern, Sun Mircosystems 的Bob Hinden, 和MAN Technology Corporation 的Gary Kessler,感谢他们所做的贡献。
安全事项
本备忘录没有提及安全问题。
参考
[1] Piscitello, D. and Lawrence, C., "The Transmission of IP
Datagrams over the SMDS Service". RFC 1209, Bell Communications
Research, March 1991.
[2] CCITT, "Draft Recommendation I.363". CCITT Study Group XVIII,
Geneva, 19 - 29 January, 1993.
[3] CCITT, "Draft Recommendation I.36x.1". CCITT Study Group XVIII,
Geneva, 19-29 January, 1993.
[4] Bradley, T., Brown, C., and Malis, A., "Multiprotocol
Interconnect over Frame Relay". RFC 1294, Wellfleet
Communications, Inc. and BBN Communications, January 1992.
[5] CCITT, "Draft text for Q.93B". CCITT Study Group XI, 23
September - 2 October, 1992.
[6] Information technology - Telecommunications and Information
Exchange Between Systems, "Protocol Identification in the
Network Layer". ISO/IEC TR 9577, October 1990.
[7] Postel, J. and Reynolds, J., "A Standard for the Transmission of
IP Datagrams over IEEE 802 Networks". RFC 1042, ISI, February,
1988.
附录A. 基于FR-SSCS的多协议封装
I.36x.1定义了一个帧中继业务特定部分汇聚子层(FR-SSCS),用于帧中继和ATM接口AAL5的公共部分汇聚子层上面。FR-SSCS提供的业务与I.233中描述的帧中继的核心业务相一致。
一个FR-SSCS-PDU包括Q.922地址,后面紧接着是Q.922信息域。省略了Q.922标志和FCS,这是因为相关的功能由AAL提供了。后面的图表给出了一个AAL5 CPCS-PDU负载区内含一个FR-SSCS-PDU的格式。
路由和桥接PDU按照RFC 1294中定义的方式进行封装。Q.922信息域从Q.922控制域开始,后面紧接着是一个可选的填充字段,用于对齐这一帧剩余的部分,这样发送端就能获得一个方便的边界。通过给PDU加一个ISO/CCITT NLPID(Network Layer Protocol ID)前缀来标识承载的PDU的协议。
特别地,对于一个IP PDU,NLPID的值是0xCC,FR-SSCS-PDU的格式如下:
AAL5 CPCS-PDU负载区内的FR-SSCS-PDU
+-------------------------------+ -------
| Q.922 地址域 | FR-SSCS-PDU标题
| (2-4 字节) |
+-------------------------------+ -------
| . |
| . |
| Q.922 信息域 | FR-SSCS-PDU负载
| . |
| . |
+-------------------------------+ -------
| AAL5 CPCS-PDU 尾部 |
+-------------------------------+
路由IP PDU 的FR-SSCS-PDU格式
+-------------------------------+
| Q.922 地址域 |
| (2 - 4 字节) |
+-------------------------------+
| 0x03 (Q.922 控制) |
+-------------------------------+
| NLPID 0xCC |
+-------------------------------+
| . |
| IP PDU |
| (1 - 65531 字节) |
| . |
+-------------------------------+
注意,依据RFC 1294,Q.922地址域应该是2或者4个字节长,不支持3字节长的地址域。
路由CLNP PDUs 的FR-SSCS-PDU 格式
+-------------------------------+
| Q.922 地址域 |
| (2 - 4 octets) |
+-------------------------------+
| 0x03 (Q.922 控制) |
+-------------------------------+
| NLPID 0x81 |
+-------------------------------+
| . |
| CLNP PDU的剩余部分 |
| (1 - 65531 字节) |
| . |
+-------------------------------+
特别地,对于一个CLNP PDU,NLPID的值是0x81,FR-SSCS-PDU的格式如下:
注意,在ISO协议中,NLPID域构成PDU的第一个字节,因此不要重复。
上面提及的封装形式,仅适用于指定唯一NLPID的路由协议,对于其他的路由协议(如桥接协议),为了方便协议的标识有必要提供另外一种机制。可以适用下面的方法来达到目的,给NLPID赋值0x80来指明后面紧接的是一个IEEE 802.1a SNAP(SubNetwork Attachment Point)。
有关基于FRCS的多协议封装的详细描述请参照RFC 1294。
附录B. OUI 00-80-C2的局部指定值列表
保留FCS w/o保留FCS 媒体类型
------------------ ----------------- --------------
0x00-01 0x00-07 802.3/Ethernet
0x00-02 0x00-08 802.4
0x00-03 0x00-09 802.5
0x00-04 0x00-0A FDDI
0x00-05 0x00-0B 802.6
0x00-0D Fragments
0x00-0E BPDUs
附录C. NLPID的部分条目
0x00 空网络层或无用设置 (不用于ATM)
0x80 SNAP
0x81 ISO CLNP
0x82 ISO ESIS
0x83 ISO ISIS
0xCC Internet IP
作者地址
Juha Heinanen
Telecom Finland
PO Box 228
SF-33101 Tampere
Finland
Phone: +358 49 500 958
Email: Juha.Heinanen@datanet.tele.fi
RFC1483--Multiprotocol Encapsulation over ATM Adaptation Layer 5 通过ATM适应层5的多协议封装
RFC文档中文翻译计划 1