空间复用协议技术.docx
- 文档编号:10987920
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:85
- 大小:392.51KB
空间复用协议技术.docx
《空间复用协议技术.docx》由会员分享,可在线阅读,更多相关《空间复用协议技术.docx(85页珍藏版)》请在冰豆网上搜索。
空间复用协议技术
空间复用协议技术
1.0简介
空间复用协议(SRP)由思科开发,用于基于环路的媒介。
该协议的名称来源于数据包处理过程的空间复用属性。
SRP是在思科动态数据包传输(DPT)产品系列中使用的一项基本技术。
DPT是下一代传输技术-为基于数据包的光传输而优化。
这种光传输技术结合了IP路由的有效带宽和业务丰富的功能以及光环路的丰富带宽和自恢复功能,以提供优越于现有解决方案的基本成本和功能优势。
该白皮书介绍了SRP和环路技术,包括MAC层定义和算法,基本的环路带宽控制和保护交换。
还阐述了实施方案和初期的思科产品。
另一份白皮书将重点阐述技术的应用、经济性以及网络规划和部署意义。
2.0SRP背景
SRP使用双向双计数器轮转环路拓扑结构。
环路也称为"内环"和"外环",如图1所示。
这两种环路同时用于传输数据和SRP控制数据包。
SRP控制数据包处理拓扑结构发现、保护交换和带宽控制等任务,将在本文中稍后进行详细讨论。
控制数据包以相应数据包相反的方向传播--因此,对于由外环传输的数据包来说,控制数据包由内环传输,如图1所示。
图1:
4-节点SRP环路
3.0SRP数据包格式
本节介绍SRP使用的数据包格式。
有两类数据包:
数据包和控制数据包。
最大传输单位(MTU)是9216字节,最小传输单位为55字节。
在目前的思科实施中MTU为4470字节。
3.1SRP版本2.0通用报头格式
SRP版本2.0的通用报头格式为16位(2个字节),如图2所示。
图2:
SRP版本2通用报头
SRP版本2.0报头包括以下字段:
∙生存时间(TTL)-8位。
使用方式与IPTTL字段非常相似。
转发数据包的每个节点占用TTL字段的一个字节。
当TTL为0时,数据包将被环路分离。
这是为了防止产生过多的数据包循环。
MACTTL处理源和目的节点退出环路,而数据包仍处于循环状态的情况。
从理论上讲,一个八位TTL共允许255跳,因此环路共有255个节点。
但是,事实上环路只支持64个节点。
∙环路标识(RI)-1位。
指定最初的源环路。
这用于数据包接收、分离和转发判定,尤其是在环路转向情况下(例如,最初来源于外环的数据包可能在内环被终止),如"6.0智能保护交换(IPS)"所述。
字段值在表1中说明。
表1:
SRP环路标识
0
外部环路
1
内部环路
∙模式-3位。
用于确定数据包类型。
模式值在表2中说明。
表2:
模式值
值
说明
000-010
预留
011
ATM数据信元
100
控制信息(传送到主机)
101
控制信息(本地缓冲区,以传送到主机)
110
使用数据包
111
数据包
∙优先级(Pri)-3位。
字段显示SRP数据包的优先级别。
值可以为0到7,较高的值代表较高的优先级。
该字段值从IP优先级位复制。
SRP数据包传输和调度判定根据优先级字段决定,如"4.6数据包优先级"中所述。
∙奇偶位(P)-1位。
奇偶位位于前面的15个MAC报头位。
3.2SRP版本2数据包格式
SRP版本2.0数据包格式如图3所示。
图3:
数据包格式
该数据包包括通用报头和以下字段:
目的MAC地址(DA)-48位。
全球唯一的IEEE48-位MAC地址。
源MAC地址(SA)-48位。
全球唯一的IEEE48-位MAC地址。
协议类型-16位。
在表3中说明。
表3:
SRP协议类型
值
协议类型
0x2007
SRP控制
0x0800
IP版本4
0x0806
ARP
∙有效负载-变量。
∙帧校验序列(FCS)-32-位CRC。
CRC根据整个数据包来计算,不包括SRP报头(16位/2字节)。
多项式为:
每个数据包的开销为16字节+4字节FCS。
3.3SRP版本2.0控制数据包格式
SRP版本2.0控制数据包结构如图4所示。
图4:
控制数据包格式
控制数据包包括通用报头和以下字段:
目的MAC地址(DA)-48位。
全球唯一的IEEE48-位MAC地址。
源MAC地址(SA)-48位。
全球唯一的IEEE48-位MAC地址。
协议类型-16位。
由于这是一个控制数据包,因此协议类型总是0x2007。
控制版本-8位。
该字段是与控制类型字段有关的版本编号。
开始时所有控制类型都为版本0。
控制类型-8位。
在表4中介绍。
表4:
SRP控制类型
控制类型
说明
0x00
预留
0x01
拓扑结构发现
0x02
IPS信息
0x03-0xFF
预留
∙控制校验和-16位。
该字段是所有以控制版本开始的16位字的补充和的16位补充。
如果在校验和中字节数为奇数,出于校验和目的,右侧的最后一个字节将为0以构成一个16位字。
补充字节并不作为数据包的一部分被传输。
当计算校验和时,校验和字段自己设为0。
注意,该算法与TCP校验和计算使用的算法相同。
∙控制TTL-16位。
该字段为控制层逐跳计数,每次节点转发控制数据包时被占用。
如果节点接收控制TTL<=1的控制数据包,那么它接收该数据包但并不转发。
注意,控制TTL独立于SRPL2TTL,在控制数据包中它总是设为0x1。
控制数据包的原发地把控制TTL的最初值设为SRPL2TTL,通常用于数据包。
∙有效负载-变量。
∙FCS-32位CRC。
控制数据包的开销为22个字节,额外的4个字节用于FCS。
如果模式位设为1xx(不包括,111,它是一个数据包),那么数据包为SRP控制数据包。
控制数据包为点到点发送,并由相邻节点分离。
在当前的实施中,DA设为0x000000000000,因为控制数据包为点到点发送。
所有控制数据包都被发送,TTL设为0x1,优先级设为0x7。
定义了两种控制数据包:
∙传送到主机-控制数据包通过与数据包相同的路径传送到处理器。
入局控制数据包被接收,从环路上分离,并通过把数据包与其它数据包一起保存在Rx缓冲区中,传送到处理器。
∙主机本地缓冲-控制数据包由SRPMAC缓冲,以传送到处理器。
数据包并未保存在Rx缓冲区中,在这里,它们将与数据包一同争夺资源。
实际上,它们被保存在独立的缓冲区SRPMAC中,信号被传送到处理器,以检索这些数据包。
本地缓冲的控制数据包通常预留,以用于智能保护交换(IPS)数据包。
SRP版本2有三种控制数据包:
∙使用数据包(由模式0x110指定)
∙拓扑结构发现数据包
∙智能保护交换(IPS)数据包
在这里提到的所有三种数据包将在本文稍后进行详细讨论。
注意图4中显示的控制数据包格式由拓扑结构发现和IPS数据包使用。
使用数据包使用不同的数据包格式,稍后在"5.0SRP公平算法(SRP-fa)"中讨论。
图5:
SONET/SDH到SRP数据包映射
3.4帧
SRP是一种独立于媒介的MAC层协议。
最初的实施利用SONET/SDH帧。
SRP数据包被插入到SONET/SDH帧中,如图5所示。
目前只支持SONET/SDH帧。
未来可能支持其它帧。
SONET/SDH帧允许与SONET/SDH或WDM设备互通。
注意,只支持连接的有效负载。
本文"9.0计时和同步"一节中将讨论把SRP连接到ADM、WDM转发器或直接连接到黑光纤等要求。
图6显示了IP数据包到SRP的映射以及应用SONET/SDH帧。
图6:
SRP到SONET/SDH映射的有效负载
4.0SRP数据包处理流程
我们将在本节详细讨论SRP节点数据包处理流程。
本节包括以下主题:
空间复用
接收端数据包处理
组播
传输端数据包处理
数据包优先级
拓扑结构发现
环路选择流程
4.1数据包处理概述
环路数据包流程的高级视图如图7所示。
每个SRP接口有两个SRPMAC。
相邻的SRPMAC一般被称为"mate"。
每个SRPMAC连接到一个光纤对,它可以被指定为外环Rx/内环Tx或外环Tx/内环Rx。
外环Rx/内环Tx被标记为A端,外环Tx/内环Rx被标记为B端。
连接节点以构成SRP环路与连接节点以构成FDDI环路类似。
一台路由器上的A端连接到第二台路由器上的B端。
直到所有节点全被连接为止。
环路节点数据包处理的高级别视图如图8所示。
图7:
环路数据包流程
图8:
节点数据包流程
您可以查找入局数据包以确定它们是否准备向节点传输。
如果数据包准备向节点传输,那么节点接收该数据包并把它传送到主机以进行处理。
如果数据包不准备向该节点传输,那么它被保存在传输缓冲区中,以继续进行循环。
然后,根据SRP公平算法(SRP-fa)对传输缓冲区数据包和由节点提供的数据包进行调度,以在出局环路上进行传输,SRP公平算法在"5.0SRP公平算法(SRP-fa)"中讨论。
4.2空间复用
SRP的名称来源于环路上数据包处理流程的空间复用功能。
传统的数据环路,如令牌环或FDDI利用源分离和环处理流程来控制环路接入。
在被源分离之前,数据包围绕整个环路循环。
与此相反,SRP执行单点发送数据包的目的分离。
由于目前节点可能无需等待一个共享令牌就可传输数据包,从而有很多机会可以在环路其它部分上获得带宽增益,如图9所示。
另一方面,组播数据包采用源分离模式。
图9:
空间复用流程
4.3接收端数据包处理
对于一个入局数据包来说,可能要进行以下六个过程:
分离-数据包从环路上删除。
接收和分离-数据包被发送到主机(第3层),然后从环路上删除。
接收和转发-数据包为一组播数据包。
它被发送到主机(第3层),然后到传输缓冲区。
转发-数据包被发送到传输缓冲区。
转向-数据包从相反的方向发回。
直通-所有数据包都被发送到传输缓冲区,包括控制数据包。
接收端数据包处理的高级别视图如图10所示。
接收端数据包处理按以下流程进行:
提取SRP控制信息,包括入局数据包提供的TTL、RI和模式。
图10:
接收端数据包处理流程
∙检查入局数据包的模式字段以确定它是否是一个控制数据包。
如果是,通过模式和控制类型字段确定控制数据包类型。
拓扑结构发现数据包和IPS数据包分别由控制类型0x01和0x02来确定。
如果接收到一个拓扑结构发现数据包或IPS数据包,那么数据包被分离并被发送到相应的处理路由。
不同的路径根据模式字段的设置来确定。
对于模式字段设为0x100(传输到主机)的拓扑结构发现数据包来说,该数据包被保存在接收缓冲区中(与数据包一样),并且从该位置被传输到拓扑结构发现处理路由。
对于模式字段设为0x101(主机本地缓冲)的IPS数据包来说,数据包由SRPMAC缓冲,然后给处理器发送一条中断命令以检索数据包并将其传送到IPS处理路由。
使用数据包根据模式0x110来确定。
它与拓扑结构发现和IPS数据包不同,不具有在"3.3SRP版本2.0控制数据包模式"描述的其它字段。
如果接收到一个使用数据包,它被分离并被转发到"mate",该"mate"把它传送到SRP-fa路由以进行处理。
正如前面提到的,控制数据包被点到点发送并由邻近的节点分离。
因此无需检查源或目的地址。
∙检查RI字段以确保它与入局环路ID相匹配。
RI字段设为0的数据包应该只在外环上接收,而RI字段设为1的数据包应该只在内环上接收。
例外情况是当节点被转向时。
在这种情况下,只要存在DA匹配,数据包就可以被接收而不受RI值的影响。
如果RI不匹配入局环路ID并且节点未被转向,那么该数据包可被发送到传输缓冲区。
∙执行CAM查找,以查看该数据包是否准备用于节点。
每个接收SRPMAC都有一个相应的内容可编址内存(CAM)。
CAM被作为源地址池,具有一组相关的数据包计数器,用于源地址和目的地址池的子集。
CAM源地址池也包括一组特殊的运算位,将在以下进行说明。
下面描述了确定是否接收入局数据包的流程。
术语网元(NE)指节点的MAC地址,源地址(SA)指数据包的源地址,目的地址(DA)指数据包的目的MAC地址。
o如果SA==NE,那么从环路上分离数据包:
o如果SA匹配NE,那么在环路上传输的数据包返回到始发地。
在这种情况下,数据包从环路上分离。
o如果DA==NE,或DA有一个匹配的CAM条目:
o如果存在一个DA匹配,接收入局数据包并检查CRC。
如果CRC检查通过,那么把该数据包转发到主机(换句话说,通过相应接收队列在路由器上进行的第3层处理),否则丢弃数据包并增加CRC错误数。
o如果该数据包是单点发送数据包,从环路上分离数据包,而如果该数据包是组播数据包,且数据包通过了TTL和CRC检查,将把数据包转发到传输缓冲区。
o否则,如果数据包通过了TTL和CRC检查,将把数据包转发到传输缓冲区。
∙TTL检查-尽管节点执行目的和源分离,但仍会出现这样的情况,即在数据包循环过程中源和目的节点退出环路。
这由MAC报头中的TTL字段来处理。
每次节点转发数据包时,TTL字段就减去1。
如果TTL为0,那么数据包从环路上分离。
∙正如前面提到的,CAM有特殊的运算位,允许用户选择数据包过滤(在MAC层)或对从环路上特殊节点接收到的数据包进行源计费。
CAM包括状态位和源地址池,如图11所示。
源地址池包括SA位和MAC地址。
SA位用于显示相关的MAC地址是源地址还是目的地址。
如果位被设置,那么相关的MAC地址为源地址。
状态位用于进行转发判定。
图11:
SRP版本2.0CAM格式
CAM包括以下字段:
∙SAA/拒绝-源地址接收/拒绝。
如果该位未被设置,具有相关MAC地址的入局数据包将被拒绝。
∙NE-网元。
如果设置,该位显示MAC地址条目为节点的MAC地址。
∙SAM-源地址监视器。
该位不影响转发判定。
如果设置,用于增加相关的字节和数据包计数器。
∙DAH-主机的目的地址。
如果设置,该位显示相关的MAC地址为主机的目的地址。
4.4组播
SRP直接支持IP组播。
IP组播利用D类IP地址(如前4位设为[1110]的地址)。
剩余的28位确定组播组ID。
然后需要把D类组播地址映射到相应的48-位MAC地址,以在环路上传输。
前三个字节为00:
00:
5E的MAC地址段被预留给组播。
第一字节的第一位指定用于组播位,并必须进行设置以显示一个组播数据包。
最后,较低顺序的23位D类IP地址被直接映射到剩余的23位MAC地址。
最初在环路上始发组播数据包的节点处理这一映射。
图12:
组播地址
说明:
对于SONET/SDH媒介来说,网络序号为每个字节的MSB,因此当在线对其进行查看时,组播位将为目的地址的第8位。
组播被启动的节点在自己的CAM中创建条目"0100.5E00.0000mask0000.007F.FFFF"。
任何到达该节点的组播数据包将被接收并被传输到第3层以进行处理。
与单点发送数据包不同,组播数据包采用源分离模式。
组播数据包被保存到传输缓冲区中以继续循环。
4.5传输端数据包处理
传输端处理流程的高级视图如图13所示。
图13:
传输端数据包处理
传输端数据包处理按以下流程进行:
∙确定本地始发数据包的优先级,并把它们保存到适当的高或低优先级传输队列中。
参阅"4.6数据包优先级"。
∙在传输缓冲区中的高和低优先级数据包与传输队列中的高和低优先级数据包之间,选择下一个在环路上发送的数据包。
∙通过SRP公平算法(SRP-fa)来管理数据包流;换句话说,确定节点是转发还是始发过多的业务,并通过始发并传输公平算法信息来请求上游节点调整它们的比率,或确定节点是否始发过多的业务并强制执行适当的比率控制。
4.6数据包优先级
SRP为传输队列和过渡缓冲区的数据包优先级和加速优先级数据包处理提供支持。
实现这一目的的动机是提供支持实时应用(如IP话音和IP视频)、关键应用和控制业务,它们都有严格的延迟界限和抖动限制,因此要求加速处理。
SRPMAC报头中的优先级字段由在环路上始发数据包的节点来设置。
节点把IP报头业务类型(ToS)字段中的优先级位值映射到SRPMAC报头的优先级字段。
IP中有8种(3位)优先级,SRP中有两个优先级队列(高和低)。
为了处理数据包优先级,节点使用可配置的优先级阈值来确定数据包是应该保存到高或低优先级的传输缓冲区,还是保存在传输队列中。
对于传输一个节点的数据包来说,SRPMAC报头中的优先级字段接受检查,然后根据可配置的优先级值把数据包保存到高或低优先级的传输缓冲区中。
传输端数据包处理算法确定的输出流程在下面进行讨论。
为了选择要被传输的下一个数据包,调度程序必须根据以下原理在高/低优先级转接数据包和高/低优先级传输数据包之间进行选择:
∙通过在低优先级数据包之前调度高优先级数据包,以遵循数据包的优先级。
∙通过避免丢弃已经在沿着环路上循环的数据包,增强对环路数据包的保护。
通过以下数据包处理级别来实施规则:
1.高优先级转接数据包
2.来自主机的高优先级传输数据包
3.来自主机的低优先级传输数据包
4.低优先级转接数据包
但是,可以通过在低优先级转接队列长度上添加阈值来修改数据包优先级等级,以确保:
1.当为本地业务流提供服务时,转接缓冲区不会溢出。
2.在本地始发低优先级业务之后,低优先级转接业务不会等太长的时间。
高优先级转接数据包总是首先被发送。
只要低优先级转接缓冲区的长度低于高优先级传输数据包的高阈值,那么就可发送高优先级传输数据包。
只要低优先级转接缓冲区的长度低于低优先级传输数据包的低阈值,并且MY_USAGE低于ALLOW_USAGE,那么发送低优先级传输数据包。
如果什么也不能发送,发送低优先级转接数据包。
详细的传输端数据包流程规则介绍如下:
While(true){
iftherearehigh-prioritytransitpacketsinthetransitbuffer
Transmithigh-prioritytransitbufferpackets
elseiftheLow_priority_transit_buffer_depth>High_threshold
Transmitlow-prioritytransitbufferpacketsandincrementFWD_RATEcounter
elseiftherearehigh-prioritytransmitpacketsinthetransmitqueue
Transmithigh-prioritytransmitpackets
elseiftheLow_priority_transit_buffer_depth>Low_threshold
Transmitlow-prioritytransitbufferpacketsandincrementFWD_RATEcounter
elseifMY_USAGE>=ALLOW_USAGE
Transmitlow-prioritytransitbufferpacketsandincrementFWD_RATEcounter
elseiftherearelow-prioritytransmitpacketsinthetransmitqueue
Transmitlow-prioritytransmitpacketsandincrementMY_USAGEcounter
elseiftherearelow-prioritytransitpacketsinthetransitbuffer
Transmitlow-prioritytransitpacketsandincrementFWD_RATEcounter
}
MY_USAGE、FWD_RATE和ALLOW_USAGE为SRP-fa使用的计数器,将在"5.0SRP公平算法(SRP-fa)"中详细讨论。
4.7拓扑结构发现
拓扑结构发现在SRP环路选择和网络管理功能方面发挥了重要作用。
环路上的每个节点定期(以可配置的时间间隔)在外环上发送拓扑结构发现数据包。
接收拓扑结构发现数据包的节点补充它们的MAC捆绑信息,它包括节点的MAC地址和环路状态信息(它显示节点转向还是被转向)。
一旦数据包被更新,它被传送到环路上的下一个节点。
如果存在环路转向,拓扑结构数据包遵循转向规则。
如果拓扑结构数据包遵循转向规则,数据包直到停止转向时才进行更新。
最终,拓扑结构发现数据包返回始发地,在始发地,它被接收并从环路上分离。
拓扑结构发现数据包必须在外环上接收。
一旦连续接收到两个相同的拓扑结构发现数据包,节点构建拓扑结构示意图,包括中逐条数信息、MAC地址、环路上每个节点的转向和主机名。
"4.8环路选择"一节显示拓扑结构示意图信息如何用于环路选择。
拓扑结构发现数据包格式如图14所示。
表5显示了拓扑结构发现数据包的MAC格式。
表5:
MAC类型(8位)
表5:
MAC类型(8位)
位
说明
0
预留
1
环路ID
0-外环
1-内环
2
转向状态
0-非转向节点
1-转向节点
拓扑结构长度字段为16位字段,代表拓扑结构信息的长度,以第一个MAC类型/MAC地址包开始。
图14:
SRP拓扑结构发现数据包
4.8环路选择
环路选择使用ARP来实现。
图15:
ARP运行
下面介绍ARP和环路选择流程:
∙始发节点通过在内环或外环上发送ARP请求数据包来执行ARP请求。
这由使用的散列算法来确定。
DA,在这种情况下广播MAC地址(FFFF.FFFF.FFFF)是散列的。
如果结果为0',选择外环,否则选择内环。
∙在接收到ARP请求,应答节点查看拓扑结构示意图,并根据逐跳次数来选择最佳路由,返回ARP应答。
注意在开始实施过程中,最小逐跳次数用作环路选择标准。
在将来可以采用更先进的方法。
如果存在转向,节点在反向环路而不是发送ARP请求的环路上发送ARP应答。
如果内环和外环的逐跳次数与始发点相同,散列算法用于确定使用哪条环路。
∙接收ARP应答的源节点注明接收ARP应答的环路ID,并使用反向环路来发送数据包。
∙如果节点根据拓扑结构发现信息来检测转向或非转向,它清空ARP缓存以触发环路选择。
这是为了重新确定在次优路径上传输的业务的目的地。
上述流程用于单点发送数据包。
对于组播数据包来说,DA使用同一散列算法散列分布。
如果结果为0',选择外环,否则选择内环。
静态ARP可以用于终止动态环路选择流程。
这对于强迫业务中断一条具体环路很有用。
说明SRP最初实施时使用单一子集方法,在子集方法中内环和外环都具有相同的IP子集。
单一子集方法的一个重要优势是环路转向后,环路选项的快速重新优化和避?
quot;路由飘
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 空间 协议 技术
![提示](https://static.bdocx.com/images/bang_tan.gif)