1 Special Topics: Diffserv Model Xuan Chen Nov 22, 2002.

Slides:



Advertisements
Similar presentations
QoS Strategy in DiffServ aware MPLS environment Teerapat Sanguankotchakorn, D.Eng. Telecommunications Program, School of Advanced Technologies Asian Institute.
Advertisements

Japan Telecom Information & Communication Labs
Using Edge-To-Edge Feedback Control to Make Assured Service More Assured in DiffServ Networks K.R.R.Kumar, A.L.Ananda, Lillykutty Jacob Centre for Internet.
1 ns-2 Tutorial, part 2 Dave Anderson, Xiaowei Yang (Modified from Polly Huang’s slides)
How to Add a New Protocol in NS2 Xu Leiming CSCW Lab. at CS Dept., Tsinghua Univ. June 1, 2001.
Introduction to NS. Information Main website Documentation, mailing list archive, tutorial Location of Source codes –C++ files.
CSE Computer Networks Prof. Aaron Striegel Department of Computer Science & Engineering University of Notre Dame Lecture 20 – March 25, 2010.
Traffic Manager Vahid Tabatabaee Fall 2007.
Priority Scheduling and Buffer Management for ATM Traffic Shaping Authors: Todd Lizambri, Fernando Duran and Shukri Wakid Present: Hongming Wu.
Real-Time Protocol (RTP) r Provides standard packet format for real-time application r Typically runs over UDP r Specifies header fields below r Payload.
CPSC Topics in Multimedia Networking A Mechanism for Equitable Bandwidth Allocation under QoS and Budget Constraints D. Sivakumar IBM Almaden Research.
Differentiated Services. Service Differentiation in the Internet Different applications have varying bandwidth, delay, and reliability requirements How.
Color Aware Switch algorithm implementation The Computer Communication Lab (236340) Spring 2008.
ACN: IntServ and DiffServ1 Integrated Service (IntServ) versus Differentiated Service (Diffserv) Information taken from Kurose and Ross textbook “ Computer.
CS Summer 2003 Lecture 8. CS Summer 2003 Populating LFIB with LDP Assigned/Learned Labels Changes in the LFIB may be triggered routing or.
CSE 401N Multimedia Networking-2 Lecture-19. Improving QOS in IP Networks Thus far: “making the best of best effort” Future: next generation Internet.
15-744: Computer Networking
School of Information Technologies IP Quality of Service NETS3303/3603 Weeks
Advanced Computer Networks1 Providing Guaranteed Services Without Per Flow Management By: Ion Stoica, Hui Zhang Presented by: Sanjeev R. Kulkarni.
Internet QoS Syed Faisal Hasan, PhD (Research Scholar Information Trust Institute) Visiting Lecturer ECE CS/ECE 438: Communication Networks.
CSc 461/561 CSc 461/561 Multimedia Systems Part C: 3. QoS.
Design of QoS Router Terrance Lee. Broadband Internet Architecture Intelligent Access Electronic Switch (Intserv or Diffserv) Switching /Routing QoS Security.
CS 268: Lecture 11 (Differentiated Services) Ion Stoica March 6, 2001.
Tiziana FerrariQuality of Service for Remote Control in the High Energy Physics Experiments CHEP, 07 Feb Quality of Service for Remote Control in.
© 2009 Cisco Systems, Inc. All rights reserved. Cisco Public Presentation_ID 1 Diffserv Yang Model
Bell Labs Advanced Technologies EMEAAT Proprietary Information © 2004 Lucent Technologies1 Overview contributions for D27 Lucent Netherlands Richa Malhotra.
{vp, sra, Security in Differentiated Services Networks Venkatesh Prabhakar Srinivas R.
QoS in MPLS SMU CSE 8344.
CIS679: Scheduling, Resource Configuration and Admission Control r Review of Last lecture r Scheduling r Resource configuration r Admission control.
Integrated Services (RFC 1633) r Architecture for providing QoS guarantees to individual application sessions r Call setup: a session requiring QoS guarantees.
1 Multi-Protocol Label Switching (MPLS). 2 MPLS Overview A forwarding scheme designed to speed up IP packet forwarding (RFC 3031) Idea: use a fixed length.
CS Spring 2011 CS 414 – Multimedia Systems Design Lecture 23 - Multimedia Network Protocols (Layer 3) Klara Nahrstedt Spring 2011.
QoS Architectures for Connectionless Networks
CSE QoS in IP. CSE Improving QOS in IP Networks Thus far: “making the best of best effort”
© 2006 Cisco Systems, Inc. All rights reserved. 3.3: Selecting an Appropriate QoS Policy Model.
© 2006 Cisco Systems, Inc. All rights reserved. Optimizing Converged Cisco Networks (ONT) Module 3: Introduction to IP QoS.
Quality of Service (QoS)
QOS مظفر بگ محمدی دانشگاه ایلام. 2 Why a New Service Model? Best effort clearly insufficient –Some applications need more assurances from the network.
CSC 336 Data Communications and Networking Lecture 8d: Congestion Control : RSVP Dr. Cheer-Sun Yang Spring 2001.
1 Internet Quality of Service (QoS) By Behzad Akbari Spring 2011 These slides are based on the slides of J. Kurose (UMASS)
Class-based QoS  Internet QoS model requires per session state at each router  1000s s of flows  per session RSVP is complex => reluctance.
Building Differentiated Services Using the Assured Forwarding PHB Group Juha Heinänen Telia Finland Inc.
Multimedia Wireless Networks: Technologies, Standards, and QoS Chapter 3. QoS Mechanisms TTM8100 Slides edited by Steinar Andresen.
Differentiated Services for the Internet Selma Yilmaz.
Network Support for QoS – DiffServ and IntServ Hongli Luo CEIT, IPFW.
1 Introduction to NS-2 r Tutorial overview of NS m Create basic NS simulation r Walk-through a simple example m Model specification m Execution and trace.
Emulation of Differentiated Services in VNUML CS680 Class Project Course Instructor : Prof. Anirudha Sahoo Project Team members : Vijay Gabale ( )
Differentiated Services IntServ is too complex –More focus on services than deployment –Functionality similar to ATM, but at the IP layer –Per flow QoS.
Providing QoS in IP Networks
Achievable Service Differentiation with Token Bucket Marking for TCP S. Sahu, D.Towsley University of Massachusetts P. Nain INRIA C. Diot Sprint Labs V.
Mar-16 1 Cairo University Faculty of Engineering Electronics &Communication dpt. 4th year Linux-based Implementation Of a Router (B.Sc Graduation project)
1 Lecture 15 Internet resource allocation and QoS Resource Reservation Protocol Integrated Services Differentiated Services.
Multiprotocol Label Switching (MPLS) Routing algorithms provide support for performance goals – Distributed and dynamic React to congestion Load balance.
Multi-protocol Label Switching (MPLS) RFC 3031 MPLS provides new capabilities: QoS support Traffic engineering VPN Multiprotocol support.
Chapter 30 Quality of Service Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display.
Advanced Computer Networks
QoS & Queuing Theory CS352.
Configuring Virtual Circuits
Choe, Hyun Jung (Stella)
NS2 simulation on video-conference packet transmission
Columbia University in the city of New York
Quality of Service For Mobile IP.
Dynamic Management for End-to-end IP QoS
EE 122: Lecture 18 (Differentiated Services)
Figure Areas in an autonomous system
1 Multi-Protocol Label Switching (MPLS). 2 MPLS Overview A forwarding scheme designed to speed up IP packet forwarding (RFC 3031) Idea: use a fixed length.
Project-2 (20%) – DiffServ and TCP Congestion Control
EE 122: Differentiated Services
CIS679: Two Planes and Int-Serv Model
Presentation transcript:

1 Special Topics: Diffserv Model Xuan Chen Nov 22, 2002

2 Outline Diffserv architecture Diffserv simulation in ns Implementation of diffserv model in ns Thanks for Nortel advanced network group for contributing the original code!

3 Diffserv (Differentiated Services) IP QoS architecture based on packet-marking Differentiating traffic classes according to requirements (policies) Discarding more packets in low priority traffic class upon congestion Diffserv attempts to restrict complexity to only the edge routers No end-to-end resource reservation

4 Diffserv Architecture Three major components Policy and resource manager Create network policies Distribute policies to the Diffserv routers Edge routers: packet marking Core routers: PHB

5 Diffserv Policy A policy specifies which traffic receives a particular level of service in the network TSW (time sliding window) policy: Clark, D. And W. Fang. "Explicit allocation of best effort packet delivery service.“, 1998 Traffic profile: expected throughput Mark packets as IN when the measure traffic rate complies to its profile; Otherwise OUT Drop more OUT packets upon congestion

6 Edge and Core Routers Edge router’s responsibilities: Classifying incoming traffic according to policy specified and measurement Marking packets with a code point that reflects the desired level of service Core router’s responsibilities: Differentiating incoming packets based on code point and entries in PHB (per-hop- behavior) table

7 Outline Diffserv architecture Diffserv simulation in ns Implementation of diffserv model in ns

8 Steps for Simulation Configuration Setup edge and core “routers” Configure Diffserv queues Add diffserv policy Entry in policy table Entry in PHB table Collect packet statistics Example: token bucket marking policy with priority scheduling More examples under ~ns/tcl/ex/diffserv/

9 Scenario CBR traffic from S1 and S2 to D As we have discussed in previous session E1 and E2 are edge routers, C is core router Token bucket policy and priority scheduling s1 e1ce2 D s2

10 Configure Edge and Core Routers For link (e1, c): $ns simplex-link $e1 $core 10Mb 5ms dsRED/edge $ns simplex-link $core $e1 10Mb 5ms dsRED/core For link (e2, c): $ns simplex-link $core $e2 5Mb 5ms dsRED/core $ns simplex-link $e2 $core 5Mb 5ms dsRED/edge Which to choose: where does packet marking happen?

11 Diffserv Queue Configuration I Get handlers to diffserv queues set qE1C [[$ns link $e1 $core] queue] set qE2C [[$ns link $e2 $core] queue] set qCE1 [[$ns link $core $e1] queue] set qCE2 [[$ns link $core $e2] queue]

12 Diffserv Queue Configuration II Specify queue configurations $qE1C meanPktSize $packetSize $qE1C set numQueues_ 1 $qE1C setNumPrec 2 … $qE1C configQ $qE1C configQ

13 Physical and Virtual Queues Packet 411Packet 310 physical queue Diffserv queue v1 v0 scheduler 12

14 Diffserv Queue Configuration III Configure scheduling algorithms (default: RR) Configure priority scheduling $qCE2 setSchedularMode PRI $qCE2 addQueueRate $qCE2 meanPktSize $packetSize $qCE2 set numQueues_ 2 $qCE2 setNumPrec 2

15 Add Policy I Add entries in policy table $qE1C addPolicyEntry [$s1 id] [$dest id] TokenBucket 20 $cir0 $cbs0 $qE1C addPolicyEntry [$s2 id] [$dest id] TokenBucket 10 $cir1 $cbs1 Add Entries in policer table $qE1C addPolicerEntry TokenBucket $qE1C addPolicerEntry TokenBucket 20 21

16 Add Policy II Add Entries to PHB table $qE1C addPHBEntry $qE1C addPHBEntry $qE1C addPHBEntry $qE1C addPHBEntry Only PHB table is need for core router

17 Collecting Statistics $qE1C printPolicyTable $qE1C printPolicerTable $qE1C printStats Packets Statistics ======================== CP TotPkts TxPkts ldrops edrops All

18 Summary Setup edge and core “routers” Configure Diffserv queues Add diffserv policy Entry in policy table Entry in PHB table Collect packet statistics More examples under ~ns/tcl/ex/diffserv/

19 Outline Diffserv architecture Example and lab exercise Implementation of diffserv model in ns

20 Diffserv Model in ns Ported from Nortel An extension to ns Configuration in tcl: policy, edge and core routers Source code and sample scripts: under ~ns/diffserv and ~ns/tcl/ex/diffserv Add test suite and documentation Available since Dec 2000 or ns-2.1b8 release Widely used by ns users: “hot” topics in ns- mailing listns-

21 Diffserv Model in ns: Revision Reorganizing the diffserv policy code to make adding new policies easier Providing new functions and bug fix Added query functions for simulation statistics and queue states Fixed bugs in priority scheduling Thanks for ns-users’ contributions!

22 Implementing Diffserv Model in ns Classify traffic with physical and virtual queues A code point in a packet is matched to a physical queue (traffic class) and a virtual queue (dropping preference) Support different underline queuing disciplines (droptail, RED) and scheduling algorithms (round-robin, priority queue, etc)

23 Diffserv Queue I Implement Diffserv functionalities in queues Implement traffic classification with: Modified RED queue: ds REDqueue Contains up to 4 physical queue Physical queue: traffic class Real queue to hold packets Contains up to 3 virtual queue Virtual queue: drop preference Individual RED parameters Keep packet order among different virtual queues within one physical queue

24 Diffserv Queue II Packet 411Packet 310 P 0 P1 P2 physical queue 3 Diffserv queue v1 v0 scheduler 12

25 Edge and Core Routers Implemented as edge-queue and core-queue Derived from dsREDqueue Incoming packets: At edge router (edge-queue): marked with code point At core router (core-queue): queued at corresponding physical/virtual queue Outgoing packets: Dequeued according to scheduling algorithms (among physical queues)

26 Diffserv Policies in ns Service profile at edge routers Entry in policy and policer tables for source-destination pairs Keep states for each pair PHB at core routers Entry in PHB table: map code points to physical/virtual queues

27 Policy Supported TSW2CM and TSW3CM Token bucket Single rate three color marker Two rate three color marker

28 Apply Policy Edge routers keep the requirement and states for each source-destination pair in policy table Edge routers and core routers keep the relation: code point—traffic class/drop preference

29 Policy Implementation in ns Implement a supper class dsPolicy with virtual functions: Meter: traffic measurement and state keeping Policer: packet marking An actual policy is a child class derived from class Policy Need to implement its own meter and policer functions dumbPolicy: does nothing, but as an example Edge routers refer to a certain policy by a pointer

30 Steps to Add Customized Policy “Register” your new policy in dsPolicy.h Define the new policy as a child class of class policy Write your own applyMeter and applyPolicer functions Add entries in functions addPolicyEntry and addPolicerEntry Example: DumbPolicy

31 Register New Policy Create identification #define DUMB 0 … enum policerType {dumbPolicer, …}; … enum meterType {dumbMeter, …};

32 Define new policy class DumbPolicy : public Policy { public: DumbPolicy() : Policy(){}; void applyMeter(policyTableEntry *policy, Packet *pkt); int applyPolicer(policyTableEntry *policy, policerTableEntry *policer, Packet *pkt); }; Write your own functions applyMeter and applyPolicer

33 Add Entries for New Policy Need to add entries for new policy in policy table, policer table, and functions to get statistics. void PolicyClassifier::addPolicyEntry(int argc, const char*const* argv) { … if (strcmp(argv[4], "Dumb") == 0) { if(!policy_pool[DUMB]) policy_pool[DUMB] = new DumbPolicy; policyTable[policyTableSize].policy_index = DUMB; policyTable[policyTableSize].policer = dumbPolicer; policyTable[policyTableSize].meter = dumbMeter; }

34 Example Modify dumbPolicy so that packets with even numbers are marked with lower priority. applyMeter: flow state keeping applyPolicer: packet marking based on flow state

35 Example---continued Question: what flow state should you keep? Try to work out this new policy as an optional task for lab…