Advanced Computer Networks CS716 Advanced Computer Networks By Dr. Amir Qayyum 1
Lecture No. 35
Router-Based Congestion Control Solution 3
Congestion Control Basics: problem, terminology, approaches, metrics Solutions Router-based: queuing disciplines Host-based: TCP congestion control Congestion avoidance DECbit RED gateways Quality of service
Router Solutions: Queuing Disciplines Router defines policies on each outgoing link Allocates buffer space: Which packets are discarded? Allocates bandwidth: Which packets are transmitted? Affects packet latency: When are packets transmitted?
More Fairness Choices First In, First Out (FIFO) Fairness for latency Minimizes per-packet delay Bandwidth not considered (not good for congestion) Fair queuing Fairness for bandwidth Provides equal bandwidths (possibly weighted) Delay not considered
Fair Queuing Logical round-robin on bits Idea Equal-length packets: round-robin on packets Variable-length packets ? Idea Let Si denote accumulated service for flow i Serve the flow with lowest accumulated service On serving a packet of length P from flow i, update Si = Si + P
Fair Queuing Example A B C SA SB SC 10 10 20 10 20 15 20 15 20 35 35 10 10 20 10 20 15 20 15 20 35 35 20 35 30 20 15
Fair Queuing Example Compare Si or Si + P ? A B C SA SB SC 10 10 15 20 10 10 15 20 15 20 15 20 30 15 35 30 15 35 30 20 15 Another detail: update counter at start or end of transmission ?
Why is the suggested approach not quite adequate? Fair Queuing Why is the suggested approach not quite adequate? Flows can “save up” credit No transmission for long time (call it T) Burst uses all bandwidth for up to time T x flow’s share of link
Fair Queuing How might we fix this problem? Don’t allow inactive flows to retain service rates below that of any active flow i.e. after updating some flow’s Si For each flow j with no packets in its queue Set Sj to the minimum Sk for all active flows k (or 0 if no flows are active)
Fair Queuing Example A B C SA SB SC 10 10 20 15 20 20 35 30 35 10 10 10 10 20 15 20 20 35 30 35 20 15
Weighted Fair Queuing Extend fair queuing Notion of importance for each flow Implement as weight Wi for flow i Update accumulated service with P/Wi
Weighted Fair Queuing Example 15 10 10 B (2) 20 10 10 10 15 20 10 10 10 20 C (1) 20 15 SA SB SC 10 10 10 15 20 10 15 20 15 20 15 20 35
Weighted Fair Queuing What makes up a flow for fair queuing in the Internet ? Too many resources to have separate queues/variables for host-to-host flows Scale down number of flows Typically just based on inputs e.g. share outgoing STS-12 between incoming ISP’s
Fair Queuing in the Internet 10 10 10 A B 10 10 10 10 10 10 10 10 10 STS-12 C SA SB SC SD 10 10 10 20 10 20 10 20 10 10 10 D Service-Level Agreements (SLAs) for STS-3 (155Mbps) STS-4