Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

24
Chapter 7 Queue Management and Packet Scheduling 696430068 曾曾曾
  • date post

    21-Dec-2015
  • Category

    Documents

  • view

    237
  • download

    0

Transcript of Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Page 1: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Chapter 7

Queue Management and

Packet Scheduling696430068

曾敬任

Page 2: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc) PacketQueue Class (queue.h) Example : Drop-Tail Queue objects 種類介紹 JoBS 簡介 抽考

Page 3: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc) PacketQueue Class (queue.h)PacketQueue Class (queue.h) ExampleExample :: Drop-Tail Drop-Tail Queue objectsQueue objects 種類介紹種類介紹 JoBS JoBS 簡介簡介 抽考抽考

Page 4: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Packet Scheduling & Buffer management Packet Scheduling :決定哪個封包該被服務或 dro

p 的過程 Ex : FIFO 、 RR Buffer management :管理封包在 queue 中存取的

方式 Ex : RED Buffer management - ▪ Probabilistically discard packets ▪ Probability is computed as a function of average queue size

Page 5: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Queue class Public: virtual void enque(Packet*) = 0; virtual Packet* deque() = 0; virtual void recv(Packet*, Handler*); void resume();

Page 6: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Queue class protected: Queue(); ~Queue(); void reset(); int qlim_; int blocked_; /* blocked now? */ int unblock_on_resume_; /* unblock q on i

dle? */

Page 7: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc)Queue Class (queue.cc) PacketQueue Class (queue.h) ExampleExample :: Drop-Tail Drop-Tail Queue objectsQueue objects 種類介紹種類介紹 JoBS JoBS 簡介簡介 抽考抽考

Page 8: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

PacketQueue class Queue class 管理 buffer management 和 sc

heduling PacketQueue 則管理如何實際 enque deque

等等的 low-level operations ( 封包在 queue 裡頭的順序 )

Page 9: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

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 *);

Page 10: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

PacketQueue class protected: Packet* head_; Packet* tail_; int len_; // packet count int bytes_; // queue size in bytes

Page 11: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc)Queue Class (queue.cc) PacketQueue Class (queue.h)PacketQueue Class (queue.h) Example: Drop-Tail Queue objectsQueue objects 種類介紹種類介紹 JoBS JoBS 簡介簡介 抽考抽考

Page 12: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Drop-Tail Class class DropTail : public Queue { protected: void reset(); void enque(Packet*); Packet* deque(); void shrink_queue(); // To shrink queue and d

rop excessive packets. PacketQueue *q_; /* underlying FIFO queu

e */

Page 13: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc)Queue Class (queue.cc) PacketQueue Class (queue.h)PacketQueue Class (queue.h) ExampleExample :: Drop-Tail Drop-Tail Queue objects種類介紹 JoBS JoBS 簡介簡介 抽考抽考

Page 14: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Different types of Queue objects 所有 Queue objects 都會使用的結構參數:  limit_ queue 容納封包的數目 blocked_ 初始值為 false

unblock_on_resume 初始值為 true ,當指定的 queue 裡頭最後一個封包送出即可設為 1( 不用等到封包 received)

Page 15: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

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_

Page 16: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

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_

Page 17: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc)Queue Class (queue.cc) PacketQueue Class (queue.h)PacketQueue Class (queue.h) ExampleExample :: Drop-Tail Drop-Tail Queue objectsQueue objects 種類介紹種類介紹 JoBS 簡介 抽考抽考

Page 18: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

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

Page 19: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

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

Page 20: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

Outline Queue Class (queue.cc)Queue Class (queue.cc) PacketQueue Class (queue.h)PacketQueue Class (queue.h) ExampleExample :: Drop-Tail Drop-Tail Queue objectsQueue objects 種類介紹種類介紹 JoBs JoBs 簡介簡介 抽考

Page 21: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

抽考-模擬環境

Page 22: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

抽考-模擬環境 設定兩條 TCP 連線,並且在 TCP 連線之上

建立 FTP 應用程式,兩者速率皆相同。 將 r 到 d 之間的 queue limit 設為 9 皆使用 Drop Tail 演算法 n0 從第 0.1 秒開始傳送封包到 d ,在第 30

秒停止 n1 從第 10 秒開始傳送封包到 d ,在第 30

秒停止

Page 23: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

抽考-模擬結果 結果:   n0 sent packet : 5367   loss packet : 0   n1 sent packet : 3   loss packet : 3

Page 24: Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任.

抽考-題目 抽考題目:透過更改 queue objects ( 不更

改 queue limit 、速率和時間等等的其他參數 ) ,使 n1 傳送封包的效率有顯著的提升。

提示:更改 Drop-Tail 演算法