MPLS ATM PWE3 网络协议报文
MPLS ATM PWE3(Pseudo-wire Emulation Edge to Edge)用于在MPLS网络上传输ATM信元。这使得服务提供者能够在已经存在的IP或者MPLS网络上提供仿真的ATM业务。
一、MPLS ATM PWE3通用封装格式
有如下四种ATM PWE3封装模式:
ATM 1:1信元模式(ATM One-to-one Cell Mode):将一条ATM VCC(Virtual Channel Connection)(或者VPC(Virtual Path Connection))映射到一条PW。
ATM N:1信元模式(ATM N-to-one Cell Mode):将一条或者多条ATM VCCs(或者一条或多条VPCs)映射到PW中。N >= 1。
AAL5 PDU(Protocol Data Unit,协议数据单元)报文模式:将ATM AAL5 CSPS-PDUs直接映射到PW。
AAL5 SDU(Service Data Unit,业务数据单元)报文模式:将ATM AAL5 CSPS-SDUs直接映射到PW。
无论哪种封装模式,都采用如下所示的封装格式。
+-----------------------------------+
| PSN Transport Header(As Required) |
+-----------------------------------+
| Pseudowire Header |
+-----------------------------------+
| ATM Control Word |
+-----------------------------------+
| ATM Service Payload |
+-----------------------------------+
字段 | 长度 | 含义 |
---|---|---|
PSN Transport Header | 变长 | 该字段由PSN所使用的隧道技术所决定,用于在包交换核心网络上传输ATM信息。如果PSN使用的是MPLS隧道,则该字段为MPLS标签栈顶部的一个或多个MPLS标签;如果使用的是GRE隧道,则该字段为GRE协议头。 |
Pseudowire Header | 变长 | 标识隧道承载的一个特定的ATM业务。对于MPLS网络,该字段为位于MPLS标签栈底部的一个或多个MPLS标签。 |
ATM Control Word | 4字节 |
ATM控制字,被插在ATM净荷前面。在ECMP(equal-cost Multiple Path)[请参见RFC 2992]负载分担场景中,控制字可用来恢复PW承载的帧的原有顺序。控制字也可应用于OAM机制中,比如VCCV(Virtual Circuit Connectivity Verification)。 对某些封装模式而言,控制字是需要的;对其他封装格式而言,控制字是可选的。在控制字可选的地方,应用必须支持不发送控制字,也支持发送控制字。 |
ATM Service Payload | 变长 | ATM净荷。 |
二、MPLS ATM PWE3 N:1信元模式
ATM N:1信元模式的封装格式如下,其中ATM控制字是可选的。
ATM N:1信元模式中,多个ATM信元可以串接。每个串接的信元都是由52字节的ATM信元直接映射过来,紧跟在前一个52字节的信元后面。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PSN Transport Header (As Required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pseudowire Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0| Flags |Res| Length | Sequence Number |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Control word ( Optional ) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VPI | VCI | PTI |C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ATM Payload ( 48 bytes ) |
| " |
| " |
| " |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VPI | VCI | PTI |C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ATM Payload ( 48 bytes ) |
| " |
| " |
| " |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段 | 长度 | 含义 |
---|---|---|
PSN Transport Header | 变长 | 该字段由PSN所使用的隧道技术所决定,用于在包交换核心网络上传输ATM信息。如果PSN使用的是MPLS隧道,则该字段为MPLS标签栈顶部的一个或多个MPLS标签;如果使用的是GRE隧道,则该字段为GRE协议头。 |
Pseudowire Header | 变长 | 标识隧道承载的一个特定的ATM业务。对于MPLS网络,该字段为位于MPLS标签栈底部的一个或多个MPLS标签。 |
0000 | 4比特 | ATM控制字的前4个比特必须为0,表示是PW数据。Egress PE忽略这4个比特。 |
Flags | 4比特 | 协议标识域,用来携带特定协议的标识。对于ATM PWE3 N:1信元模式,此字段未被使用,在Ingress PE端置为0,Egress PE忽略。 |
Res | 2比特 | 保留域,在Ingress PE端置为0,Egress PE忽略。 |
Length | 6比特 |
长度域,用来标识二层净荷和控制字的长度。如果二层净荷和控制字的长度小于64字节,那么这个字段就填入实际长度。如果二层净荷和控制字的长度不小于64字节,那么这个字段就填入0。如果长度域的值不为0,则表示PSN数据包内的客户净荷小于64字节,在EgressPE端可以利用长度域的值去掉填充字节。 在N:1模式中,不需要长度域,因为PSN PDU总是比64字节大,并不需要在PSN中通过以太链路时进行填充。因此必须在Ingress PE被置为0,接收端忽略。 |
Sequence Number | 16比特 | 序列号,对该字段的处理是可选的。如果不处理,在Ingress PE置为0,Egress PE忽略。RFC 4717规定,如果PE之间已协商不处理序列号,但Egress PE仍收到一个非0的序列号,则Egress PE需要发送PW状态消息,表明接收错误,并去使能PW。 |
VPI | 8或12比特 | 虚通道标识符,Ingress PE不能改变其值,Egress PE可换成新值。 |
VCI | 16比特 | 虚通路标识符,Ingress PE不能改变其值,Egress PE可换成新值。 |
PTI | 3比特 | 净荷类型PTI(Payload Type Indicator),用于标识信息域,也就是净荷的类型。 |
C | 1比特 | 信元丢弃优先等级(Cell Loss Priority),用于拥塞控制。发生拥塞时优先丢弃C比特置1的信元。 |
ATM Payload | 48字节 | ATM信元的负载,固定长度48字节。 |
三、MPLS ATM PWE3 1:1信元模式
MPLS ATM PWE3(Pseudo-wire Emulation Edge to Edge)1:1信元模式,是将一条ATM VCC(或者VPC)映射到一条PW。ATM 1:1信元模式可分为两种类型:VCC类型和VPC类型。
VCC类型和VPC类型的封装格式很相似,只是VCC类型的ATM信元负荷中去掉了VCI字段,因为在VCC 1:1的封装中,PW可以唯一的标识出ATM信元,没必要浪费带宽传送VCI值,接收端直接从配置信息中恢复ATM信元的VCI值。
ATM 1:1信元模式下,控制字的出现是必须的,控制字插入在PW报头之后。同ATM N:1信元模式一样,ATM 1:1信元模式中,多个ATM信元可以串接。每个串接的信元都是由52字节的ATM信元直接映射过来,紧跟在前一个52字节的信元后面。
3.1、ATM 1:1 VCC类型信元模式的封装格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PSN Transport Header (As Required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pseudowire Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0| Resvd | Optional Sequence Number |M|V|Res| PTI |C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
| ATM Cell Payload ( 48 bytes ) |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|M|V|Res| PTI |C| |
+-+-+-+-+-+-+-+-+ |
| ATM Cell Payload ( 48 bytes ) |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+
3.2、ATM 1:1 VPC类型信元模式的封装格式
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PSN Transport Header (As Required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pseudowire Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0| Resvd | Optional Sequence Number |M|V|Res| PTI |C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| VCI | |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |
| |
| ATM Cell Payload ( 48 bytes ) |
| |
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段 | 长度 | 含义 |
---|---|---|
PSN Transport Header | 变长 | 该字段由PSN所使用的隧道技术所决定,用于在包交换核心网络上传输ATM信息。如果PSN使用的是MPLS隧道,则该字段为MPLS标签栈顶部的一个或多个MPLS标签;如果使用的是GRE隧道,则该字段为GRE协议头。 |
Pseudowire Header | 变长 | 标识隧道承载的一个特定的ATM业务。对于MPLS网络,该字段为位于MPLS标签栈底部的一个或多个MPLS标签。 |
0000 | 4比特 | ATM控制字的前4个比特必须为0,表示是PW数据。Egress PE忽略这4个比特。 |
Resvd | 4比特 | 保留域,在Ingress PE端置为0,Egress PE忽略。 |
Sequence Number | 16比特 | 序列号,对该字段的处理是可选的。如果不处理,在Ingress PE置为0,Egress PE忽略。RFC 4717规定,如果PE之间已协商不处理序列号,但Egress PE仍收到一个非0的序列号,则Egress PE需要发送PW状态消息,表明接收错误,并去使能PW。 |
M | 1比特 | M比特,指示包中包含的是否是ATM信元还是帧净荷。如果设为0,则表示ATM信元;如果设为1,则PDU包含的是一个AAL5净荷。 |
V | 1比特 | V比特,指示包中是否存在VCI域。如果设为1,则存在VCI域;如果设为0,表示不存在VCI域。对VPC,需要VCI域(V比特设置为1),并且随着每个信元一起传输。 |
Res | 2比特 | 预留比特,在发送时应该设为0,在接收时忽略。 |
PTI | 3比特 | 净荷类型PTI(Payload Type Indicator),用于标识信息域,也就是净荷的类型。 |
C | 1比特 | 信元丢弃优先等级(Cell Loss Priority),用于拥塞控制。发生拥塞时优先丢弃C比特置1的信元。 |
VCI | 16比特 | 虚通路标识符。VPC的ATM连接对ATM信元的VCI值不作如何校验,即对VCI值不可控。为了在PE收端能正确还原出客户信元的VCI信息,需在发端PE把客户信元VCI值直接映射进PSN包的PDU,紧跟在控制字的后面。 |
ATM Cell Payload | 48字节 | ATM信元的负载,固定长度48字节。 |
四、MPLS ATM PWE3 AAL5 CPCS-SDU帧模式
MPLS ATM PWE3(Pseudo-wire Emulation Edge to Edge) AAL5 CPCS-SDU(Service Data Unit)模式,是将ATM AAL5 CSPS-SDU直接映射到PW。ATM AAL5 CPCS-SDU帧模式是指把ATM AAL5的净荷映射到一条PW上,它要求PE支持ATM的分片和重组功能。
在ATM的适配层中,ATM的数据块会被分组为48字节的ATM信元净荷。有时如果剩余的数据不够48个字节,为了传输的需要,就需要在信元的净荷中填入填充位。这样会浪费带宽。而ATM PWE3 SDU模式中,入口PE在重组数据块时,不考虑填充位和尾部信息,只在PW上传输数据块的内容。在出口PE上,PE会重新生成填充位和尾部信息。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PSN Transport Header (As Required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pseudowire Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Res |T|E|C|U|Res| Length | Sequence Number (Optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| " |
| ATM cell or AAL5 CPCS-SDU |
| " |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段 | 长度 | 含义 |
---|---|---|
PSN Transport Header | 变长 | 该字段由PSN所使用的隧道技术所决定,用于在包交换核心网络上传输ATM信息。如果PSN使用的是MPLS隧道,则该字段为MPLS标签栈顶部的一个或多个MPLS标签;如果使用的是GRE隧道,则该字段为GRE协议头。 |
Pseudowire Header | 变长 | 标识隧道承载的一个特定的ATM业务。对于MPLS网络,该字段为位于MPLS标签栈底部的一个或多个MPLS标签。 |
0000 | 4比特 | ATM控制字的前4个比特必须为0,表示是PW数据。Egress PE忽略这4个比特。 |
T | 1比特 | 传输模式。该位用来表明报文中封装的是ATM管理信元还是AAL5的净荷。如果T=1,则报文中封装的是ATM信元。如果T=0,则报文中封装的是AAL净荷。 |
E | 1比特 | 结束位。如果发送的AAL5 CPCS-SDU数据块的最后一个信元的E标志位是1或者发送的一个ATM信元的E标志位是1,那么入口设备需要把控制字中的E标志位也设置为1。其他情况控制字中的E标志位都设置为0。出口设备根据控制字中的E标志位的数值,为每个信元设置相应的E标志位。 |
C | 1比特 | 即CLP,信元丢弃优先等级,用于拥塞控制。发生拥塞时优先丢弃CLP=1的信元。如果发送的AAL5 CPCS-SDU数据块的有一个信元的C标志位是1或者发送的一个ATM信元的C标志位是1,那么入口设备需要把控制字中的E标志位也设置为1。其他情况控制字中的C标志位都设置为0。出口设备根据控制字中的C标志位的数值,为每个信元设置相应的C标志位。 |
U | 1比特 | 该位用来表明对于FR或者异种介质互联,AAL5 CPCS-SDU的公用部分会聚子层用户到用户字段(CPCS-UU),含有FR的C/R值等一些二层信息,这是入口设备就要把CPCS-UU中的值复制到控制字中的U字段中。出口设备再把控制字中U字段的信息复制到CPCS-UU中。 |
Res | 2比特 | 预留比特,在发送时应该设为0,在接收时忽略。 |
Length | 6比特 | 该字段用来标识二层净荷和控制字的长度。如果二层净荷和控制字的长度小于64字节,那么这个字段就填入实际长度。如果二层净荷和控制字的长度不小于64字节,那么这个字段就填入0。 |
Sequence Number | 16比特 | 序列号,对该字段的处理是可选的。如果不处理,在Ingress PE置为0,Egress PE忽略。RFC 4717规定,如果PE之间已协商不处理序列号,但Egress PE仍收到一个非0的序列号,则Egress PE需要发送PW状态消息,表明接收错误,并去使能PW。 |
ATM cell or AAL5 CPCS-SDU | 变长 | ATM信元或AAL5 CPCS-SDU。 |
五、MPLS ATM PWE3 AAL5 CPCS-PDU帧模式
MPLS ATM PWE3(Pseudo-wire Emulation Edge to Edge) AAL5 CPCS-PDU模式,是将ATM AAL5 CSPS-PDU直接映射到PW。ATM PWE3 AAL5 CPCS-PDU帧模式封装了全部的CPCS-PDU信息,包括填充位和trailer信息。其中,控制字是必选项,控制字被插在ATM净荷前面。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| PSN Transport Header (As Required) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Pseudowire Header |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|0 0 0 0| Resvd | Optional Sequence Number |M|V| Res |U|E|C|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| " |
| AAL5 CPCS-PDU |
| (n * 48 bytes) |
| " |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
字段 | 长度 | 含义 |
---|---|---|
PSN Transport Header | 变长 | 该字段由PSN所使用的隧道技术所决定,用于在包交换核心网络上传输ATM信息。如果PSN使用的是MPLS隧道,则该字段为MPLS标签栈顶部的一个或多个MPLS标签;如果使用的是GRE隧道,则该字段为GRE协议头。 |
Pseudowire Header | 变长 | 标识隧道承载的一个特定的ATM业务。对于MPLS网络,该字段为位于MPLS标签栈底部的一个或多个MPLS标签。 |
0000 | 4比特 | ATM控制字的前4个比特必须为0,表示是PW数据。Egress PE忽略这4个比特。 |
Resvd | 4比特 | 保留域,在Ingress PE端置为0,Egress PE忽略。 |
Sequence Number | 16比特 | 序列号,对该字段的处理是可选的。如果不处理,在Ingress PE置为0,Egress PE忽略。RFC 4717规定,如果PE之间已协商不处理序列号,但Egress PE仍收到一个非0的序列号,则Egress PE需要发送PW状态消息,表明接收错误,并去使能PW。 |
M | 1比特 | M比特,指示包中包含的是否是ATM信元还是帧净荷。如果设为0,则表示ATM信元;如果设为1,则PDU包含的是一个AAL5净荷。 |
V | 1比特 | V比特,指示包中是否存在VCI域。如果设为1,则存在VCI域;如果设为0,表示不存在VCI域。对VPC,需要VCI域(V比特设置为1),并且随着每个信元一起传输。 |
Res | 3比特 | 预留比特,在发送时应该设为0,在接收时忽略。 |
U | 1比特 | 该位表示报文中是否含有AAL5 PDU的最后一个信元以及代表CPCS-UU的值。 |
E | 1比特 | 该位用来传送ATM信元中的EFCI位的状态(每个ATM信元的EFCI的状态由信元头中的PTI字段的中间一位表示)。如果是从ATM到PSN(入方向),该位就被设置为与AAL5 PDU或者AAL5分片中最后一个信元中的EFCI值一致。如果从是PSN到ATM(出方向),组成AAL5 PDU或者AAL5分片的所有信元中的EFCI值都被设置为与控制中的EFCI值一致。 |
C | 1比特 | 该位用来传送ATM信元中的CLP位的状态。如果是从ATM到PSN(入方向),如果组成AAL5 PDU或者AAL5分片的信元中,任何一个信元的C标志位是1,那么控制字中的C位也被设置为1。如果从是PSN到ATM(出方向),组成AAL5 PDU或者AAL5分片的所有信元中的C标志位的值都被设置为与控制中的C标志位的值一致。 |
AAL5 CPCS-PDU | 48字节整数倍 | AAL5 CPCS-PDU的详细介绍请参见AAL5多协议封装。 |
发表评论