SlideShare a Scribd company logo
1 of 72
L2/L3 Network 기초 이론 교육
L2, L3 QoS
Version 1.00
2018년 4월
A
1. Introduction
2. Classifier
3. Packet Marker
4. Policer
5. Queue Scheduler
6. Buffer Manager
7. QoS Features on Commercial L2/L3 Switch
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
1. Introduction
3
Data Plane Architecture
4
Data Plane
Packet EditorClassifierAddress Lookup Traffic Manager
MACSA
Learning
MACSA
Aging
MACDA
Forwarding
L2 Multicast
L2
Broadcast
IP
Forwarding
MAC
Address
Ethernet
CRC
Policing
Explicit QoS
field
Marking
Shaping
VLAN
(802.1Q)
Link
Aggregation
Frame/Packet
RED/WRED
ARP
Processing
IP
Forwarding
IP Multicast
ARP
Processing
ECMP
VLAN ID
(802.1Q)
PCP(CoS)
(802.1p)
IP TOS(DSCP,
IP-Prec)
IP TTL
IP checksum
L1~L4
Classification
Filtering
Packet
Remarking
Flow
Redirection
Flow
Mirroring
Flow
Accouting
Frame/Packet
IP
Fragmentation
Scheduling
(PQ,WFQ..)
• Marker: 패킷 헤더(802.1p, IP TOS/DSCP/IP-Prec)에 QoS 등급을 표시함
• Policer: 패킷의 유입율(bps)을 측정하여, 약속된 대역폭 이상의 폐킷은 폐기
• Queue Scheduler: Congestion 발생시에 어떤 패킷을 우선적으로 보내 줄 것인지 결정함
• Buffer Manger: Congestion 발생시에 어떤 패킷을 어떻게 버릴 것인지 판단함
Data Plane QoS Block Architecture
5
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
Data Plane QoS Block Architecture (cont)
6
.....
Shaper
.....
Queue Scheduler
Meter
Dropper
Policer
#1
Marker
Meter
Dropper
Policer
#2
Marker
Meter
Dropper
Policer
#3
Marker
Meter
Dropper
Policer
#N
Marker
Output Port
BufferManager
PacketMarker
Classifier
Scheduler
Q1
Q2
Q3
Qn
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
2. Classifier
7
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
• 수신된 패킷의 헤더 정보를 참조하여 그 패킷에 QoS Profile을 할당하고, 그 정보를 Traffic Manager에 전달
• 그렇다면 “수신된 패킷의 헤더 정보”라는게 뭘까?  Next Page
Classifier
8
Classifier
QueueScheduler
Marker
Policer
BufferManager
Traffic Manager
Packet
• Ingress Port/Interface, Egress Port/Interface
• Source MAC Address (SA), Destination MAC Address (DA)
• EtherType
• PCP/CoS/802.1p, DEI
• VLAN ID
• Source IP Address*, Destination IP Address*
• Protocol ID*
• TOS/IP-Precedence/DSCP
• Source Port Number*, Destination Port Number*
• TCP Flags
Classification Fields
9
• PCP/CoS/802.1p: Ethernet 프레임(VLAN 헤더)에 명시적으로 QoS 등급을 표기
• TOS/IP-Precendence/DSCP: IP 패킷(IP 헤더)에 명시적으로 QoS 등급을 표기
• 5 tuple: Source IP, Destination IP, Protocol ID, Source Port, Destination Port 
이 5개로 IP flow 구별이 가능함
• Ingress Port: 패킷이 유입된 입력
포트
• Egress Port: 패킷이 송신될 출력
포트
• Ingress Interface: 패킷이 유인된
입력 인터페이스
• Egress Interface: 패킷이 송실된
출력 인터페이스
Layer 1: Ingress & Egress Port/Interface
10
GE1
GE2
GE3
GE4
Ingress Port
Packet
Egress Port
L2 SW
Packet
Router
GE1
ge1.100
ge1.200
GE2ge2
GE3
GE4
VLAN ID
ge3
ge4.100
ge4.200
Ingress Interface
Packet
Packet
Egress Interface
• Destination MAC address: L2 망에서의 목적지 주소
• Source MAC address: L2 망에서의 송신지 주소
• Type: IPv4 (0x0800), ARP (0x0806), etc.
• VLAN header
• PCP (Priority Code Point): L2 레이어에서 이더넷 프레임의 우선 순위 표시. 802.1p 또는 CoS(Class of Service)라고
도 부름  0 (lowest priority) ~ 7 (highest priority)
• DEI (Drop Eligible Indicator): L2 스위치에서 트래픽 혼잡 발생시 해당 필드가 1인 프레임이 먼저 폐기됨
• VID (VLAN ID)
Layer 2: Ethernet Header
11
DEI
(1b)
VID
(12b)
PCP
(3b)
TPID=0x8100
(2B)
DA
(6B)
SA
(6B)
Type
(2B)
Data/Payload
(46B ~ 1500B)
FCS
(4B)
DA
(6B)
SA
(6B)
Type
(2B)
Data/Payload
(46B ~ 1500B)
FCS
(4B)
Untagged Ethernet II Frame
VLAN Tagged Ethernet II Frame
VLAN Header
• TOS/IP-Precedence/DSCP: L3 레이어에서 IP 패킷의
우선 순위를 표시
• Protocol ID: IGMP (1), IGMP (2), TCP (6), UDP (17)
• Source IP Address: IP망에서의 송신지 주소
• Destination IP Address: IP망에서의 수신지 주소
Layer 3: IP Header
12
• IP-Precedence: 0 (우선순위낮음)
~ 7 (우선순위높음)
• D: Minimum Delay
• T: Maximum Throughput
• R: Maximum Reliability
• C: Minimize Cost
• 현재는 TOS 대신 DSCP로 사용됨
• CU: Currently Unused
• 다음장….
VER IHL TOS Total Length
Identification 0 Fragment Offset
TTL Protocol ID Header Checksum
Source IP Address
Destination IP Address
IP option (if any)
IPv4 Header (variable size, up to 60B, default 20B)
DAMAC
6B
SAMAC
6B
EType
0x0800
2B
IP Header CRC
4B
IP Datagram
0b 4b 8b 16b 19b 31b
DF MF
20B~60B
20B
Class Selector
bits 0 1 2 3 4 5 6 7
DSCP CU
bits 0 1 2 3 4 5
IP-Prec
6 7
0D
IP Type Of Service (RFC 1349)
IP DiffServ Code Point (RFC 2474)
T R C
• DSCP 상위 3비트를 Class Selector라 부르며 기존 TOS의 IP-Precedence와 상호 호환 유지. 또한 VLAN Tagged Frame의
PCP(802.1p)와도 1:1 매핑  0 (우선순위 낮음) ~ 7 (우선순위 높음)
• 우선 순위가 가장 낮은 등급 (예: Internet traffic)
• 4개의 class가 존재하며, 각 class에 대해 3개의 drop precedence 값을 가짐
• AFx1(xxx 010b)면 drop 확률이 낮고, AFx3(xxx 110b)면 drop 확률이 높음  congestion 발생시에 AFx1 보다 AFx3이 먼저 폐기
• 우선 순위가 가장 높은 등급 (예: IPTV multicast traffic, VoIP traffic)
Layer 3: DSCP
13
Class Selector
bits 0 1 2 3 4 5 6 7
DSCP CU
bits 0 1 2 3 4 5
IP-Prec
6 7
0D
IP Type Of Service (RFC 1349)
IP DiffServ Code Point (RFC 2474)
T R C
0 (000b)
PCP (802.1p)3b
IP-Precedence3b
0 (000b)
Class Selector3b
0 (000b)
DSCP6b
0 (000 000b)
DSCP Name
Best Effort
1 (001b) 1 (001b) 1 (001b) 8 (001 000b) CS1
2 (010b) 2 (010b) 2 (010b) 16 (010 000b) CS2
3 (011b) 3 (011b) 3 (011b) 24 (011 000b) CS3
4 (100b) 4 (100b) 4 (100b) 32 (100 000b) CS4
5 (101b) 5 (101b) 5 (101b) 40 (101 000b) CS5
6 (110b) 6 (110b) 6 (110b) 48 (110 000b) CS6
7 (111b) 7 (111b) 7 (111b) 56 (111 000b) CS7
10 (001 010b) AF11- - -
12 (001 100b) AF12- - -
14 (001 110b) AF13- - -
18 (010 010b) AF21- - -
20 (010 100b) AF22- - -
22 (010 110b) AF23- - -
26 (011 010b) AF31- - -
28 (011 100b)- - -
30 (011 110b)- - -
AF32
AF33
46 (101 110b)- - - EF
34 (100 010b) AF41- - -
36 (100 100b)- - -
38 (100 110b)- - -
AF42
AF43
Layer 4: TCP/UDP Header
14
DAMAC
6B
SAMAC
6B
EType
0x0800
2B
CRC
4B
UDP
Header
UDP Packet
Source Port Numbrer Destination Port Number
UDP Length
0b 16b 31b
UDP Checksum
UDP Data
20B~60B 8B
8B
DAMAC
6B
SAMAC
6B
EType
0x0800
2B
CRC
4B
TCP
Header
TCP Packet
Source Port Numbrer Destination Port Number
Sequence Number
0b 16b 31b
THL
TCP Data
20B~60B
Acknowledgment Number
Window Size
TCP Checksum Urgent Pointer
TCP option (if any)
20B
Reserved
4b 10b
IP Header
(Protocol ID=17)
20B~60B
IP Header
(Protocol ID=6)
TCP Header (variable size, up to 60B, default 20B)
F
I
N
S
Y
N
R
S
T
P
S
H
A
C
K
U
R
G
HTTP GET
TCP Destination Port = 80
TCP Source Port = Ephemeral port # (ex. 50000)
HTTP 200 OK
TCP Destination Port = 50000
TCP Source Port = 80
https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
…
• L1: Ingress Port/Interface
• L2/L3: Source MAC Address, Source IP Address
• L1: Ingress Port/Interface
• L2/L3: Source MAC Address, Source IP Address
• L4: TCP/UDP Port Number
• L1: Ingress Port/Interface
• L2/L3: Source MAC Address, Source IP Address
• L1: Egress Port/Interface
• L2/L3: Destination MAC Address, Destination IP Address,
• L1: Ingress Port/Interface
• L2/L3: Source MAC Address, Source IP Address
• L1: Egress Port/Interface
• L2/L3: Destination MAC Address, Destination IP Address,
• L4: TCP/UDP Port Number
• L2: PCP(802.1p)
• L3: DSCP
Classification Category
15
• 패킷의 여러 필드들을 동시에 참조하여 QoS 서비스 등급(QoS Profile)을 정함
• End-to-End Flow base QoS(IntServ)를 위해 망의 각 node(Switch/Router)에서 수행 (비현실적)
• 단말/서버와 연결된 스위치/라우터에서 이를 수행하고, 그 결과를 802.1p 혹은 DSCP 필드에 마킹함
• 패킷에 표기된 QoS 값을 보고 QoS 서비스 등급(QoS Profile)을 정함
• 802.1p: L2 스위치/Router
• IP DSCP: Router
Type of Classification
16
L2 802.1p
IP DiffServ
Network
MF Classifer BA Classifer
PC RouterL2 SW ServerRouter
IP Network
DSCP = BE DSCP = BE
802.1p = 3
DSCP = AF31 DSCP = AF31
DSCP = BE DSCP = BE DSCP = AF31 DSCP = AF31
DSCP = BEDSCP = AF31DSCP = AF31
802.1p = 3
DSCP = AF31
Multi-Field Classification
Behavior Aggregate Classification
marking marking
marking
marking
• Marking 정보
• Policing 정보
• Queuing 정보
• Buffer Management 정보
Multi-Field Classification Table
17
Rule
#
Ingress
Port #
Egress
Port #
SAMAC DAMAC EType VLAN ID SAIP DAIP
Protocol
ID
DSCP SPTCP/UDP DPTCP/UDP
6B 6B 2B
802.1p
(PCP)
3b 12b 4B 4B 1B 1B 2B 2B
QoS Profile
Layer 1 Layer 2 (Ethernet) Layer 3 (IP) Layer 4 (TCP/UDP)
TCP
Flag
6b
1
2
3
4
5
6
7
8
9
10
… …
Rule Description: How to identify packets?
Rule Action: What to do
with the packet?
DEI
1b
Multi-Field Classification Example
18
DEI
Rule
#
Ingress
Port #
Egress
Port #
SAMAC DAMAC EType VLAN ID
Protocol
ID
DSCP SPTCP/UDP DPTCP/UDP
802.1p
(PCP)
TCP
Flag
* * * * EType 5 * * * * * *1
1~5 * * * * * * * * * * *2
* * * * 0x0800 5 * * * * * *3
* * * * 0x0800 * * 6 * * 80 *4
* * * * * * * * * * * *5
* * * * * * * * 20~30 * * *6
* * * * 0x0800 * * 17 * * 10~500 *7
* * * * 0x0800 * * * * * * *8
9
10
…
SAIP
*
*
*
*
*
*
DAIP
*
*
*
*
*
QoS Profile
…
5.1.1.0/24 8.5.1.0/24
1.1.1.0/24 20.1.1.0/24
224.0.0.0/8
1.1.1.0/24
20.1.1.0/24
HTTP Packet
11
12
13
 Wildcard 지원
 Value/Mask 혹은 Range 지원
