Download presentation
Presentation is loading. Please wait.
Published byToni Goy Modified over 9 years ago
1
cs/ee 143 Communication Networks Chapter 7 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech
2
Recap: Internet overview Some basic mechanisms Packet switching Addressing Routing hierarchical (AS), forwarding, shortest path routing, software defined networking Transport congestion control, error recovery Medium access control Internetworking Project
3
Recap: Internet overview Some basic concepts Performance metrics Throughput, line rate (bandwidth), line capacity Delay, delay jitter Scalability location-based routing, hierarchical best-effort service, end-to-end principle Layering
5
Recap: Internet overview Some basic analytic tools Convex optimization We will use it to understand equilibrium properties of TCP congestion control Control and dynamical system We will use it to understand stability properties of TCP congestion control Queueing theory We will use it to understand statistical properties of wireless MAC
6
Recap: Routing Covered layer 3 routing Autonomous systems (AS) Defined by administrative domains Inter-AS: BGP Policy based Intra-AS: Dijkstra, Bellman-Ford Shortest-path routing Error recovery Can be used in link, transport, or application layer Parity check, FEC, network coding
7
Project-oriented ordering Network layer (Layer 3) Provides host-to-host communication service by finding a path of routers connecting any two hosts Hosts/routers are identified by IP addresses Intra-domain and Inter-domain routing protocols Link layer (Layer 2) Provides host-router and router-router communication by utilizing the physical communication links Manages routing within the LAN Hosts are identified by MAC addresses Examples of protocols: Ethernet, WIFI, etc. next week last week
8
This week Internetworking Routing across LANs, layer2-layer3 DHCP NAT Transport layer Connection setup Error recovery: retransmission Congestion control
10
Transport services UDP Datagram service No congestion control No error/loss recovery Lightweight TCP Connection oriented service Congestion control Error/loss recovery Heavyweight
11
UDP UDP header 1 ~ 65535 (2 16 -1) ≤ 65535 Bytes – 8 Bytes (UDP header) – 20 Bytes (IP header) Usually smaller to avoid IP fragmentation (e.g., Ethernet MTU 1500 Bytes)
12
TCP TCP header
13
Example TCP states 3-way handshake4-way handshake Possible issue: SYN flood attack Result in large numbers of half-open connections and no new connections can be made.
14
Window Flow Control ~ W packets per RTT Lost packet detected by missing ACK RTT time Source Destination 12W12W12W data ACKs 12W
15
ARQ (Automatic Repeat Request) Go-back-N Selective repeat TCP Sender & receiver negotiate whether or not to use Selective Repeat (SACK) Can ack up to 4 blocks of contiguous bytes that receiver got correctly e.g. [3; 10, 14; 16, 20; 25, 33]
16
Window control Limit the number of packets in the network to window W Source rate = bps If W too small then rate « capacity If W too big then rate > capacity => congestion Adapt W to network (and conditions)
17
TCP window control Receiver flow control Avoid overloading receiver Set by receiver awnd: receiver (advertised) window Network congestion control Avoid overloading network Set by sender Infer available network capacity cwnd: congestion window Set W = min (cwnd, awnd)
18
TCP congestion control Source calculates cwnd from indication of network congestion Congestion indications Losses Delay Marks Algorithms to calculate cwnd Tahoe, Reno, Vegas, …
19
TCP Congestion Controls Tahoe (Jacobson 1988) Slow Start Congestion Avoidance Fast Retransmit Reno (Jacobson 1990) Fast Recovery Vegas (Brakmo & Peterson 1994) New Congestion Avoidance
20
TCP Tahoe (Jacobson 1988) SS time window CA : Slow Start : Congestion Avoidance : Threshold
21
Slow Start Start with cwnd = 1 (slow start) On each successful ACK increment cwnd cwnd cnwd + 1 Exponential growth of cwnd each RTT: cwnd 2 x cwnd Enter CA when cwnd >= ssthresh
22
Congestion Avoidance Starts when cwnd ssthresh On each successful ACK: cwnd cwnd + 1/cwnd Linear growth of cwnd each RTT: cwnd cwnd + 1
23
Packet Loss Assumption: loss indicates congestion Packet loss detected by Retransmission TimeOuts (RTO timer) Duplicate ACKs (at least 3) 1 23456 123 Packets Acknowledgements 3 3 7 3 (Fast Retransmit)
24
Fast Retransmit Wait for a timeout is quite long Immediately retransmits after 3 dupACKs without waiting for timeout Adjusts ssthresh flightsize = min(awnd, cwnd) ssthresh max(flightsize/2, 2) Enter Slow Start (cwnd = 1)
25
Summary: Tahoe Basic ideas Gently probe network for spare capacity Drastically reduce rate on congestion Windowing: self-clocking for every ACK { if (W < ssthresh) then W++ (SS) else W += 1/W (CA) } for every loss { ssthresh = W/2 W = 1 } Seems a little too conservative?
26
TCP Reno (Jacobson 1990) CASS for every ACK { W += 1/W (AI) } for every loss { W = W/2 (MD) } How to halve W without emptying the pipe? Fast Recovery
27
Fast recovery Idea: each dupACK represents a packet having left the pipe (successfully received) Enter FR/FR after 3 dupACKs Set ssthresh max(flightsize/2, 2) Retransmit lost packet Set cwnd ssthresh + ndup (window inflation) Wait till W=min(awnd, cwnd) is large enough; transmit new packet(s) On non-dup ACK, set cwnd ssthresh (window deflation) Enter CA
28
9 9 4 00 Example: FR/FR Fast retransmit Retransmit on 3 dupACKs Fast recovery Inflate window while repairing loss to fill pipe time S R 12345687 8 cwnd8 ssthresh 1 7 4 000 Exit FR/FR 4 4 4 11 00 1011
29
Summary: Reno Basic ideas dupACKs: halve W and avoid slow start dupACKs: fast retransmit + fast recovery Timeout: slow start slow start retransmit congestion avoidance FR/FR dupACKs timeout
30
Multiple loss in Reno? On 3 dupACKs, receiver has packets 2, 4, 6, 8, cwnd=8, retransmits pkt 1, enter FR/FR Next dupACK increment cwnd to 9 After a RTT, ACK arrives for pkts 1 & 2, exit FR/FR, cwnd=5, 8 unack’ed pkts No more ACK, sender must wait for timeout 1 2 time S D 345687 1 8 FR/FR 09 000 0 0 9 8 unack’d pkts 2 5 3 timeout
31
New Reno Fall & Floyd ‘96, (RFC 2583) Motivation: multiple losses within a window Partial ACK takes Reno out of FR, deflates window Sender may have to wait for timeout before proceeding Idea: partial ACK indicates lost packets Stays in FR/FR and retransmits immediately Retransmits 1 lost packet per RTT until all lost packets from that window are retransmitted Eliminates timeout
34
Steady state:Fair? Unfair?
35
Delay-based TCP: Vegas (Brakmo & Peterson 1994) Reno with a new congestion avoidance algorithm Converges (provided buffer is large) ! SS time window CA
36
for every RTT { if W/RTT min – W/RTT < RTT min then W ++ if W/RTT min – W/RTT > RTT min then W -- } for every loss W := W/2 Congestion avoidance Each source estimates number of its own packets in pipe from RTT Adjusts window to maintain estimate # of packets in queues between and
37
Implications Congestion measure = end-to-end queueing delay At equilibrium Zero loss Stable window at full utilization Nonzero queue, larger for more sources Convergence to equilibrium Converges if sufficient network buffer Oscillates like Reno otherwise
38
Theory-guided design: FAST We will study them further in TCP modeling in the following weeks A simple model of AIMD (Reno) for example…
39
Summary UDP header/TCP header TCP 3-way/4-way handshake ARQ: Go-back-N/selective repeat Tahoe/Reno/New Reno/Vegas/FAST -- useful details for your project Simply model of AIMD
40
40 Why both TCP and UDP? Most applications use TCP, as this avoids re- inventing error recovery in every application But some applications do not need TCP For example: Voice applications Some packet loss is fine. Packet retransmission introduces too much delay. For example: an application that sends just one message, like DNS/SNMP/RIP. TCP sends several packets before the useful one. We may add reliability at application layer instead.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.