Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv...
Transcript of Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv...
![Page 1: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/1.jpg)
1
Special Topics: Diffserv Model
Xuan ChenNov 22, 2002
![Page 2: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/2.jpg)
2
Outline
n Diffserv architecturen Diffserv simulation in nsn Implementation of diffserv model in ns
n Thanks for Nortel advanced network group for contributing the original code!
![Page 3: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/3.jpg)
3
Diffserv (Differentiated Services)
n IP QoS architecture based on packet-markingn Differentiating traffic classes according to
requirements (policies)n Discarding more packets in low priority traffic
class upon congestion
n Diffserv attempts to restrict complexity to only the edge routers n No end-to-end resource reservation
![Page 4: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/4.jpg)
4
Diffserv Architecturen Three major components
n Policy and resource managern Create network policiesn Distribute policies to the Diffserv routers
n Edge routers: packet markingn Core routers: PHB
![Page 5: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/5.jpg)
5
Diffserv Policyn A policy specifies which traffic receives a
particular level of service in the networkn TSW (time sliding window) policy:
n Clark, D. And W. Fang. "Explicit allocation of best effort packet delivery service.“, 1998
n Traffic profile: expected throughputn Mark packets as IN when the measure traffic rate
complies to its profile; Otherwise OUTn Drop more OUT packets upon congestion
![Page 6: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/6.jpg)
6
Edge and Core Routersn Edge router’s responsibilities:
n Classifying incoming traffic according to policy specified and measurement
n Marking packets with a code point that reflects the desired level of service
n Core router’s responsibilities:n Differentiating incoming packets based on
code point and entries in PHB (per-hop-behavior) table
![Page 7: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/7.jpg)
7
Outline
n Diffserv architecturen Diffserv simulation in nsn Implementation of diffserv model in ns
![Page 8: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/8.jpg)
8
Steps for Simulation Configuration
n Setup edge and core “routers”n Configure Diffserv queuesn Add diffserv policy
n Entry in policy tablen Entry in PHB table
n Collect packet statisticsn Example: token bucket marking policy with
priority schedulingn More examples under ~ns/tcl/ex/diffserv/
![Page 9: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/9.jpg)
9
Scenarion CBR traffic from S1 and S2 to D
n As we have discussed in previous session
n E1 and E2 are edge routers, C is core routern Token bucket policy and priority scheduling
s1
e1 c e2 Ds2
![Page 10: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/10.jpg)
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?
![Page 11: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/11.jpg)
11
Diffserv Queue Configuration I
n Get handlers to diffserv queuesset 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]
![Page 12: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/12.jpg)
12
Diffserv Queue Configuration II
n Specify queue configurations$qE1C meanPktSize $packetSize$qE1C set numQueues_ 1$qE1C setNumPrec 2…$qE1C configQ 0 0 20 40 0.02$qE1C configQ 0 1 10 20 0.10
![Page 13: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/13.jpg)
13
Physical and Virtual Queues
Packet 4 11
Packet 3 10
physical queue
Diffserv queue
v1v0
scheduler
12
![Page 14: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/14.jpg)
14
Diffserv Queue Configuration IIIn Configure scheduling algorithms
(default: RR)n Configure priority scheduling
$qCE2 setSchedularMode PRI$qCE2 addQueueRate 0 3000000
$qCE2 meanPktSize $packetSize$qCE2 set numQueues_ 2$qCE2 setNumPrec 2
![Page 15: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/15.jpg)
15
Add Policy I
n 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
n Add Entries in policer table$qE1C addPolicerEntry TokenBucket 10 11$qE1C addPolicerEntry TokenBucket 20 21
![Page 16: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/16.jpg)
16
Add Policy II
n Add Entries to PHB table$qE1C addPHBEntry 10 0 0$qE1C addPHBEntry 11 0 1$qE1C addPHBEntry 20 0 0$qE1C addPHBEntry 21 0 1
n Only PHB table is need for core router
![Page 17: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/17.jpg)
17
Collecting Statistics$qE1C printPolicyTable$qE1C printPolicerTable
$qE1C printStatsPackets Statistics========================CP TotPkts TxPkts ldrops edrops-- ------- ------ ------ ------All 12494 5056 7438 010 2503 2503 0 011 2495 10 2480 5
![Page 18: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/18.jpg)
18
Summary
n Setup edge and core “routers”n Configure Diffserv queuesn Add diffserv policy
n Entry in policy tablen Entry in PHB table
n Collect packet statisticsn More examples under
~ns/tcl/ex/diffserv/
![Page 19: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/19.jpg)
19
Outline
n Diffserv architecturen Example and lab exercisen Implementation of diffserv model in ns
![Page 20: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/20.jpg)
20
Diffserv Model in ns
n Ported from Norteln An extension to nsn Configuration in tcl: policy, edge and core routersn Source code and sample scripts: under
~ns/diffserv and ~ns/tcl/ex/diffservn Add test suite and documentation
n Available since Dec 2000 or ns-2.1b8 releasen Widely used by ns users: “hot” topics in ns-
[email protected] mailing list
![Page 21: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/21.jpg)
21
Diffserv Model in ns: Revisionn Reorganizing the diffserv policy code to
make adding new policies easiern Providing new functions and bug fix
n Added query functions for simulation statistics and queue states
n Fixed bugs in priority schedulingn Thanks for ns-users’ contributions!
![Page 22: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/22.jpg)
22
Implementing Diffserv Model in ns
n Classify traffic with physical and virtual queuesn A code point in a packet is matched to a
physical queue (traffic class) and a virtual queue (dropping preference)
n Support different underline queuing disciplines (droptail, RED) and scheduling algorithms (round-robin, priority queue, etc)
![Page 23: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/23.jpg)
23
Diffserv Queue In Implement Diffserv functionalities in queuesn Implement traffic classification with:
n Modified RED queue: ds REDqueuen Contains up to 4 physical queue
n Physical queue: traffic classn Real queue to hold packetsn Contains up to 3 virtual queue
n Virtual queue: drop preferencen Individual RED parametersn Keep packet order among different virtual queues within
one physical queue
![Page 24: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/24.jpg)
24
Diffserv Queue II
Packet 4 11
Packet 3 10P 0
P1
P2
physical queue 3
Diffserv queue
v1v0
scheduler
12
![Page 25: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/25.jpg)
25
Edge and Core Routersn Implemented as edge-queue and core-queue
n Derived from dsREDqueue
n Incoming packets:n At edge router (edge-queue): marked with code
pointn At core router (core-queue): queued at
corresponding physical/virtual queuen Outgoing packets:
n Dequeued according to scheduling algorithms (among physical queues)
![Page 26: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/26.jpg)
26
Diffserv Policies in nsn Service profile at edge routers
n Entry in policy and policer tables for source-destination pairs
n Keep states for each pair
n PHB at core routersn Entry in PHB table: map code points to
physical/virtual queues
![Page 27: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/27.jpg)
27
Policy Supported
n TSW2CM and TSW3CMn Token bucketn Single rate three color markern Two rate three color marker
![Page 28: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/28.jpg)
28
Apply Policyn Edge routers keep the requirement and
states for each source-destination pair in policy table
n Edge routers and core routers keep the relation: code point—traffic class/drop preference
![Page 29: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/29.jpg)
29
Policy Implementation in nsn Implement a supper class dsPolicy with virtual
functions:n Meter: traffic measurement and state keepingn Policer: packet marking
n An actual policy is a child class derived from class Policyn Need to implement its own meter and policer
functionsn dumbPolicy: does nothing, but as an example
n Edge routers refer to a certain policy by a pointer
![Page 30: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/30.jpg)
30
Steps to Add Customized Policy
n “Register” your new policy in dsPolicy.hn Define the new policy as a child class of
class policyn Write your own applyMeter and
applyPolicer functionsn Add entries in functions addPolicyEntry
and addPolicerEntryn Example: DumbPolicy
![Page 31: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/31.jpg)
31
Register New Policy
n Create identification
#define DUMB 0
…enum policerType {dumbPolicer, …};…enum meterType {dumbMeter, …};
![Page 32: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/32.jpg)
32
Define new policyclass DumbPolicy : public Policy {public:
DumbPolicy() : Policy(){};void applyMeter(policyTableEntry *policy, Packet *pkt);int applyPolicer(policyTableEntry *policy,policerTableEntry *policer, Packet *pkt);
};n Write your own functions applyMeter and
applyPolicer
![Page 33: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/33.jpg)
33
Add Entries for New Policyn 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;
}
![Page 34: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/34.jpg)
34
Example
n Modify dumbPolicy so that packets with even numbers are marked with lower priority.
n applyMeter: flow state keepingn applyPolicer: packet marking based on
flow state
![Page 35: Special Topics: Diffserv Model - Information …2 Outline nDiffserv architecture nDiffserv simulation in ns nImplementation of diffserv model in ns nThanks for Nortel advanced network](https://reader033.fdocuments.in/reader033/viewer/2022041915/5e695a3657a06e5f4263aaef/html5/thumbnails/35.jpg)
35
Example---continued
n Question: what flow state should you keep?
n Try to work out this new policy as an optional task for lab…