ATM网络协议之IPoEoA/PPPoEoA(AAL5 Ethernet/802.3封装)
IPoEoA (IP over Ethernet over ATM)和PPPoEoA(PPP over Ethernet over ATM)是指将IP或PPP报文封装在桥接模式的ATM AAL5 PDU中,再封装在ATM信元进行传输。
一、IPoEoA/PPPoEoA报文格式
-------- +-----------------------------------------+ ----------
| | LLC header(0xAA-AA-03) | LLC header
| +-----------------------------------------+ ----------
| | OUI(0x00-80-C2) | |
| +-----------------------------------------+ SNAP header
| | PID(0x00-01 or 0x00-07) | |
CPCS-PDU +-----------------------------------------+ ----------
Payload | PAD(0x00-00) |
+-----------------------------------------+ ----------
| | MAC destination address | |
| +-----------------------------------------+ Bridged Ethernet/802.3
| | (remainder of MAC frame) | PDUs
| +-----------------------------------------+ |
| | LAN FCS(if PID is 0x00-01) | |
-------- +-----------------------------------------+ ----------
| PAD(0-47 octets) |
-------- +-----------------------------------------+
| | CPCS-UU(1 octet) |
| +-----------------------------------------+
CPCS-PDU | CPI(1 octet) |
Trailer +-----------------------------------------+
| | Length(2 octets) |
| +-----------------------------------------+
| | CRC(4 octets) |
-------- +-----------------------------------------+
二、IPoEoA/PPPoEoA报文格式各字段含义
字段 |
长度 |
含义 |
LLC header |
3字节 |
当需要在相同的一条VC上传输多种协议时,就需要使用LLC封装。为了保证接收端正确地处理接收到的AAL5 CPCS-PDU报文,承载区必须包含必要的信息来标识是路由协议还是桥接协议。在LLC封装中,这些信息在承载PDU前面的LLC头中进行定义。对于IPoEoA/PPPoEoA,LLC字段包含DSAP、SSAP和Ctrl这3个子字段(每个子字段1字节): +------+------+------+ | DSAP | SSAP | Ctrl | +------+------+------+ · DSAP:目的服务访问点。服务访问点的功能类似于Ethernet II帧中的Type字段或TCP/UDP传输协议中的端口号。 · SSAP:源服务访问点。 · Ctrl:该字段值通常设为0x03,表示无连接服务的IEEE 802.2无编号数据格式。 对于IPoEoA/PPPoEoA,LLC字段值为0xAA-AA-03。 |
SNAP header |
5字节 |
LLC字段后边必须跟一个IEEE 802.1a SNAP(SubNetwork Attachment Point,子网挂接点)字段。SNAP字段包含OUI和PID这2个字段。 |
OUI |
3字节 |
组织唯一标识符(Organizationally Unique Identifier),由IEEE管理,标识后面协议标识符PID(Protocol Identifier)规定的组织。其值通常等于MAC地址的前3字节,即网络适配器厂商代码。对于IPoEoA/PPPoEoA,SNAP报头中的OUI值必须是802.1组织编码0x00-80-C2。 |
PID |
2字节 |
指示桥接PDU中是保留原始的以太帧头的FCS字段。 下面列举可用于ATM封装的介质类型(PID)值(摘自RFC2684的附录B): 保留FCS 不保留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 |
PAD |
可变 |
为了使Ethernet/802.3 LLC的数据字段为4字节的整数倍,在PID字段后,进行填充必要数目的字节。 |
Bridged Ethernet/802.3 PDUs |
可变 |
指ATM封装的Ethernet II或者IEEE 802.3以太帧,详细帧格式请参见以太帧格式。 为了保证以太/802.3物理层的帧达到最小长度,可以对其进行填充。当使用带有保留LAN FCS的以太/802.3桥接PDU封装格式时,必须添加填充字符。如果不带有保留LAN FCS时,可以不添加填充字符。 当收到不带LAN FCS的帧时,网桥必须在把帧转发到以太/802.3子网前插入一些必需的填充字符。 |
PAD |
0~47字节 |
填充位,使整个CPCS-PDU长度为48字节的整数倍,这样就使得SAR子层进行信元划分时,可以将CPCS-PDU Trailer刚好能够划分到一个ATM的负载域(48字节)中。 |
CPCS-UU |
1字节 |
CPCS-UU(用户到用户指示)字段被用于透明传送CPCS用户到用户信息。一般不使用该字段,保留。可以被设置为任何值。 |
CPI |
1字节 |
CPI(Common Part Indicator,通用组件指示),用作对齐CPCS-PDU尾部到8字节。此字段必须填0x00。 |
Length |
2字节 |
指示CPCS-PDU净荷长度,以字节为单位。长度字段的最大值是65535字节。一个长度字段被编码为0x00,用于异常中断功能。 |
CRC |
4字节 |
CRC:循环冗余校验,指CRC域以外的整个AAL5汇聚子层报文的CRC-32值,被用于检测CPCS-PDU中的比特错误。 |
三、IPoEoA/PPPoEoA参考文档
标准 |
描述 |
RFC 1483 |
Multiprotocol Encapsulation over ATM Adaptation Layer 5 |
RFC 2684 |
Multiprotocol Encapsulation over ATM Adaptation Layer 5 |
发表评论