1/24
Looks like no tags are added yet.
Congestion Collapse
Hosts send packets to internet as fast as advertised window allows
Congestion occurs at some routers and packets are dropped
Hosts time out and retransmit packets, resulting in more congestion
Congestion Control
Sources observe events in the network and determine capacity to control amount of packets transmitted
Congestion Window (cwnd)
Used by source to limit how much data it is allowed to have in transit at a given time
Max number of bytes of unacknowledged data is min(congestion window, advertised window)
Based on perceived congestion
Additive Increase Multiplicative Decrease (AIMD)
Saw tooth behavior
Sender increases transmission rate, probing for usable bandwidth until loss occurs
Once loss occurs cut cwnd in half and start adding again
TCP “slow” start
Initially cwnd = 1, double every RTT (increment for every ACK recieved)
On first loss set ssthresh to ½ cwnd and begin AIMD
TCP RENO
Indicated by 3 duplicate ACKs → network capably of delivering some segments
Cut cwnd in half and grow linearlly
TCP Tahoe
Indicated by 3 duplicate ACKs or timeout
Set cwnd = 1, ssthresh = ½ cwnd
Do slow start again
Estimating TCP Throughput
No congestion control: avg TCP throughput = W/RTT
With congestion control: assume ssthresh = W/2
Congestion Avoidance
Predict when congestion is about to happen and reduce the rate at which hosts send data just before packets start getting discarded
Source Base Congestion Avoidance
Check RTTs and modify cwnd appropriately
Router Based Congestion Avoidance
DEC bit - add a bit to the header of a packet that the router can set when congestion is about to occur
Random Early Detection - Implicitly notify a source of pending congestion by dropping a packet before congestion occurs
Explicit Congestion Notification (ECN)
Two bits it IP header (ToS Field) marked to indicate congestion
Congestion indication carried to receiving host by network router
Receiver sets EVE bit on receiver to sender ACK to notify of congestion
Network Layer
Provides process to process (end-to-end) communication
Runs routing algorithm so sender can efficiently locate a target receiver in network (determine path)
Helps forward message hop by hop following the path
Forwarding
Packet arrives at a router and goes out an output port based on the destination
Forwarding Table
Table of destination and next hop to go to based on the destination
Updated regularly by routing algorithms
Routing
Determining route for packets to take to get to destination
Data Plane
Local - per router function - Forwarding
determines how datagram arriving on router input port is forwarded to router output port
Control Plane
Network wide logic - Routing
Determines how datagram is routed among routers along end-end path from source host to destination host
Has two approaches (per router and SDN)
Per Router Control Plane
Individual routing algorithms components in each router interact in the control plane
Good: completely autonomous, robust
Bad: not controllable or programmable
Software Defined Networking (SDN)
Remote controller computes and installs forwarding tables in routers
Makes network controllable and programmable
Service Model of Network Layer
Best effort service (nothing guaranteed)