RPR技术白皮书
Copyright © 2022 新华三技术有限公司 版权所有,保留一切权利。
非经本公司书面许可,任何单位和个人不得擅自摘抄、复制本文档内容的部分或全部,并不得以任何形式传播。
除新华三技术有限公司的商标外,本手册中出现的其它公司的商标、产品标识及商品名称,由各自权利人拥有。
本文中的内容为通用性技术信息,某些信息可能不适用于您所购买的产品。
目 录
RPR(Resilient Packet Ring,弹性分组环)是IEEE 802.17工作组标准化的一种新的MAC(Medium Access Control,介质访问控制)层技术,是工作在OSI协议第二层的协议。RPR技术集IP的智能化、以太网的经济型和SONET/SDH的高带宽、高可靠性于一身,提供了一套高效、灵活的IP网络解决方案。
RPR采用逆向双环结构,数据沿环网在站点之间进行转发,如图2-1所示。
图2-1 RPR环网结构示意图
· 域:由可在RPR双环中传输RPR相关协议报文的设备组成。
· 0环:RPR双环中,数据帧沿顺时针方向发送的环称为0环,也称外环(Outer Ring)。
· 1环:RPR双环中,数据帧沿逆时针方向发送的环称为1环,也称内环(Inner Ring)。
· 站点(Station):RPR环网上的设备,负责接收和转发数据帧。
· 链路(Link):连接相邻站点的单向通道。
· 西向接口:在0环上接收数据帧、在1环上发送数据帧的物理接口。
· 东向接口:在0环上发送数据帧、在1环上接收数据帧的物理接口。
· 段(Span):RPR环网上两个相邻站点之间的链路,由方向相反的两条链路组成。
· 边(Edge):当段或与段相邻的站点出现故障时,该段不能转发数据帧。此时,该段称为边。
· 环状态:分为闭环和开环。不存在边的环为闭环,存在边的环为开环。
RPR接口从形态上可分为逻辑接口和物理接口两类。
RPR站点由西向和东向这两种RPR物理接口构成,芯片出厂时这两个接口被固定为一对,若其中一个损坏,整个站点就会不可用。如果设备支持RPR逻辑接口,任意两个RPR物理接口就可与一个RPR逻辑接口绑定成为一个RPR站点,当其中一个RPR物理接口损坏时,可再与其它RPR物理接口绑定;同时,用户对RPR逻辑接口所作的配置也将同步到RPR物理接口上,从而简化了配置过程。
RPR逻辑接口用来帮助实现RPR功能,它包括两种类型:RPR-Bridge接口和RPR-Router接口,前者属于二层RPR逻辑接口,而后者则属于三层RPR逻辑接口
一个完整的RPR站点要正常工作,必须进行下列操作:
(1) 创建RPR逻辑接口。
(2) 把RPR逻辑接口与RPR物理接口进行绑定:
¡ 站点对应的RPR逻辑接口要与两个RPR物理接口进行绑定。对于RPR物理接口来说,它也必须与RPR逻辑接口进行绑定后才能参与RPR环的数据转发。
¡ 任意类型的RPR物理接口都可以与RPR逻辑接口进行绑定,但是绑定到同一RPR逻辑接口的RPR物理接口的类型必须相同。
在运行RPR业务时,主要用到四种报文帧格式:数据帧、控制帧、公平帧和空闲帧。
数据帧是用来承载来自RPR环网外的数据的帧。站点将外部数据直接放到payload中,并加上RPR报文头进行封装。
协议中规定数据帧包含两种帧格式:基本帧和扩展帧,如图2-2和图2-3所示。
基本帧通常用于三层单播报文转发。
扩展帧用于三层组播、三层广播、二层报文数据转发。
基本帧和扩展帧中各字段含义如下:
· ttl:1字节,在传输单播报文时,它的值是源站点到目的站点的跳数,每经过一个站点,ttl值自动减1。在传输组播和广播报文时,它的值是最大值255,确保每个站点都能收到一份报文。当一个站点收到一个ttl为1的RPR报文时,会把此报文从环上剥离下来。
· baseControl:1字节,格式如图2-4所示,各字段的含义见表2-1。
表2-1 baseControl字段含义表
字段 |
长度 |
含义 |
ri(ringlet identifier) |
1比特 |
标识此报文最初是在哪个环路传输,0代表0子环,1代表1子环 |
fe(fairness eligible) |
1比特 |
标识此报文是否要受到公平算法限制,0代表不受公平算法限制,1表示受到平算法限制 |
ft(frame type) |
2比特 |
标识此报文的类型,00代表空闲帧,01代表控制帧,10代表公平帧,11代表数据帧 |
sc(service class) |
2比特 |
标识此报文的流量类型,00代表C类报文,01代表B类报文,10代表A1类报文,11代表A0类报文 |
we(wrap eligible) |
1比特 |
标识此报文是否可wrap,0代表不可wrap,1代表可wrap。wrap表示报文可跨子环传输 |
parity |
1比特 |
奇偶校验位。它对数据帧和控制帧不起作用,只对公平帧和空闲帧有用,因为公平帧和空闲帧没有对帧头进行保护的hec校验字节。当ttl和baseControl字节的各bit相加等于奇数时,parity位置1,反之为0。对于数据帧和控制帧,parity位作为保留位,置0 |
· da:6字节,数据帧中的以太网报文的目的MAC地址。可以是单播地址也可以是组播或广播地址。
· sa:6字节,源站点的MAC地址。只能为单播地址。
· ttlbase:1字节,ttl的初始值。在报文传输时,ttlbase的值不变,接受方可以通过ttlbase与ttl之差计算它们之间的跳数,形成或修改它自己的拓扑。
· extendedControl:1字节,格式如图2-5所示,各字段的含义见表2-2。
表2-2 extendedControl字段含义表
字段 |
长度 |
含义 |
ef(extended frame) |
1比特 |
标识此帧是否是扩展帧,0表示是扩展帧,1表示是基本帧 |
fi(flooding indication) |
2比特 |
标识此帧是否是flooding帧,00表示不是flooding帧,01表示是单向flooding帧,10表示是双向flooding帧,11保留。flooding帧在RPR环中以组播报文形式进行转发 |
ps(passed source) |
1比特 |
源站点发出的报文其ps位置0。当环路发生故障,报文发生Wrap从另一条环路再次经过源站点,ps位置1。 |
so(strict order) |
1比特 |
标识此帧是否是严格顺序帧。当此位为1时,站点接收或传输此数据帧时,必须按照严格顺序接收或传输。若为0,则可以不按照严格顺序接收或传输 |
res(reserve) |
3比特 |
保留位,未使用 |
· hec(header error check):2字节,它是ttl、baseControl、ttlbase、extendedControl字段的校验和。
· daExtended:6字节,数据帧中的以太网报文的目的MAC地址。
· saExtended:6字节,数据帧中的以太网报文的源MAC地址。
· protocolType:2字节,其值大于或等于0x600时,表示payload中的报文类型;小于0x600时,表示整个帧长度。
· serviceDataUnit:数据帧中的以太网报文。
· fcs(frame check sequence):4字节,payload的校验和。
控制帧主要用于RPR环网的拓扑发现、站点状态和属性信息的传输、进行公平算法等。
控制帧只在环上各站点间相互发送,控制帧格式如图2-6所示。
· controlType:1字节,控制帧类型。目前,控制帧共有9种类型,详细介绍参见表2-3。
字段取值 |
控制帧类型 |
作用 |
特点 |
0x01 |
ATD(Attribute Discovery,属性发现)帧 |
传递站点之间的属性 |
广播报文,不可Wrap,TTL=255,A0类型 |
0x02 |
TP(Topology Protection,拓扑保护)帧 |
用于拓扑发现,传递本站点的保护倒换模式、保护倒换状态等信息 |
广播报文,不可Wrap,TTL=255,A0类型 |
0x03 |
TC(Topology Checksum,拓扑校验和)帧 |
校验邻居站点和本站点TP帧数据是否匹配,以判断环网信息是否稳定 |
广播报文、不可Wrap、TTL=1,A0类型 |
0x04 |
LRTT(Loop Round-trip Time,绕环时间)请求帧 |
与LRTT响应帧配合使用,用来测量环网中所有站点之间控制帧的传输时延 |
单播报文,不可Wrap,TTL=255,A0类型 |
0x05 |
LRTT响应帧 |
- |
单播报文,不可Wrap,TTL=255,A0类型 |
0x06 |
(暂不支持)FDD帧 |
- |
- |
0x07 |
Echo请求帧 |
与Echo响应帧配合使用,用来测试指定两个站点之间的连通性 |
- |
0x08 |
Echo响应帧 |
- |
- |
0x09 |
Flush帧 |
测试RPR环网的完整性和连通性 |
- |
· controlVersion:1字节,与controlType相应的版本号,暂时未使用,值为全零。
· controlDataUnit:控制帧的数据体,不同控制帧该字段结构不同。
TP帧用于拓扑发现,传递本站点的保护倒换模式、保护倒换状态等信息。
TP帧的发送分为快周期(典型值为10ms)和慢周期(典型值为100ms),当拓扑信息变化时,先以快周期发送8个TP帧(可通过命令行修改发送次数),再以慢周期发送。
TP帧的controlDataUnit字段为2字节,结构如图2-7所示,含义见表2-4。
图2-7 controlDataUnit(TP帧)
表2-4 controlDataUnit(TP帧)
字段 |
长度 |
含义 |
esw(edge state,west) |
1比特 |
发送该控制帧的站点西向接口侧是否为边,1表示该站点已有故障,并进入Wrapping保护倒换模式,0表示站点西向接口侧无故障 |
ese(edge state, east) |
1比特 |
发送该控制帧的站点东向接口侧是否为边,1表示该站点已有故障,并进入Wrapping保护倒换模式,0表示站点东向接口侧无故障 |
psw(protection state, west) |
3比特 |
站点西向接口侧的保护倒换状态。000表示IDLE状态,001表示WTR状态,010表示MS状态,011表示SD状态,100表示SF状态,101表示FS状态 |
pse(protection state, east) |
3比特 |
站点东向接口侧的保护倒换状态。000表示IDLE状态,001表示WTR状态,010表示MS状态,011表示SD状态,100表示SF状态,101表示FS状态 |
wc(wrap protection configured) |
1比特 |
站点配置的保护倒换模式,1表示Wrapping保护倒换模式,0表示Steering保护倒换模式 |
jp(jumbo frame preferred) |
1比特 |
指示本站点是否支持Jumbo报文 |
seqnum(sequence number) |
6比特 |
TP帧序列号。TP帧序列号用来识别不同的TP帧,如果站点接收到序列号相同的多个TP帧,则站点丢弃后收到的TP帧。拓扑发生变化时,站点会快发TP帧,快发TP帧的序列号依次递增。当拓扑稳定后,快发变成慢发,此时的TP帧序列号不变,序列号为最后一个快发TP帧的序列号 |
用于校验邻居站点和本站点TP帧数据是否匹配,以判断环网信息是否稳定。
TC帧的发送分为快周期(典型值为10ms)和慢周期(典型值为100ms)。当拓扑数据库信息变化时,先以快周期发送4个TC帧,再以慢周期发送。
TC帧的controlDataUnit字段为5字节,结构如图2-8所示。
图2-8 controlDataUnit(TC帧)
· checksumStatus:1字节,标识checksum是否有效。如果最后1比特的值为1,则表示checksum有效,如果最后1比特的值为0,则表示checksum无效。
· checksum:4字节,用于校验邻居站点和本站点TP帧数据。
ATD帧可以同时广播本站点的多个属性,属性字段长度不固定,支持通告的属性见表2-5。
表2-5 ATD帧支持通告的属性
属性 |
属性字段长度 |
站点权重 |
2字节 |
A0保留带宽 |
4字节 |
公平算法设置/MCFF配置 |
1字节 |
站点的ASCII名称 |
0-127字节 |
站点IP地址 |
5或17字节 |
接口的索引值 |
4字节 |
站点Secondary MAC地址 |
12字节 |
用户自定义ATD帧 |
4-1023字节 |
LRTT帧分为请求帧和响应帧两种,用来测量环网中所有站点之间控制帧的传输时延。当环网拓扑稳定后传输时延是固定的,单位为微秒。
LRTT帧的controlDataUnit字段为12字节,结构如图2-9所示。
图2-9 controlDataUnit(LRTT帧)
latencyTimestamp:4字节,站点发送LRTT请求帧的时间。
tailLatencyIn:4字节,LRTT请求帧进入响应站点的时间。
tailLatencyOut:4字节,站点收到请求帧后,发送LRTT响应帧的时间。
OAM帧包括:Echo帧和Flush帧。
Echo帧分为Echo请求帧和Echo响应帧,用来测试指定两个站点之间的连通性,并进行故障点的定位。如果目的站点可以收到源站点在指定子环上发送的Echo请求帧,且源站点也可以收到目的站点在指定子环上发送的Echo响应帧,则会认为源站点与目的站点在指定子环上连通,否则就认为出现故障。
Flush帧用于测试RPR环网的完整性和连通性。
公平帧是RPR进行公平算法计算时使用的帧。在环网发生拥塞时发出,只传输给最近的站点或在全环内广播。
公平帧属于A0类报文,格式如图2-10所示。
· saCompact:6字节,报文传输方向上游站点的MAC地址。
· fairnessHeader:2字节,标识公平帧的类型,公平帧的类型有单播和组播。
· fairRate:2字节,拥塞时表示为站点的上环速率,不拥塞时值为全F。
当环网站点之间的报文发送速率有差异时,可以通过空闲帧来调整速率。
为了保证每个站点发送流量的速率相同,发送速率快的站点插入较多空闲帧,发送速率慢的站点插入较少空闲帧;从而实现整个环网相同的速率。
空闲帧属于A0类报文,格式如图2-11所示。
idlePayload:4字节,值为全零。
空闲帧的发送有两种频率:低频率和高频率。在PTQ(高优先级过环队列)中设置了队列深度门限。当PTQ中缓存的报文数量超过该门限时,按照低频率发送空闲帧;当PTQ中缓存的报文数量低于该门限时,按照高频率发送空闲帧。
RPR采用共享带宽方式实现各站点对带宽资源的利用。当数据流量较小的情况下,RPR可以满足所有站点流量上环的需求。但是当流量较大的时候,往往会出现链路过载、流量拥塞的情况,流量对链路带宽占用需求不能得到完全满足。在这种情况下,有些站点可能会利用自身位置优势或时间优势,过多地霸占带宽,影响其他站点对带宽的占用。
为了保证在拥塞或超载等情况下各站点能够公平地享用带宽,RPR提供了公平算法,以实现带宽的公平共享和调度。
站点间通过控制帧传递公平算法所需的各项信息,包括允许速率、建议速率、策略指示等。公平算法包括确定站点是否拥塞、通告本站点的上环速率、确定本站点允许上环的速率三个部分。
当一个站点上发生拥塞时,该站点将通过与传送数据相反方向的子环发送公平帧,向上游站点通告一个拥塞速率,当上游站点收到拥塞速率时,会将该站点的上环速率调整成拥塞速率,此时若该站点未发生拥塞,该站点会将这个拥塞速率继续向上游站点通告;若该站点也发生了拥塞,该站点会将自己的拥塞速率和收到的拥塞速率进行比较,将最小的拥塞速率继续向上游站点通告。随后各个站点会根据公平算法继续调节本站点的上环速率,直到环网不拥塞且带宽利用率最高。
RPR的公平算法在两个子环上的计算是互不干扰的,但当环路发生拥塞时,需要利用另一个子环传输公平帧进行控制。例如,在0环上流量发生拥塞,则在发生拥塞的站点就需要在1环上向上游站点传输拥塞控制信息,降低各站点的上环数据速率,疏导拥塞。
公平算法支持根据站点配置的权重比来分配带宽和调整上环速率。
在环网拥塞时,站点间会根据配置的权重大小来调整上环速率,权重大的站点调整后的上环速率就大。若站点根据权重比分配的带宽比实际上环速率大时,站点则使用实际的上环速率。
如图2-12所示,链路总带宽为10Gbps,A站点发送6Gbps的上环流量,B站点发送5Gbps的上环流量,C站点发送2Gbps的上环流量至D站点。
不同权重分配的情况,上环速率调整结果不一样,具体情况如下:
· 若没有公平算法,站点将优先保证不拥塞站点的过环流量,所以A站点的上环速率为6Gbps,B站点的上环速率为4Gbps,C站点的上环速率为0Gbps。
· 若A、B、C权重配置为5W、4W、1W,根据权重比分配带宽后,A站点的上环速率调整为5Gbps,B站点的上环速率调整为4Gbps,C站点的上环速率调整为1Gbps。
· 若A、B、C权重配置均为W时,根据权重比分配后的带宽,A、B、C站点上环速率应该调整为3.3Gbps,但由于C站点实际上环速率为2Gbps,则C站点的上环速率仍为2Gbps,A和B站点根据权重比分配带宽后,A站点的上环速率调整为4Gbps,B站点的上环速率调整为4Gbps。
如图2-12所示,链路总带宽为2.5Gbps,流量通过外环传送,A、B、C站点分别有1000Mbps的上环流量发送至D站点。
(1) B和C站点分别发送1000Mbps流量至D站点,在CD段上流量达到2Gbps,但仍小于2.5Gbps,未发生拥塞。
(2) A站点向D站点发送1000Mbps的流量,CD段流量达到3Gbps,超过2.5Gbps,造成拥塞。
(3) C站点根据链路带宽本地计算,立即将本地上环的流量降为500Mbps,同时通过内环方向发送公平帧给B,传递拥塞和公平算法信息。
(4) 由于B站点不拥塞,B站点收到公平帧后,会根据公平算法立即降低本地上环的流量为500Mbps,同时B站点继续向上游A站点发送公平帧。
(5) 由于A站点不拥塞,A站点收到公平帧后,会根据公平算法立即降低本地上环的流量为500Mbps,同时A站点继续向上游站点发送公平帧。
(6) 随后,A、B、C站点会根据公平算法,将上环流量逐渐上升到833Mbps(2.5Gbps/3),实现公平享用带宽。
RPR把业务流量按优先级从高到低分为三类:A类、B类和C类。
· A类分为A0子类和A1子类:
¡ A0类业务,预留环上带宽,且环上发生流量拥塞时,即使A0类的预留带宽没有被完全占用也不能被低优先级业务占用。
¡ A1类业务,与RPR配置的A0业务流量预留带宽有关。若带宽没有被完全利用则可以被低优先级业务占用。当A0类报文超过预留带宽后会自动降为A1类报文,而A1类报文不能够占用B、C类报文的带宽。也就是说,用户A类报文先占用预留带宽(A0类报文带宽),如果带宽不够再占用A1类报文带宽,如果A1类报文带宽也依旧不够,则将多余部分丢弃。
· B类业务分为B-CIR(承诺信息速率)业务和B-EIR(突发信息速率)业务。如果实际传送的B类业务流量超过了预先设置的速率限制,则超出部分成为B-EIR业务,其它的为B-CIR业务。B-EIR业务占用C类带宽,要受到公平算法控制,与C类业务完全相同。
· C类业务级别最低,受到公平算法控制。
表2-6 业务流量类型
业务类型 |
描述 |
|
A类 |
A0 |
预留带宽,带宽不能回收,时延小,不受公平算法限制 |
A1 |
保证带宽,带宽可以回收,时延小,不受公平算法限制 |
|
B类 |
B-CIR |
保证带宽,带宽可以回收,时延稍大,不受公平算法限制 |
B-EIR |
不保证带宽,带宽可以回收,时延抖动大,受公平算法限制 |
|
C类 |
不保证带宽,带宽可以回收,时延抖动大,受公平算法限制 |
· A0预留带宽的意思是本站点预留给过环和上环的A0流量的带宽,同时不能被其他类型流量所占有。
· A1、B-CIR保证带宽的意思是当A1、B-CIR、B1、C同时占用带宽时,优先保证A1和B-CIR的流量。
· 带宽回收只针对在该站点过环的流量而不是该站点上环的流量。比如,A1带宽能被过环的C类流量占用,但C类流量不能在上环时使用A1类带宽。
· 不受公平算法限制是指在RPR采用公平算法计算各站点上环流量时,该类带宽不在计算范围内。
· 时延大小是指站点转发流量的时间。
· IPv4报文由DSCP值来区分优先级,0-1对应C类,2-3对应B类,4-7对应A类。
· MPLS报文由exp值来区分优先级,0-1对应C类;2-3对应B类;4-7对应A类。
· IPv6报文由TC值来区分优先级,0-1对应C类;2-3对应B类;4-7对应A类。
站点根据业务类型为上环的流量提供了若干个缓存队列,分别如下:
· A0类业务上环队列
· A1类业务上环队列
· B-CIR类业务上环队列
· B-EIR类业务上环队列
· C类业务上环队列
· 站点产生的空闲帧上环队列
· 站点产生的TP帧上环队列
· 站点产生的控制帧(TC,ATD)上环队列
站点为了保证A类流量的低时延采用了双队列模式,即PTQ(高优先级过环队列)和STQ(低优先级过环队列)。过环的A类业务通过PTQ缓存,过环的B类和C类业务通过STQ缓存,A级流量的缓存调度不受B、C级流量的影响,可以有效地保证高优先级、低时延的业务。
站点会根据调度优先级高低,优先去调度并发送高优先级的流量。
在带宽不拥塞的情况下,站点对各种流量的调度优先级从高到低依次为:
(1) 过环的公平帧
(2) 站点产生的空闲帧
(3) 站点产生的TP帧
(4) 过环的A类(A0、A1)高优先级报文
(5) 站点产生的控制帧(TC,ATD)
(6) 上环的A类(A0、A1)高优先级报文
(7) 上环的B-CIR中优先级报文
(8) 上环的B-EIR、C低优先级报文
(9) 过环的中低优先级报文
当PTQ缓存的报文数量达到将要丢包时,站点对各种流量的调度优先级从高到低依次为:
(1) 过环的公平帧
(2) 站点产生的空闲帧
(3) 过环的A0、A1高优先级报文
(4) 站点产生的TP帧
(5) 站点产生的控制帧(TC,ATD)
(6) 上环的A0、A1高优先级报文
(7) 上环的B-CIR中优先级报文
(8) 上环的B-EIR、C低优先级报文
(9) 过环的中低优先级报文
当STQ缓存的报文数量达到将要丢包时,站点对各种流量的调度优先级从高到低依次为:
(1) 过环的公平帧
(2) 站点产生的空闲帧
(3) 站点产生的TP帧
(4) 过环的A0、A1高优先级报文
(5) 站点产生的控制帧(TC,ATD)
(6) 过环的中低优先级报文
(7) 上环的A0、A1高优先级报文
(8) 上环的B-CIR中优先级报文
(9) 上环的B-EIR、C低优先级报文
RPR通过拓扑发现来收集环网站点的数目、环状态和站点之间的排列顺序等信息,生成拓扑数据库。当环网拓扑稳定后,对应的拓扑数据库不再变化。
每个RPR站点都会维护一个拓扑数据库,该库中保存着整个RPR环网的拓扑信息,是站点生成选环表的主要依据。拓扑数据库包含三个部分:
· 环网的拓扑信息,如站点个数、环状态和可用带宽等。
· 本站点的拓扑信息,如MAC地址、保护类型、站点保护状态、站点名称、本站点的拓扑信息校验和以及邻居站点的拓扑信息校验和等。
· 其它站点的拓扑信息,如MAC地址、有效状态、可达状态、保护类型、站点索引、预留带宽以及站点名称等。
在RPR的拓扑发现过程中,主要通过TP帧、ATD帧和TC帧来传播拓扑信息:
· TP帧用来广播各站点的配置和状态信息,其它站点则根据收到的TP帧来更新自己的拓扑数据库,最后使得同一环上每个站点都拥有相同的拓扑信息。
· ATD帧用来传递站点的MAC地址、名称等属性信息,这些属性信息也会保存在拓扑数据库中。
· TC帧用来在相邻站点间传递拓扑信息校验和,用于校验邻居站点和本站点的拓扑数据库是否匹配,以判断RPR环网拓扑是否稳定。
这三种帧都是周期性发送的,且周期长度都可以进行配置。其中,TP帧和TC帧有快、慢两种发送周期
RPR的拓扑发现过程为:
(1) 当环上站点初始化时,先创建一个只包含自己信息的拓扑数据库,并在0环和1环同时发送TP帧(快周期)和ATD帧,迅速将网络拓扑信息传遍整个网络。其他站点接收到TP帧后,更新自己的拓扑数据库,并同时也在两个子环发送自己的TP帧(快周期)和ATD帧。站点以快周期发送8个TP帧后,再以慢周期发送。
(2) 当环网拓扑稳定并收敛后,将触发TC帧的快速发送。站点以快周期发送4个TC帧后,再以慢周期发送。
(3) 拓扑发生如下变化时,RPR的拓扑变化感知过程为:
¡ 当一个新站点加入,该站点会发送TP帧,其他站点会通过接收新站点发送的TP帧判断有站点进入环路。其他站点接收到TP帧后,更新自己的拓扑数据库,并同时在两个子环发送自己的TP帧和ATD帧直到环网拓扑稳定并收敛。
¡ 当链路出现故障时,位于链路两边的站点会通过TP帧向环上站点通知出现故障。
¡ 当站点信息(如MAC地址、名称等属性)变化时,会触发ATD帧的立即发送,然后站点再以用户配置的周期定时发送。
每个RPR站点都会维护选环表,并根据选环表中的内容来决定到环上某个目的站点的数据帧从哪个子环发送,即决定该数据帧的发送路径。选环表条目包括目的站点MAC地址、数据帧从哪个子环发送等信息。RPR选环表有以下几种:
· 静态选环表:由用户手工配置。
· 动态选环表:RPR协议根据拓扑数据库的内容动态生成的选环表,又称最短路径选环表。
· 默认选环表:该表中指定了数据帧的缺省发送子环。
· 综合选环表:该表由静态选环表、动态选环表和默认选环表综合而成,站点在发送数据帧时将在综合选环表中查找到目的MAC的发送路径:
¡ 在闭环情况下,静态选环表的优先级最高。对于指定环上的目的站点,如果已经配置了有效的静态选环表,静态选环表条目将加入到综合选环表中。
¡ 如果没有配置静态选环表,则将动态选环表中的最短路径(最短路径由源站点到目的站点的跳数决定)将加入到综合选环表中。
¡ 当动态选环表中存在两条最短发送路径时,将根据默认选环表生成最终发送路径,并将该路径加入到综合选环表中。
¡ 当RPR环中有链路发生故障而处于开环状态时,综合选环表只由动态选环表生成。
在RPR环网中,站点与环配合完成数据操作,操作方式包括以下四种:
· 上环(Insert):站点将来自RPR环网外的数据帧插入到RPR环网的数据流中。
· 过环(Transit):站点将RPR环网上途经本站点的数据帧转发给下一个站点。
· 下环(Copy):站点从RPR环网的数据流中接收数据帧,并将数据帧复制一份给与本站点上层作相应处理。下环操作并不会终止数据帧在RPR环网上的转发。
· 剥离(Strip):站点删除数据帧,终止其在RPR环网上的转发。
各站点分别采用上述基本数据操作及其组合来提供对单播、广播、组播以及未知单播的支持。
图2-13 RPR单播实现示意图
如图2-13所示,RPR对单播数据帧的转发方式如下:
(1) 源站点对以太网报文执行上环操作,进行RPR报文的封装,数据帧中的目的MAC地址为以太网报文中的目的MAC地址,数据帧中源MAC地址为源站点的MAC地址,然后根据数据帧中目的MAC地址查找MAC地址表找到目的站点的MAC地址,根据目的站点的MAC地查找选环表将其发送至0环或1环中。
(2) 在数据帧途径的每个中间站点,都对其执行过环操作。
(3) 当数据帧到达目的站点或其TTL值变为0时,对其执行下环和剥离操作。
可以看到,对于单播流量,RPR采取的是目的站点剥离方式,不同于传统环网技术的源站点剥离。目的站点剥离能够有效提高带宽的利用率,使得带宽的空间重用技术更高效。
图2-14 RPR广播、组播和未知单播实现示意图
如图2-14所示,RPR对广播数据帧、组播数据帧和未知单播数据帧的转发方式都相同,具体如下:
(1) 源站点对以太网报文执行上环操作,进行RPR报文的封装,数据帧中的目的MAC地址为以太网报文中的目的MAC地址,数据帧中源MAC地址为源站点的MAC地址,然后根据数据帧中目的MAC地址查找MAC地址表找到目的站点的MAC地址,根据目的站点的MAC地查找选环表将其发送至0环或1环中。
(2) 在数据帧途径的每个站点,只要其TTL值不为0,就都对其执行数据过环和下环操作;
(3) 当数据帧返回到源站点或其TTL值变为0时,对其执行剥离操作。
RPR故障自愈能力非常强,其保护机制可实现事件检测、快速自愈,以及在光纤或站点故障后业务快速恢复,从而使网络能够迅速检测到故障并作出适当反应,保证业务在50ms内可以快速恢复。RPR支持的故障响应方式为保护倒换。当站点不再具有转发数据帧的能力,比如掉电或光纤断开等原因造成的故障,站点就需要进入保护倒换。
保护倒换可分为以下两种模式:
· Wrapping模式:当RPR环网上的某段链路或某个站点发生故障时,故障点两端的两个站点自动环回(即把0环和1环连在一起),形成一个闭合单环。该模式可保证站点快速倒换,数据帧基本不会丢失,但比较浪费带宽。
· Steering模式:当RPR环网上的某段链路或某个站点发生故障时,故障点两端的两个站点先更新自己的拓扑数据库,再快速发送TP帧给RPR环网上的其它站点,其它站点根据收到的拓扑信息更新拓扑数据库,此后,各站点将按照新的拓扑发送数据帧。该模式避免了带宽的浪费,但由于需要重新收敛,恢复时间较长,可能会造成一些业务的中断以及部分数据帧的丢失。
如图2-15所示,正常情况下,数据通过0环由Station D传输到Station B,传输路径为Station D—Station E—Station A—Station B。当Station A与Station E之间的链路发生故障后,进行保护倒换:
· 在Wrapping模式下,故障点两端的两个站点(Station A和Station E)上分别进行自动环回,新的数据传输路径为Station D—Station E—Station D—Station C—Station B—Station A—Station B。
· 在Steering模式下,数据将直接切换到另一个环(本例中是1环)上进行传输,新的数据传输路径为Station D—Station C—Station B。
RPR的保护倒换包括六个状态,按照其对应的优先级从高到低的顺序依次为:
· FS(Forced Switch):强制倒换
· SF(Signal Fail):信号失败,与当前物理状态相关
· SD(Signal Degrade):信号衰减,与当前物理状态相关
· MS(Manual Switch):手工倒换
· WTR(Wait to Restore):等待恢复
· IDLE:空闲
保护倒换发生的条件是保护请求,即只有环上站点发出保护请求时,RPR环才会进行保护倒换。保护请求的取值和优先级与保护倒换一致。其中,FS和MS是手工配置的保护请求,SF、SD和WTR是自动保护请求。若多个保护请求同时发生,优先级较高的将被优先处理,譬如:
· 当站点发出MS保护请求时,若环上存在优先级更高的保护请求,MS保护请求将不被处理。
· 当由于链路故障引发SF或SD等自动保护请求时,若当前链路已存在人工保护请求FS,由于FS保护请求的优先级比SF和SD高,因此SF和SD保护请求不能被立即执行,只有FS保护请求被清除后,SF和SD保护请求才能被处理。