Skip to main content

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)                         |
+-------------------------------------------------------------------+
字段 长度 描述
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(十进制)时表示数据载荷的协议类型。“数据”字段承载的协议和“协议类型”字段取值的对应关系如下:0x0800: IPv40x86dd: IPv60x8847: Tag Unicast0x8848: Tag Multicast0x0806: ARP (Address Resolution Protocol)
serviceDataUnit n字节 业务数据单元,此字段的长度是可变的。
FCS 4字节 FCS(Frame Check Sequence),帧校验序列,32位CRC校验。是对协议类型和数据两个字段进行CRC校验得到的。

控制帧

+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)                         |
+-------------------------------------------------------------------+
字段 长度 描述
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标准定义了如下几种控制帧:0x01: Attribute Discovery (ATD) frame,节点属性发现帧0x02: Topology and protection Protocol (TP) frame,拓扑与保护协议帧0x03: Topology and protection checksum (TC) frame,拓扑校验帧0x04: Link Round-Trip time measurement (LRTT) request frame,链路往返时间测量请求帧0x05: Link Round-Trip Time measurement (LRTT) response frame,链路往返时间测量响应帧0x06: Fairness Differential Delay (FDD) frame,公平差异时延帧0x07: OAM echo request frame,OAM回声请求报文0x08: OAM echo response frame,OAM回声响应报文0x09: OAM flush frame,OAM泛洪帧0x0A: OAM organization specific frame,OAM组织私有帧0x0B: OAM SAS notify frame,OAM SAS通告帧0x0C: PIRC mate status notify frame,PIRC mate状态通告帧All others: Reserved,保留
controlVersion 1字节 控制类型字段对应的版本号。用于标识控制帧的版本。对于所有控制类型,此字段都初始化为0。
controlDataUnit n字节 控制帧的数据部分,此字段的长度是可变的。
FCS 4字节 FCS(Frame Check Sequence),帧校验序列,32位CRC校验。是对控制类型和控制数据两个字段进行CRC校验得到的。

公平算法帧

+0---------------7---------------15---------------23---------------31
|       TTL     |   basecontrol |           SMAC(6 bytes)       |
+----------------------------------                                 |
+--------------------------------------------------------------------
|     fairnessHeader (2 bytes)   |       fairRate(2 bytes)         |
+--------------------------------------------------------------------
|                             FCS(4 bytes)                         |
+-------------------------------------------------------------------+
字段 长度 描述
TTL 1字节 TTL(Time to Live),TTL的值决定数据帧在RPR环网上被转发的最大跳数。每经过一个节点,TTL值被减1,当TTL等于0时,数据帧被丢弃。这种机制可以防止数据帧在环网上被无限制的循环转发。
baseControl 1字节 包含选环信息、公平算法控制信息、帧类型、流类型(服务级别)、Wrap控制信息和奇偶校验位。
SMAC 6字节 当前节点或者拥塞节点的MAC地址。
fairnessHeader 2字节

公平算法头:

Version=0:Single Choke Fairness,每个公平算法周期发送一个,点对点传输。

Version=1:Muti Choke Fairness,每10个公平算法周期发送一个,广播传输。

fairRate 2字节 量化的速率,16比特。
FCS 4字节 FCS(Frame Check Sequence),帧校验序列,32位CRC校验。校验时不包含TTL和基本环控制字段。

Idle帧

Idle帧用于调整节点间的速率同步,在相邻的两个节点之间进行点对点传输。

Idle帧格式
+0---------------7---------------15---------------23---------------31
|       TTL     |   basecontrol |           SMAC(6 bytes)       |
+----------------------------------                                 |
+--------------------------------------------------------------------
|                           idlePayload(4 bytes)                   |
+--------------------------------------------------------------------
|                             FCS(4 bytes)                         |
+-------------------------------------------------------------------+
字段 长度 描述
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和基本环控制字段。

参考标准

标准 描述
IEEE 802.17 IIEEE 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