第九章 二层封装与映射.docx
《第九章 二层封装与映射.docx》由会员分享,可在线阅读,更多相关《第九章 二层封装与映射.docx(66页珍藏版)》请在冰点文库上搜索。
第九章二层封装与映射
第九章封装与映射
P目标:
了解多种封装格式的特点,优缺点。
熟悉GFP封装协议G.7041
熟悉映射方式,熟悉LCAS原理G.7042
熟悉LCAS的使用,了解LCAS+MSP的使用优势。
一、线路侧二层封装
线路侧的二层封装和处理主要是指以太网处理之后,数据帧进入SDH的帧格式之前,所进行的二层封装和处理。
目前主要有三种封装:
HDLC、LAPS、GFP;其他的封装形式因为应用不是很多,所以一般不再考虑。
1HDLC
1.1基本帧格式
ͼ1HDLC基本帧格式
完整的HDLC帧包括帧标志序列、数据站地址字段、控制字段、信息字段和帧校验字段。
只包含控制字段而没有信息字段为特例。
1、帧标志序列F:
指定比特组合01111110(0x7e)为帧标志序列,所有帧以F开头,以F结尾。
同时标志序列F可以做为同步字符和帧间的填充字符。
为保证传送信息的透明性(即信息字段可以传送任意比特),在A、C、I、FCS字段中出现01111110时的处理:
发送端校验帧的内容,发现5个连“1”,则插一个“0”。
在接收端检测到5个连“1”后将后面的“0”删除。
2、数据站地址字段A:
在命令帧中,地址字段标识该命令发往数据站,在响应帧中表示发出该响应的数据站。
若为11111111表示全站地址(广播)。
3、控制字段C:
表示该帧是命令帧还是响应帧。
4、信息字段I:
任意二进制比特序列,字符结构不受约束。
5、帧校验序列FCS:
可以使用16bit或32bit帧校验序列,采用循环冗余校验。
1.2HDLC在数据封装中应用
将数据业务做为信息比特封装到类HDLC帧中,再将此类HDLC帧封装到SDH净荷中。
类HDLC对HDLC做修改(参考RFC1662):
1、帧标志序列F:
当其他字段出现0x7e,则修改为0x7d,0x5e;当出现0x7d(控制逃逸字符),则修改为0x7d,0x5d。
2、数据站地址字段A:
地址字段固定为0xff,不做其他分配。
3、控制字段C:
固定为0x03
对类HDLC封装到SDH中,对一些开销规定(参考RFC2615):
1、类HDLC封装到SDH前数据有无扰码(x^43+1)可选。
2、采用扰码,高阶通道标记C2字节为0x16H;无扰码,高阶通道标记C2字节为0xCFH。
3、低阶通道V5字节(b5b6b7)为101B,且VC-1/2的K4(32复帧K4的b1组成)的扩展信号标记字节为0x0AH。
1.3无效帧说明
1、除了帧标志序列F,字节长度小于32bit。
2、接收到连续6个“1”。
2LAPS
LAPS(LinkAccessProcedure-SDH)是中国人向ITU-T提的一个建议,目前国标中明确将LAPS作EOS的封装之一。
LAPS采用ITU-TX.86标准;
LAPS是指数据链路层规程,它是在HDLC的基础上有细微的变化。
基本帧结构
LAPS是指数据链路层规程,它是在HDLC的基础上有细微的变化。
其帧结构与HDLC类似。
2.1LAPS帧格式
1、帧标志序列F:
帧标志序列为0x7E。
同类HDLC一样,当其他字段出现0x7e,则修改为0x7d,0x5e;当出现0x7d(控制逃逸字符),则修改为0x7d,0x5d。
2、数据站地址字段A:
对于LAPS,将此字节作为服务接入点识别符(SAPI)
3、控制字段C:
固定为0x03,其他控制值用法保留。
4、帧校验序列FCS:
使用32bit帧校验序列,采用循环冗余校验。
2.2LAPS传送过程
LAPS主要用于数据帧的封装,可以将以太网帧通过LAPS封装后,映射到SDH的净荷中,下面介绍以太网的MAC帧封装到LAPS过程。
ͼ1封装MAC帧后的LAPS帧
2.3LAPS帧发送处理
1)检测以太网帧头SFD,并通过MII或GMII接口接收MAC帧。
2)发送处理同步SDH时钟
3)增加LAPS帧标志序列0x7e。
4)增加LAPS的SAPI、控制字段、地址字段。
5)对地址字段、控制字段、SAPI字段和LAPS的信息字段进行产生FCS序列(32bit)。
校验字段不包括:
帧标志序列、帧间隙包、速率适配字符、丢弃字符(0x7d7e)等。
6)LAPS帧的透明处理和字节插入:
当遇到0x7e,转换为0x7d,0x5e;
当遇到0x7d,转换为0x7d,0x5d;
OctetstuffingdoesnotoccurduringthetransferofRateAdaptationsequence,Abortsequence,Flag;
7)如果需要在LAPS帧中增加速率适配字节0xdd,则发送序列0x7d,0xdd。
8)增加LAPS结束标志0x7e
9)根据需要,填充0x7e字节做为帧间隙包。
10)对所有字节扰码后映射到SDH净荷中。
2.4LAPS帧接收处理
1)对所有字节解扰码
2)删除帧间隙包0x7e
3)检测LAPS帧开始标志序列0x7e
4)在帧内检测到0x7d,0xdd序列,做为速率适配字节0xdd删除。
5)将透明处理字节转换回来
当遇到0x7d,0x5e,转换为0x7e;
当遇到0x7d,0x5d,转换为0x7d;
6)检测地址字段、控制字段、SAPI字段有效性。
7)计算FCS,并与接收的比较检查。
8)检测帧尾标志,结束一帧处理
9)恢复出的MAC帧,并同步与以太网时钟
10)增加以太网帧头SFD,通过MII、GMII接口发送出以太网帧。
2.5错误帧处理
MII和GMII接口可以利用TX_ERR信号指示LAPS帧产生特殊帧,说明此帧包含内容错误或需要丢弃。
在EthernetoverLAPS支持两种方式处理错误帧:
1)插入丢弃序列0x7d7e,远端接收到此字符,将丢弃此帧。
2)通过对FCS字段简单修改而产生一个错误的FCS,使接收端比较时发现为无效包。
以上两种方式通过管理接口可选。
LAPS无效帧有以下几种:
1)没有以两个标志序列定界;
2)标志序列之间8位数组少于6个;
3)包含一个错误帧校验序列;
4)包含一个与接收者不匹配或者不被其支持的服务访问点标识符;
5)包含一个不可识别控制字段;
6)结束标志为超过6个1的序列;
7)包含无效控制序列,如0x7d,ZZ,ZZ不是5d,5e,7e,dd
无效帧可不必通知发送方面,丢弃且不产生任何动作。
2.6LAPS映射到SDH净荷
1、映射到SDH前对所有数据进行扰码(x^43+1),LAPS支持扰码解扰码功能可选,对于低阶VC-2、VC-11、VC-12不要求扰码功能。
2、采用扰码,高阶通道标记C2字节为0x18H;无扰码,高阶通道标记C2字节为0xCFH。
3、低阶通道V5字节(b5b6b7)为101B,且VC-1/2的K4(32复帧K4的b1组成)的扩展信号标记字节为0x0BH。
2.7LAPS和HDLC(RFC1662)的比较
帧结构的比较:
2.8LAPS和类HDLC帧比较
一些异同点:
LAPS
PPP/HDLC(RFC1662)
多协议封装
使用链路地址做为一组服务访问点标识(SAPI)
使用PPP协议
帧标志
0X7E
0X7E
地址字段
1个字节,全站地址0xff,单个地址分配个IPv4(0x04),IPv6(0x06)
1个字节,全站地址0xff,不分配其他地址
控制字段
0x03
0x03
FCS字段长度
32bit
32/16bit
控制逃逸字符
0X7E,0X7D
0X7E,0X7D
无效帧
定义短于6个字节,或没有控制字段,或帧标志违例,或FCS差错
定义短于4个字节(16比特FCS),或逃逸字符后紧跟结束标识符,或帧标志违例,或FCS差错
净荷扰码
只有高阶通道扰码,C2=0x18H,低阶通道不需扰码,K4=0X0B
采用扰码和不扰码两种方式,采用扰码,高阶通道C2=0x16H,不采用扰码
C2=0XCF;低阶通道K4=0X0A.
3GFP
3.1GFP介绍
GFP是目前北美比较重视的一个封装协议;GFP提供一个通用机制去处理高层的客户信号承载到字节同步传送网。
客户信号可以是协议数据单元(PDU-oriented,如IP/PPP、Ethernet),或者是编码块数据(Block-codeoriented,如FibreChannel、ESCON)或者是普通的比特数据流。
GFP包含通用和客户专用两类型,其中通用类型GFP适合所有的数据流。
目前GFP定义客户信号适配的两种模式,PDU-oriented适配模式,即帧映射GFP;block-codeoriented适配模式,即透明传送GFP。
3.2GFP帧结构
GFP帧的结构如下图所示。
一般的,一个GFP帧包含GFPCoreHeader和GFPPayloadArea两部分。
GFPIdle帧没有GFPPayloadArea。
ͼ1GFP帧结构
3.2.1GFPCoreHeader(核心帧头)
GFPCoreHeader的结构如下图所示。
它共4个字节,包括一个16bit的PDULengthIndicator域和一个16bit的CoreHeaderErrorCheck(cHEC)域。
ͼ1GFPCoreHeader
1)PDU长度指示(PLI)
PLI用来指示GFP净负荷区的长度。
GFPClientFrame中PLI的最小值为4,值为0-3用于GFP控制帧。
2)CoreHEC(cHEC)
CoreHEC域用于保证CoreHeader内容的完整性,它可以完成一个比特的纠错和多比特错误的检测。
HEC的生成多项式是G(x)=x16+x12+x5+1,初始值为0。
x16对应MSB,x0对应LSB。
3)Coreheader加扰
CoreHeader的扰码采用和16进制数B6AB31E0相异或的方式,以保证传送数据直流平衡。
3.2.2GFP净负荷
ͼ1GFP净负荷域结构
1)GFP净负荷头
GFP净荷帧头一般可以包含类型域和扩展帧头两部分。
GFP净荷帧头
2)GFP类型域(Typefield)
图8GFP类型域结构
a)PayloadTypeIdentifer(PTI)
PTI用来指示指示净负荷的类型。
目前只定义了两种类型,见下表。
表1GFP净负荷类型指示
PayloadTypeIdentifiersTypeBits<15:
13>
Usage
000
ClientData
100
ClientManagement
Others
Reserved
b)PayloadFCSIndicator(PFI)
PFI指示是否有PayloadFCS域,1表示有PayloadFCS域,0表示没有。
c)ExtensionHeaderIdentifier(EXI)
EXI用来指示扩展头的类型。
表2GFP扩展头标识
ExtensionHeaderIdentifiers
TypeBits<11:
8>
Usage
0000
NullExtensionHeader
0001
LinearFrame
0010
RingFrame
Others
Reserved
d)UserPayloadIdentifier(UPI)
UPI用来指示客户信号的类型,详细的定义见1.4.2(GFP客户帧)。
e)TypeHEC(tHEC)域
tHEC用来保障Type域的正确性,它的生成多项式是G(x)=x16+x12+x5+1,初始值为0。
x16对应MSB,x0对应LSB。
3.2.3GFP扩展帧头(ExtentionHeaders)
净负荷扩展头是一个0-60字节的扩展域,它可支持虚链路标示、源/目的地址、端口号、服务等级、扩展头错误控制等数据链路头。
扩展头的类型由EXI来指示。
1)NullExtensionHeader
NullExtensionHeader应用于逻辑上点到点的传送。
ͼ1使用NullExtensionHeaderGFP帧的净负荷头
2)Extensionheaderforalinearframe
这个扩展头用于多端口的点到点传送,CID用来标识端口号。
Spare保留将来使用。
ͼ1使用Extensionheaderforalinearframe的GFP帧的净负荷头
3)ExtensionHeaderforaringframe
正在研究中。
4)ExtensionHeader(eHEC)域
eHEC用来保障ExtensionHeader的正确性,它的生成多项式是G(x)=x16+x12+x5+1,初始值为0。
x16对应MSB,x0对应LSB。
3.2.4净负荷信息域
净荷信息域长度不超过65535-X,X为净荷帧头长度。
3.2.5PayloadFrameCheckSequence(pFCS)域
它包含一个CRC-32的序列,用来保护GFP净负荷信息内容的正确性。
ͼ1GFP净负荷检测序列格式
PayloadFCS的计算:
PayloadFCS的生成多项式为G(x)=x32+x26+x23+x22+x16+x12+x11+x10+x8+x7+x5+x4+x2+x1+1。
3.2.6净负荷区加扰
ͼ1GFP加扰与解扰
GFP净负荷区的所有字节都使用1+x43自同步加扰器来进行加扰。
在源端,从cHEC后的第一个字节开始加扰,直到GFP帧的最后一个字节。
在宿端,是否进行解扰取决于帧识别所处的状态。
a)在HUNT和PRESYNC状态,不进行解扰。
b)在SYNC状态,对cHEC后面的所有GFP字节进行解扰。
3.3GFP客户帧
目前,定义了两种类型的GFP客户帧,客户数据帧和客户管理帧。
客户数据帧用来传送客户信号数据。
客户管理帧用来传送客户信号和GFP连接相关的管理信息。
3.3.1Clientdataframes
它的Type域的值如下:
PTI=000
PFI=根据净荷规定
EXI=根据净荷规定
UPI=根据净荷规定
UPI详细规定如下
±í1GFP客户净负荷类型指示
PTI=000
UserPayloadIdentifier(binary)TYPEBits<7:
0>
GFP帧净荷内容
00000000
11111111
保留未使用
00000001
帧映射方式以太网帧
00000010
帧映射方式PPP帧
00000011
透明传送FibreChannel帧
00000100
透明传送FICON帧
00000101
透明传送ESCON帧
00000110
透明传送千兆以太网帧
00000111
保留未使用
00001000
Frame-MappedMultipleAccessProtocolover_SDH(MAPOS)
00001001
through
11101111
保留未使用
11110000
through
11111110
保留未使用
3.3.2GFPClientManagementFrames
管理帧提供了一种从源端往宿端发送管理信息的一种机制。
它的Type域的值如下:
PTI=100
PFI=根据净荷规定
EXI=根据净荷规定
UPI=根据净荷规定
UPI详细规定如下
±í1GFP管理帧类型
PTI=100
UPIvalue
Usage
00000000and11111111
保留
00000001
ClientSignalFail(客户侧信号丢失)
00000010
ClientSignalFail(同步信号丢失)
00000011thru11111110
保留将来使用
3.4GFP控制帧
3.4.1GFPIdleframes
Idle帧是一个4个字节的特殊的GFP控制帧,它仅包含GFPCoreHeader。
Idle用于在源端进行GFP字节流与有着高传送能力的传输媒质的适配。
ͼ1GFPIdle帧结构
3.4.2其它控制帧
PLI为1、2、3的控制帧有待进一步研究。
3.5帧映射方式的GFP(GFP-F)
3.5.1EthernetMACpayload
IEEE802.3的3.1部分定义了以太网MAC帧的格式。
在映射的时候以太网MAC帧的上一层PDU与GFPPDU之间是一对一映射的。
以太网MAC帧和GFP帧的关系见下图。
ͼ1以太网MAC帧和GFP帧的关系
3.5.2以太网MAC帧的封装
以太网MAC帧从目的地址到帧校验序列之间的内容被放在GFP的净负荷信息域中。
封装到GFP帧中字节顺序和比特顺序都没有改变。
3.5.3以太网包间隙(IPG)的删除和恢复
当客户信号不是本地的经过GFP帧映射的客户时,可能需要进行IPG的删除和恢复,依据的规则如下。
1)IPG在源端进行GFP适配之前删除,在宿端GFP解适配之后插入。
2)当以太网MAC帧从客户数据中提取的时候,IPG被删除。
然后对提取的以太网MAC帧进行GFP的源端适配处理,最后再封装到GFP帧中。
3)在从收到的GFP帧中提取出以太网MAC帧后,IPG被恢复。
通过IPG的恢复来保证收到的连续以太网MAC帧间有足够的包含00的字节,以满足最小IPG的要求。
3.5.4IP/PPP净荷封装
帧映射方式还建议PPP帧映射的过程,详细可以参考G.7041建议。
3.6透明映射方式的GFP
通过透明映射把8B/10B净负荷映射到GFP中可以实现低延迟的传输。
可以进行透明映射的信号包括FibelChannel、ESCON、FICON、GE。
这种方式不需要缓冲整个帧,客户信号的每个字分别经过解码,然后再映射到固定长度的GFP中去,而不管客户字是数据字还是控制字,这样就保护了客户信号的8B/10B控制字。
透明GFP的帧格式和帧映射GFP的格式是一样的,透明GFP的帧格式见下图。
ͼ1透明GFP帧结构
3.6.1通过64B/65B来适配8B/10B客户信号
进行客户信号适配处理的第一步是在物理层对信号进行解码。
对于8B/10B的线路码,如果收到的10bit的字是8B/10B数据字,则它被恢复为原始的8bit数据;如果是8B/10B的控制字,则它被映射为4bit的控制码。
见下表。
±í18B/10B控制字与64B/65B字间的映射
NAME
OctetValue
10BCodeword(RD-)
abcdeifghj
10BCodeword(RD+)
abcdeifghj
64B/65B
4-bitMapping
/K28.0/
1C
0011110100
1100001011
0000
/K28.1/
3C
0011111001
1100000110
0001
/K28.2/
5C
0011110101
1100001010
0010
/K28.3/
7C
0011110011
1100001100
0011
/K28.4/
9C
0011110010
1100001101
0100
/K28.5/
BC
0011111010
1100000101
0101
/K28.6/
DC
0011110110
1100001001
0110
/K28.7/
FC
0011111000
1100000111
0111
/K23.7/
F7
1110101000
0001010111
1000
/K27.7/
FB
1101101000
0010010111
1001
/K29.7/
FD
1011101000
0100010111
1010
/K30.7/
FE
0111101000
1000010111
1011
10B_ERR
N/A
UnrecognizedRD-
UnrecognizedRD+
1100
65B_PAD
N/A
N/A
N/A
1101
Spare
N/A
N/A
N/A
1110
Spare
N/A
N/A
N/A
1111
±í1透明64B/65B码组成
InputClientCharacters
FlagBit
64-Bit(8-Octet)Field
Alldata
0
D1
D2
D3
D4
D5
D6
D7
D8
7data,
1control
1
0aaaC1
D1
D2
D3
D4
D5
D6
D7
6data,
2control
1
1aaaC1
0bbbC2
D1
D2
D3
D4
D5
D6
5data,
3control
1
1aaaC1
1bbbC2
0cccC3
D1
D2
D3
D4
D5
4data,
4control
1
1aaaC1
1bbbC2
1cccC3
0dddC4
D1
D2
D3
D4
3data,
5control
1
1aaaC1
1bbbC2
1cccC3
1dddC4
0eeeC5
D1
D2
D3
2data,
6control
1
1aaaC1
1bbbC2
1cccC3
1dddC4
1eeeC5
0fffC6
D1
D2
1data,
7control
1
1aaaC1
1bbbC2
1cccC3
1dddC4
1eeeC5
1fffC6
0gggC7
D1
8control
1
1aaaC1
1bbbC2
1cccC3
1dddC4
1eeeC5
1fffC6
1gggC7
0hhhC8
然后解码后的8B/10B字在映射到一个64B/65B的码字中。
64B/65B码字的第一个比特指示此码字中是否包含控制字符。
(Flagbit=0表示只有数据资,Flagbit=1表示至少有一个控制字)。
客户信号中的控制字映射到8位的64B/65B控制字中,它的第一个比特LCC指示是否它是最后一个64B/65B控制字。
LCC为0表示它是最后一个64B/65B控制字,为1表示它不是最后一个控制字。
64B/65B控制字中接下来的3个比特指示此控制字在原始8B/10B数据流中的位置。
3.6.210B_ERRcode
在进行GFP源端适配处理的过程中,有可能