Rule 4번에 매칭되어, 해당 엔트리의
QoS Profile을 얻어옴
• Marking 정보
• Policing 정보
• Queuing 정보
• Buffer Management 정보
Behavior Aggregate Classification Table
19
802.1p
0
1
2
3
4
5
6
7
QoS Profile
BE
CS1
AF11
AF12
AF13
EF
…
QoS ProfileDSCP
3b 6b
802.1p Table DSCP Table
QoS Profile
20
Classifier
Traffic Manager
Queue
Scheduler
Marker
Policer
Buffer
Manager
QoS Profile for Marker
1. 802.1p in VLAN Tag
- Marking or not
- 802.1p value
2. DSCP in IP Header
- Marking or not
- DSCP value
QoS Profile for Queue Scheduler
1. Queue ID
QoS Profile for Policer
1. Policing or not
2. Policer ID
3. Green (Conforming) Action
- Pass, Drop or Mark & Pass
4. Yellow (Loosely Conforming) Action
- Pass, Drop or Mark & Pass
5. Red (Non Conforming) Action
- Pass, Drop or Mark & Pass
QoS Profile for Buffer Manger
1. Drop Precedence Level
CLI Example
21
# access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100
Access Control List number 1번 정의
Source IP address : 1.1.1.0/24 (= 1.1.1.0 ~ 1.1.1.255)
Destination IP address : 20.1.1.0/24 (= 20.1.1.0 ~ 20.1.1.255)
TCP Packet (Protocol ID = 6)
TCP Source Port number : any (= 0 ~ 65535)
TCP Destination Port number : 50 ~ 100
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
3. Packet Marker
22
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
Packet Marker
23
L2 802.1p
Network
Untagged
Packet
802.1p/Q Tagged
Packet
L3 DiffServ
Network
Packet w/
DSCP = BE
Packet w/
DSCP = EF, AFx, BE
• 802.1p와 DSCP 필드를 동시 marking도 가능
QoS Profile for Marker
24
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
QoS Profile for Marker 1. 802.1p in VLAN Tag
- Marking or not
- 802.1p value
2. DSCP in IP Header
- Marking or not
- DSCP value
EType
2B
Data CRC
4B
ETPID
0x8100
2B
TCI
2B
DAMAC
6B
SAMAC
6B
3b
DEI VLAN ID
1b 12b
802.1p
(PCP)
VLAN Tag
VER IHL DSCP Total Length
Identification 0
Fragment
Offset
TTL Protocol ID Header Checksum
SAIP
DAIP
IP option (if any)
IPv4 Header (variable size, up to 60B, default 20B)
DAMAC
6B
SAMAC
6B
EType
0x0800
2B
IP Header CRC
4B
IP Datagram
0b 4b 8b 16b 19b 31b
DF MF
20B~60B
20B
CLI Example
25
# access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100
# set-packet-qos acl-num 1 802.1p 7
# set-packet-qos acl-num 1 ip dscp EF
acl-num 1에 match되는 패킷의 802.1p 값을 7로 세팅(Marking)
acl-num 1에 match되는 패킷의 DSCP 값을 EF로 세팅 (Marking)
참고
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
4. Policer
26
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
• Enterprise 서비스를 제공하는 통신 사업자가 기업과 계약(SLA)된 대역폭 만큼만 패킷이 통신 사업자망으로 유
입될 수 있도록 대여폭 제어
• Residential 서비스를 제공하는 통신 사업자가 가입자별 대여폭 제어 혹은 P2P와 같은 특정 응용에 대한 대역
폭 제어, 예전에… KT가 삼성 4K Smart TV로 가는 트래픽만 골라 대역폭 제어한 사건이 있었음
Policer Objective
27
20Mbps
20Mbps
20Mbps
20Mbps
10Mbps
10Mbps
10Mbps
20Mbps
10Mbps의 대역폭만 사용하기로 하고 월
50만원씩 지불하기로 했는데, 약속(SLA)
을 어기고 있군…
장비의 Policer 기능을 이용하여 대역폭을
10Mbps로 제한 !!!
• Meter: 입력 트래픽의 유입율(bps)을 기 정의된 Traffic Profile(약속된 대역폭)과 비교하여 그 결과(Green,
Yellow, Red)를 Policer Action Block(Pass, Mark, Drop)에 전달함
• Policer Action Block
• Pass: 패킷을 보냄
• Drop: 패킷을 폐기함
• Mark: L2 802.1p, L2 DEI, IP DSCP 값을 변경 후 패킷 전송
• 약속 이상으로 유입된 트래픽(패킷)에 대해 drop probability를 높일 수 있음 (DEI 1로 set, DSCP AFx1  AFx3로
변경, 또는 DSCP EF/AFxx에서 BE로 변경)
• DiffServ권고안에서는 본 기능(Policer)을 Traffic Conditioner라 함
Policer Components
28
Meter
Policer
Packet
In
Packet
Out
Dropper
Marker
수십~수백/수천(?)개의 Policer 블록 존재
• RFC 2697: srTCM (Single Rate Three Color Marker)
• RFC 2698: trTCM (Two Rate Three Color Marker)  오늘 주제
Two Rates & Three Colors
29
Two Rates & Three Colors
CIR
Committed
Information
Rate
PIR
Information Rate (bps)
red
yellow
green
Peak
Information
Rate
• CIR (Committed Information Rate): 통신 사업자와 가입자
(Enterprise or Residential user)간에 SLA(Service Level
Agreement)를 통해 서로 합의된 대역폭(bps)으로, 통신 사업자
망은 이 대역폭(CIR) 만큼 가입자 트래픽을 guarantee해야 할 의
무가 있음 (no packet loss)
• PIR (Peak Information Rate): 수신 패킷의 유입률이 CIR 값을
넘어서더라도 망에 congestion이 발생하지 않는 선에서 통신 사
업자 망에서 받아 줄 수 있는 대역폭을 PIR로 정의 (PIR > CIR).
즉, CIR 까지는 guarantee하고 CIR이 넘더라도 PIR 까지는 받아
줄 수 있으나 guarantee는 못함
• Green: 수신 패킷의 유입률(bps)이 CIR(bps) 이하인 경우 그 패
킷은 Green
• Yellow: 수신 패킷의 유입률이 CIR 보다 크지만 PIR 이하인 경우
그 패킷은 Yellow
• Red: 수신 패킷의 유입률이 PIR 이상인 경우 그 패킷은 Red
예: 어떤 Enterprise 가입자에 대해 SLA를 통해 CIR=10Mbps, PIR=15Mbps로 설정을 하였다면,
Enterprise 가입자로 부터 유입되는 트래픽에 대해서 Metering을 수행하고, (1) 유입률이 CIR(10Mbps) 이하인 Green 패킷은
DSCP=AF로 마킹 및 패킷 포워딩하고, (2) CIR(10Mbps)은 넘었지만 PIR(15Mbps) 이하인 Yellow 패킷은 DSCP=BE로 마킹 및 패킷 포
워딩(이후 네트워크 상에 다른 라우터에서 congestion이 발생하게 되면 DSCP=BE에 해당하는 패킷은 drop 될 수도 있음)하고, (3)
PIR(15Mbps) 이상인 Red 패킷은 drop시킴
Token Buckets
30
BT
BT
Token Bucket 1 (P)
BT (Byte Token) drops into the Bucket
at the rate of PIR/8 tokens per second
Max Token Count
= PBS
BT
Current Token
Count = Tp
BT
BT
BT
BT BT
BTBT
Token Bucket 2 (C)
BT (Byte Token) drops into the Bucket
at the rate of CIR/8 tokens per second
Max Token Count
= CBS
BT
BT
BT
BT BT
BT
Current Token
Count = Tc
Token Bucket 1 (P)
• Token Bucket에 Token 채우기: 이 Token Bucket으로는 초당
"PIR/8"개의 Byte Token(이하 Token)이 채워짐. 예를 들어,
PIR=8Mbit/s(bps)이면 이를 byte로 환산하면 1Mbyte/s이고 즉,
초당 1M(1,000,000)개의 Token이 채워짐 (Token 1개 = 1byte)
• Token Bucket의 최대 Token 개수: 이 Token Bucket에는 최대
PBS(Peak Burst Size) 만큼의 Token이 들어 갈 수 있음. 예를 들어,
PBS=8Kbyte이면 이 Token Bucket에는 최대 8K(8,000)개의 Token
이 저장될 수 있음. 그 이상의 Token은 저장 될 수 없음.
• Token Bucket에서 Token 빠져 나가기: 패킷이 유입되면, 해당 패
킷 크기 만큼 이 Token Bucket에 담겨 있는 Token이 없어짐. 예를
들어, Token Bucket에 8,000개의 Token이 있고, 1,000byte 패킷(IP
header 포함)이 유입되면, Token Bucket에는 7,000개의 Token이
남게 됨
Token Bucket 2 (C)
• Token Bucket에 Token 채우기: 이 Token Bucket으로는 초
당 "CIR/8"개의 Token이 채워짐
• Token Bucket의 최대 Token 개수: 이 Token Bucket에는 최
대 CBS(Committed Burst Size) 만큼의 Token이 들어 갈 수
있음. 그 이상의 Token은 저장 될 수 없음
• Token Bucket에서 Token 빠져 나가기: 패킷이 유입되면,
해당 패킷 크기 만큼 이 Token Bucket에 담겨 있는 Token
이 차감됨
• 최초 2개의 Token Bucket은 각각 PBS, CBS 만큼의 Token으로 가득차 있음
• 이제 사이즈가 B byte인 패킷이 하나 들어 옴
• 먼저 Token Bucket 1의 현재 Token 개수(Tp)와 B를 비교. 만약 B 보다 Token 개수가 적으면 이 패킷은 Red 패
킷이 됨
• 그렇지 않으면 이번에는 Token Bucket 2의 현재 Token 개수(Tc)와 B를 비교. 만약 B 보다 Token 개수가 적으면
이 패킷은 Yellow가 됨. 그리고 Token Bucket 1의 Token 개수(Tp)에서 B 만큼 차감
• 위 두가지 경우에 해당되지 않으면 그 패킷은 Green. 그리고 Token Bucket 1, 2의 Token 개수(Tp와 Tc)에서 각
각 B 만큼 차감
• 패킷 수신때 마다 이 과정이 계속 반복됨
• 그리고 Token Bucket 1, 2에는 초당 PIR/8, CIR/8 개의 Token이 채워짐
Token Buckets Operation
31
BT
BT
Token Bucket 1 (P)
BT (Byte Token) drops into the Bucket
at the rate of PIR/8 tokens per second
Max Token Count
= PBS
Token Bucket 2 (C)
BT (Byte Token) drops into the Bucket
at the rate of CIR/8 tokens per second
Max Token Count
= CBS
BT
BT
BT
BT BT
BT BT
Current Token
Count = Tp
Current Token
Count = Tc
BT
BT
BT
BT BT
BTBT
Token Buckets Example
32
Packet 1
1,000,000 Tokens/s
Max
8,000 TokensCurrent Token
(Tp) = 1,000
500,000 Tokens/s
Max
4,000 TokensCurrent Token
(Tc) = 600
PIR = 8Mbps
PBS = 8KByte
CIR = 4Mbps
CBS = 4KByte
1500byte Packet Size (1500)
> Tp (1000)
Packet 1
Packet is Red
Token Bucket 1 Token Bucket 2
Packet 2
1,000,000 Tokens/s
Max
8,000 TokensCurrent Token
(Tp) = 1,000
500,000 Tokens/s
Max
4,000 TokensCurrent Token
(Tc) = 600
PIR = 8Mbps
PBS = 8KByte
CIR = 4Mbps
CBS = 4KByte
800byte Packet Size (800)
> Tc (600)
Packet 2
Packet is Yellow
Token Bucket 1 Token Bucket 2
Packet Size (800)
< Tp (1000)
Tp (200) = Tp (1000) - 800
Packet 3
1,000,000 Tokens/s
Max
8,000 TokensCurrent Token
(Tp) = 1,000
500,000 Tokens/s
Max
4,000 TokensCurrent Token
(Tc) = 600
PIR = 8Mbps
PBS = 8KByte
CIR = 4Mbps
CBS = 4KByte
300byte Packet Size (300)
< Tc (600)
Packet 3
Packet is Green
Token Bucket 1 Token Bucket 2
Packet Size (300)
< Tp (1000)
Tp (700) = Tp (1000) - 300 Tp (300) = Tc (600) - 300
Case 1
Case 2
Case 3
Pseudo-Code in RFC 2698
33
Let us assume that
Token Bucket 1 is P
Token Bucket 2 is C
Tp is number of Token (Token Count) in a P
Tc is number of Token (Token Count) in a C
Initially
Tp(0) = PBS /* Token Count of Token Bucket 1(P) is initially full */
Tc(0) = CBS /* Token Count of Token Bucket 2(C) is initially full */
A packet of size B bytes arrives at time t
- If Tp(t) - B < 0, then the packet is red, else
- If Tc(t) - B < 0, then the packet is yellow and Tp is decremented by B, else
- the packet is green and both Tp and Tc are decremented by B
• Pass: 패킷 송출
• Mark: 802.1p (PCP), DEI, DSCP 값 변경
• SLA를 지킨 Green 패킷에 대해 E2E QoS 보장을 위해 QoS 등급을 높이는데 사용될 수도 있고,
• 또는 Yellow 패킷에 대해 QoS 등급을 낮추는데 사용됨 (망 어딘가에서 congestion 발생 시 이 패킷 먼저 폐기하라
는 표기)
• Drop: 패킷 폐기
Policer Action
34
Change 802.1p (PCP)
Set DEI
Change DSCP (Class Selector)
Change DSCP (Drop Probability): AFx1  AFx3
Green
Yellow
Red Drop
Mark
Pass
Change WRED Drop Precedence Level
• Policing 수행 유무
• 만약 Policing을 한다면 어떤 Policer 블록(Policer
ID)을 통해 처리할 것인가?
• Metering 결과로 나온 Green/Yellow/Red 패킷에
대한 처리 방안
• 만약 Marking을 한다면 marking할 필드 정의
QoS Profile for Policer
35
acket
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Marking Information
- Marking Field
: 802.1p (PCP), DEI, DSCP
- Marking Value
- WRED Drop Precedence Level
Meter
Dropper
Policer
#1
Marker
Meter
Dropper
Policer
#2
Marker
Meter
Dropper
Policer
#N
Marker
...
QoS Profile for Policer 1. Policing or not
2. Policer ID
3. Green (Conforming) Action
- Pass, Drop or Mark & Pass
4. Yellow (Loosely Conforming) Action
- Pass, Drop or Mark & Pass
5. Red (Non Conforming) Action
- Pass, Drop or Mark & Pass
CLI Example
36
# access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100
# police id 10 acl-num 1 cir 10Mbps cbs 3000B pir 30Mbps pbs 5000B green-action pass yellow-action set-
packet-qos dscp BE red-action drop
acl-num 1에 match되는 패킷에 대해서 CIR=10Mbps, CBS=3000Byte, PIR=30Mbps, PBS=5000Byte 파라미터로 Rate
Limiting을 하여 green packet은 보내고(pass), yellow packet은 DSCP 값을 0(BE)으로 마킹 하여 보내고, red packet은
버림(drop)
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
5. Queue Scheduler
37
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
• 입력포트의 대역폭이 출력포트보다 큰 상황에서 지속적인 패킷 유입
• 여러 입력포트들로 부터 유입된 트래픽이 특정 한 출력포트로 몰릴때
• Congestion 발생시에 어떤 트래픽을 송출하고(우선순위가 높은 패킷들), 어떤 트래픽을 폐기할 것인지를 결정
• Scheduler는 congestion 발생시에만 효과를 발휘함. 즉, congestion 미발생 상황에서는 어떤 scheduling
algorithm을 적용하던 또는 적용하지 않던 들어온 패킷 순서로 출력포토로 송출됨
Queue Scheduler
38
FE
FE
FE
FE
GE
GE 1Gbps
100Mbps
Multi Layer Switch
Congestion !!!
1
FE
FE
FE
FE
GE
GE
100Mbps
Multi Layer Switch
Congestion !!!
2
100Mbps
100Mbps
100Mbps 출력, 900Mbps 폐기
100Mbps 출력, 100Mbps 폐기
• 패킷이 출력 포트(Egress Port)로 나가기 위해서 대기 하고 있는 곳으로(줄을 서시오!) 보통 출력 포트당 하나
이상의 Queue가 할당 되어 있음 (복수개의 Queue = 공항에 보딩패스 줄 (일반석, 모닝캄회원, 일등석/비지니
스석))
• 좀 더 정확히 얘기하면 패킷은 Packet Buffer/Egress Memory에 저장되어 있고, Queue에는 Packet Descriptor
(패킷이 저장되어 있는 위치 정보)가 있는 것임
• 복수개의 Queue들 중 하나를 골라 그 Queue에서 대기하고 있는 패킷을 출력 포트로 출력함  그렇다면 무
슨 기준으로 Queue를 고르지?  Scheduling Algorithm (Next Page)
Queue & Scheduler
39
Q1
...
Classifier
Q2
Qn
Queue Scheduler
Output Port
Queue ID = Q1
Queue ID = Q2
Queue ID = Qn
Packet
• First In, First Out Queuing (FIFO)
• Strict Priority Queuing (SPQ) = Priority Queuing (PQ)
• Fair Queuing (FQ)
• Weighted Fair Queuing (WFQ)
• Weighted Round Robin (WRR) = Class Based Queuing (CBQ)
• Deficit Weighted Round Robin (DWRR) = Deficit Round Robin (DRR)
• FIFO와 FQ 알고리즘은 Fairness 개념만을 제공. 즉, 패킷별 차등화에 적합하지 않음  본 설명에서 제외
• FIFO: 출력포트마다 하나의 Queue만이 존재하고, 들어온 순서데로 나감
• FQ: 출력포트마다 복수개의 Queue가 존재하나, 각 Queue에 대기하고 있는 패킷들에 대해 동일한 양을 출력함
Scheduling Algorithm
40
• 높은 우선 순위(Higher Priority) 큐에 대기하고 있는 패킷이 항상 먼저 서비스 됨 (출력 포트로 항상 먼저 나가
게 됨)
• Priority (ex. High, Medium, Low)
• Latency, Jitter에 민감한 응용 패킷에 대한 QoS 품질 보장
• 높은 우선 순위 큐로 유입되는 패킷의 양이 출력 포트의 대역폭을 넘어서는 경우, 낮은 우선 순위(Lower
Priority) 큐에 대기하고 있는 패킷은 전혀 서비스가 안됨 (Starvation 문제)  Policing으로 문제 해결 가능
Strict Priority Queuing (SPQ)
41
[Q1] Priority: High
[Q2] Priority: Medium
[Q3] Priority: Low
300B200B 400B 300B100B
600B300B400B
Output Port
600B300B400B 300B200B 400B 300B100B
SPQ Scheduler
400B 500B500B 400B 500B500B
High Priority Queue(Q1)에서 대기하고 있던 패킷들이 모두 송출 된 후에,
Medium Priority Queue(Q2) 패킷들이 송출되고,
마지막으로 Low Priority Queue(Q3) 패킷들이 송출됨
• 각 Queue에 “Weight”를 할당하게 되며, 이 Weight는 서비스 될 패킷 개수(Number of Packets) 비율임
• SPQ의 starvation 현상을 방지하면서 Weight의 비율대로 패킷 서비스가 가능함
• Weight가 “패킷 개수”를 의미하기 때문에 Variable Length Packet 환경의 Ethernet/IP 망에서는 부적합함
• 예: 64B VoIP 패킷과 1500B Internet 패킷을 2:1로 서비스 했을 경우, VoIP 128B 출력되고 Data 1500B 출력
Weighted Round Robin (WRR)
42
[Q1] Weight: 2
[Q2] Weight: 1
[Q3] Weight: 1
300B200B 400B 300B100B
600B300B400B
Output Port
600B300B400B 500B 300B200B 400B 300B100B
WRR Scheduler
Packet Service Ratio = Q1:Q2:Q3 = 2:1:1
[Q1] Weight: 2
[Q2] Weight: 1
[Q3] Weight: 1
300B200B 400B 300B100B
600B300B400B
Output Port
WRR Scheduler
Service Round Ratio = Q1:Q2:Q3 = 2:1:1
400B 500B500B
400B 500B500B
500B400B
600B300B400B 500B300B200B 400B 300B100B 500B400B
Q1
Q3
Q1
Q2
Packet 개수 비율로 서비스
1 round = Q1-Q1-Q2-Q3
Queue 서비스 비율로
서비스
(Scheduler가 각 Queue를
방문하는 비율)
1 round = Q1-Q2-Q1-Q3
• 각 Queue에 “Weight”를 할당하게 되며(WRR과 동일), 이 Weight는 서비스 될 패킷의 비트수 (Number of
Bits) 비율임
• Weighted Bit-By-Bit Round Robin이라 할 수 있음
• Variable Length Packet에 대해서도 정확히 Weight 비율대로 서비스 가능. 즉, WRR의 문제점 해결
• 구현이 복잡함
Weighted Fair Queuing (WFQ)
43
Bit-by-Bit Service Ratio
= Q1:Q2:Q3 = 2:1:1
[Q1] Weight: 2
[Q2] Weight: 1
[Q3] Weight: 1
300B200B 400B 300B100B
600B300B400B
400B 500B500B
PacketSegmentation
Last bit of
300B Pkt
Last bit of
100B Pkt
Last bit of
400B Pkt
Last bit of
500B Pkt
Last bit of
300B Pkt
Last bit of
600B Pkt
Last bit of
200B Pkt
Last bit of
300B Pkt
Last bit of
500B Pkt
Last bit of
400B Pkt
Last bit of
400B Pkt
1 bit
Output Port
600B300B400B 500B300B200B 400B 300B100B500B400B
Bit-by-Bit WRR
Scheduler
Packet
Reassembler
수신된 패킷을 Bit 단위로 Segmentation Reassembly가 완료된 패킷 순서대로 출
력 포트 송신
본 그림은 WFQ 설명의 이해를 위한 논리적인 그림이
며, 실제로 Segmentation/Reassembly를 수행 하는지는
알 수 없음
• Weight: 출력 포트 대역폭에 대한 패킷 서비스 비율 (WFQ와 동일한 개념)
• Quantum: 각 큐에 할당된 Weight값에 비례하는 값으로 Byte 단위를 가짐. Scheduler가 Round Robin으로 큐
방문 시에 Deficit Counter에는 Quantum값만큼이 보충됨
• DeficitCounter: Queue visit time시에 해당 큐가 보낼 수 있는 최대 Byte 수. 만약 송신 패킷 크기(Byte)가
DefictCounter(Byte) 보다 크게 될 경우, 그 패킷은 출력 포트로 송신 될 수 없으며, 잉여 DeficitCounter 값은
다음 scheduling time(Next Service Round)에서 사용이 됨
• Variable Length를 고려하지 못한 WRR의 단점을 보완  Byte 단위 개념의 Weight
• 구현의 복잡함의 제약이 있는 WFQ의 단점을 보완  구현이 용이함
Deficit Weighted Round Robin
44
300B200B 400B 300B100B
600B300B400B
Output Port
DWRR Scheduler
400B 500B500B 600B300B400B 500B300B200B 400B 300B100B500B400B
Q1 Weight: 2
Quantum=1000, DeficiCounter=0B
Q2 Weight: 1
Quantum=500, DeficitCounter=0B
Q3 Weight: 1
Quantum=500, DeficitCounter=0B
• Weight의 비율이 Q1:Q2:Q3 = 2:1:1이므로, 그 비율대
로 Quantum 값을 할당. 본 예제에서는 Q1:Q2:Q3 =
1000:500:500으로 함
• 초기 DeficitCounter 값은 모두 0임
DWRR Example
45
1. Round 1 with Round Pointer = Q1 2. Round 1 with Round Pointer = Q1
3. Round 1 with Round Pointer = Q2 4. Round 1 with Round Pointer = Q2 5. Round 1 with Round Pointer = Q3
300B200B 400B 300B100B
600B300B400B
Output Port
DWRR
Scheduler
400B 500B500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=1000B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=0B
300B200B
600B300B400B
Output Port
DWRR
Scheduler
400B 500B500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=200B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=0B
400B 300B100B
300B200B
600B300B400B
DWRR
Scheduler
400B 500B500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=200B
[Q2] Weight: 1
Quantum=500, DeficitCounter=500B
[Q3] Weight: 1
Quantum=500, DeficitCounter=0B
Output Port
0B + Quantum
300B200B
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=200B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=0B
Output Port
500B - 500B
500B
300B200B
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=200B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
0B + Quantum
Output Port
0. Initial Stage
300B200B 400B 300B100B
600B300B400B
Output Port
DWRR
Scheduler
400B 500B500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=0B
0B + Quantum 1000B - (300B + 100B + 400B)
DWRR Example (cont)
46
6. Round 2 with Round Pointer = Q1
300B200B
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=1200B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
Output Port
7. Round 2 with Round Pointer = Q1
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=700B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
Output Port
300B200B
8. Round 2 with Round Pointer = Q1
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
Output Port
9. Round 2 with Round Pointer = Q2
600B300B400B
DWRR
Scheduler
400B 500B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=500B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
Output Port
10. Round 2 with Round Pointer = Q2
600B300B400B
DWRR
Scheduler
400B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=500B
Output Port
500B
11. Round 2 with Round Pointer = Q3
600B300B400B
DWRR
Scheduler
400B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=1000B
Output Port
200B + Quantum 1200B - (300B + 200B) Q1 is empty !!!
0B + Quantum 500B - 500B
500B + Quantum
DWRR Example (cont)
47
12. Round 2 with Round Pointer = Q3
400B
DWRR
Scheduler
400B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=100B
1000B - (600B + 300B)
Output Port
600B300B
13. Round 3 with Round Pointer = Q2
400B
DWRR
Scheduler
400B
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=500B
[Q3] Weight: 1
Quantum=500, DeficitCounter=100B
Output Port
14. Round 3 with Round Pointer = Q2
400B
DWRR
Scheduler
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=100B
[Q3] Weight: 1
Quantum=500, DeficitCounter=100B
Output Port
400B
15. Round 3 with Round Pointer = Q2
400B
DWRR
Scheduler
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=100B
Q1 is empty !!!
Output Port
16. Round 3 with Round Pointer = Q3
400B
DWRR
Scheduler
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=600B
Output Port
100B + Quantum
17. Round 3 with Round Pointer = Q3
DWRR
Scheduler
[Q1] Weight: 2
Quantum=1000, DeficiCounter=0B
[Q2] Weight: 1
Quantum=500, DeficitCounter=0B
[Q3] Weight: 1
Quantum=500, DeficitCounter=200B
Output Port
600B - 400B
400B
0B + Quantum 500B - 400B
• 약속한(SLA) 대역폭(Target Traffic Rate) 이상의 트래픽이 유입되면, 버퍼링을 통해 그 대역폭 이상으로 출력
하지 않도록 함. Smoothing이라고도 함
• Shaping Rate (bps)
• Buffering Size (bytes)
• TCP 환경(Flow Control Feature in TCP)에 적합
• Queuing Delay 발생으로 Real-time Application에 부적합
Shaping
48
Target Traffic Rate
Offered Traffic
Bandwidth(bps)
time
Rate Shaped Traffic
Bandwidth(bps)
time
Buffered
Shaping Example (cont)
49
1st Second
0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0
2nd Second
0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0
Max Shaping Rate = 15 Bytes/Sec.
1 2 3 4 5 6 7 8 9
1
0
1 2 3 4 5
Wait
Wait
Wait
Wait
Wait
1 2 3 4 5
Packet 1 : 10 Bytes
Packet 2 : 5 Bytes
Packet 3 : 5 Bytes
• 1초에 최대 15 Byte 송신이 가능 (15B/s  120bps 대
역폭으로 shaping)
• 1st Second: Packet 1과 Packet 2를 송신하면 15 Byte
가 됨. 더 이상 송신을 못함. 따라서 0.75 ~ 1.0까지
wait (waiting time동안 packet은 메모리에 버퍼링됨)
• 2nd Second: Packet 3을 송신
1st Second
0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0
2nd Second
0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0
Max Shaping Rate = 15 Bytes/Sec.
1 2 3 4 5 6 7 8 9
1
0
1
1
1
2
1
3
1
4
1
5
1
6
1
7
Wait
Wait
Wait
Packet 1 : 17 Bytes
Packet 2 : 5 Bytes
Packet 3 : 5 Bytes
1 2 3 4 5
Wait
Wait
1 2 3 4 5
1st Second
2nd Second
바로 전에 사용한 2개의 Time Slot만큼 wait후 전송
0.05초마다 1 Byte를 송신하는 포트라 가정
(20B/s  160bps 대역폭 제공 포트로 가정)
2개의 Time Slot(0.75 ~ 0.85)을 더 사용함
Shaper behind of Queue
50
[Q1]
[Q2]
[Q3]
300B200B 400B 300B100B
600B300B400B
400B 500B500B
Output Port
SPQ/WRR/WFQ/DWRR
Scheduler
Shaper
• TCP ACK 수신 없이 한번에 전송할 수 있는 TCP 패킷(Maximum Segment Size) 개수
• 패킷 손실 발생시 현재의 congestion window를 50% 감소 (전송 대역폭을 반으로 감소)
• 이후 RTT마다 congestion window를 1씩 순차적으로 증가 (정상속도에 도달되는 시간이 오래 걸림)
TCP Algorithm
51
Shaping vs. Policing
52
Target Traffic Rate
Offered Traffic
Bandwidth(bps)
time
Rate Shaped Traffic
Bandwidth(bps)
time
Buffered
time
Bandwidth(bps)
time
Bandwidth(bps)
Target Traffic Rate
Offered Traffic
Rate Limited Traffic
Drop
FTP over a 128-Kbps rate-limited connection
ftp> put testfile
local: testfile remote: testfile
150 Opening BINARY mode data connection for 'testfile'.
100% |**********************************| 373 KB 00:00 ETA
226 Transfer complete.
382332 bytes sent in 35.61 seconds (10.48 KB/s)
FTP over a 128-Kbps traffic-shaped connection
ftp> put testfile
local: testfile remote: testfile
150 Opening BINARY mode data connection for 'testfile'.
100% |**********************************| 373 KB 00:00 ETA
226 Transfer complete.
382332 bytes sent in 24.73 seconds (15.10 KB/s) 121Kbps 84Kbps
Shaping vs. Policing (cont)
53
Scheduling Algorithm Combination
54
Q1[SPQ]
Q2[DWRR]
Q3[DWRR]
Q4[DWRR]
Q1[SPQ-High]
Q2[SPQ-Low]
Q3[DWRR]
Q4[DWRR]
Q1[SPQ]
Q2[WFQ]
Q3[WFQ]
Q4[WFQ]
Q1[SPQ-High]
Q2[SPQ-Low]
Q3[WFQ]
Q4[WFQ]
1 SPQ + 3 DWRR
1 SPQ + 3 WFQ & 3 Shaper
2 SPQ + 2 DWRR & 1 Shaper
2 SPQ + 2 WFQ
Output Port
Output Port
Output Port
Output Port
각 Queue별로 서로 다른
Scheduling Algorithm 적
용이 가능함
Scheduling Example
55
Input traffic bandwidth : 80 + 50 + 90 = 220Mbps
Output port bandwidth : 100Mbps
Q1 service/output bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (< Input bandwidth)
Q2 service/output bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth)
Q3 service/output bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (< Input bandwidth)
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
80Mbps
50Mbps
90Mbps
50Mbps
30Mbps
20Mbps
FastEthernet Port
Example (1)
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
0Mbps
100Mbps
100Mbps
0Mbps
60Mbps
40Mbps
FastEthernet Port
Example (2)
Input traffic bandwidth : 0 + 100 + 100 = 200Mbps
Output port bandwidth : 100Mbps
Q1 service/output bandwidth : 0Mbps
Q2 service/output bandwidth : 3 / (3 + 2) x 100Mbps = 60Mbps (< Input bandwidth)
Q3 service/output bandwidth : 2 / (3 + 2) x 100Mbps = 40Mbps (< Input bandwidth)
Congestion Congestion
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
20Mbps
90Mbps
90Mbps
20Mbps
48Mbps
32Mbps
FastEthernet Port
Example (3)
Input traffic bandwidth : 30 + 90 + 90 = 210Mbps
Output port bandwidth : 100Mbps
Q1 service bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (> Input bandwidth)
Q2 service bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth)
Q3 service bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (< Input bandwidth)
Q1 output bandwidth : 20Mbps
Q2 output bandwidth : 3 / (3 + 2) x (50 - 20)Mbps = 18Mbps so, 30 + 18 = 48Mbps
Q3 output bandwidth : 2 / (3 + 2) x (50 - 20)Mbps = 12Mbps so, 20 + 12 = 32Mbps
Congestion
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
20Mbps
90Mbps
10Mbps
20Mbps
70Mbps
10Mbps
FastEthernet Port
Example (4)
Input traffic bandwidth : 30 + 90 + 10 = 130Mbps
Output port bandwidth : 100Mbps
Q1 service bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (> Input bandwidth)
Q2 service bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth)
Q3 service bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (> Input bandwidth)
Q1 output bandwidth : 20Mbps
Q2 output bandwidth : (50 - 20) + (20 - 10) = 40Mbps so, 30 + 40 = 70Mbps
Q3 output bandwidth : 10Mbps
Congestion
Scheduling Example (cont)
56
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
10Mbps
20Mbps
70Mbps
10Mbps
20Mbps
70Mbps
FastEthernet Port
Example (6)
Input traffic bandwidth : 10 + 20 + 70 = 100Mbps
Output port bandwidth : 100Mbps
Q1 output bandwidth : 10Mbps
Q2 output bandwidth : 20Mbps
Q3 output bandwidth : 70Mbps
No Congestion
Q1 Weight: 5
Q2 Weight: 3
Q3 Weight: 2
DWRR/WFQ Scheduler
0Mbps
0Mbps
100Mbps
0Mbps
0Mbps
100Mbps
FastEthernet Port
Example (5)
Input traffic bandwidth : 0 + 0 + 100 = 100Mbps
Output port bandwidth : 100Mbps
Q1 output bandwidth : 0Mbps
Q2 output bandwidth : 0Mbps
Q3 output bandwidth : 100Mbps
No Congestion
Scheduling Example (cont)
57
Q1 SPQ
Q2 Weight: 2
Q3 Weight: 1
100Mbps
100Mbps
100Mbps
100Mbps
0Mbps
0Mbps
FastEthernet Port
Example (7)
Input traffic bandwidth : 100 + 100 + 100 = 300Mbps
Output port bandwidth : 100Mbps
Q1 service/output bandwidth : 100Mbps
Q2 service/output bandwidth : 2 / (2 + 1) x 0 Mbps = 0Mbps
Q3 service/output bandwidth : 1 / (2 + 1) x 0 Mbps = 0Mbps
Congestion
SPQ + DWRR/WFQ Scheduler
Q1 SPQ
Q2 Weight: 2
Q3 Weight: 1
70Mbps
100Mbps
100Mbps
70Mbps
20Mbps
10Mbps
FastEthernet Port
Example (8)
Input traffic bandwidth : 70 + 100 + 100 = 270Mbps
Output port bandwidth : 100Mbps
Q1 service/output bandwidth : 70Mbps
Q2 service/output bandwidth : 2 / (2 + 1) x 30Mbps = 20Mbps
Q3 service/output bandwidth : 1 / (2 + 1) x 30Mbps = 10Mbps
Congestion
SPQ + DWRR/WFQ Scheduler
Q1 SPQ
Q2 Weight: 2
Q3 Weight: 1
0Mbps
100Mbps
100Mbps
0Mbps
67Mbps
33Mbps
FastEthernet Port
Example (9)
Input traffic bandwidth : 0 + 100 + 100 = 200Mbps
Output port bandwidth : 100Mbps
Q1 service/output bandwidth : 0Mbps
Q2 service/output bandwidth : 2 / (2 + 1) x 100 Mbps = 67Mbps
Q3 service/output bandwidth : 1 / (2 + 1) x 100 Mbps = 33Mbps
Congestion
SPQ + DWRR/WFQ Scheduler
QoS Profile for Scheduler
58
Q1
...
Q2
Qn
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
QoS Profile for Queue Scheduler 1. Queue ID
Output Port
Q1
...
Q2
Qn
Output Port
...
• Classifier로 분류된 패킷들을 출력포트의 어떤
Queue에 집어 넣을지….
CLI Example
59
# access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100
# schedule acl-num 1 queue q3
acl-num 1에 match되는 패킷은 Q3을 통해서 출력 되도록 함
queue out-port 3 queue q1 spq priority high shape rate 10M buffer 512K
queue out-port 3 queue q2 spq priority low
queue out-port 3 queue q3 wfq weight 10
queue out-port 3 queue q4 wfq weight 1
출력 포트 3번의 Q1은 10Mbps로 shaping을 하고, shaping시에 최대 Buffering은 512KByte 까지 하며, shaping되어 나오
는 패킷은 Strict Priority Queue의 High Priority를 통해 출력
출력 포트 3번의 Q2는 Strict Priority Queue이며 Priority는 Low
출력 포트 3번의 Q3은 Weighted Fair Queue이며 Weight는 10
출력 포트 3번의 Q4는 Weighted Fair Queue이며 Weight는 1
• IEEE 802.1 standards
• https://en.wikipedia.org/wiki/Time-Sensitive_Networking
For Your Information ….
60
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
6. Buffer Manager
61
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
Traffic Manager
• Congestion이 발생하게 되면, Queue(Buffer)가 overflow 날 것이고, 이때 패킷을 어떻게 폐기 처분할 것인지에
대한 방안이 요구됨 (잘 버리자!!!)
• Buffer Manger는 각 Queue별로 패킷을 어떤 방식으로 Discard할 것인지 그 방안을 제공함
• Tail-Drop
• RED (Random Early Detection)
• WRED (Weighted RED)
Buffer Manager
62
FE
FE
FE
FE
GE
GE
100Mbps
Congestion !!!
100Mbps
100Mbps
Output Port
Classifier
B
C
D
E
F
A
BD
EF
A
K
H
I
JL
L
Q1
Q2
Q3
...
J C
G
G
H
100Mbps
Queue Full !!!
• Queue에 패킷이 더 이상 들어갈 자리가 없으면(Queue Full) 그 이후에 들어오는 패킷은 Drop한다. 즉, Queue
에 들어갈 자리가 있으면 그 패킷은 서비스가 되고, 그렇지 않은 패킷은 버려지는 것임
• TCP Global Synchronization 현상 발생
Tail-Drop
63
Output Port
Q1
Q2
Q3
Drop
Drop Probability
1
0 Queue Size
Max Size
• Drop Probability(폐기 확률) = 1 : 패킷을 버림
• Max Queue Size : Queue에 담을 수 있는 패킷들의
총 크기(Total # of bytes)
TCP Global Synchronization
64
•  Queue에 쌓인 패킷들의 크기가 THmin 보다 작은 경우, 패킷들을 받아 들임
•  Queue에 쌓인 패킷들의 크기가 THmin에서 THmax 사이인 경우, 확률적으로 패킷들을 받아 들임. 이 말은
곧 확률적으로 패킷을 Drop 한다는 의미. 폐기 확률은 Pmax에 비례
•  Queue에 쌓인 패킷들의 크기가 THmax 보다 큰 경우, 도착한 패킷들을 모두 버림
RED (Random Early Detection)
65
Output Port
Q1
Q2
Q3
THminTHmax
THminTHmax
Drop
THminTHmax
Drop
1
2
3
1
0 Queue Size
Max SizeThmin Thmax
Pmax
Drop Probability
• 하나의 Queue내에 THmin/THmax/Pmax가 여러 개(본 그림에서는 3개) 존재하여, 이 Drop Precedence
Level(TH1 or TH2 or TH3)에 따라서 Drop되는 경우가 달라짐
WRED (Weighted RED)
66
12 3456
1 TH1min
2
3
4
5
6
TH1max
TH2min
TH3min
TH2max
TH3max
TH1 Packets
TH2 Packets
TH3 Packets
1
0 Queue Size
Max SizeTh1min Th1max
P3max
Th2min Th2max Th3min Th3max
P2max
P1max
Drop Probability
WRED + Policer
67
Change 802.1p (PCP)
Set DEI
Change DSCP (Class Selector)
Change DSCP (Drop Probability): AFx1  AFx3
Green
Yellow
Red Drop
Mark
Pass
Change WRED Drop Precedence Level
10MbpsPacket
Green
Drop Precedence Level = 3(Default value)
Policer
Yellow
Green
Yellow
Drop Precedence Level = 2
Queue Buffer Manager
12 3456
1 TH1min
2
3
4
5
6
TH1max
TH2min
TH3min
TH2max
TH3max
Drop Precedence Level 1
Drop Precedence Level 2
Drop Precedence Level 3
QoS Profile for Buffer Manager
68
Packet
In
Packet
Out
Queue
Scheduler
Classifier Marker Policer
Buffer
Manager
QoS Profile for Buffer Manger 1. Drop Precedence Level
CLI Example
69
# access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100
# wred acl-num 1 drop-level 3
acl-num 1에 match되는 패킷이 WRED enabled Queue로 서비스 될 경우, Drop level 3에 적용 받게 함
# buffer-mgr out-port 5 queue 1 wred drop-level-1 th-min 10% th-max 30% p-max 0.8 drop-level-2 th-min 20%
th-max 50% p-max 0.5 drop-level-3 th-min 60% th-max 95% p-max 0.2
# buffer-mgr out-port 5 queue 2 red th-min 30% th-max 80% p-max 0.7
# buffer-mgr out-port 5 queue 3 tail-drop
출력 포트 3번의 Q1은 WRED로 설정하고, 3개의 Drop level을 다음과 같이 설정
Drop Level 1 : THmin = 10%, THmax = 30%, Pmax = 0.8
Drop Level 2 : THmin = 20%, THmax = 50%, Pmax = 0.5
Drop Level 3 : THmin = 60%, THmax = 95%, Pmax = 0.2
출력 포트 3번의 Q2는 RED로 설정하고, Drop level을 다음과 같이 설정
THmin = 30%, THmax = 80%, Pmax = 0.7
출력 포트 3번의 Q3는 Tail-drop으로 설정
© Samsung Electronics. All Rights Reserved. Confidential and Proprietary.
7. QoS Features on Commercial L2/L3 Switch
70
QoS Features on Commercial L2/L3 Switch
71
QoS Features L3 스위치 (다산 V6748XG) L2 스위치 (다산 V27xxGB)
Classification Field L2 Header
• Source MAC address
• Destination MAC address
• 802.1p (PCP)
• EtherType
L3 Header
• Source IP address/subnet mask
• Destination IP address/subnet mask
• Protocol ID: ICMP, TCP, UDP
• DSCP
L4 Header
• ICMP: Type/Code
• TCP/UDP: Source Port, Destination Port #
• TCP Flags
• 좌동
Marking • 802.1p (PCP)
• VLAN ID
• DSCP
• 802.1p (PCP)
• VLAN ID
• IP-Precedence
Policing • supported • supported
# of Queue per Egress Port • 8 • 4
Scheduling Algorithm • SPQ
• WRR
• DWRR (DRR이라고 부름)
• 좌동
© NMC Consulting Group. All Rights Reserved. Confidential and Proprietary. 72

More Related Content

What's hot

CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)
William Lee
 
