Download presentation
Presentation is loading. Please wait.
1
Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任
2
Outline Queue Class (queue.cc) PacketQueue Class (queue.h) Example : Drop-Tail Queue objects 種類介紹 JoBS 簡介 抽考
3
Outline
4
Packet Scheduling & Buffer management Packet Scheduling :決定哪個封包該被服務或 drop 的過程 Ex : FIFO 、 RR Buffer management :管理封包在 queue 中存取的 方式 Ex : RED Buffer management - ▪ Probabilistically discard packets ▪ Probability is computed as a function of average queue size
5
Queue class Public: virtual void enque(Packet*) = 0; virtual Packet* deque() = 0; virtual void recv(Packet*, Handler*); void resume();
6
Queue class protected: Queue(); ~Queue(); void reset(); int qlim_; int blocked_; /* blocked now? */ int unblock_on_resume_; /* unblock q on idle? */
7
Outline
8
PacketQueue class Queue class 管理 buffer management 和 scheduling PacketQueue 則管理如何實際 enque deque 等等的 low-level operations ( 封包在 queue 裡頭的順序 )
9
PacketQueue class public: PacketQueue() virtual int length() virtual Packet* enque(Packet* p) virtual Packet* deque() Packet* lookup(int n) virtual void remove(Packet*); void remove(Packet *, Packet *);
10
PacketQueue class protected: Packet* head_; Packet* tail_; int len_; // packet count int bytes_; // queue size in bytes
11
Outline
12
Drop-Tail Class class DropTail : public Queue { protected: void reset(); void enque(Packet*); Packet* deque(); void shrink_queue(); // To shrink queue and drop excessive packets. PacketQueue *q_; /* underlying FIFO queue */
13
Outline
14
Different types of Queue objects 所有 Queue objects 都會使用的結構參數: limit_ queue 容納封包的數目 blocked_ 初始值為 false unblock_on_resume 初始值為 true ,當指定 的 queue 裡頭最後一個封包送出即可設為 1( 不用等到封包 received)
15
Different types of Queue objects Queue objects 包含以下不同的種類: Drop-Tail objects - FIFO queue ,沒有特別的 methods 結構 參數或狀態變數 FQ objects - Fair Queuing ,結構參數: secsPerByte SFQ objects - Stochastic Fair queuing , 結構參數: maxqueue_ buckets_ DRR objects - deficit round robin scheduling 有 deficit counter 用來表示這個 round 有多少 service 可以使 用,如果 packet size 比 deficit counter 大,那麼在下一輪就 會在這個 deficit size 增加 quantum size 。結構參數: buckets_ blimit_ quantum_ mask_
16
Different types of Queue objects RED - Random Early Dection 透過計算平均 queue size 偵測起始的 congestion ,當平均 queue size 超過預設的 threshold , gateway 就會根據機率對 接下來每個到達的封包進行 drop 或 mark ;機率跟平均 queue size 有關。當封包塞滿的時候, RED 會將平均 queue size 保持在較低的狀態。 RED 通常伴隨一個有 congestion control 的 protocol 。 RED 可 以用來解決例如全局同步的問題。 結構參數: bytes_ queue-int-bytes_ thresh_ maxthresh_ mean_pktsize_ q_weight_ wait_ linterm_ setbit_ drop-tail_
17
Outline
18
JoBS 簡介 Joint Buffer Management and Scheduling 目的:根據流量分類對每個節點提供絕對 和相對的 loss 和 delay 的獨立區分 QoS constraint : Class-1 Delay ≈ 2∙Class-2 Delay Class-2 Loss Rate ≈ 10 -1 ∙Class-3 Loss Rate Class-3 Delay ≤ 5ms
19
JoBS 簡介 JoBS constraints : Relative delay constraints (RDC) Absolute delay constraints (ADC) Relative loss constraints (RLC) Absolute loss constraints (ALC) Absolute rate constraints (ARC) ALC > ADC , ARC > Relative Constraints
20
Outline
21
抽考-模擬環境
22
設定兩條 TCP 連線,並且在 TCP 連線之上 建立 FTP 應用程式,兩者速率皆相同。 將 r 到 d 之間的 queue limit 設為 9 皆使用 Drop Tail 演算法 n0 從第 0.1 秒開始傳送封包到 d ,在第 30 秒 停止 n1 從第 10 秒開始傳送封包到 d ,在第 30 秒停 止
23
抽考-模擬結果 結果: n0 sent packet : 5367 loss packet : 0 n1 sent packet : 3 loss packet : 3
24
抽考-題目 抽考題目:透過更改 queue objects ( 不更改 queue limit 、速率和時間等等的其他參數 ) , 使 n1 傳送封包的效率有顯著的提升。 提示:更改 Drop-Tail 演算法
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.