CSE 222A: Computer Communication NetworksAlex C. Snoeren
Lecture 13:Traffic Engineering
Thanks: Mike Freedman, Nick Feamster, and Ming Zhang
Lecture 13 Overview
● Dealing with multiple paths
● Multihoming
● Entact discussion
● Intro to congestion control
2CSE 222A – Lecture 13: Traffic Engineering
Multiple Paths● Establish multiple paths in advance
u Good use of bandwidth, withstand failures● Disseminate link-congestion information
u Flood thru network, piggyback on data, direct to controller
3CSE 222A – Lecture 13: Traffic Engineering
Adjust Traffic Splitting● Source router adjusts the traffic
u Changing traffic fraction, e.g. based on congestion
u Often use hash-based splitting to prevent packet reordering within a flow
35%
65%
4CSE 222A – Lecture 13: Traffic Engineering
Multi-Homing● Reliability
u Reduced fate sharingu Survive ISP failure
● Performanceu Multiple pathsu Select the best
● Financialu Leverage through competitionu Game 95th-percentile billing model
Provider 1 Provider 2
Stub: an Autonomous System that does not provide transit
5CSE 222A – Lecture 13: Traffic Engineering
Outbound Traffic: Pick a BGP Route● Easier to control than inbound traffic
u IP routing is destination basedu Sender determines where the packets go
● Control only by selecting the next hopu Border router can pick the next-hop ASu Cannot control selection of the entire path
Provider 1 Provider 2
�(2, 7, 8, 4)��(1, 3, 4)�
6CSE 222A – Lecture 13: Traffic Engineering
Inbound Traffic: Influencing Others● Harder to control than outbound traffic
u Sender determines where the packets go● Control only by influencing others’ decisions
u Static configuration of the providersu BGP route attributes sent by the stubu Selective advertising of destination prefixes
Provider 1 Provider 2
7CSE 222A – Lecture 13: Traffic Engineering
Inbound Traffic: Multiple Addresses● Multiple external addresses for a service
u One IP address for each entry point● Use DNS to adjust mapping of name to address
u Give different answers to different clientsu Adjust over time to performance, cost, traffic, etc.
Provider 1 Provider 2
5.6.7.0/2412.34.1.0/24
5.6.7.812.34.1.28CSE 222A – Lecture 13: Traffic Engineering
Online Service Providers
9CSE 222A – Lecture 13: Traffic Engineering
Route Injection
10CSE 222A – Lecture 13: Traffic Engineering
Entact
11CSE 222A – Lecture 13: Traffic Engineering
Entact Benefits
12CSE 222A – Lecture 13: Traffic Engineering
Congestion Control Overview● Challenge: how do we efficiently share network
resources among billions of hosts?u Today: TCP
Hosts adjust rate based on packet lossesu Alternative solutions
Fair queuing, RED (router support) Vegas, packet pair (add functionality to TCP)Rate control, credits
13CSE 222A – Lecture 13: Traffic Engineering
Queuing Disciplines● How to distribute buffers among users/flows
u When buffer overflows, which packet to drop?
● Simple solution: FIFOu First in, first outu If packet comes along with no available buffer space, drop it
14CSE 222A – Lecture 13: Traffic Engineering
Fair Queuing● Goals:
u Allocate resources equally among all users/flowsu Low delay for interactive usersu Protection against misbehaving users
● Approach: simulate general processor sharing (from OS world)u Bitwise round robinu Need to compute number of competing flows at each instant
15CSE 222A – Lecture 13: Traffic Engineering
TCP Congestion Problems● Original TCP sent full window of data
● When links become loaded, queues fill up, leading to:u Congestion collapse: when round-trip time exceeds retransmit
interval this can create a stable condition in which every packet is being retransmitted many times
u Synchronized behavior: network oscillates between loaded and unloaded
» Feedback loop
16CSE 222A – Lecture 13: Traffic Engineering
Jacobson’s Solution● Transport protocols should obey conservation of
packetsu Use ACKs to clock injection of new packets
● Modify retransmission timer to adapt to variations in delay
● Infer network bandwidth from packet lossu Drops è congestion è reduce rateu No drops è no congestion è increase rate
● Limit send rate based on minimum of congestion window and advertised window
17CSE 222A – Lecture 13: Traffic Engineering
Tracking Bottleneck Bandwidth● Throughput = window size/RTT
● Multiplicative decreaseu Timeout è dropped packet è cut window size in half
● Additive increaseu ACK arrives è no drop è increase window size by one
packet/window
18CSE 222A – Lecture 13: Traffic Engineering
TCP “Sawtooth”● Oscillates around bottleneck bandwidth
u Adjusts to changes in competing traffic
0
2
4
6
8
10
12
14
16
18
0 3 6 9 12 15 18 21 24 27
window (in segs)
round-trip times
Additive Increase/Multiplicative Decrease
19CSE 222A – Lecture 13: Traffic Engineering
Slow Start● How do we find bottleneck bandwidth?● Cannot use ACKs to clock without reaching
equilibriumu Start by sending a single packet
Start slow to avoid overwhelming networku Multiplicative increase until get packet loss
Quickly find bottleneckCut rate by half
u Shift into linear increase/multiplicative decrease
20CSE 222A – Lecture 13: Traffic Engineering
Slow Start● Quickly find the bottleneck bandwidth
0
50
100
150
200
250
300
0 1 2 3 4 5 6 7 8
window (in segs)
round-trip times
Slow Start
21CSE 222A – Lecture 13: Traffic Engineering
Slow Start Problems● Slow start usually overshoots bottleneck
u Leading to many lost packets in windowu Can lose up to half of window size
● Bursty traffic sourceu Will cause bursty losses for other flows
● Short flowsu Can spend entire time in slow start
Especially for large bottleneck bandwidth● Consider repeated connections to the same server
u E.g., for web connections
22CSE 222A – Lecture 13: Traffic Engineering
For Next Class…
● Read XCP paper
● Project checkpoint due TONIGHTu Email 1-2 page summary to me
2323CSE 222A – Lecture 13: Traffic Engineering