Four types of characteristics are attributed to a flow:
Reliability is a characteristic that a flow needs in order to deliver the packets safe and sound to the destination.
Source-to-destination delay is another flow characteristic.
Jitter is the variation in delay for packets belonging to the same flow.
오디오나 비디오를 전달할 때 굉장히 중요한 특성
Different applications need different bandwidths.
Sensitivity of applications to flow characteristics
어떤 application이 어떤 특성에 high sensitive 한지(어느 정도의 민감성을 보이는지)
FTP: 파일을 보내는 FTP는 신뢰도에 민감하고 delay, jitter는 둔감하며 bandwidth는 보통(민둔둔보)
HTTP: 신뢰도에 민감, delay는 중간, jitter는 둔감, bandwidth는 보통 (민준뚱보)
Audio: 신뢰도, delay에 둔감, jitter에 민감, bandwidth 보통
Video: 신뢰도, delay에 둔감, jitter에 민감, bandwidth에 민감
voice: 신뢰도 둔감, delay 민감, jitter 민감, bandwidth 민둔감
Implementing QoS
Scheduling: FIFO queuing, priority queuing, and weighted fair queuing
Traffic shaping or policing: Leaky bucket, token bucket
도로망의 shaping 변경을 통해 원활하게
Resource reservation
예약
Admission control: accept or reject a flow based on predefined parameters called flow specification
계약 조건에 위배되면 flow를 거절
FIFO Queue
순서대로!
1,2,3번 packet이 application이 뭔지는 상관없이 순서대로 하기 때문에 3번과 같이 빨리 끝나는 건데도 기다려야 된다.
Priority Queuing
Packets are first assigned to priority class. Each priority class has its own queue
우선순위 큐
어떤 종류의 application인지에 따라 요구하는 quality가 무엇인가에 따라 우선순위 부여
delay에 민감하면 high-priority queue에 넣고
high-priority queue가 비기 전까지는 low-priority를 처리하지 않음
high-prioity에 처리해야 할 것이 계속 들어오면 starvation이 발생...
Weighted Fair Queuing
The queues are weighted based on the priority of the queues
The system processes packets in each queue in a round-robin fashion with the number of packets selected from each queue based on the weight
프로세스가 가장 높은 우선순위 큐에서 세 개의 프로세스를 털고 계속 머무는 것이 아니라 중간 우선순위 큐로 가서 두 개를 털고 가장 낮은 우선순위 큐로 가서 하나를 털어 starvation을 방지한다.
돌아가면서 일처리를 하되 각 큐에서 처리하는 개수는 weight 부여
Traffic Shaping: Leaky Bucket
Traffic shaping: to control the amount and the rate of the traffic sent to network
일정한 rate으로 차들을 고속도로에 유입시키기
Two techniques: leaky bucket and token bucket
A leaky bucket algorithm shapes bursty traffic into fixed-rate traffic by averaging the data rate. It may drop the packets if the bucket is full.
Leaky Bucket Implementation
Algorithm for variable-length packets:2) If n is greater than the size of the packet, send packet and decrement the counter by the packet size. Repeat this step until n is smaller than the packet size
3) Reset the counter and go to step 1
1) Initialize a counter to n at the tick of the clock
FIFO 사용!
Token Bucket
The token bucket allows bursty traffic at a regulated maximum rate.
Token bucket + leaky bucket: leaky bucket after token bucket
1초에 한 token 씩 쌓는다.
token은 일종의 토큰을 하나 내보낼 수 있는 권리로써 token이 하나당 packet을 보낸다.
token 하나 들어오면 packet 하나 내보내고.... -> 이 경우 일정한 속도로 packet이 나아갈 것이다.
그런데!! 일정한 data를 보내다가 보낼 데이터가 queue에 없으면 그 동안 못 보낸 만큼 token이 쌓여서 credit을 부여하여 나중에 그 수 만큼 많이 보낼 수 있도록 일종의 보상 기능이 추가된다.
뒤에 뭉쳐서 오는 traffic을 처리할 수 있도록
그래서 보낼 수 있는 최대 packet 수는
max # of packets = r x t + C
r: rate, t: time, C: capacity
Integrated Services (IntServ)
data flow를 위해서 reservation 기반의 서비스
Integrated Services is a flow-based QoS model designed for IP
Signaling: Resource Reservation Protocol (RSVP)
signaling으로 신호를 주고 받으면서 필요한 자원을 예약
To define a specific flow, a source needs to define a flow specification, which is made of two parts:
Rspec (resource specification) defines the resource that the flow needs to reserve
Tspec (traffic specification) defines the traffic characterization of the flow
After a router receives the flow specification from an application, it decides to admit or deny the service.
The decision is based on the previous commitments of the router and the current availability of the resource.
: guaranteed service and controlled-load service
Guaranteed service class: guaranteed minimum end-to-end delay
on-demand audio/video
stored audio/video
real-time
Controlled-load service class: accept some delays, but is sensitive to an overloaded network and to the danger of losing packets
Service classes
자동차 하나하나를 달리 취급하여 따로 따로 관리
RSVP
In IntServ, the resource reservation is for a flow, a kind of virtual circuit network out of the IP
RSVP is a signaling protocol to help IP create a flow and consequently make a resource reservation
RSVP is a signaling system designed for multicasting
Receiver-based reservation
RSVP message: Path and Resv
Path message: from sender to all receivers
path를 통해 이를 받은 receiver들은 S1까지 가는 길을 알게됨
Resv Messages
Make a resource reservation from each receiver to sender
역으로 자원을 reservation
Reservation Merging
router가 이를 기억해서 자원 배정
Reservation Styles
Wild card filter style: a single reservation for all senders
Fixed filter style: a distinct reservation for each flow
Shared explicit style: a single reservation which can be shared by a set of flow
Soft state instead of hard state (such as ATM, Frame Relay)
고정되지 않고 reservation 정보가 주기적으로 refresh
Reservation information to be refreshed periodically(default 30초)
IntServ problem: scalability and service-type limitation
매 flow를 각각 따로 관리를 해야 하는 복잡성 -> 확장성 문제
service 타입의 종류가 적음
Differentiated Service (Diffserv)
IntServ가 flow based 였다면 Diffserv는 class-based이다.
Differentiated Services is a class-based QoS model designed for IP.
DiffServ handles the shortcomings of IntServ
Main differences between DiffServ and IntServ
Main processing is moved from the core to the edge (scalability)
intserve는 core에 일이 많음
diffserve는 core까지 가지 않고 edge에 들어올 때만 일을 하고(class를 나누는 일) 그 후부터는 기계적으로 정보가 전달됨.
The per-flow is changed to per-class flow service (service-type limitation)
DS field
DSCP (DS Code Point) is a 6-bit field that define per-hop behavior (PHB)
class 별로 다른 행동을 하도록 해 주는
CU (currently unused) is 2-bit
Per-hop Behavior (PHB)
DiffServ defines three PHBs
DE PHB (default PHB) is the same as best-effort delivery
EF PHB (expedited forwarding PHB) provides the following services:
Low loss, low latency, ensured bandwidth
AF PHB (assured forwarding PHB) delivers the packet with a high assurance as long as the class traffic does not exceed the traffic profile of the node
router에 들어온 packet이 어떤 class에 소속되었는지에 따라서 차별화된 서비스를 제공하도록 나눈다.
Traffic Conditioner
Meter checks to see if the incoming flow matches the negotiated traffic profile
Marker can re-mark a packet with best-effort delivery or down-mark a packet based on the meter information; no up-mark
Shaper use the meter information to reshape the traffic if not compliant with the negotiated profile.
Dropper, like a shaper with no buffer, discard packets if the flow severely violates the profile