本站已运行

攻城狮论坛

作者: IT邓邓爱踢
查看: 4762|回复: 81

主题标签Tag

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

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

more +随机图赏Gallery

【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集【新盟教育】2023最新华为HCIA全套视频合集【网工基础全覆盖】---国sir公开课合集
【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课【新盟教育】网工小白必看的!2023最新版华为认证HCIA Datacom零基础全套实战课
原创_超融合自动化运维工具cvTools原创_超融合自动化运维工具cvTools
重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)重量级~~30多套JAVA就业班全套 视频教程(请尽快下载,链接失效后不补)
链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享链接已失效【超过几百G】EVE 国内和国外镜像 全有了 百度群分享
某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开机自启动虚拟路由器并桥接物理网卡充当思科路由器

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

  [复制链接]
查看: 4762|回复: 81
开通VIP 免金币+免回帖+批量下载+无广告
上一篇关于服务质量QoS文章中,我们讲到了报文分类和标记,这篇文章让我们再来了解一下调度机制。% }* j8 w2 P# O; L2 [+ [9 B
: u: p* z* {0 w
上文中,我们的语音、视频、数据这三份流量进入到了各自的队列中,然后我们需要对其进行调度。调度怎么理解呢?就是如何安排进来的流量有秩序有主次地出去。调度分为两种:
! r9 v9 ?" t( ?* n1 z! y
: |+ y+ U; d8 o( P① 基于队列的调度:内部是虚拟出了7个队列。假如语音进入了队列5、视频队列4、数据队列3. 基于队列的调度它是怎么工作的呢?
" e8 }/ C' {: c3 E7 U& W ' j  W9 p/ X* W: B
首先基于队列的调度分RR(轮询)——WRR(加权轮询)——WFQ(加权公平)——PQ(按优先级出流量)
1 a- W5 T7 l3 L& ^9 s
4 _+ O& r3 d/ F2 p/ E很明显语音(队列5)>视频>数据,则RR就语音走一个包,视频走一个包,数据走一个包,然后循环 RR。虽说非常公平,但我们要的是区别对待,高优先级先走,低优先级排后面。所以又开发了WRR,我们给语音队列加一个权重值3、视频2、数据不给,这样每一个循环语音就走3个包,视频走2个 数据还是走1个,这样就解决高优先级先溜的问题。不过还有一个问题,现实中,我们通常是以带宽来衡量的,假如数据的一个包1500字节,语音1个包100个字节,那么这样的一个循环,数据反而占用的带宽更高。
+ J- S: y' b+ ~
3 z  I! L' H0 a) `, p1 V: O' `( S, d% t! L" o4 Q) F' ], G8 G7 p8 [
' |; n$ L+ F; E7 P4 ~- M5 @
所以又开发了WFQ,加权又公平,基于带宽来分配,语音分30M、视频分20M、数据分10M,这样就解决了上述问题。$ M: r- r( K! q

! z5 ^6 D/ j' ?2 r# Y/ k" }
& r" @+ ?  O2 F  T
. ]& h8 D! F2 G那么PQ是什么,PQ就像一个莽夫,往前冲就对了。语音优先级高,那我就先把语音的流量走完,再走视频再走数据。这样虽然高优先级的很开心,但如果语音一直有流量,那么视频、数据就一个包都发不出了,会造成低优先级流量饿死的情况,显然也是不可取的。2 \* P" p2 t% ^
. [9 r$ b8 r) i6 N. n; K! d
: @9 B* k5 K$ }, F

; x, _9 y/ a- g$ {不过一般而言,现实中一般会采用结合的方式比如PQ+WRR,PQ+WFQ这种方式。
$ f+ Z* l5 k# R( S$ s: S
4 H" X: O- c5 w/ `$ C7 a! N& j# R. r% {2 d2 z4 Q! r4 i8 ~  u

9 @7 @% a4 I0 b" h2 A2 R8 r( { 9 ]9 z9 o, c$ R+ `" ?& m
讲完基于队列的调度,接下来讲讲基于类的调度。
5 R  R" P% v- c. H2 g - O3 A' A8 i9 z" P* q0 h
② Class Based Queueing(CBQ)基于类的加权公平队列是对WFQ功能的扩展为用户提供了定义类的支持。CBQ首先根据IP优先级或者DSCP优先级、输入接口、IP报文的五元组等规则来对报文进行分类,然后让不同类别的报文进入不同的队列。对于不匹配任何类别的报文,送入系统定义的缺省类。- G' n- A( }7 J, S/ L
6 m" a( q1 T# r8 s( \7 Y" M9 o
那CBQ提供了哪几个队列呢?' k" P' G( m: W8 m0 i! v

7 f4 ]% D6 G" {0 a- V/ q; N: ?EF队列:满足低时延业务
& h: H* a- M6 X7 D# q7 ^AF队列:满足需要带宽保证的关键数据业务, L' F6 e# Z& D& W2 @# j
BE队列:满足不需要严格QoS保证的尽力发送业务

# g( e5 Z3 y1 S3 V* e/ A
: B5 J' n* E9 G4 n8 A/ n& v' P- I我们现在通过简单流分类or复杂流分类将语音分成一类,视频分成一类,微信数据分成一类,发语音的时候,我们应该会对时延有着很高的要求,视频则较高,发微信呢,卡个1-2s也还能接受,所以我们会将语音类流量,送入EF队列,视频类流量送入AF队列,剩下的微信流量就默认就进入我们的BE队列。" J" i) D) g/ h( x' F2 C6 K8 D' [0 }

4 N  ?0 c+ E) C9 H$ j 9 M" q+ d! }( a* P7 G/ _" x) Z

