Presentation is loading. Please wait.

Presentation is loading. Please wait.

Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles.

Similar presentations


Presentation on theme: "Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles."— Presentation transcript:

1 Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles of reliable data transfer r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management r 3.6 Principles of congestion control r 3.7 TCP congestion control

2 Transport Layer3-2 Principles of Congestion Control Congestion: r informally: “too many sources sending too much data too fast for network to handle” r different from flow control! r manifestations: m lost packets (buffer overflow at routers) m long delays (queueing in router buffers) r a top-10 problem!

3 Transport Layer3-3 Close look at the congested node(1) r Congestion in a network will occur if the load on the network(the number of packets sent to the network) is greater than the capacity of the network(the number of packets the network can process). r A router(switch) have buffers(queues) that hold packets before processing them.

4 Transport Layer3-4 Close look at the congested node(2) r If packets arrive faster than being processed at a router, they will be held in the buffers. So there will be a queuing delay while they stay in the buffer. r If packets arrive too much faster than a router can process, then the buffer will be overflowed, consequently causing the loss of packets. r Such state of a network is said to be in a congestion.

5 Transport Layer3-5 Close look at the congested node(3) r The packets that are lost at a router can not reach the receiver. So the sender cannot receive any ACKs for the lost packets. r Then the sender retransmits the packets and it aggregates the situation in the network.

6 Transport Layer3-6 Congestion Control r There are two approaches to the congestion control. m Proactive(preventive) congestion control m Reactive congestion control r proactive congestion control m It keeps the network load(input to a network) below the network capacity so that it prevents the network from being in a state of congestion. m This can be done by admission control and traffic policy control.

7 Transport Layer3-7 Reactive Congestion Control r Reactive congestion control m There is no strict admission control. But when a network is in an early stage of congestion, network load(input to a network) should be decreased enough for a network not getting into the serious congested state. m So generally there are two steps in the reactive congestion control. Congestion detection and notification Congestion avoidance: input-rate control

8 Transport Layer3-8 Who acts the congestion control End-end congestion control: r no explicit feedback from network r congestion inferred from end-system observed loss, delay r approach taken by TCP Network-assisted congestion control: r routers provide feedback to end systems m single bit indicating congestion (SNA, DECbit, TCP/IP ECN, ATM)

9 Transport Layer3-9 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles of reliable data transfer r 3.5 Connection-oriented transport: TCP m segment structure m reliable data transfer m flow control m connection management r 3.6 Principles of congestion control r 3.7 TCP congestion control

10 Transport Layer3-10 TCP Congestion Control r Congestion detection and notification m Timeout: TCP assumes that the cause of lost segments is due to congestion in the network. m If the sender does not receive an ACK until the retransmission timer timeouts, it assumes that congestion occurs. (implicit notification) m Another one is when the sender receives 3 dup ACKs.  TCP sender reduces rate ( CongWin ) when it detect congestion. r TCP Congestion control schemes m Slow Start m Congestion avoidance: conservative after timeout events m Fast Retransmit m Fast Recovery

11 Transport Layer3-11 Control parameters r Awnd (advertised window by receiver) m At the initial setup, the receiver informs the receiver of its maximum buffer size, which is the initial value of awnd. m Every time the receiver transmits an ACK(or a segment), it advertises its current available buffer size. r Cwnd (congestion window) m Determine how many segments can be sent without receiving ACKs. rate = CongWin RTT Bytes/sec

12 Transport Layer3-12 Slow Start r slow Start initialize: cwnd = 1 (one maximum segment size); For each segment that is acknowleged cwnd = cwnd + 1 until min(cwnd, awnd) /* exponential growth */

13 Transport Layer3-13 Slow Start (more) r When connection begins, increase rate exponentially until first loss event:  double CongWin every RTT  done by incrementing CongWin for every ACK received r Summary: initial rate is slow but ramps up exponentially fast Host A one segment RTT Host B time two segments four segments

14 Transport Layer3-14 Congestion Avoidance r When no ACK arrives until timeout, TCP enters “the congestion avoidance.” r Congestion Avoidance Algorithm If (segment timeout) 1. Set threshold = cwnd/2 2. Set cwnd = 1 and restart “slow-start” until (cwnd = threshold) 3. If (cwnd  threshold) cwnd = cwnd + 1 every roundtrip time