Channel failure rate above defined threshold
Channel failure rate above defined thresholdChannel failure rate above defined threshold
Channel failure rate above defined threshold
aabaap
 
Day 1 LTE Technology Overview
Day 1 LTE Technology OverviewDay 1 LTE Technology Overview
Day 1 LTE Technology Overview
mahesh savita
 

What's hot (20)

CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)CWMP TR-069 Training (Chinese)
CWMP TR-069 Training (Chinese)
 
Nokia LTE IP Planning Guide
Nokia LTE IP Planning GuideNokia LTE IP Planning Guide
Nokia LTE IP Planning Guide
 
Channel failure rate above defined threshold
Channel failure rate above defined thresholdChannel failure rate above defined threshold
Channel failure rate above defined threshold
 
MPLS Traffic Engineering
MPLS Traffic EngineeringMPLS Traffic Engineering
MPLS Traffic Engineering
 
5G NR DSS - Explained Well
5G NR DSS - Explained Well5G NR DSS - Explained Well
5G NR DSS - Explained Well
 
Introduction to sandvine dpi
Introduction to sandvine dpiIntroduction to sandvine dpi
Introduction to sandvine dpi
 
Mpls
MplsMpls
Mpls
 
JANOG43 Forefront of SRv6, Open Source Implementations
JANOG43 Forefront of SRv6, Open Source ImplementationsJANOG43 Forefront of SRv6, Open Source Implementations
JANOG43 Forefront of SRv6, Open Source Implementations
 
