Presentation is loading. Please wait.

Presentation is loading. Please wait.

Cs/ee 143 Communication Networks Chapter 7 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech.

Similar presentations

Presentation on theme: "Cs/ee 143 Communication Networks Chapter 7 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech."— Presentation transcript:

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.

Download ppt "Cs/ee 143 Communication Networks Chapter 7 Transport Text: Walrand & Parakh, 2010 Steven Low CMS, EE, Caltech."

Similar presentations

Ads by Google