RPR网络协议帧
RPR(Resilient Packet Ring)协议是一个工作在OSI(Open Systems Interconnection)协议栈的数据链路层的介质访问控制协议,主要应用在城域网中。RPR有4种帧格式,包括:基本数据帧、控制帧、公平算法帧、Idle帧。
一、RPR基本数据帧格式
+0---------------7---------------15---------------23---------------31
| TTL | basecontrol | DMAC(6 bytes) |
+---------------------------------- |
+--------------------------------------------------------------------
| SMAC (6 bytes) -----------------------------------
| | ttlBase |extendedControl |
+--------------------------------------------------------------------
| HEC (2 bytes) | Length/Type(2 bytes) |
+--------------------------------------------------------------------
| serviceDataUnit(n bytes) |
+--------------------------------------------------------------------
| FCS(4 bytes) |
+-------------------------------------------------------------------+
二、RPR基本数据帧格式解释
字段 |
长度 |
描述 |
---|---|---|
TTL |
1字节 |
TTL(Time to Live),TTL的值决定数据帧在RPR环网上被转发的最大跳数。每经过一个节点,TTL值被减1,当TTL等于0时,数据帧被丢弃。这种机制可以防止数据帧在环网上被无限制的循环转发。 |
basecontrol |
1字节 |
基本环控制字段,包含选环信息、公平算法控制信息、帧类型、流类型(服务级别)、Wrap控制信息和奇偶校验位。 |
DMAC |
6字节 |
48位目的MAC地址。对于单播报文,该字段在目的节点被删除;对于多播报文,该字段在源节点被删除。 |
SMAC |
6字节 |
48位源MAC地址。发送数据的源站点的MAC地址,它在传送过程中一直保持不变,用于目的节点回应消息的地址。 |
ttlBase |
1字节 |
TTL基数,即TTL的初始值。在数据帧转发过程中,TTL基数保持不变。用TTL基数减去TTL值,可以得到数据帧转发到当前节点经过的跳数。 |
extendedControl |
1字节 |
扩展环控制字段,RPR报文扩展头,扩展帧标志、泛洪标志、泛洪类型、通过源节点标志、严格顺序帧标志和保留位。 |
HEC |
2字节 |
头部校验和HEC(Header Error Check),采用16位CRC(Cyclic Redundancy Check)校验。头部校验和是对TTL、基本控制信息、目的MAC地址、源MAC地址、TTL基数和扩展控制信息6个字段的数据进行计算而得到的。 |
Length/Type |
2字节 |
当此值小于1536(十进制)时表示帧的长度。当此值大于等于1536(十进制)时表示数据载荷的协议类型。“数据”字段承载的协议和“协议类型”字段取值的对应关系如下:
|
serviceDataUnit |
n字节 |
业务数据单元,此字段的长度是可变的。 |
FCS |
4字节 |
FCS(Frame Check Sequence),帧校验序列,32位CRC校验。是对协议类型和数据两个字段进行CRC校验得到的。 |
三、RPR控制帧格式
+0---------------7---------------15---------------23---------------31
| TTL | basecontrol | DMAC(6 bytes) |
+---------------------------------- |
+--------------------------------------------------------------------
| SMAC (6 bytes) -----------------------------------
| | ttlBase |extendedControl |
+--------------------------------------------------------------------
| HEC (2 bytes) | controlType | controlVersion |
+--------------------------------------------------------------------
| controlDataUnit(N bytes) |
+--------------------------------------------------------------------
| FCS(4 bytes) |
+-------------------------------------------------------------------+
四、RPR控制帧格式解释
字段 |
长度 |
描述 |
---|---|---|
TTL |
1字节 |
TTL(Time to Live),TTL的值决定数据帧在RPR环网上被转发的最大跳数。每经过一个节点,TTL值被减1,当TTL等于0时,数据帧被丢弃。这种机制可以防止数据帧在环网上被无限制的循环转发。 |
baseControl |
1字节 |
包含选环信息、公平算法控制信息、帧类型、流类型(服务级别)、Wrap控制信息和奇偶校验位。 |
DMAC |
6字节 |
48位目的MAC地址。对于单播报文,该字段在目的节点被删除;对于多播报文,该字段在源节点被删除。 |
SMAC |
6字节 |
48位源MAC地址。发送数据的源站点的MAC地址,它在传送过程中一直保持不变,用于目的节点回应消息的地址。 |
ttlBase |
1字节 |
TTL的初始值。在数据帧转发过程中,TTL基数保持不变。用TTL基数减去TTL值,可以得到数据帧转发到当前节点经过的跳数。 |
extendedControl |
1字节 |
RPR报文扩展头,扩展帧标志、泛洪标志、泛洪类型、通过源节点标志、严格顺序帧标志和保留位。 |
HEC |
2字节 |
头部校验和HEC(Header Error Check),采用16位CRC(Cyclic Redundancy Check)校验。头部校验和是对TTL、基本控制信息、目的MAC地址、源MAC地址、TTL基数和扩展控制信息6个字段的数据进行计算而得到的。 |
controlType |
1字节 |
控制类型字段,取值决定控制帧的类型。IEEE 802.17标准定义了如下几种控制帧:
|
controlVersion |
1字节 |
控制类型字段对应的版本号。用于标识控制帧的版本。对于所有控制类型,此字段都初始化为0。 |
controlDataUnit |
n字节 |
控制帧的数据部分,此字段的长度是可变的。 |
FCS |
4字节 |
FCS(Frame Check Sequence),帧校验序列,32位CRC校验。是对控制类型和控制数据两个字段进行CRC校验得到的。 |
五、RPR公平算法帧格式
+0---------------7---------------15---------------23---------------31
| TTL | basecontrol | SMAC(6 bytes) |
+---------------------------------- |
+--------------------------------------------------------------------
| fairnessHeader (2 bytes) | fairRate(2 bytes) |
+--------------------------------------------------------------------
| FCS(4 bytes) |
+-------------------------------------------------------------------+
六、RPR公平算法帧格式解释
字段 |
长度 |
描述 |
---|---|---|
TTL |
1字节 |
TTL(Time to Live),TTL的值决定数据帧在RPR环网上被转发的最大跳数。每经过一个节点,TTL值被减1,当TTL等于0时,数据帧被丢弃。这种机制可以防止数据帧在环网上被无限制的循环转发。 |
baseControl |
1字节 |
包含选环信息、公平算法控制信息、帧类型、流类型(服务级别)、Wrap控制信息和奇偶校验位。 |
SMAC |
6字节 |
当前节点或者拥塞节点的MAC地址。 |
fairnessHeader |
2字节 |
公平算法头:
|
fairRate |
2字节 |
量化的速率,16比特。 |
FCS |
4字节 |
FCS(Frame Check Sequence),帧校验序列,32位CRC校验。校验时不包含TTL和基本环控制字段。 |
七、RPR Idle帧格式
Idle帧用于调整节点间的速率同步,在相邻的两个节点之间进行点对点传输。
+0---------------7---------------15---------------23---------------31
| TTL | basecontrol | SMAC(6 bytes) |
+---------------------------------- |
+--------------------------------------------------------------------
| idlePayload(4 bytes) |
+--------------------------------------------------------------------
| FCS(4 bytes) |
+-------------------------------------------------------------------+
八、RPR Idle帧格式解释
字段 |
长度 |
描述 |
---|---|---|
TTL |
1字节 |
TTL(Time to Live),TTL的值决定数据帧在RPR环网上被转发的最大跳数。每经过一个节点,TTL值被减1,当TTL等于0时,数据帧被丢弃。这种机制可以防止数据帧在环网上被无限制的循环转发。 |
baseControl |
1字节 |
包含选环信息、公平算法控制信息、帧类型、流类型(服务级别)、Wrap控制信息和奇偶校验位。 |
SMAC |
6字节 |
当前节点或者拥塞节点的MAC地址。 |
idlePayload |
4字节 |
负荷域,默认为全0,接收端忽略此字段。 |
FCS |
4字节 |
FCS(Frame Check Sequence),帧校验序列,32位CRC校验。校验时不包含TTL和基本环控制字段。 |
九、RPR参考标准
标准 |
描述 |
---|---|
IEEE 802.17 |
IEEE Standard for Information technology--Telecommunications and information exchange between systems Local and metropolitan area networks--Specific requirements Part 17: Resilient packet ring (RPR) access method and physical layer specifications |
发表评论