; {# e1 V9 _; \在EF队列中采用PQ调度,在AF队列中采用WFQ,在BE采用WFQ,所以我们会为EF队列设置一个最大带宽限制(毕竟用PQ免得BE的流量饿死了) ;为AF队列设置一个最小带宽限制,剩下的带宽给BE用。在EF中还有一个特殊的队列LLQ, LLQ比EF更优。1 e' d- Y5 q; |' B+ j
4 I" z9 |+ S- m: f  e; F$ v  i: N- J  ~
这样我们就调度完了,接下来是不是该出去了?我们可以在出接口的地方做流量管理。讲流量管理前我们再想想,假如流量真的很多,我再怎么调度,所有队列都满了,但是入口还一直进来流量,这个时候怎么办?会发生拥塞对吧?堵住了,难进,出去又慢。这个时候我们就要讲一讲发生拥塞时候的拥塞避免。
2 X& }* g% `  ~1 a
4 L' I  I0 w8 L9 q2 _
拥塞避免

* d9 b8 u( E% ], F3 p" n& @$ h& |: k/ D; H4 \* I
当我们拥塞时,队列满了会造成什么问题呢?尾丢弃,就是后面进来的流量直接就丢包了。所以尾丢弃会造成3个问题:1、不加分区丢包;2、TCP全局同步;3、TCP流量饿死。接下来我们来进入TCP的领域。. B/ ]2 ^, J# n0 ~. F. p
3 `) e, d$ [! ^
TCP是一个可靠安全的传输协议,有确定机制,丢包会重传等。假如TCP丢包了,等待重传计时器超时,然后重传,称超时重传;假如TCP丢了一部分的包,接收方能够通过序列号等参数,确定你发来的数据不完整,这时接收方会立刻连续重复发三个ACK报文,发送方立刻意识到接收方刚刚没收完整我发的包,立刻重发,称快重传。/ }2 _: r0 O% i
% t4 b$ K$ r8 y; u/ x1 R8 D
接下来我们来看看在网络中,我们的TCP如何启动并且发送数据的(TCP的一个窗口)
8 ?1 z9 D/ g2 w4 S1 N4 n- z
' g" G' @0 f- k/ N. A! l# T7 ?; h9 z3 e* C, W1 R
8 h8 [- T: `# p
我们来看一下这个图,并解释一些名词:
9 u3 }, G/ d3 T( T; G# X$ V1 p1 p' }1 A  y: }0 B: H8 W% P, D1 ~
拥塞窗口cwnd是发送方为一个动态变化的窗口叫拥塞窗口,拥塞窗口的大小取决于网络的拥塞程度。9 m# Z8 z: a. ^6 S5 Y. B
3 V3 t4 x6 _" L& T
ssthresh是慢启动门限(这里我们设置成16)cwnd=24时为阈值(默认是56636B);
$ A8 r* S+ W3 X# A7 G9 ^( j4 `$ T
4 q$ z- c, q8 p6 O慢开始也称慢启动,是指建立TCP连接时,把cwnd设置=1(536B)然后进行一个指数增长。" s7 v3 h: @) w2 G# Q
* X6 M, @! J  X
接下来进入重点:" E6 P0 z8 U! }
! y' N* x5 x; e1 o5 |5 ]
现在有一个TCP连接——>开始一个慢启动从cwnd=1开始指数增长到cwnd=16时候到达门限了,开始拥塞避免,就进入一个加法增长(发送的报文如果都收到ACK回复,cwnd会加法性的+1+1+1)——>到达cwnd=24阈值时检测到了拥塞——>立即把ssthresh门限降为阈值的一半也就是12,即新的ssthresh=12,为上图的②+③。接来下有两种处理行为:2 O0 W  D8 k, T1 ~  ~' p

' C/ J! A  e" w! X9 q9 r1 R① 拥塞后如果是超时重传造成的丢包,则cwnd=1,此时的ssthresh则为12,为上图的④+⑤( O9 B) z( F; Z- a- M

( ^; [( g0 m5 c. B② 拥塞后如果是快重传造成的丢包,则cwnd=12,进行一个拥塞避免,为上图的①
! @/ z+ x- l0 m( X7 F" N4 Y( P% p2 a: ]
大家捋清楚上图后,接下来TCP全局同步是什么意思呢?上图是一个TCP连接,假如有100个N个TCP连接用时进行,那么这100个TCP连接同时到达阈值,把阈值下降一半,会造成带宽的浪费;如果50个先到阈值,下降一半,再慢启动,另外50个就可以利用之前50个的带宽。7 T% A9 x$ @- H: z2 b

7 Q; m7 ?# D5 v那TCP流量饿死又是什么呢?TCP流量饿死是指当TCP在cwnd很小时,如果UDP流量大量持续进来,就会造成TCP的cwnd一直很小,最后TCP流量无法传出则称饿死。
1 g  _# a0 l* K) |1 f$ X  R9 ^" J8 c! |+ u  p$ y
那我们怎么解决这些拥塞造成的问题呢?在我们拥塞避免的阶段,我们用一个叫做wred(加权早期随机检测)的技术,这个技术是我们为每一个队列配置一个丢弃模板,在队列还没满时,高优先级的丢10个包,低优先级丢20个包,这样处理,有效解决了TCP全局同步+TCP流量饿死+不加区分的丢包。
7 }- h4 |8 D! N
CCNA考试 官方正规报名 仅需1500元
回复 论坛版权

使用道具 举报

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

使用道具 举报

ywb_qh [Lv9 无所不能] 发表于 2020-3-17 06:54:11 | 显示全部楼层
非常感谢搂住分享资源呀
) h4 l( ?8 g+ `& \
回复 支持 反对

使用道具 举报

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, 2026-5-20 11:16 , Processed in 0.106421 second(s), 15 queries , Gzip On, MemCache On.

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

Designed by ARTERY.cn