本站已运行

攻城狮论坛

xinmeng

作者: IT邓邓爱踢
查看: 993|回复: 80

主题标签Tag

more +今日重磅推荐Recommend No.1

所有IT类厂商认证考试题库下载所有IT类厂商认证考试题库下载

more +随机图赏Gallery

重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)
某linux大佬,积累多年的电子书(约300本)某linux大佬,积累多年的电子书(约300本)
乾颐堂现任明教教主Python完整版乾颐堂现任明教教主Python完整版
乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)乾颐堂 教主技术进化论 2018-2019年 最新31-50期合集视频(各种最新技术杂谈视频)
Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天Python学习视频 0起点视频 入门到项目实战篇 Python3.5.2视频教程 共847集 能学102天
约21套Python视频合集 核心基础视频教程(共310G,已压缩)约21套Python视频合集 核心基础视频教程(共310G,已压缩)
最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程最新20180811录制 IT爱好者-清风羽毛 - 网络安全IPSec VPN实验指南视频教程
最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器最新20180807录制EVE开机自启动虚拟路由器并桥接物理网卡充当思科路由器
最新2018/07/29录制 IT爱好者清风羽毛-Cisco IOS ZBF防火墙视频最新2018/07/29录制 IT爱好者清风羽毛-Cisco IOS ZBF防火墙视频
乾颐堂 教主技术进化论 2018年 最新1-30期合集视频(各种最新技术杂谈视频)乾颐堂 教主技术进化论 2018年 最新1-30期合集视频(各种最新技术杂谈视频)
Cisco CCW售前销售报价系统使用方法Cisco commerce workspaceCisco CCW售前销售报价系统使用方法Cisco commerce workspace
2018.6.20 广州 CCNA战报 908 PASS2018.6.20 广州 CCNA战报 908 PASS

[路由交换] 大神带你读懂HCIE-Routing & Switching面试之调度

  [复制链接]
查看: 993|回复: 80
开通VIP 免金币+免回帖+批量下载+无广告
上一篇关于服务质量QoS文章中,我们讲到了报文分类和标记,这篇文章让我们再来了解一下调度机制。. [6 T: z9 G2 B/ S& j) M3 s# c
! S+ A) g# C# V
上文中,我们的语音、视频、数据这三份流量进入到了各自的队列中,然后我们需要对其进行调度。调度怎么理解呢?就是如何安排进来的流量有秩序有主次地出去。调度分为两种:
- q3 Y* V* w, I; M2 B1 e6 b4 ` 9 A" Y" T/ S. m1 H
① 基于队列的调度:内部是虚拟出了7个队列。假如语音进入了队列5、视频队列4、数据队列3. 基于队列的调度它是怎么工作的呢?9 z) ^6 h/ H& H) `, A