LTE network: How it all comes together architecture technical poster
LTE network: How it all comes together architecture technical posterLTE network: How it all comes together architecture technical poster
LTE network: How it all comes together architecture technical poster
 
VTP
VTPVTP
VTP
 
Bgp tutorial for ISP
Bgp tutorial for ISPBgp tutorial for ISP
Bgp tutorial for ISP
 
Implications of super channels on CDC ROADM architectures
Implications of super channels on CDC ROADM architecturesImplications of super channels on CDC ROADM architectures
Implications of super channels on CDC ROADM architectures
 
OSPF Basics
OSPF BasicsOSPF Basics
OSPF Basics
 
MPLS Presentation
MPLS PresentationMPLS Presentation
MPLS Presentation
 
LTE Basics
LTE BasicsLTE Basics
LTE Basics
 
CCNA
CCNACCNA
CCNA
 
Day 1 LTE Technology Overview
Day 1 LTE Technology OverviewDay 1 LTE Technology Overview
Day 1 LTE Technology Overview
 
Fhrp notes
Fhrp notesFhrp notes
Fhrp notes
 
VXLAN Practice Guide
VXLAN Practice GuideVXLAN Practice Guide
VXLAN Practice Guide
 
Juniper mpls best practice part 1
Juniper mpls best practice   part 1Juniper mpls best practice   part 1
Juniper mpls best practice part 1
 

