Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "Chapter 7 Queue Management and Packet Scheduling 696430068 曾敬任."— Presentation transcript:

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 演算法


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

Similar presentations


Ads by Google