45.3.1 帧中继服务类别
在帧中继网络中,拥塞成为一个非常值得我们关注的问题, 对于网络管理员和用户而言需要寻求一
种机制使得在不增加带宽的基础上,有效地控制拥塞。
帧中继标准定义几个服务类别参数,提供设计和实现帧中继网络的一个公共基础。帧中继服务类别参
数主要处理带宽可用性,不直接解决延时或变化。帧中继标准还定义一个基本的数据流管理方案,帮助控
制和×××提供帧中继网络的数据流。下面定义这些服务类别和阻塞管理技术。
基于标准的服务类别(standards-based class of service)按各个PVC定义,这意味着物理端口上的每个PVC
有不同的服务类别分配。基于标准的 CoS 参数处理带宽和带宽可用性。延时或延时变化的测量和策略不是
帧中继标准的一部分,帧中继通常使用CIR/Bc/Be 这3个参数定义服务类别。
额定突发大小(committed burst size)Bc 定义了指定时间段内网络可以接受的数据量。Bc的单位是二进
制位,与时间间隔一起使用,确定CIR的值。时间间隔和CIR将在下面描述。词“突发”的使用容易引起误
解。记住数据流以实际的物理线访问速率或端口速率传送这一点很重要,每个分组代表该线路上的一个突
发信息。不要与上面PVC的额定速率的突发概念混淆。
额定速率测量间隔(committed rata measurement interval)Tc 指定数据流被测量的时间段。 Tc以秒的分数
定义,它的典型速率在0.5~2秒之间。Tc的值越大,允许的延时和数据流速率的变化越大;而 Tc的值越小,
数据流传输速率越一致。
额定信息速率(Committed Information Rate,CIR)指定网络支持的PVC端点之间的最小传输速率。CIR的
计量单位是每秒千位(kbps),是Bc与 Tc的比率。它作为通常情况下网络支持的通信的下限。
Be 定义网络在给定时间段内想传输的超过 Bc 的数据量。与 Bc 一样,Be 以二进制位为单位计量,但
不同的是,不保证Be数据流能够被传输。当数据流超过Bc的同意值时,它对Be进行计量。多出的数据流
尽可能在网络上传输。
额外信息速率(Excess Information rate,EIR)指定网络同意在给定时间段内传输的超过CIR 的数据量。时
间段的长度对于不同的实现是不同的,通常是 Tc 的一个间隔。EIR 是从 Be 对 Tc 的斜率得来的,相应的计
量单位是kbps。CIR和 EIR相加代表PVC的最大传输容量。超过CIR+EIR 的数据流可能被传输,但不能保证
一定传输。
Be 的计算方法如下:
从如上公式可以看出:
1. 降低Tc(提供更大粒度的计量值)要求减少Be,限制了网络的缓冲能力
2. 增加 Bc 以允许更大的突发性,要求增加 Tc,这导致了更小的粒度计量值,所以帧传递的变
化更大。
3. Bc+Be 代表网络同意在任何时间段Tc接受的信息量。
4. Bc+Be 的和必须小于或等于端口访问速率。
45.3.2 FECN和BECN
帧中继网络中基于标准的阻塞管理使用两个方法处理:设置帧中明确的阻塞通知位和标记帧中可丢弃
位。阻塞通知位告诉帧中继终端设备 PVC 路径中的哪个地方有阻塞,而设置可丢弃位标识在阻塞过程中交
换机将首先丢弃的数据流。下图给出了帧中继帧格式和这些位在帧报头中的位置。
当交换机或网络在支持虚电路的链路上遇到阻塞时,转发明确的阻塞通知(FECN)位可以由帧中继交换
机设置。FECN 通知接收端设备网络中的阻塞状态。理想情况下,接收端将识别到 FECN,并通过压缩窗口
大小降低发送器的速度。不幸地是,第 2 层 FECN 到高层等效值的映射仅适用于 DECNET 和 CLNS 数据流,
所以在实际应用中,除了统计外,FECN没有太多的用处。
交换机也可以设置返回给发送端的帧上的后向明确阻塞通知位(BECN),指示网络中的阻塞状态。在这
两个方法中,BECN更有用,因为它们通知对阻塞有责任的发送端。与 FECN一样,BECN 的设置不能很好地
映射到高层协议,所以阻塞信息不能回到源站点。但是,因为发送路由器可以解释 BECN,它可以对阻塞情
况作出响应。
d FCS Flags
户 用户-网络
LAPF核心 R2
Congested
如上图: 当拥塞发生时,帧中继交换机向上游设备发送BECN 消息,同时也向下游设备发送FECN 消息,
如果接收端路由器支持BECN 回复功能,则它会向数据发送放发送BECN 消息,使得发送方降速。
当收到 FECN 消息时,路由器将 Tc 时间内 FECN 为 1 和 FECN 为 0 的帧进行比较,如果 BECN=1 的帧
号>BECN=0 的帧号,则将其吞吐量降为原来的87.5%,反之,增加原吞吐量的 1/16,进行慢速的启动操作。
Tc 设置为 4 倍的端到端传输延迟。当连续收到 N 个 BECN=1 的帧时,来自用户的流量就会通过一定的步长
减少到低于当前提供的速率。这个步长首先由 0.675 倍的吞吐量进行减少,然后 0.5 倍,最后 0.25 倍。同
样,流量收到连续N/2个BECN=0的帧后,将会按照0.125 倍增加吞吐量。
45.3.3 ForeSight
在 Cisco 的设备上,由于对 Stratacom 的收购,获得了 ForeSight 的技术。ForeSight 采用了一种闭环控
制的方式,在帧中继网中,将末端监测到的网络资源的使用情况信息,包括拥塞,严重拥塞等,反馈到源
端, 控制用户端口的 PVC 队列的发放速率。这样避免了拥塞同时又动态的分配了闲置带宽。而对于开环
技术,拥塞发生时将丢弃部分帧, 相对于这种模式,ForeSight可以更好的防止网络中中继链路的拥塞,同
时避免了丢包。
ForeSight类似于ATM 的ABR 业务,它将用户帧按照24字节的长度分段封装(FastPacket),然后在帧中
继网络中传输。分段的同时标记了起始帧,中间帧和尾帧。在传输过程中,为了减小延迟,网络端口对先
到的用户帧的一部分进行打包,并通过帧中继交换机的 FRM模块计算CRC值和用户帧结尾的CRC值进行对
比校验,为了减小延迟,支持ForeSight的IGX 交换机通过对缓存的分配减小延迟,在发送端,当PVC建立
时,缓冲区就为该条PVC建立一个VC队列,在NNI接口之间通常采用一个Trunk队列缓冲,而在接收端仅
采用一个公共的TX队列。如下图所示:
ForeSight在帧中继网络中形成一个闭环, 由末端IGX中的FRM将网络中资源的统计信息反馈到源IGX
的 FRM 中,调整 VC 队列的发包速率。信息反馈使用 FastPacket 封装中的 RA 字段。RA 字段为 FastPacket
封装头的一个特定字段,当拥塞发生时,标记 FECN 和 BECN 的哦能够使,对 RA 进行调整, RA 有 2 位。
当为 00 时,表示 VC 队列的发送速率不调整, 01 时表示发送速率可以上升到 MIR(最小信息速率)的 10%,
RA为10时,表示VC队列的当前速率下降13%。当RA 为11时,VC队列的速率下降50%。
ForeSight通常将拥塞定义为Trunk队列使用超过50%或者TX队列超过门限值,严重拥塞定义为Trunk
使用率超过 50%,并且 TX 队列已经溢出。当网络中有空闲带宽时,RA 定义为 01,发生拥塞时 RA 定义为
10,当严重拥塞发生时,RA 定义为11。末端FRM将 RA 比特所载信息反送给源端FRM,控制VC队列发包
速率。对于VC 队列的控制,使用用户申请的CIR设置,并根据CIR 和RA进行Credit发放。
如上图所示,T0~T1这段时间由于用户没有传送数据,积累了一些Credit,当发送数据时,首先会借用
所有的 Credit,以端口速率发送。然后速率下降到静态信息速率 QIR.此时收到来自接收端的反馈,网络有
空闲,RA=01 增加带宽。经过一段时间后出现拥塞,并收到 RA=10 的消息,速率下降。最后出现严重拥塞
使得RA=11消息发出,速率降低为当前速率的50%。对于调整时间,通常是一个ForeSight闭环的RTD。同
时,如果连路中一直有数据发送,应该保证MIR 在CIR 之上,而上图使用了MIR=CIR的特例。
45.3.4 配置帧中继流量×××
默认情况下,Cisco路由器忽视FECN 和BECN字节。可以通过如下命令开启帧中继流量×××:
Router(config-if)#frame-relay traffic-shaping
由于ForeSight为私有标准,所以默认情况下流量×××使用BECN的方式,可以通过如下命令调整流量
×××模式。
Router(config-if)#frame-relay adaptive-shaping {becn | foresight}
然后就可以在接口下或者子接口下配置,按照前文的定义,我们可以配置 CIR,Bc,Be
traffic-shape rate bit-rate[burst-size[excess-burst-size]]
bit-rate指定想要的输出速率,它应被设置为正应用的DLCI的CIR。
burst-size可选,但应该应用于帧中继接口,并被设置为帧中继网络供应商使用的Bc 值。
excess-burst-size也是可选的,应设置为帧中继网络供应商使用的Be值。
例如下图:A为一台带有语音功能的路由器,需要向C 发送语音外,还需要向B发送一般数据:
此时对于路由器A的配置如下:
Interface Serial3/1.301 point-to-point
Description Voice-PVC
Bandwidth 128
Ip address 172.16.1.2 255.255.255.252
Traffic-shape rate 128000 64000 32000
Frame-relay interface-dlci 301
!
Interface Serial3/1.304 point-to-point
Description Data-PVC
Bandwidth 128
Ip address 192.168.1.2 255.255.255.252
得到Bc和Be 的值从供应商那里得到。假定供应商配置Tc为0.5秒。使用公式CIR=Bc/Tc , Bc=CIR×Tc
则得出Bc为 64000。
因为仅发送数据的 PVC 将发送突发数据流,对它需要进行控制,使得它不会不平等地从传送语音的
PVC 那里篡取带宽。但是,目标是仍然允许接口利用帧中继传送突发数据流的能力。为了达到这个目的,
一般数据流×××将配置峰值速率等于链路带宽减去传送语音的 PVC的带宽。
为了防止严重的数据丢失,应配置每个PVC 对帧中继阻塞通知作出反应。允许一般数据流×××对 BECN
作出反应的接口命令是:
traffic-shape adaptive [bit-rate]
bit-rate代表在收到BECN时数据流应×××到的最小值。在大多数情况下,这个值应设置为与
该PVC关联的 CIR。通过使用 PVC 的CIR,路由器可以回到帧中继网络支持的传输速
对于BECN/FECN工作原理,有时需要接收端路由器接收到FECN消息后,接收端路由器发送BECN:
traffic-shape fecn-adapt
45.3.5 流量×××映射类
在很多情况下,对于接口/子接口定义流量×××过于粗糙,我们可能希望对每个VC进行流量×××和速
度限制等功能,同时还可以对特定的 VC 进行不同的 QoS 队列处理。通常的做法是使用帧中继流量×××映
射类。首先定义一个Frame-Relay的map-class
Router(config)#map-class frame-relay QOS
进入map-class 模式后,可以选择很多参数:
Router(config-map-class)#frame-relay ?
adaptive-shaping Adaptive traffic rate adjustment, Default = none
bc Committed burst size (Bc), Default = 7000 bits
be Excess burst size (Be), Default = 0 bits
cir Committed Information Rate (CIR), Default = 56000 bps
congestion Congestion management parameters
custom-queue-list VC custom queueing
end-to-end Configure frame-relay end-to-end VC parameters
fair-queue VC fair queueing
fecn-adapt Enable Traffic Shaping reflection of FECN as BECN
fragment fragmentation - Requires Frame Relay traffic-shaping to be
configured at the interface level
holdq Hold queue size for VC
idle-timer Idle timeout for a SVC, Default = 120 sec
interface-queue PVC interface queue parameters
ip Assign a priority queue for RTP streams
mincir Minimum acceptable CIR, Default = CIR/2 bps
priority-group VC priority queueing
tc Policing Measurement Interval (Tc)
traffic-rate VC traffic rate
voice voice options
如果需要使用自适应的流量速率调整,可以使用
Router(config-map-class)#frame-relay adaptive-shaping{becn | foresight}
然后可以使用如下命令调整虚电路流量速率,average 为平均输出速率,设置为CIR,peak为最大输出
速率,设置为CIR+EIR
Router(config-map-class)#frame-relay traffic-rate average peak
通常情况下还是使用 CIR/Bc/Be/Tc/MINCIR 等参数的调整和使用 ECN/ForeSight 来进行流量控制,默认
情况下Bc为 56kbps,Be为0,CIR为56kbps,MINCIR为CIR的一半。
map-class frame-relay QOS
frame-relay traffic-rate 64000 128000
frame-relay adaptive-shaping becn
frame-relay cir 128000
frame-relay bc 16000
frame-relay be 0
frame-relay mincir 64000
此后还可以在map-class 中配置CQ/PQ等QoS标准队列,关于这些队列,参见以前的QoS章节
Router(config-map-class)#frame-relay priority-group 1
Router(config-map-class)#frame-relay custom-queue-list 1
定义好map-class 后,我们就可以将它们挂载到相应的接口/子接口,或者VC上:
Router(config)#interface serial3/0.1 multipoint
Router(config-subif)#frame-relay class fast_vc
Router(config)#interface serial3/0.1 multipoint
Router(config-subif)#frame-relay interface-dlci 100
Router(config-fr-dlci)#class slow_vc
45.3.6 Cisco ELMI
如果路由器连接到基于 Cisco-Stratacom 的帧中继网络,则可以使用 Cisco 的增强本地管理接口(E-LMI)
自动感应 QoS的参数。E-LMI 传送端口上所有 PVC 的 CIR、Bc 和 Be 的值,然后路由器可以把它们自动应用
于数据流×××机制。这样做极大地简化了路由器的配置,仅需在接口上配置如下命令:
Router(config)#frame-relay qos-autosense
可以通过以下命令查看:
Router#show frame qos-autosense
ELMI information for interface Serial3/1
IP Address used for Address Registration:0.0.0.0 My Ifindex:7
ELMI AR Status:Enabled
Connected to switch:SWITCH Platform:IGX Vendor:CISCO
SW side ELMI AR Status:Disabled
IP Address used by switch for address registration:0.0.0.0 Ifindex:0
(Time elapsed since last update 00:02:34)
DLCI = 100
OUT: CIR 64000 BC 6000 BE 5000 FMIF 4506
IN: CIR Unknown BC Unknown BE Unknown FMIF Unknown
Priority 0 (Time elapsed since last update 00:01:46)
ELMI information for interface Serial3/3
IP Address used for Address Registration:0.0.0.0 My Ifindex:9
ELMI AR Status:Enabled
Connected to switch:SWITCH Platform:IGX Vendor:CISCO
SW side ELMI AR Status:Disabled
IP Address used by switch for address registration:0.0.0.0 Ifindex:0
(Time elapsed since last update 00:01:32)
DLCI = 200
OUT: CIR 64000 BC 6000 BE 5000 FMIF 4506
IN: CIR Unknown BC Unknown BE Unknown FMIF Unknown
Priority 0 (Time elapsed since last update 00:01:07)
45.3.7 查看流量×××信息
配置完流量×××后可以通过如下命令查询流量×××状态.
首先可以使用show traffic-shape
另一种方法是使用show frame-relay pvc dlci
RouterA#show frame-relay pvc 501
PVC Statistics for interface Serial6/1 (Frame Relay DTE)
DLCI = 501, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial6/1.501
input pkts 2308 output pkts 10031 in bytes 151508
out bytes 9991964 dropped pkts 3783 in FECN pkts 0
in BECN pkts 278 out FECN pkts 0 out BECN pkts 0
in DE pkts 0 out DE pkts 0
out bcast pkts 56 out bcast bytes 16964
Shaping adapts to BECN
pvc create time 00:55:40, last time pvc status changed 00:09:40
cir 128000 bc 16000 be 0 byte limit 2000 interval 125
mincir 64000 byte increment 1375 Adaptive Shaping BECN
pkts 6201 bytes 6161964 pkts delayed 6122 bytes delayed 6115040
shaping active
traffic shaping drops 0
Queueing strategy: fifo
Output queue 40/40, 3790 drop, 6122 dequeued
这种方法还可以看到使用的是何种×××方式,如上信息为 BECN的情景 ,下面为使用ForeSight的情景
RouterA#show frame-relay pvc 401
PVC Statistics for interface Serial6/1 (Frame Relay DTE)
DLCI = 401, DLCI USAGE = LOCAL, PVC STATUS = ACTIVE, INTERFACE = Serial6/1.401
input pkts 2138 output pkts 25249 in bytes 141127
out bytes 25206155 dropped pkts 9581 in FECN pkts 0
in BECN pkts 93 out FECN pkts 0 out BECN pkts 0
in DE pkts 0 out DE pkts 0
out bcast pkts 55 out bcast bytes 16635
Shaping adapts to ForeSight in ForeSight signals 606
pvc create time 00:54:14, last time pvc status changed 00:08:14
cir 128000 bc 16000 be 0 byte limit 2000 interval 125
mincir 64000 byte increment 1125 Adaptive Shaping F/S
pkts 15611 bytes 15568155 pkts delayed 15532 bytes delayed 15513904
shaping active
traffic shaping drops 0
Queueing strategy: fifo
Output queue 40/40, 9598 drop, 15532 dequeued
对于ForeSight可以使用Debug查看ForeSight消息:
Router#debug frame-relay foresight
02:39:50: FR rate control for DLCI 401 due to ForeSight msg
02:39:50: FR rate control for DLCI 401 due to ForeSight msg
45.3.8 可丢弃位设置
在帧中继的地址段有一个专用的字段用于标记在拥塞情况下优先丢弃的报文, 该字段为 DE 字段
( Discard Eligibility ).如下图所示:
FCS Flags
用户-网络
LAPF核心
如何标记这个字段,通常使用一个ACL来处理. 可丢弃列表使用标准或扩展访问列表分类数据流,然后
在帧中继网络上发送数据前,有选择地设置帧中继报头中的 DE位。正如前面所述,设置DE位的数据流在
交换机遇到阻塞时被首先丢弃,这使得管理员能够控制低优先级数据流被网络首先丢弃,从而改善高优先
级数据流成功通过的情况。
DE-List配置方式如下:
Router(config)#frame-relay de-list list-number {protocol protocol|interface type number}
characteristic
其中list-number是唯一标识该列表的数,如果选择interface 字段, de-list仅对通过指定接口的分组进行
操作。如果选择protocol,该列表可以更加有识别力。protocol字段的选项包括路由器支持的所有第3层协
议。对于IP网络,选择就是IP。
characteristic 字段允许进一步细化第 3 层协议。选项包括:指定 lt(小于)或 gt(大于)操作符后跟大小值
指定最小或最大帧大小;使用TCP或UDP 操作符后跟端口号指定特定的TCP或UDP 端口;或者使用list操
作符通过访问列表进一步定义。
例如,我们需要对大于4bytes 小于10bytes 的数据标记DE位:
Router(config)#frame-relay de-list 1 protocol ip lt 10 gt 4
或者,使用一个 ACL来对特定流量进行DE标记:
Frame-relay de-list 3 protocol ip list 131
!
Access-list 131 deny tcp any any eq 1720
Access-list 131 deny udp any any range 10000 15334
Access-list 131 permit p any any
完成de-list定义后, 就可以将其挂接到接口上了,挂接方法如下:
Router(config-if)#frame-relay de-group group-number dlci
DE位的设置还可以在Policy-map 中进行使用特定的命令实现:
policy-map QOS
class class-default
police cir 80000 pir 100000
conform-action transmit
exceed-action set-frde-transmit
violate-action set-frde-transmit