Similar to Netmanias L2,L3 Training (3) L2, L3 QoS

Comm manual kor(dasa sigma [rev.c])(2)
Comm manual kor(dasa sigma [rev.c])(2)Comm manual kor(dasa sigma [rev.c])(2)
Comm manual kor(dasa sigma [rev.c])(2)
ganeshtajane
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcp
xyzlee
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
choi kyumin
 

Similar to Netmanias L2,L3 Training (3) L2, L3 QoS (20)

Before OTD EDU Assignments
Before OTD EDU AssignmentsBefore OTD EDU Assignments
Before OTD EDU Assignments
 
퀴즈요약
퀴즈요약퀴즈요약
퀴즈요약
 
스트리밍 프로토콜
스트리밍 프로토콜스트리밍 프로토콜
스트리밍 프로토콜
 
ACL - cisco 2811 router
ACL - cisco 2811 router ACL - cisco 2811 router
ACL - cisco 2811 router
 
Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명Wire shark 사용법 및 네트워크 개론 살짝 설명
Wire shark 사용법 및 네트워크 개론 살짝 설명
 
Comm manual kor(dasa sigma [rev.c])(2)
Comm manual kor(dasa sigma [rev.c])(2)Comm manual kor(dasa sigma [rev.c])(2)
Comm manual kor(dasa sigma [rev.c])(2)
 
2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)2nd SDN Interest Group Seminar-Session3 (121218)
2nd SDN Interest Group Seminar-Session3 (121218)
 
Switch Principles of operation
Switch Principles of operationSwitch Principles of operation
Switch Principles of operation
 
[164] pinpoint
[164] pinpoint[164] pinpoint
[164] pinpoint
 
ABG(Xener SBC-Session Board Controller) Introduction
ABG(Xener SBC-Session Board Controller) IntroductionABG(Xener SBC-Session Board Controller) Introduction
ABG(Xener SBC-Session Board Controller) Introduction
 
ACI Netflow 구성 가이드
ACI Netflow 구성 가이드ACI Netflow 구성 가이드
ACI Netflow 구성 가이드
 
시스코 wIPS 소개자료
시스코 wIPS 소개자료시스코 wIPS 소개자료
시스코 wIPS 소개자료
 
ipv6_study.pdf
ipv6_study.pdfipv6_study.pdf
ipv6_study.pdf
 
Icmp Attak Against Tcp
Icmp Attak Against TcpIcmp Attak Against Tcp
Icmp Attak Against Tcp
 
Implementing remote procedure calls rev2
Implementing remote procedure calls rev2Implementing remote procedure calls rev2
Implementing remote procedure calls rev2
 
Quality of Service
Quality of ServiceQuality of Service
Quality of Service
 
Private cloud network architecture (2018)
Private cloud network architecture (2018)Private cloud network architecture (2018)
Private cloud network architecture (2018)
 
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
플랫폼데이2013 workflow기반 실시간 스트리밍데이터 수집 및 분석 플랫폼 발표자료
 
