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和基本环控制字段。 |
参考标准
| 标准 | 描述 |
|---|---|
| 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 |
No comments to display
No comments to display