* R0 P) D+ `) N" L0 o4 x首先基于队列的调度分RR(轮询)——WRR(加权轮询)——WFQ(加权公平)——PQ(按优先级出流量)
1 x+ b8 B8 ~. D' q: C / H$ S6 h2 g9 |8 k: K& I* M- j& M
很明显语音(队列5)>视频>数据,则RR就语音走一个包,视频走一个包,数据走一个包,然后循环 RR。虽说非常公平,但我们要的是区别对待,高优先级先走,低优先级排后面。所以又开发了WRR,我们给语音队列加一个权重值3、视频2、数据不给,这样每一个循环语音就走3个包,视频走2个 数据还是走1个,这样就解决高优先级先溜的问题。不过还有一个问题,现实中,我们通常是以带宽来衡量的,假如数据的一个包1500字节,语音1个包100个字节,那么这样的一个循环,数据反而占用的带宽更高。
5 a! y7 q5 q3 R/ D / Q2 W2 Y& }, d+ ^0 V+ X$ T

4 ?) r5 _% @0 c 4 }: O/ q( F6 ^  Y" j
所以又开发了WFQ,加权又公平,基于带宽来分配,语音分30M、视频分20M、数据分10M,这样就解决了上述问题。
7 A9 P( A% B# v7 W 4 U) q! F, S, R+ c8 D

) z9 a0 u$ t) v
0 u7 F& O. x3 ]! @$ L那么PQ是什么,PQ就像一个莽夫,往前冲就对了。语音优先级高,那我就先把语音的流量走完,再走视频再走数据。这样虽然高优先级的很开心,但如果语音一直有流量,那么视频、数据就一个包都发不出了,会造成低优先级流量饿死的情况,显然也是不可取的。+ d" v4 f9 u5 g

# J6 ]$ w+ U# U! d6 Y) U) W 5 Z! e6 I2 T1 T4 Z' s  T
! O+ l) w3 l0 C. ]0 F$ w6 g) Y
不过一般而言,现实中一般会采用结合的方式比如PQ+WRR,PQ+WFQ这种方式。
6 y  a: i; W7 r9 x6 F# h
9 U% Z" p5 u  X( f+ R
" O- f: l% S6 e, x0 {- \/ P  ?
& y& `4 n  P2 P# }' m/ i
7 b6 |; ^) Z1 C7 K& C讲完基于队列的调度,接下来讲讲基于类的调度。
2 M$ g3 G& E! d. N
3 e9 E; U9 [" |( @  M# Q5 v5 u② Class Based Queueing(CBQ)基于类的加权公平队列是对WFQ功能的扩展为用户提供了定义类的支持。CBQ首先根据IP优先级或者DSCP优先级、输入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,送入系统定义的缺省类。+ A# R% n+ t! C( e: F
+ X  F* ]" e0 ]# ^- V
那CBQ提供了哪几个队列呢?  H( Z/ Q& ~' w" A4 f8 t$ {
9 p5 l+ i* Y8 R: s5 w' G: }
EF队列:满足低时延业务
, r3 {/ p2 \+ b' f- sAF队列:满足需要带宽保证的关键数据业务& i0 }1 k/ C! ]+ c  u
BE队列:满足不需要严格QoS保证的尽力发送业务
8 U4 G4 F9 p0 @) V% Y8 U' i
  i8 Q6 O* I6 m6 i
我们现在通过简单流分类or复杂流分类将语音分成一类,视频分成一类,微信数据分成一类,发语音的时候,我们应该会对时延有着很高的要求,视频则较高,发微信呢,卡个1-2s也还能接受,所以我们会将语音类流量,送入EF队列,视频类流量送入AF队列,剩下的微信流量就默认就进入我们的BE队列。
$ f6 m) j, t9 g
8 t5 b. o# W- b3 {- B: P " z% D5 B1 w# `- }
6 a! L& J; N8 x' C- V' o
在EF队列中采用PQ调度,在AF队列中采用WFQ,在BE采用WFQ,所以我们会为EF队列设置一个最大带宽限制(毕竟用PQ免得BE的流量饿死了) ;为AF队列设置一个最小带宽限制,剩下的带宽给BE用。在EF中还有一个特殊的队列LLQ, LLQ比EF更优。
) v' c; l6 f, a' Z ( ~9 |' n+ I* Q, v. x
这样我们就调度完了,接下来是不是该出去了?我们可以在出接口的地方做流量管理。讲流量管理前我们再想想,假如流量真的很多,我再怎么调度,所有队列都满了,但是入口还一直进来流量,这个时候怎么办?会发生拥塞对吧?堵住了,难进,出去又慢。这个时候我们就要讲一讲发生拥塞时候的拥塞避免。
1 _/ y* N& d$ ~: V9 L9 r5 Q* H! K  m( Z
拥塞避免

. w2 e3 ^* _$ q. i/ u; l( \% k* g& ?2 I0 n
当我们拥塞时,队列满了会造成什么问题呢?尾丢弃,就是后面进来的流量直接就丢包了。所以尾丢弃会造成3个问题:1、不加分区丢包;2、TCP全局同步;3、TCP流量饿死。接下来我们来进入TCP的领域。  I3 S8 d4 V' f

$ H* Z" i* L; e0 U- @3 xTCP是一个可靠安全的传输协议,有确定机制,丢包会重传等。假如TCP丢包了,等待重传计时器超时,然后重传,称超时重传;假如TCP丢了一部分的包,接收方能够通过序列号等参数,确定你发来的数据不完整,这时接收方会立刻连续重复发三个ACK报文,发送方立刻意识到接收方刚刚没收完整我发的包,立刻重发,称快重传。
: i* T; B4 `% P; K% o
, z( y+ @5 A8 q接下来我们来看看在网络中,我们的TCP如何启动并且发送数据的(TCP的一个窗口)
2 T, t9 Y0 ?! U! \5 D+ m' C  a1 n: f6 b- p, s. e0 T9 S! l
. ?! |! `! c1 G# a. s7 L# M

: e0 {0 f# Y+ W1 k0 G# M( r我们来看一下这个图,并解释一些名词:. o( z3 G. ?! y7 c7 n# Y. a2 q

# P  n# v; c6 T/ F拥塞窗口cwnd是发送方为一个动态变化的窗口叫拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度。/ }3 i- _% [/ W/ s. K  \, f' U

) d% M2 o. H7 `ssthresh是慢启动门限(这里我们设置成16)cwnd=24时为阈值(默认是56636B);
; e: [7 H4 f  m9 q3 O! I) r; R2 a3 |' a: U' S
慢开始也称慢启动,是指建立TCP连接时,把cwnd设置=1(536B)然后进行一个指数增长。. I& Q* N% Z$ ]9 v
% M- W4 c/ a; D1 v5 T1 k
接下来进入重点:7 e9 g2 m2 j' ]; j1 e( r
7 S. t" B& I* ?: a* U- a" y1 y9 s
现在有一个TCP连接——>开始一个慢启动从cwnd=1开始指数增长到cwnd=16时候到达门限了,开始拥塞避免,就进入一个加法增长(发送的报文如果都收到ACK回复,cwnd会加法性的+1+1+1)——>到达cwnd=24阈值时检测到了拥塞——>立即把ssthresh门限降为阈值的一半也就是12,即新的ssthresh=12,为上图的②+③。接来下有两种处理行为:
7 a- a1 ]7 T6 M, _, V
; t6 E8 t4 T; ], j, Z8 E& q+ |① 拥塞后如果是超时重传造成的丢包,则cwnd=1,此时的ssthresh则为12,为上图的④+⑤' t7 M! O0 A! V6 E
( q* x9 _' w' x1 u* F
② 拥塞后如果是快重传造成的丢包,则cwnd=12,进行一个拥塞避免,为上图的①
6 k3 l( c; X4 B0 F3 u' ]
- ?$ Z* N4 O# _: G0 [- ]! ]5 z大家捋清楚上图后,接下来TCP全局同步是什么意思呢?上图是一个TCP连接,假如有100个N个TCP连接用时进行,那么这100个TCP连接同时到达阈值,把阈值下降一半,会造成带宽的浪费;如果50个先到阈值,下降一半,再慢启动,另外50个就可以利用之前50个的带宽。
' [; Y4 x( W1 \! a, N) G7 H* e# C6 S, _1 `# f' q2 b
那TCP流量饿死又是什么呢?TCP流量饿死是指当TCP在cwnd很小时,如果UDP流量大量持续进来,就会造成TCP的cwnd一直很小,最后TCP流量无法传出则称饿死。
2 z  s6 N* Q( \
* q& T0 z- `. a2 o2 z' ^2 w那我们怎么解决这些拥塞造成的问题呢?在我们拥塞避免的阶段,我们用一个叫做wred(加权早期随机检测)的技术,这个技术是我们为每一个队列配置一个丢弃模板,在队列还没满时,高优先级的丢10个包,低优先级丢20个包,这样处理,有效解决了TCP全局同步+TCP流量饿死+不加区分的丢包。
2 E. I4 N: |! n8 ~
CCNA考试 官方正规报名 仅需1500元
回复 论坛版权

使用道具 举报

monkeyman [Lv10 举世无双] 发表于 2020-3-16 20:47:25 | 显示全部楼层
非常感谢搂住分享资源呀
回复 支持 反对

使用道具 举报

ywb_qh [Lv9 无所不能] 发表于 2020-3-17 06:54:11 | 显示全部楼层
非常感谢搂住分享资源呀
& p+ k5 N0 s, P! t
回复 支持 反对

使用道具 举报

monkeyman [Lv10 举世无双] 发表于 2020-3-17 14:06:11 | 显示全部楼层
非常感谢楼主分享资源呀
回复 支持 反对

使用道具 举报

monkeyman [Lv10 举世无双] 发表于 2020-3-18 10:15:35 | 显示全部楼层
非常感谢楼主分享资源呀
回复 支持 反对

使用道具 举报

fjq0215 [Lv10 举世无双] 发表于 2020-3-19 10:55:55 | 显示全部楼层
大神带你读懂HCIE-Routing & Switching面试之调度
回复 支持 反对

使用道具 举报

monkeyman [Lv10 举世无双] 发表于 2020-3-19 15:15:50 | 显示全部楼层
非常感谢楼主分享资源呀
回复 支持 反对

使用道具 举报

jsyzchen81 [Lv9 无所不能] 发表于 2020-3-19 21:04:10 | 显示全部楼层
非常感谢楼主分享资源呀
回复 支持 反对

使用道具 举报

monkeyman [Lv10 举世无双] 发表于 2020-3-20 11:39:24 | 显示全部楼层
非常感谢楼主分享资源呀
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|无图浏览|手机版|网站地图|攻城狮论坛

GMT+8, 2020-7-9 06:59 , Processed in 0.284287 second(s), 20 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 © 2001-2013 Comsenz Inc.

Designed by ARTERY.cn