15 Transport Layer3-15 CWND=1 A B CWND=2 CWND=3 CWND=4 CWND=5 CWND=6 CWND=7 CWND=8 CWND=9 CWND=10 CWND=11 CWND=12 CWND=13 CWND=14 CWND=15 CWND=16 Congestion avoidance CWND=1 A B CWND=2 CWND=3 CWND=4 CWND=5 CWND=6 CWND=7 CWND=8 CWND=9 CWND=10 (a) Slow start, ending with a time out (b) Slow start followed by congestion avoidance

16 Transport Layer3-16 cwnd Round-trip times 15 20 5 21 10 435126981071311151614 Time out occurs Threshold Slow Start and Congestion Avoidance

17 Transport Layer3-17 TCP AIMD (additive-increase multiplicative-decrease) multiplicative decrease: cut CongWin in half after loss event additive increase: increase CongWin by 1 MSS every RTT in the absence of loss events: probing Long-lived TCP connection

18 Transport Layer3-18 Fast Retransmission r Background m TCP is required to generate an immediate acknowledgement (a duplicate ACK) when an out-of-order segment is received. m We don’t know whether a duplicate ACK is caused by a lost segment or just a reordering of segments. m If three or more duplicate ACKs are received in a row, it is a strong indication that a segment has been lost. Three or more duplicate ACKs implies that there is a flow of segments over the network. m Therefore the Congestion Avoidance is too conservative approach to this case. r Fast retransmission m If 4 consecutive ACKs are received before timeout, then TCP do not wait for the timeout and retransmit the segment immediately.

19 Transport Layer3-19 AB SN=1001 SN=1201(lost) SN=1401 SN=1601 SN=1801 SN=2001 SN=2201 SN=2401 SN=2601 SN=1201(retransmission) SN=2801 SN=3001 SN=3201 A=801 A=1001 A=1201 A=2801 A=2601 Elapsed time less than current RTO Fast Retransmit

20 Transport Layer3-20 Fast Recovery r After 3 dup ACKs:  CongWin is cut in half m window then grows linearly r But after timeout event:  CongWin instead set to 1 MSS; m window then grows exponentially m to a threshold, then grows linearly 3 dup ACKs indicates network capable of delivering some segments timeout before 3 dup ACKs is “more alarming” Philosophy:

21 Transport Layer3-21 congestion avoidance and fast recovery

22 Transport Layer3-22 Fast Retransmission and Fast Recovery send time (sec) seq # & cwnd sequence number

23 Transport Layer3-23 TCP throughput r What’s the average throughout of TCP as a function of window size and RTT? m Ignore slow start r Let W be the window size when loss occurs. r When window is W, throughput is W/RTT r Just after loss, window drops to W/2, throughput to W/2RTT. r Average throughout:.75 W/RTT

24 Transport Layer3-24 TCP Futures r Example: 1500 byte segments, 100ms RTT, want 10 Gbps throughput r Requires window size W = 83,333 in-flight segments r Throughput in terms of loss rate:  ➜ L = 2·10 -10 Wow r New versions of TCP for high-speed needed!

25 Transport Layer3-25 Fairness goal: if K TCP sessions share same bottleneck link of bandwidth R, each should have average rate of R/K TCP connection 1 bottleneck router capacity R TCP connection 2 TCP Fairness

26 Transport Layer3-26 Why is TCP fair? Two competing sessions: r Additive increase gives slope of 1, as throughout increases r multiplicative decrease decreases throughput proportionally R R equal bandwidth share Connection 1 throughput Connection 2 throughput congestion avoidance: additive increase loss: decrease window by factor of 2 congestion avoidance: additive increase loss: decrease window by factor of 2

27 Transport Layer3-27 Fairness (more) Fairness and UDP r Multimedia apps often do not use TCP m do not want rate throttled by congestion control r Instead use UDP: m pump audio/video at constant rate, tolerate packet loss r Research area: TCP friendly Fairness and parallel TCP connections r nothing prevents app from opening parallel cnctions between 2 hosts. r Web browsers do this r Example: link of rate R supporting 9 cnctions; m new app asks for 1 TCP, gets rate R/10 m new app asks for 11 TCPs, gets R/2 !


Download ppt "Transport Layer3-1 Chapter 3 outline r 3.1 Transport-layer services r 3.2 Multiplexing and demultiplexing r 3.3 Connectionless transport: UDP r 3.4 Principles."

Similar presentations


Ads by Google