[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster[2B5]nBase-ARC Redis Cluster
[2B5]nBase-ARC Redis Cluster
 
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
802.1X 적용 사례(차세대 정보보안을 위한 동적 네트워크 환경 구성과 접근통제)
 

Netmanias L2,L3 Training (3) L2, L3 QoS

  • 1. L2/L3 Network 기초 이론 교육 L2, L3 QoS Version 1.00 2018년 4월
  • 2. A 1. Introduction 2. Classifier 3. Packet Marker 4. Policer 5. Queue Scheduler 6. Buffer Manager 7. QoS Features on Commercial L2/L3 Switch
  • 3. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 1. Introduction 3
  • 4. Data Plane Architecture 4 Data Plane Packet EditorClassifierAddress Lookup Traffic Manager MACSA Learning MACSA Aging MACDA Forwarding L2 Multicast L2 Broadcast IP Forwarding MAC Address Ethernet CRC Policing Explicit QoS field Marking Shaping VLAN (802.1Q) Link Aggregation Frame/Packet RED/WRED ARP Processing IP Forwarding IP Multicast ARP Processing ECMP VLAN ID (802.1Q) PCP(CoS) (802.1p) IP TOS(DSCP, IP-Prec) IP TTL IP checksum L1~L4 Classification Filtering Packet Remarking Flow Redirection Flow Mirroring Flow Accouting Frame/Packet IP Fragmentation Scheduling (PQ,WFQ..)
  • 5. • Marker: 패킷 헤더(802.1p, IP TOS/DSCP/IP-Prec)에 QoS 등급을 표시함 • Policer: 패킷의 유입율(bps)을 측정하여, 약속된 대역폭 이상의 폐킷은 폐기 • Queue Scheduler: Congestion 발생시에 어떤 패킷을 우선적으로 보내 줄 것인지 결정함 • Buffer Manger: Congestion 발생시에 어떤 패킷을 어떻게 버릴 것인지 판단함 Data Plane QoS Block Architecture 5 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 6. Data Plane QoS Block Architecture (cont) 6 ..... Shaper ..... Queue Scheduler Meter Dropper Policer #1 Marker Meter Dropper Policer #2 Marker Meter Dropper Policer #3 Marker Meter Dropper Policer #N Marker Output Port BufferManager PacketMarker Classifier Scheduler Q1 Q2 Q3 Qn
  • 7. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 2. Classifier 7 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 8. • 수신된 패킷의 헤더 정보를 참조하여 그 패킷에 QoS Profile을 할당하고, 그 정보를 Traffic Manager에 전달 • 그렇다면 “수신된 패킷의 헤더 정보”라는게 뭘까?  Next Page Classifier 8 Classifier QueueScheduler Marker Policer BufferManager Traffic Manager Packet
  • 9. • Ingress Port/Interface, Egress Port/Interface • Source MAC Address (SA), Destination MAC Address (DA) • EtherType • PCP/CoS/802.1p, DEI • VLAN ID • Source IP Address*, Destination IP Address* • Protocol ID* • TOS/IP-Precedence/DSCP • Source Port Number*, Destination Port Number* • TCP Flags Classification Fields 9 • PCP/CoS/802.1p: Ethernet 프레임(VLAN 헤더)에 명시적으로 QoS 등급을 표기 • TOS/IP-Precendence/DSCP: IP 패킷(IP 헤더)에 명시적으로 QoS 등급을 표기 • 5 tuple: Source IP, Destination IP, Protocol ID, Source Port, Destination Port  이 5개로 IP flow 구별이 가능함
  • 10. • Ingress Port: 패킷이 유입된 입력 포트 • Egress Port: 패킷이 송신될 출력 포트 • Ingress Interface: 패킷이 유인된 입력 인터페이스 • Egress Interface: 패킷이 송실된 출력 인터페이스 Layer 1: Ingress & Egress Port/Interface 10 GE1 GE2 GE3 GE4 Ingress Port Packet Egress Port L2 SW Packet Router GE1 ge1.100 ge1.200 GE2ge2 GE3 GE4 VLAN ID ge3 ge4.100 ge4.200 Ingress Interface Packet Packet Egress Interface
  • 11. • Destination MAC address: L2 망에서의 목적지 주소 • Source MAC address: L2 망에서의 송신지 주소 • Type: IPv4 (0x0800), ARP (0x0806), etc. • VLAN header • PCP (Priority Code Point): L2 레이어에서 이더넷 프레임의 우선 순위 표시. 802.1p 또는 CoS(Class of Service)라고 도 부름  0 (lowest priority) ~ 7 (highest priority) • DEI (Drop Eligible Indicator): L2 스위치에서 트래픽 혼잡 발생시 해당 필드가 1인 프레임이 먼저 폐기됨 • VID (VLAN ID) Layer 2: Ethernet Header 11 DEI (1b) VID (12b) PCP (3b) TPID=0x8100 (2B) DA (6B) SA (6B) Type (2B) Data/Payload (46B ~ 1500B) FCS (4B) DA (6B) SA (6B) Type (2B) Data/Payload (46B ~ 1500B) FCS (4B) Untagged Ethernet II Frame VLAN Tagged Ethernet II Frame VLAN Header
  • 12. • TOS/IP-Precedence/DSCP: L3 레이어에서 IP 패킷의 우선 순위를 표시 • Protocol ID: IGMP (1), IGMP (2), TCP (6), UDP (17) • Source IP Address: IP망에서의 송신지 주소 • Destination IP Address: IP망에서의 수신지 주소 Layer 3: IP Header 12 • IP-Precedence: 0 (우선순위낮음) ~ 7 (우선순위높음) • D: Minimum Delay • T: Maximum Throughput • R: Maximum Reliability • C: Minimize Cost • 현재는 TOS 대신 DSCP로 사용됨 • CU: Currently Unused • 다음장…. VER IHL TOS Total Length Identification 0 Fragment Offset TTL Protocol ID Header Checksum Source IP Address Destination IP Address IP option (if any) IPv4 Header (variable size, up to 60B, default 20B) DAMAC 6B SAMAC 6B EType 0x0800 2B IP Header CRC 4B IP Datagram 0b 4b 8b 16b 19b 31b DF MF 20B~60B 20B Class Selector bits 0 1 2 3 4 5 6 7 DSCP CU bits 0 1 2 3 4 5 IP-Prec 6 7 0D IP Type Of Service (RFC 1349) IP DiffServ Code Point (RFC 2474) T R C
  • 13. • DSCP 상위 3비트를 Class Selector라 부르며 기존 TOS의 IP-Precedence와 상호 호환 유지. 또한 VLAN Tagged Frame의 PCP(802.1p)와도 1:1 매핑  0 (우선순위 낮음) ~ 7 (우선순위 높음) • 우선 순위가 가장 낮은 등급 (예: Internet traffic) • 4개의 class가 존재하며, 각 class에 대해 3개의 drop precedence 값을 가짐 • AFx1(xxx 010b)면 drop 확률이 낮고, AFx3(xxx 110b)면 drop 확률이 높음  congestion 발생시에 AFx1 보다 AFx3이 먼저 폐기 • 우선 순위가 가장 높은 등급 (예: IPTV multicast traffic, VoIP traffic) Layer 3: DSCP 13 Class Selector bits 0 1 2 3 4 5 6 7 DSCP CU bits 0 1 2 3 4 5 IP-Prec 6 7 0D IP Type Of Service (RFC 1349) IP DiffServ Code Point (RFC 2474) T R C 0 (000b) PCP (802.1p)3b IP-Precedence3b 0 (000b) Class Selector3b 0 (000b) DSCP6b 0 (000 000b) DSCP Name Best Effort 1 (001b) 1 (001b) 1 (001b) 8 (001 000b) CS1 2 (010b) 2 (010b) 2 (010b) 16 (010 000b) CS2 3 (011b) 3 (011b) 3 (011b) 24 (011 000b) CS3 4 (100b) 4 (100b) 4 (100b) 32 (100 000b) CS4 5 (101b) 5 (101b) 5 (101b) 40 (101 000b) CS5 6 (110b) 6 (110b) 6 (110b) 48 (110 000b) CS6 7 (111b) 7 (111b) 7 (111b) 56 (111 000b) CS7 10 (001 010b) AF11- - - 12 (001 100b) AF12- - - 14 (001 110b) AF13- - - 18 (010 010b) AF21- - - 20 (010 100b) AF22- - - 22 (010 110b) AF23- - - 26 (011 010b) AF31- - - 28 (011 100b)- - - 30 (011 110b)- - - AF32 AF33 46 (101 110b)- - - EF 34 (100 010b) AF41- - - 36 (100 100b)- - - 38 (100 110b)- - - AF42 AF43
  • 14. Layer 4: TCP/UDP Header 14 DAMAC 6B SAMAC 6B EType 0x0800 2B CRC 4B UDP Header UDP Packet Source Port Numbrer Destination Port Number UDP Length 0b 16b 31b UDP Checksum UDP Data 20B~60B 8B 8B DAMAC 6B SAMAC 6B EType 0x0800 2B CRC 4B TCP Header TCP Packet Source Port Numbrer Destination Port Number Sequence Number 0b 16b 31b THL TCP Data 20B~60B Acknowledgment Number Window Size TCP Checksum Urgent Pointer TCP option (if any) 20B Reserved 4b 10b IP Header (Protocol ID=17) 20B~60B IP Header (Protocol ID=6) TCP Header (variable size, up to 60B, default 20B) F I N S Y N R S T P S H A C K U R G HTTP GET TCP Destination Port = 80 TCP Source Port = Ephemeral port # (ex. 50000) HTTP 200 OK TCP Destination Port = 50000 TCP Source Port = 80 https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers …
  • 15. • L1: Ingress Port/Interface • L2/L3: Source MAC Address, Source IP Address • L1: Ingress Port/Interface • L2/L3: Source MAC Address, Source IP Address • L4: TCP/UDP Port Number • L1: Ingress Port/Interface • L2/L3: Source MAC Address, Source IP Address • L1: Egress Port/Interface • L2/L3: Destination MAC Address, Destination IP Address, • L1: Ingress Port/Interface • L2/L3: Source MAC Address, Source IP Address • L1: Egress Port/Interface • L2/L3: Destination MAC Address, Destination IP Address, • L4: TCP/UDP Port Number • L2: PCP(802.1p) • L3: DSCP Classification Category 15
  • 16. • 패킷의 여러 필드들을 동시에 참조하여 QoS 서비스 등급(QoS Profile)을 정함 • End-to-End Flow base QoS(IntServ)를 위해 망의 각 node(Switch/Router)에서 수행 (비현실적) • 단말/서버와 연결된 스위치/라우터에서 이를 수행하고, 그 결과를 802.1p 혹은 DSCP 필드에 마킹함 • 패킷에 표기된 QoS 값을 보고 QoS 서비스 등급(QoS Profile)을 정함 • 802.1p: L2 스위치/Router • IP DSCP: Router Type of Classification 16 L2 802.1p IP DiffServ Network MF Classifer BA Classifer PC RouterL2 SW ServerRouter IP Network DSCP = BE DSCP = BE 802.1p = 3 DSCP = AF31 DSCP = AF31 DSCP = BE DSCP = BE DSCP = AF31 DSCP = AF31 DSCP = BEDSCP = AF31DSCP = AF31 802.1p = 3 DSCP = AF31 Multi-Field Classification Behavior Aggregate Classification marking marking marking marking
  • 17. • Marking 정보 • Policing 정보 • Queuing 정보 • Buffer Management 정보 Multi-Field Classification Table 17 Rule # Ingress Port # Egress Port # SAMAC DAMAC EType VLAN ID SAIP DAIP Protocol ID DSCP SPTCP/UDP DPTCP/UDP 6B 6B 2B 802.1p (PCP) 3b 12b 4B 4B 1B 1B 2B 2B QoS Profile Layer 1 Layer 2 (Ethernet) Layer 3 (IP) Layer 4 (TCP/UDP) TCP Flag 6b 1 2 3 4 5 6 7 8 9 10 … … Rule Description: How to identify packets? Rule Action: What to do with the packet? DEI 1b
  • 18. Multi-Field Classification Example 18 DEI Rule # Ingress Port # Egress Port # SAMAC DAMAC EType VLAN ID Protocol ID DSCP SPTCP/UDP DPTCP/UDP 802.1p (PCP) TCP Flag * * * * EType 5 * * * * * *1 1~5 * * * * * * * * * * *2 * * * * 0x0800 5 * * * * * *3 * * * * 0x0800 * * 6 * * 80 *4 * * * * * * * * * * * *5 * * * * * * * * 20~30 * * *6 * * * * 0x0800 * * 17 * * 10~500 *7 * * * * 0x0800 * * * * * * *8 9 10 … SAIP * * * * * * DAIP * * * * * QoS Profile … 5.1.1.0/24 8.5.1.0/24 1.1.1.0/24 20.1.1.0/24 224.0.0.0/8 1.1.1.0/24 20.1.1.0/24 HTTP Packet 11 12 13  Wildcard 지원  Value/Mask 혹은 Range 지원 Rule 4번에 매칭되어, 해당 엔트리의 QoS Profile을 얻어옴
  • 19. • Marking 정보 • Policing 정보 • Queuing 정보 • Buffer Management 정보 Behavior Aggregate Classification Table 19 802.1p 0 1 2 3 4 5 6 7 QoS Profile BE CS1 AF11 AF12 AF13 EF … QoS ProfileDSCP 3b 6b 802.1p Table DSCP Table
  • 20. QoS Profile 20 Classifier Traffic Manager Queue Scheduler Marker Policer Buffer Manager QoS Profile for Marker 1. 802.1p in VLAN Tag - Marking or not - 802.1p value 2. DSCP in IP Header - Marking or not - DSCP value QoS Profile for Queue Scheduler 1. Queue ID QoS Profile for Policer 1. Policing or not 2. Policer ID 3. Green (Conforming) Action - Pass, Drop or Mark & Pass 4. Yellow (Loosely Conforming) Action - Pass, Drop or Mark & Pass 5. Red (Non Conforming) Action - Pass, Drop or Mark & Pass QoS Profile for Buffer Manger 1. Drop Precedence Level
  • 21. CLI Example 21 # access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100 Access Control List number 1번 정의 Source IP address : 1.1.1.0/24 (= 1.1.1.0 ~ 1.1.1.255) Destination IP address : 20.1.1.0/24 (= 20.1.1.0 ~ 20.1.1.255) TCP Packet (Protocol ID = 6) TCP Source Port number : any (= 0 ~ 65535) TCP Destination Port number : 50 ~ 100
  • 22. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 3. Packet Marker 22 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 23. Packet Marker 23 L2 802.1p Network Untagged Packet 802.1p/Q Tagged Packet L3 DiffServ Network Packet w/ DSCP = BE Packet w/ DSCP = EF, AFx, BE
  • 24. • 802.1p와 DSCP 필드를 동시 marking도 가능 QoS Profile for Marker 24 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager QoS Profile for Marker 1. 802.1p in VLAN Tag - Marking or not - 802.1p value 2. DSCP in IP Header - Marking or not - DSCP value EType 2B Data CRC 4B ETPID 0x8100 2B TCI 2B DAMAC 6B SAMAC 6B 3b DEI VLAN ID 1b 12b 802.1p (PCP) VLAN Tag VER IHL DSCP Total Length Identification 0 Fragment Offset TTL Protocol ID Header Checksum SAIP DAIP IP option (if any) IPv4 Header (variable size, up to 60B, default 20B) DAMAC 6B SAMAC 6B EType 0x0800 2B IP Header CRC 4B IP Datagram 0b 4b 8b 16b 19b 31b DF MF 20B~60B 20B
  • 25. CLI Example 25 # access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100 # set-packet-qos acl-num 1 802.1p 7 # set-packet-qos acl-num 1 ip dscp EF acl-num 1에 match되는 패킷의 802.1p 값을 7로 세팅(Marking) acl-num 1에 match되는 패킷의 DSCP 값을 EF로 세팅 (Marking) 참고
  • 26. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 4. Policer 26 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 27. • Enterprise 서비스를 제공하는 통신 사업자가 기업과 계약(SLA)된 대역폭 만큼만 패킷이 통신 사업자망으로 유 입될 수 있도록 대여폭 제어 • Residential 서비스를 제공하는 통신 사업자가 가입자별 대여폭 제어 혹은 P2P와 같은 특정 응용에 대한 대역 폭 제어, 예전에… KT가 삼성 4K Smart TV로 가는 트래픽만 골라 대역폭 제어한 사건이 있었음 Policer Objective 27 20Mbps 20Mbps 20Mbps 20Mbps 10Mbps 10Mbps 10Mbps 20Mbps 10Mbps의 대역폭만 사용하기로 하고 월 50만원씩 지불하기로 했는데, 약속(SLA) 을 어기고 있군… 장비의 Policer 기능을 이용하여 대역폭을 10Mbps로 제한 !!!
  • 28. • Meter: 입력 트래픽의 유입율(bps)을 기 정의된 Traffic Profile(약속된 대역폭)과 비교하여 그 결과(Green, Yellow, Red)를 Policer Action Block(Pass, Mark, Drop)에 전달함 • Policer Action Block • Pass: 패킷을 보냄 • Drop: 패킷을 폐기함 • Mark: L2 802.1p, L2 DEI, IP DSCP 값을 변경 후 패킷 전송 • 약속 이상으로 유입된 트래픽(패킷)에 대해 drop probability를 높일 수 있음 (DEI 1로 set, DSCP AFx1  AFx3로 변경, 또는 DSCP EF/AFxx에서 BE로 변경) • DiffServ권고안에서는 본 기능(Policer)을 Traffic Conditioner라 함 Policer Components 28 Meter Policer Packet In Packet Out Dropper Marker 수십~수백/수천(?)개의 Policer 블록 존재
  • 29. • RFC 2697: srTCM (Single Rate Three Color Marker) • RFC 2698: trTCM (Two Rate Three Color Marker)  오늘 주제 Two Rates & Three Colors 29 Two Rates & Three Colors CIR Committed Information Rate PIR Information Rate (bps) red yellow green Peak Information Rate • CIR (Committed Information Rate): 통신 사업자와 가입자 (Enterprise or Residential user)간에 SLA(Service Level Agreement)를 통해 서로 합의된 대역폭(bps)으로, 통신 사업자 망은 이 대역폭(CIR) 만큼 가입자 트래픽을 guarantee해야 할 의 무가 있음 (no packet loss) • PIR (Peak Information Rate): 수신 패킷의 유입률이 CIR 값을 넘어서더라도 망에 congestion이 발생하지 않는 선에서 통신 사 업자 망에서 받아 줄 수 있는 대역폭을 PIR로 정의 (PIR > CIR). 즉, CIR 까지는 guarantee하고 CIR이 넘더라도 PIR 까지는 받아 줄 수 있으나 guarantee는 못함 • Green: 수신 패킷의 유입률(bps)이 CIR(bps) 이하인 경우 그 패 킷은 Green • Yellow: 수신 패킷의 유입률이 CIR 보다 크지만 PIR 이하인 경우 그 패킷은 Yellow • Red: 수신 패킷의 유입률이 PIR 이상인 경우 그 패킷은 Red 예: 어떤 Enterprise 가입자에 대해 SLA를 통해 CIR=10Mbps, PIR=15Mbps로 설정을 하였다면, Enterprise 가입자로 부터 유입되는 트래픽에 대해서 Metering을 수행하고, (1) 유입률이 CIR(10Mbps) 이하인 Green 패킷은 DSCP=AF로 마킹 및 패킷 포워딩하고, (2) CIR(10Mbps)은 넘었지만 PIR(15Mbps) 이하인 Yellow 패킷은 DSCP=BE로 마킹 및 패킷 포 워딩(이후 네트워크 상에 다른 라우터에서 congestion이 발생하게 되면 DSCP=BE에 해당하는 패킷은 drop 될 수도 있음)하고, (3) PIR(15Mbps) 이상인 Red 패킷은 drop시킴
  • 30. Token Buckets 30 BT BT Token Bucket 1 (P) BT (Byte Token) drops into the Bucket at the rate of PIR/8 tokens per second Max Token Count = PBS BT Current Token Count = Tp BT BT BT BT BT BTBT Token Bucket 2 (C) BT (Byte Token) drops into the Bucket at the rate of CIR/8 tokens per second Max Token Count = CBS BT BT BT BT BT BT Current Token Count = Tc Token Bucket 1 (P) • Token Bucket에 Token 채우기: 이 Token Bucket으로는 초당 "PIR/8"개의 Byte Token(이하 Token)이 채워짐. 예를 들어, PIR=8Mbit/s(bps)이면 이를 byte로 환산하면 1Mbyte/s이고 즉, 초당 1M(1,000,000)개의 Token이 채워짐 (Token 1개 = 1byte) • Token Bucket의 최대 Token 개수: 이 Token Bucket에는 최대 PBS(Peak Burst Size) 만큼의 Token이 들어 갈 수 있음. 예를 들어, PBS=8Kbyte이면 이 Token Bucket에는 최대 8K(8,000)개의 Token 이 저장될 수 있음. 그 이상의 Token은 저장 될 수 없음. • Token Bucket에서 Token 빠져 나가기: 패킷이 유입되면, 해당 패 킷 크기 만큼 이 Token Bucket에 담겨 있는 Token이 없어짐. 예를 들어, Token Bucket에 8,000개의 Token이 있고, 1,000byte 패킷(IP header 포함)이 유입되면, Token Bucket에는 7,000개의 Token이 남게 됨 Token Bucket 2 (C) • Token Bucket에 Token 채우기: 이 Token Bucket으로는 초 당 "CIR/8"개의 Token이 채워짐 • Token Bucket의 최대 Token 개수: 이 Token Bucket에는 최 대 CBS(Committed Burst Size) 만큼의 Token이 들어 갈 수 있음. 그 이상의 Token은 저장 될 수 없음 • Token Bucket에서 Token 빠져 나가기: 패킷이 유입되면, 해당 패킷 크기 만큼 이 Token Bucket에 담겨 있는 Token 이 차감됨
  • 31. • 최초 2개의 Token Bucket은 각각 PBS, CBS 만큼의 Token으로 가득차 있음 • 이제 사이즈가 B byte인 패킷이 하나 들어 옴 • 먼저 Token Bucket 1의 현재 Token 개수(Tp)와 B를 비교. 만약 B 보다 Token 개수가 적으면 이 패킷은 Red 패 킷이 됨 • 그렇지 않으면 이번에는 Token Bucket 2의 현재 Token 개수(Tc)와 B를 비교. 만약 B 보다 Token 개수가 적으면 이 패킷은 Yellow가 됨. 그리고 Token Bucket 1의 Token 개수(Tp)에서 B 만큼 차감 • 위 두가지 경우에 해당되지 않으면 그 패킷은 Green. 그리고 Token Bucket 1, 2의 Token 개수(Tp와 Tc)에서 각 각 B 만큼 차감 • 패킷 수신때 마다 이 과정이 계속 반복됨 • 그리고 Token Bucket 1, 2에는 초당 PIR/8, CIR/8 개의 Token이 채워짐 Token Buckets Operation 31 BT BT Token Bucket 1 (P) BT (Byte Token) drops into the Bucket at the rate of PIR/8 tokens per second Max Token Count = PBS Token Bucket 2 (C) BT (Byte Token) drops into the Bucket at the rate of CIR/8 tokens per second Max Token Count = CBS BT BT BT BT BT BT BT Current Token Count = Tp Current Token Count = Tc BT BT BT BT BT BTBT
  • 32. Token Buckets Example 32 Packet 1 1,000,000 Tokens/s Max 8,000 TokensCurrent Token (Tp) = 1,000 500,000 Tokens/s Max 4,000 TokensCurrent Token (Tc) = 600 PIR = 8Mbps PBS = 8KByte CIR = 4Mbps CBS = 4KByte 1500byte Packet Size (1500) > Tp (1000) Packet 1 Packet is Red Token Bucket 1 Token Bucket 2 Packet 2 1,000,000 Tokens/s Max 8,000 TokensCurrent Token (Tp) = 1,000 500,000 Tokens/s Max 4,000 TokensCurrent Token (Tc) = 600 PIR = 8Mbps PBS = 8KByte CIR = 4Mbps CBS = 4KByte 800byte Packet Size (800) > Tc (600) Packet 2 Packet is Yellow Token Bucket 1 Token Bucket 2 Packet Size (800) < Tp (1000) Tp (200) = Tp (1000) - 800 Packet 3 1,000,000 Tokens/s Max 8,000 TokensCurrent Token (Tp) = 1,000 500,000 Tokens/s Max 4,000 TokensCurrent Token (Tc) = 600 PIR = 8Mbps PBS = 8KByte CIR = 4Mbps CBS = 4KByte 300byte Packet Size (300) < Tc (600) Packet 3 Packet is Green Token Bucket 1 Token Bucket 2 Packet Size (300) < Tp (1000) Tp (700) = Tp (1000) - 300 Tp (300) = Tc (600) - 300 Case 1 Case 2 Case 3
  • 33. Pseudo-Code in RFC 2698 33 Let us assume that Token Bucket 1 is P Token Bucket 2 is C Tp is number of Token (Token Count) in a P Tc is number of Token (Token Count) in a C Initially Tp(0) = PBS /* Token Count of Token Bucket 1(P) is initially full */ Tc(0) = CBS /* Token Count of Token Bucket 2(C) is initially full */ A packet of size B bytes arrives at time t - If Tp(t) - B < 0, then the packet is red, else - If Tc(t) - B < 0, then the packet is yellow and Tp is decremented by B, else - the packet is green and both Tp and Tc are decremented by B
  • 34. • Pass: 패킷 송출 • Mark: 802.1p (PCP), DEI, DSCP 값 변경 • SLA를 지킨 Green 패킷에 대해 E2E QoS 보장을 위해 QoS 등급을 높이는데 사용될 수도 있고, • 또는 Yellow 패킷에 대해 QoS 등급을 낮추는데 사용됨 (망 어딘가에서 congestion 발생 시 이 패킷 먼저 폐기하라 는 표기) • Drop: 패킷 폐기 Policer Action 34 Change 802.1p (PCP) Set DEI Change DSCP (Class Selector) Change DSCP (Drop Probability): AFx1  AFx3 Green Yellow Red Drop Mark Pass Change WRED Drop Precedence Level
  • 35. • Policing 수행 유무 • 만약 Policing을 한다면 어떤 Policer 블록(Policer ID)을 통해 처리할 것인가? • Metering 결과로 나온 Green/Yellow/Red 패킷에 대한 처리 방안 • 만약 Marking을 한다면 marking할 필드 정의 QoS Profile for Policer 35 acket In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Marking Information - Marking Field : 802.1p (PCP), DEI, DSCP - Marking Value - WRED Drop Precedence Level Meter Dropper Policer #1 Marker Meter Dropper Policer #2 Marker Meter Dropper Policer #N Marker ... QoS Profile for Policer 1. Policing or not 2. Policer ID 3. Green (Conforming) Action - Pass, Drop or Mark & Pass 4. Yellow (Loosely Conforming) Action - Pass, Drop or Mark & Pass 5. Red (Non Conforming) Action - Pass, Drop or Mark & Pass
  • 36. CLI Example 36 # access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100 # police id 10 acl-num 1 cir 10Mbps cbs 3000B pir 30Mbps pbs 5000B green-action pass yellow-action set- packet-qos dscp BE red-action drop acl-num 1에 match되는 패킷에 대해서 CIR=10Mbps, CBS=3000Byte, PIR=30Mbps, PBS=5000Byte 파라미터로 Rate Limiting을 하여 green packet은 보내고(pass), yellow packet은 DSCP 값을 0(BE)으로 마킹 하여 보내고, red packet은 버림(drop)
  • 37. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 5. Queue Scheduler 37 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 38. • 입력포트의 대역폭이 출력포트보다 큰 상황에서 지속적인 패킷 유입 • 여러 입력포트들로 부터 유입된 트래픽이 특정 한 출력포트로 몰릴때 • Congestion 발생시에 어떤 트래픽을 송출하고(우선순위가 높은 패킷들), 어떤 트래픽을 폐기할 것인지를 결정 • Scheduler는 congestion 발생시에만 효과를 발휘함. 즉, congestion 미발생 상황에서는 어떤 scheduling algorithm을 적용하던 또는 적용하지 않던 들어온 패킷 순서로 출력포토로 송출됨 Queue Scheduler 38 FE FE FE FE GE GE 1Gbps 100Mbps Multi Layer Switch Congestion !!! 1 FE FE FE FE GE GE 100Mbps Multi Layer Switch Congestion !!! 2 100Mbps 100Mbps 100Mbps 출력, 900Mbps 폐기 100Mbps 출력, 100Mbps 폐기
  • 39. • 패킷이 출력 포트(Egress Port)로 나가기 위해서 대기 하고 있는 곳으로(줄을 서시오!) 보통 출력 포트당 하나 이상의 Queue가 할당 되어 있음 (복수개의 Queue = 공항에 보딩패스 줄 (일반석, 모닝캄회원, 일등석/비지니 스석)) • 좀 더 정확히 얘기하면 패킷은 Packet Buffer/Egress Memory에 저장되어 있고, Queue에는 Packet Descriptor (패킷이 저장되어 있는 위치 정보)가 있는 것임 • 복수개의 Queue들 중 하나를 골라 그 Queue에서 대기하고 있는 패킷을 출력 포트로 출력함  그렇다면 무 슨 기준으로 Queue를 고르지?  Scheduling Algorithm (Next Page) Queue & Scheduler 39 Q1 ... Classifier Q2 Qn Queue Scheduler Output Port Queue ID = Q1 Queue ID = Q2 Queue ID = Qn Packet
  • 40. • First In, First Out Queuing (FIFO) • Strict Priority Queuing (SPQ) = Priority Queuing (PQ) • Fair Queuing (FQ) • Weighted Fair Queuing (WFQ) • Weighted Round Robin (WRR) = Class Based Queuing (CBQ) • Deficit Weighted Round Robin (DWRR) = Deficit Round Robin (DRR) • FIFO와 FQ 알고리즘은 Fairness 개념만을 제공. 즉, 패킷별 차등화에 적합하지 않음  본 설명에서 제외 • FIFO: 출력포트마다 하나의 Queue만이 존재하고, 들어온 순서데로 나감 • FQ: 출력포트마다 복수개의 Queue가 존재하나, 각 Queue에 대기하고 있는 패킷들에 대해 동일한 양을 출력함 Scheduling Algorithm 40
  • 41. • 높은 우선 순위(Higher Priority) 큐에 대기하고 있는 패킷이 항상 먼저 서비스 됨 (출력 포트로 항상 먼저 나가 게 됨) • Priority (ex. High, Medium, Low) • Latency, Jitter에 민감한 응용 패킷에 대한 QoS 품질 보장 • 높은 우선 순위 큐로 유입되는 패킷의 양이 출력 포트의 대역폭을 넘어서는 경우, 낮은 우선 순위(Lower Priority) 큐에 대기하고 있는 패킷은 전혀 서비스가 안됨 (Starvation 문제)  Policing으로 문제 해결 가능 Strict Priority Queuing (SPQ) 41 [Q1] Priority: High [Q2] Priority: Medium [Q3] Priority: Low 300B200B 400B 300B100B 600B300B400B Output Port 600B300B400B 300B200B 400B 300B100B SPQ Scheduler 400B 500B500B 400B 500B500B High Priority Queue(Q1)에서 대기하고 있던 패킷들이 모두 송출 된 후에, Medium Priority Queue(Q2) 패킷들이 송출되고, 마지막으로 Low Priority Queue(Q3) 패킷들이 송출됨
  • 42. • 각 Queue에 “Weight”를 할당하게 되며, 이 Weight는 서비스 될 패킷 개수(Number of Packets) 비율임 • SPQ의 starvation 현상을 방지하면서 Weight의 비율대로 패킷 서비스가 가능함 • Weight가 “패킷 개수”를 의미하기 때문에 Variable Length Packet 환경의 Ethernet/IP 망에서는 부적합함 • 예: 64B VoIP 패킷과 1500B Internet 패킷을 2:1로 서비스 했을 경우, VoIP 128B 출력되고 Data 1500B 출력 Weighted Round Robin (WRR) 42 [Q1] Weight: 2 [Q2] Weight: 1 [Q3] Weight: 1 300B200B 400B 300B100B 600B300B400B Output Port 600B300B400B 500B 300B200B 400B 300B100B WRR Scheduler Packet Service Ratio = Q1:Q2:Q3 = 2:1:1 [Q1] Weight: 2 [Q2] Weight: 1 [Q3] Weight: 1 300B200B 400B 300B100B 600B300B400B Output Port WRR Scheduler Service Round Ratio = Q1:Q2:Q3 = 2:1:1 400B 500B500B 400B 500B500B 500B400B 600B300B400B 500B300B200B 400B 300B100B 500B400B Q1 Q3 Q1 Q2 Packet 개수 비율로 서비스 1 round = Q1-Q1-Q2-Q3 Queue 서비스 비율로 서비스 (Scheduler가 각 Queue를 방문하는 비율) 1 round = Q1-Q2-Q1-Q3
  • 43. • 각 Queue에 “Weight”를 할당하게 되며(WRR과 동일), 이 Weight는 서비스 될 패킷의 비트수 (Number of Bits) 비율임 • Weighted Bit-By-Bit Round Robin이라 할 수 있음 • Variable Length Packet에 대해서도 정확히 Weight 비율대로 서비스 가능. 즉, WRR의 문제점 해결 • 구현이 복잡함 Weighted Fair Queuing (WFQ) 43 Bit-by-Bit Service Ratio = Q1:Q2:Q3 = 2:1:1 [Q1] Weight: 2 [Q2] Weight: 1 [Q3] Weight: 1 300B200B 400B 300B100B 600B300B400B 400B 500B500B PacketSegmentation Last bit of 300B Pkt Last bit of 100B Pkt Last bit of 400B Pkt Last bit of 500B Pkt Last bit of 300B Pkt Last bit of 600B Pkt Last bit of 200B Pkt Last bit of 300B Pkt Last bit of 500B Pkt Last bit of 400B Pkt Last bit of 400B Pkt 1 bit Output Port 600B300B400B 500B300B200B 400B 300B100B500B400B Bit-by-Bit WRR Scheduler Packet Reassembler 수신된 패킷을 Bit 단위로 Segmentation Reassembly가 완료된 패킷 순서대로 출 력 포트 송신 본 그림은 WFQ 설명의 이해를 위한 논리적인 그림이 며, 실제로 Segmentation/Reassembly를 수행 하는지는 알 수 없음
  • 44. • Weight: 출력 포트 대역폭에 대한 패킷 서비스 비율 (WFQ와 동일한 개념) • Quantum: 각 큐에 할당된 Weight값에 비례하는 값으로 Byte 단위를 가짐. Scheduler가 Round Robin으로 큐 방문 시에 Deficit Counter에는 Quantum값만큼이 보충됨 • DeficitCounter: Queue visit time시에 해당 큐가 보낼 수 있는 최대 Byte 수. 만약 송신 패킷 크기(Byte)가 DefictCounter(Byte) 보다 크게 될 경우, 그 패킷은 출력 포트로 송신 될 수 없으며, 잉여 DeficitCounter 값은 다음 scheduling time(Next Service Round)에서 사용이 됨 • Variable Length를 고려하지 못한 WRR의 단점을 보완  Byte 단위 개념의 Weight • 구현의 복잡함의 제약이 있는 WFQ의 단점을 보완  구현이 용이함 Deficit Weighted Round Robin 44 300B200B 400B 300B100B 600B300B400B Output Port DWRR Scheduler 400B 500B500B 600B300B400B 500B300B200B 400B 300B100B500B400B Q1 Weight: 2 Quantum=1000, DeficiCounter=0B Q2 Weight: 1 Quantum=500, DeficitCounter=0B Q3 Weight: 1 Quantum=500, DeficitCounter=0B • Weight의 비율이 Q1:Q2:Q3 = 2:1:1이므로, 그 비율대 로 Quantum 값을 할당. 본 예제에서는 Q1:Q2:Q3 = 1000:500:500으로 함 • 초기 DeficitCounter 값은 모두 0임
  • 45. DWRR Example 45 1. Round 1 with Round Pointer = Q1 2. Round 1 with Round Pointer = Q1 3. Round 1 with Round Pointer = Q2 4. Round 1 with Round Pointer = Q2 5. Round 1 with Round Pointer = Q3 300B200B 400B 300B100B 600B300B400B Output Port DWRR Scheduler 400B 500B500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=1000B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=0B 300B200B 600B300B400B Output Port DWRR Scheduler 400B 500B500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=200B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=0B 400B 300B100B 300B200B 600B300B400B DWRR Scheduler 400B 500B500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=200B [Q2] Weight: 1 Quantum=500, DeficitCounter=500B [Q3] Weight: 1 Quantum=500, DeficitCounter=0B Output Port 0B + Quantum 300B200B 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=200B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=0B Output Port 500B - 500B 500B 300B200B 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=200B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B 0B + Quantum Output Port 0. Initial Stage 300B200B 400B 300B100B 600B300B400B Output Port DWRR Scheduler 400B 500B500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=0B 0B + Quantum 1000B - (300B + 100B + 400B)
  • 46. DWRR Example (cont) 46 6. Round 2 with Round Pointer = Q1 300B200B 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=1200B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B Output Port 7. Round 2 with Round Pointer = Q1 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=700B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B Output Port 300B200B 8. Round 2 with Round Pointer = Q1 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B Output Port 9. Round 2 with Round Pointer = Q2 600B300B400B DWRR Scheduler 400B 500B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=500B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B Output Port 10. Round 2 with Round Pointer = Q2 600B300B400B DWRR Scheduler 400B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=500B Output Port 500B 11. Round 2 with Round Pointer = Q3 600B300B400B DWRR Scheduler 400B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=1000B Output Port 200B + Quantum 1200B - (300B + 200B) Q1 is empty !!! 0B + Quantum 500B - 500B 500B + Quantum
  • 47. DWRR Example (cont) 47 12. Round 2 with Round Pointer = Q3 400B DWRR Scheduler 400B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=100B 1000B - (600B + 300B) Output Port 600B300B 13. Round 3 with Round Pointer = Q2 400B DWRR Scheduler 400B [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=500B [Q3] Weight: 1 Quantum=500, DeficitCounter=100B Output Port 14. Round 3 with Round Pointer = Q2 400B DWRR Scheduler [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=100B [Q3] Weight: 1 Quantum=500, DeficitCounter=100B Output Port 400B 15. Round 3 with Round Pointer = Q2 400B DWRR Scheduler [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=100B Q1 is empty !!! Output Port 16. Round 3 with Round Pointer = Q3 400B DWRR Scheduler [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=600B Output Port 100B + Quantum 17. Round 3 with Round Pointer = Q3 DWRR Scheduler [Q1] Weight: 2 Quantum=1000, DeficiCounter=0B [Q2] Weight: 1 Quantum=500, DeficitCounter=0B [Q3] Weight: 1 Quantum=500, DeficitCounter=200B Output Port 600B - 400B 400B 0B + Quantum 500B - 400B
  • 48. • 약속한(SLA) 대역폭(Target Traffic Rate) 이상의 트래픽이 유입되면, 버퍼링을 통해 그 대역폭 이상으로 출력 하지 않도록 함. Smoothing이라고도 함 • Shaping Rate (bps) • Buffering Size (bytes) • TCP 환경(Flow Control Feature in TCP)에 적합 • Queuing Delay 발생으로 Real-time Application에 부적합 Shaping 48 Target Traffic Rate Offered Traffic Bandwidth(bps) time Rate Shaped Traffic Bandwidth(bps) time Buffered
  • 49. Shaping Example (cont) 49 1st Second 0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0 2nd Second 0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0 Max Shaping Rate = 15 Bytes/Sec. 1 2 3 4 5 6 7 8 9 1 0 1 2 3 4 5 Wait Wait Wait Wait Wait 1 2 3 4 5 Packet 1 : 10 Bytes Packet 2 : 5 Bytes Packet 3 : 5 Bytes • 1초에 최대 15 Byte 송신이 가능 (15B/s  120bps 대 역폭으로 shaping) • 1st Second: Packet 1과 Packet 2를 송신하면 15 Byte 가 됨. 더 이상 송신을 못함. 따라서 0.75 ~ 1.0까지 wait (waiting time동안 packet은 메모리에 버퍼링됨) • 2nd Second: Packet 3을 송신 1st Second 0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0 2nd Second 0.0 .05 .10 .15 .20 .25 .30 .35 .40 .45 .50 .55 .60 .65 .70 .75 .80 .85 .90 .95 1.0 Max Shaping Rate = 15 Bytes/Sec. 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 Wait Wait Wait Packet 1 : 17 Bytes Packet 2 : 5 Bytes Packet 3 : 5 Bytes 1 2 3 4 5 Wait Wait 1 2 3 4 5 1st Second 2nd Second 바로 전에 사용한 2개의 Time Slot만큼 wait후 전송 0.05초마다 1 Byte를 송신하는 포트라 가정 (20B/s  160bps 대역폭 제공 포트로 가정) 2개의 Time Slot(0.75 ~ 0.85)을 더 사용함
  • 50. Shaper behind of Queue 50 [Q1] [Q2] [Q3] 300B200B 400B 300B100B 600B300B400B 400B 500B500B Output Port SPQ/WRR/WFQ/DWRR Scheduler Shaper
  • 51. • TCP ACK 수신 없이 한번에 전송할 수 있는 TCP 패킷(Maximum Segment Size) 개수 • 패킷 손실 발생시 현재의 congestion window를 50% 감소 (전송 대역폭을 반으로 감소) • 이후 RTT마다 congestion window를 1씩 순차적으로 증가 (정상속도에 도달되는 시간이 오래 걸림) TCP Algorithm 51
  • 52. Shaping vs. Policing 52 Target Traffic Rate Offered Traffic Bandwidth(bps) time Rate Shaped Traffic Bandwidth(bps) time Buffered time Bandwidth(bps) time Bandwidth(bps) Target Traffic Rate Offered Traffic Rate Limited Traffic Drop FTP over a 128-Kbps rate-limited connection ftp> put testfile local: testfile remote: testfile 150 Opening BINARY mode data connection for 'testfile'. 100% |**********************************| 373 KB 00:00 ETA 226 Transfer complete. 382332 bytes sent in 35.61 seconds (10.48 KB/s) FTP over a 128-Kbps traffic-shaped connection ftp> put testfile local: testfile remote: testfile 150 Opening BINARY mode data connection for 'testfile'. 100% |**********************************| 373 KB 00:00 ETA 226 Transfer complete. 382332 bytes sent in 24.73 seconds (15.10 KB/s) 121Kbps 84Kbps
  • 53. Shaping vs. Policing (cont) 53
  • 54. Scheduling Algorithm Combination 54 Q1[SPQ] Q2[DWRR] Q3[DWRR] Q4[DWRR] Q1[SPQ-High] Q2[SPQ-Low] Q3[DWRR] Q4[DWRR] Q1[SPQ] Q2[WFQ] Q3[WFQ] Q4[WFQ] Q1[SPQ-High] Q2[SPQ-Low] Q3[WFQ] Q4[WFQ] 1 SPQ + 3 DWRR 1 SPQ + 3 WFQ & 3 Shaper 2 SPQ + 2 DWRR & 1 Shaper 2 SPQ + 2 WFQ Output Port Output Port Output Port Output Port 각 Queue별로 서로 다른 Scheduling Algorithm 적 용이 가능함
  • 55. Scheduling Example 55 Input traffic bandwidth : 80 + 50 + 90 = 220Mbps Output port bandwidth : 100Mbps Q1 service/output bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (< Input bandwidth) Q2 service/output bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth) Q3 service/output bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (< Input bandwidth) Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 80Mbps 50Mbps 90Mbps 50Mbps 30Mbps 20Mbps FastEthernet Port Example (1) Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 0Mbps 100Mbps 100Mbps 0Mbps 60Mbps 40Mbps FastEthernet Port Example (2) Input traffic bandwidth : 0 + 100 + 100 = 200Mbps Output port bandwidth : 100Mbps Q1 service/output bandwidth : 0Mbps Q2 service/output bandwidth : 3 / (3 + 2) x 100Mbps = 60Mbps (< Input bandwidth) Q3 service/output bandwidth : 2 / (3 + 2) x 100Mbps = 40Mbps (< Input bandwidth) Congestion Congestion Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 20Mbps 90Mbps 90Mbps 20Mbps 48Mbps 32Mbps FastEthernet Port Example (3) Input traffic bandwidth : 30 + 90 + 90 = 210Mbps Output port bandwidth : 100Mbps Q1 service bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (> Input bandwidth) Q2 service bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth) Q3 service bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (< Input bandwidth) Q1 output bandwidth : 20Mbps Q2 output bandwidth : 3 / (3 + 2) x (50 - 20)Mbps = 18Mbps so, 30 + 18 = 48Mbps Q3 output bandwidth : 2 / (3 + 2) x (50 - 20)Mbps = 12Mbps so, 20 + 12 = 32Mbps Congestion Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 20Mbps 90Mbps 10Mbps 20Mbps 70Mbps 10Mbps FastEthernet Port Example (4) Input traffic bandwidth : 30 + 90 + 10 = 130Mbps Output port bandwidth : 100Mbps Q1 service bandwidth : 5 / (5 + 3 + 2) x 100Mbps = 50Mbps (> Input bandwidth) Q2 service bandwidth : 3 / (5 + 3 + 2) x 100Mbps = 30Mbps (< Input bandwidth) Q3 service bandwidth : 2 / (5 + 3 + 2) x 100Mbps = 20Mbps (> Input bandwidth) Q1 output bandwidth : 20Mbps Q2 output bandwidth : (50 - 20) + (20 - 10) = 40Mbps so, 30 + 40 = 70Mbps Q3 output bandwidth : 10Mbps Congestion
  • 56. Scheduling Example (cont) 56 Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 10Mbps 20Mbps 70Mbps 10Mbps 20Mbps 70Mbps FastEthernet Port Example (6) Input traffic bandwidth : 10 + 20 + 70 = 100Mbps Output port bandwidth : 100Mbps Q1 output bandwidth : 10Mbps Q2 output bandwidth : 20Mbps Q3 output bandwidth : 70Mbps No Congestion Q1 Weight: 5 Q2 Weight: 3 Q3 Weight: 2 DWRR/WFQ Scheduler 0Mbps 0Mbps 100Mbps 0Mbps 0Mbps 100Mbps FastEthernet Port Example (5) Input traffic bandwidth : 0 + 0 + 100 = 100Mbps Output port bandwidth : 100Mbps Q1 output bandwidth : 0Mbps Q2 output bandwidth : 0Mbps Q3 output bandwidth : 100Mbps No Congestion
  • 57. Scheduling Example (cont) 57 Q1 SPQ Q2 Weight: 2 Q3 Weight: 1 100Mbps 100Mbps 100Mbps 100Mbps 0Mbps 0Mbps FastEthernet Port Example (7) Input traffic bandwidth : 100 + 100 + 100 = 300Mbps Output port bandwidth : 100Mbps Q1 service/output bandwidth : 100Mbps Q2 service/output bandwidth : 2 / (2 + 1) x 0 Mbps = 0Mbps Q3 service/output bandwidth : 1 / (2 + 1) x 0 Mbps = 0Mbps Congestion SPQ + DWRR/WFQ Scheduler Q1 SPQ Q2 Weight: 2 Q3 Weight: 1 70Mbps 100Mbps 100Mbps 70Mbps 20Mbps 10Mbps FastEthernet Port Example (8) Input traffic bandwidth : 70 + 100 + 100 = 270Mbps Output port bandwidth : 100Mbps Q1 service/output bandwidth : 70Mbps Q2 service/output bandwidth : 2 / (2 + 1) x 30Mbps = 20Mbps Q3 service/output bandwidth : 1 / (2 + 1) x 30Mbps = 10Mbps Congestion SPQ + DWRR/WFQ Scheduler Q1 SPQ Q2 Weight: 2 Q3 Weight: 1 0Mbps 100Mbps 100Mbps 0Mbps 67Mbps 33Mbps FastEthernet Port Example (9) Input traffic bandwidth : 0 + 100 + 100 = 200Mbps Output port bandwidth : 100Mbps Q1 service/output bandwidth : 0Mbps Q2 service/output bandwidth : 2 / (2 + 1) x 100 Mbps = 67Mbps Q3 service/output bandwidth : 1 / (2 + 1) x 100 Mbps = 33Mbps Congestion SPQ + DWRR/WFQ Scheduler
  • 58. QoS Profile for Scheduler 58 Q1 ... Q2 Qn Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager QoS Profile for Queue Scheduler 1. Queue ID Output Port Q1 ... Q2 Qn Output Port ... • Classifier로 분류된 패킷들을 출력포트의 어떤 Queue에 집어 넣을지….
  • 59. CLI Example 59 # access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100 # schedule acl-num 1 queue q3 acl-num 1에 match되는 패킷은 Q3을 통해서 출력 되도록 함 queue out-port 3 queue q1 spq priority high shape rate 10M buffer 512K queue out-port 3 queue q2 spq priority low queue out-port 3 queue q3 wfq weight 10 queue out-port 3 queue q4 wfq weight 1 출력 포트 3번의 Q1은 10Mbps로 shaping을 하고, shaping시에 최대 Buffering은 512KByte 까지 하며, shaping되어 나오 는 패킷은 Strict Priority Queue의 High Priority를 통해 출력 출력 포트 3번의 Q2는 Strict Priority Queue이며 Priority는 Low 출력 포트 3번의 Q3은 Weighted Fair Queue이며 Weight는 10 출력 포트 3번의 Q4는 Weighted Fair Queue이며 Weight는 1
  • 60. • IEEE 802.1 standards • https://en.wikipedia.org/wiki/Time-Sensitive_Networking For Your Information …. 60
  • 61. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 6. Buffer Manager 61 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager Traffic Manager
  • 62. • Congestion이 발생하게 되면, Queue(Buffer)가 overflow 날 것이고, 이때 패킷을 어떻게 폐기 처분할 것인지에 대한 방안이 요구됨 (잘 버리자!!!) • Buffer Manger는 각 Queue별로 패킷을 어떤 방식으로 Discard할 것인지 그 방안을 제공함 • Tail-Drop • RED (Random Early Detection) • WRED (Weighted RED) Buffer Manager 62 FE FE FE FE GE GE 100Mbps Congestion !!! 100Mbps 100Mbps Output Port Classifier B C D E F A BD EF A K H I JL L Q1 Q2 Q3 ... J C G G H 100Mbps Queue Full !!!
  • 63. • Queue에 패킷이 더 이상 들어갈 자리가 없으면(Queue Full) 그 이후에 들어오는 패킷은 Drop한다. 즉, Queue 에 들어갈 자리가 있으면 그 패킷은 서비스가 되고, 그렇지 않은 패킷은 버려지는 것임 • TCP Global Synchronization 현상 발생 Tail-Drop 63 Output Port Q1 Q2 Q3 Drop Drop Probability 1 0 Queue Size Max Size • Drop Probability(폐기 확률) = 1 : 패킷을 버림 • Max Queue Size : Queue에 담을 수 있는 패킷들의 총 크기(Total # of bytes)
  • 65. •  Queue에 쌓인 패킷들의 크기가 THmin 보다 작은 경우, 패킷들을 받아 들임 •  Queue에 쌓인 패킷들의 크기가 THmin에서 THmax 사이인 경우, 확률적으로 패킷들을 받아 들임. 이 말은 곧 확률적으로 패킷을 Drop 한다는 의미. 폐기 확률은 Pmax에 비례 •  Queue에 쌓인 패킷들의 크기가 THmax 보다 큰 경우, 도착한 패킷들을 모두 버림 RED (Random Early Detection) 65 Output Port Q1 Q2 Q3 THminTHmax THminTHmax Drop THminTHmax Drop 1 2 3 1 0 Queue Size Max SizeThmin Thmax Pmax Drop Probability
  • 66. • 하나의 Queue내에 THmin/THmax/Pmax가 여러 개(본 그림에서는 3개) 존재하여, 이 Drop Precedence Level(TH1 or TH2 or TH3)에 따라서 Drop되는 경우가 달라짐 WRED (Weighted RED) 66 12 3456 1 TH1min 2 3 4 5 6 TH1max TH2min TH3min TH2max TH3max TH1 Packets TH2 Packets TH3 Packets 1 0 Queue Size Max SizeTh1min Th1max P3max Th2min Th2max Th3min Th3max P2max P1max Drop Probability
  • 67. WRED + Policer 67 Change 802.1p (PCP) Set DEI Change DSCP (Class Selector) Change DSCP (Drop Probability): AFx1  AFx3 Green Yellow Red Drop Mark Pass Change WRED Drop Precedence Level 10MbpsPacket Green Drop Precedence Level = 3(Default value) Policer Yellow Green Yellow Drop Precedence Level = 2 Queue Buffer Manager 12 3456 1 TH1min 2 3 4 5 6 TH1max TH2min TH3min TH2max TH3max Drop Precedence Level 1 Drop Precedence Level 2 Drop Precedence Level 3
  • 68. QoS Profile for Buffer Manager 68 Packet In Packet Out Queue Scheduler Classifier Marker Policer Buffer Manager QoS Profile for Buffer Manger 1. Drop Precedence Level
  • 69. CLI Example 69 # access-list acl-num 1 sip 1.1.1.0/24 dip 20.1.1.0/24 protocol tcp sp any dp 50-100 # wred acl-num 1 drop-level 3 acl-num 1에 match되는 패킷이 WRED enabled Queue로 서비스 될 경우, Drop level 3에 적용 받게 함 # buffer-mgr out-port 5 queue 1 wred drop-level-1 th-min 10% th-max 30% p-max 0.8 drop-level-2 th-min 20% th-max 50% p-max 0.5 drop-level-3 th-min 60% th-max 95% p-max 0.2 # buffer-mgr out-port 5 queue 2 red th-min 30% th-max 80% p-max 0.7 # buffer-mgr out-port 5 queue 3 tail-drop 출력 포트 3번의 Q1은 WRED로 설정하고, 3개의 Drop level을 다음과 같이 설정 Drop Level 1 : THmin = 10%, THmax = 30%, Pmax = 0.8 Drop Level 2 : THmin = 20%, THmax = 50%, Pmax = 0.5 Drop Level 3 : THmin = 60%, THmax = 95%, Pmax = 0.2 출력 포트 3번의 Q2는 RED로 설정하고, Drop level을 다음과 같이 설정 THmin = 30%, THmax = 80%, Pmax = 0.7 출력 포트 3번의 Q3는 Tail-drop으로 설정
  • 70. © Samsung Electronics. All Rights Reserved. Confidential and Proprietary. 7. QoS Features on Commercial L2/L3 Switch 70
  • 71. QoS Features on Commercial L2/L3 Switch 71 QoS Features L3 스위치 (다산 V6748XG) L2 스위치 (다산 V27xxGB) Classification Field L2 Header • Source MAC address • Destination MAC address • 802.1p (PCP) • EtherType L3 Header • Source IP address/subnet mask • Destination IP address/subnet mask • Protocol ID: ICMP, TCP, UDP • DSCP L4 Header • ICMP: Type/Code • TCP/UDP: Source Port, Destination Port # • TCP Flags • 좌동 Marking • 802.1p (PCP) • VLAN ID • DSCP • 802.1p (PCP) • VLAN ID • IP-Precedence Policing • supported • supported # of Queue per Egress Port • 8 • 4 Scheduling Algorithm • SPQ • WRR • DWRR (DRR이라고 부름) • 좌동
  • 72. © NMC Consulting Group. All Rights Reserved. Confidential and Proprietary. 72