Transport Layer: UDP and TCP - PowerPoint PPT Presentation

About This Presentation
Title:

Transport Layer: UDP and TCP

Description:

Title: 3rd Edition: Chapter 3 Author: Jim Kurose & Keith Ross Last modified by: Arun Venkataramani Created Date: 10/8/1999 7:08:27 PM Document presentation format – PowerPoint PPT presentation

Number of Views:113
Avg rating:3.0/5.0
Slides: 81
Provided by: JimK199
Category:
Tags: tcp | udp | kids | layer | tooth | transport

less

Transcript and Presenter's Notes

Title: Transport Layer: UDP and TCP


1
Transport Layer UDP and TCP
  • CS491G Computer Networking Lab
  • V. Arun

Slides adapted from Kurose and Ross
2
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

3
Transport services and protocols
  • provide logical communication between app
    processes running on different hosts
  • transport protocols run in end systems
  • send side breaks app messages into segments,
    passes to network layer
  • recv side reassembles segments into messages,
    passes to app layer
  • more than one transport protocol available to
    apps
  • Internet TCP and UDP

4
Transport vs. network layer
  • network layer logical communication between
    hosts
  • transport layer logical communication between
    processes
  • relies on and enhances network layer services

household analogy
  • 12 kids in Anns house sending letters to 12 kids
    in Bills house
  • hosts houses
  • processes kids
  • app messages letters in envelopes
  • transport protocol Ann and Bill who demux to
    in-house siblings
  • network-layer protocol postal service

5
Internet transport-layer protocols
  • reliable, in-order delivery (TCP)
  • congestion control
  • flow control
  • connection setup
  • unreliable, unordered delivery UDP
  • no-frills extension of best-effort IP
  • services not available
  • delay guarantees
  • bandwidth guarantees

6
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

7
Multiplexing/demultiplexing
application
P2
P1
application
application
socket
P4
P3
transport
process
network
transport
transport
link
network
network
physical
link
link
physical
physical
8
How demultiplexing works
  • host receives IP datagrams
  • each datagram has source and destination IP
    address
  • each datagram carries one transport-layer segment
  • each segment has source and destination port
    number
  • host uses IP addresses port numbers to direct
    segment to right socket

32 bits
source port
dest port
other header fields
application data (payload)
TCP/UDP segment format
9
Connectionless demultiplexing
  • recall when creating datagram to send into UDP
    socket, must specify
  • destination IP address
  • destination port
  • recall created socket has host-local port
  • DatagramSocket mySocket1 new
    DatagramSocket(12534)
  • when host receives UDP segment
  • checks destination IP and port in segment
  • directs UDP segment to socket bound to that
    (IP,port)

IP datagrams with same dest. (IP, port), but
different source IP addresses and/or source port
numbers will be directed to same socket
10
Connectionless demux example
  • DatagramSocket serverSocket new DatagramSocket
  • (6428)

DatagramSocket mySocket2 new DatagramSocket
(9157)
DatagramSocket mySocket1 new DatagramSocket
(5775)
application
application
application
P1
P3
P4
transport
transport
transport
network
network
network
link
link
link
physical
physical
physical
11
Connection-oriented demux
  • server host has many simultaneous TCP sockets
  • each socket identified by its own 4-tuple
  • web servers have different socket each client
  • non-persistent HTTP will have different socket
    for each request
  • TCP socket identified by 4-tuple
  • source IP address
  • source port number
  • dest IP address
  • dest port number
  • demux receiver uses all four values to direct
    segment to right socket

12
Connection-oriented demux example
server socket, also port 80
app
application
application
P4
P5
P6
P3
P2
P3
transport
transport
transport
network
network
network
link
link
link
physical
physical
physical
server IP address B
host IP address C
host IP address A
three segments, all destined to IP address B,
dest port 80 are demultiplexed to different
sockets
13
Connection-oriented demux example
threaded server
server socket, also port 80
app
application
application
P4
P3
P2
P3
transport
transport
transport
network
network
network
link
link
link
physical
physical
physical
server IP address B
host IP address C
host IP address A
14
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

15
UDP User Datagram Protocol RFC 768
  • UDP uses
  • streaming multimedia apps (loss tolerant, rate
    sensitive)
  • DNS
  • SNMP
  • reliable transfer over UDP
  • add reliability at application layer
  • application-specific error recovery!
  • no frills, bare bones transport protocol for
    best effort service, UDP segments may be
  • lost
  • delivered out-of-order
  • connectionless
  • no sender-receiver handshaking
  • each UDP segment handled independently

16
UDP segment header
length, in bytes of UDP segment, including header
32 bits
source port
dest port
checksum
length
why is there a UDP?
  • no connection establishment (which can add delay)
  • simple no connection state at sender, receiver
  • small header size
  • no congestion control UDP can blast away as fast
    as desired

application data (payload)
UDP segment format
17
UDP checksum
  • Goal detect errors (flipped bits) in segments
  • sender
  • treat segment contents, including header fields,
    as sequence of 16-bit integers
  • checksum addition (ones complement sum) of
    segment contents
  • sender puts checksum value into UDP checksum field
  • receiver
  • compute checksum of received segment
  • check if computed checksum equals checksum field
    value
  • NO - error detected
  • YES - no error detected. But maybe errors
    nonetheless? More later .

18
Internet checksum example
  • example add two 16-bit integers

1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1
0 1 1 1 0 1 0 1 0 1 0 1 0 1 0 1 0
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1
1 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1
0 0 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0
1 1
wraparound
sum
checksum
  • Note when adding numbers, a carryout from the
    most significant bit needs to be added to the
    result

19
Q1 Sockets and multiplexing
  • TCP uses more information in packet headers in
    order to demultiplex packets compared to UDP.
  • True
  • False

20
Q2 Sockets UDP
  • Suppose we use UDP instead of TCP under HTTP for
    designing a web server where all requests and
    responses fit in a single packet. Suppose a 100
    clients are simultaneously communicating with
    this web server. How many sockets are
    respectively at the server and at each client?
  • 1,1
  • 2,1
  • 200,2
  • 100,1
  • 101, 1

21
Q3 Sockets TCP
  • Suppose a 100 clients are simultaneously
    communicating with (a traditional HTTP/TCP) web
    server. How many sockets are respectively at the
    server and at each client?
  • 1,1
  • 2,1
  • 200,2
  • 100,1
  • 101, 1

22
Q4 Sockets TCP
  • Suppose a 100 clients are simultaneously
    communicating with (a traditional HTTP/TCP) web
    server. Do all of the sockets at the server have
    the same server-side port number?
  • Yes
  • No

23
Q5 UDP checksums
  • Lets denote a UDP packet as (checksum, data)
    ignoring other fields for this question. Suppose
    a sender sends (0010, 1110) and the receiver
    receives (0011,1110). Which of the following is
    true of the receiver?
  • Thinks the packet is corrupted and discards the
    packet.
  • Thinks only the checksum is corrupted and
    delivers the correct data to the application.
  • Can possibly conclude that nothing is wrong with
    the packet.
  • A and C

24
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

25
TCP Overview RFCs 793,1122,1323, 2018, 2581
  • point-to-point
  • one sender, one receiver
  • reliable, in-order byte steam
  • no message boundaries
  • pipelined
  • TCP congestion and flow control set window size
  • full duplex data
  • bi-directional data flow in same connection
  • MSS maximum segment size
  • connection-oriented
  • handshaking (exchange of control msgs) inits
    sender, receiver state before data exchange
  • flow controlled
  • sender will not overwhelm receiver

26
TCP segment structure
32 bits
URG urgent data (generally not used)
counting by bytes of data (not segments!)
source port
dest port
sequence number
ACK ACK valid
acknowledgement number
head len
not used
receive window
P
A
U
F
S
R
PSH push data now (generally not used)
bytes rcvr willing to accept
checksum
Urg data pointer
RST, SYN, FIN connection estab (setup,
teardown commands)
options (variable length)
application data (variable length)
Internet checksum (as in UDP)
27
TCP seq. numbers, ACKs
  • sequence numbers
  • byte stream number of first byte in segments
    data
  • acknowledgements
  • seq of next byte expected from other side
  • cumulative ACK
  • Q how receiver handles out-of-order segments
  • A TCP spec doesnt say, - up to implementor

window size N
sender sequence number space
sent ACKed
sent, not-yet ACKed (in-flight)
usable but not yet sent
not usable
28
TCP seq. numbers, ACKs
Host B
Host A
User types C
Seq42, ACK79, data C
host ACKs receipt of C, echoes back C
Seq79, ACK43, data C
host ACKs receipt of echoed C
Seq43, ACK80
simple telnet scenario
29
TCP round trip time, timeout
  • Q how to set TCP timeout value?
  • longer than RTT
  • but RTT varies
  • too short premature timeout, unnecessary
    retransmissions
  • too long slow reaction to segment loss
  • Q how to estimate RTT?
  • SampleRTT measured time from segment
    transmission until ACK receipt
  • ignore retransmissions
  • SampleRTT will vary, want estimated RTT
    smoother
  • average several recent measurements, not just
    current SampleRTT

30
TCP round trip time, timeout
EstimatedRTT (1- ?)EstimatedRTT ?SampleRTT
  • exponential weighted moving average
  • influence of past sample decreases exponentially
    fast
  • typical value ? 0.125

RTT gaia.cs.umass.edu to fantasia.eurecom.fr
RTT (milliseconds)
sampleRTT
EstimatedRTT
31
TCP round trip time, timeout
  • timeout interval EstimatedRTT plus safety
    margin
  • large variation in EstimatedRTT -gt larger safety
    margin
  • estimate SampleRTT deviation from EstimatedRTT

DevRTT (1-?)DevRTT
?SampleRTT-EstimatedRTT
(typically, ? 0.25)
TimeoutInterval EstimatedRTT 4DevRTT
estimated RTT
safety margin
32
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

33
TCP reliable data transfer
  • TCP creates rdt service on top of IPs unreliable
    service
  • pipelined segments
  • cumulative acks
  • selective acks often supported as an option
  • single retransmission timer
  • retransmissions triggered by
  • timeout events
  • duplicate acks
  • lets initially consider simplified TCP sender
  • ignore duplicate acks
  • ignore flow control, congestion control

34
TCP sender events
  • data rcvd from app
  • create segment with seq ( byte-stream number
    of first data byte in segment)
  • start timer if not already running (for oldest
    unacked segment)
  • TimeOutInterval smoothed_RTT 4deviation_RTT
  • timeout
  • retransmit segment that caused timeout
  • restart timer
  • ack rcvd
  • if ack acknowledges previously unacked segments
  • update what is known to be ACKed
  • (re-)start timer if still unacked segments

35
TCP sender (simplified)
L
wait for event
NextSeqNum InitialSeqNum SendBase
InitialSeqNum
36
TCP retransmission scenarios
Host B
Host B
Host A
Host A
SendBase92
Seq92, 8 bytes of data
Seq92, 8 bytes of data
timeout
timeout
ACK100
X
Seq92, 8 bytes of data
Seq92, 8 bytes of data
SendBase100
SendBase120
ACK100
ACK120
SendBase120
lost ACK scenario
premature timeout
37
TCP retransmission scenarios
Host B
Host A
Seq92, 8 bytes of data
X
Seq120, 15 bytes of data
cumulative ACK
38
TCP ACK generation RFC 1122, RFC 2581
TCP receiver action delayed ACK. Wait up to
500ms for next segment. If no next segment, send
ACK immediately send single cumulative ACK,
ACKing both in-order segments immediately send
duplicate ACK, indicating seq. of next
expected byte immediate send ACK, provided
that segment starts at lower end of gap
event at receiver arrival of in-order segment
with expected seq . All data up to expected seq
already ACKed arrival of in-order segment
with expected seq . One other segment has ACK
pending arrival of out-of-order
segment higher-than-expect seq. . Gap
detected arrival of segment that partially or
completely fills gap
39
TCP fast retransmit
  • time-out period often relatively long
  • long delay before resending lost packet
  • detect lost segments via duplicate ACKs.
  • sender often sends many segments back-to-back
  • if segment is lost, there will likely be many
    duplicate ACKs.

TCP fast retransmit
  • if sender receives 3 ACKs for same data
  • (triple duplicate ACKs), resend unacked segment
    with smallest seq
  • likely that unacked segment lost, so dont wait
    for timeout

(triple duplicate ACKs),
40
TCP fast retransmit
Host B
Host A
Seq92, 8 bytes of data
Seq100, 20 bytes of data
X
Seq100, 20 bytes of data
fast retransmit after sender receipt of triple
duplicate ACK
41
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

42
TCP flow control
application process
application may remove data from TCP socket
buffers .
slower than TCP receiver is delivering (sender
is sending)
TCP code
IP code
from sender
receiver protocol stack
43
TCP flow control
  • receiver advertises free buffer space by
    including rwnd value in TCP header of
    receiver-to-sender segments
  • RcvBuffer size can be set via socket options
  • most operating systems auto-adjust RcvBuffer
  • sender limits amount of unacked (in-flight)
    data to receivers rwnd value to ensure receive
    buffer will not overflow

to application process
RcvBuffer
rwnd
TCP segment payloads
receiver-side buffering
44
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

45
Connection Management
  • before exchanging data, sender/receiver
    handshake
  • agree to establish connection (each knowing the
    other willing to establish connection)
  • agree on connection parameters

application
application
connection state ESTAB connection variables seq
client-to-server server-to-client rcvBu
ffer size at server,client
connection state ESTAB connection Variables seq
client-to-server server-to-client rcvB
uffer size at server,client
network
network
Socket clientSocket newSocket("hostname","p
ort number")
Socket connectionSocket welcomeSocket.accept()
46
Agreeing to establish a connection
2-way handshake
  • Q will 2-way handshake always work in network?
  • variable delays
  • retransmitted messages (e.g. req_conn(x)) due to
    message loss
  • message reordering
  • cant see other side

Lets talk
ESTAB
OK
ESTAB
choose x
req_conn(x)
ESTAB
acc_conn(x)
ESTAB
47
Agreeing to establish a connection
2-way handshake failure scenarios
48
TCP 3-way handshake
ESTAB
49
TCP 3-way handshake FSM
closed
Socket connectionSocket welcomeSocket.accept()
L
Socket clientSocket newSocket("hostname","p
ort number")
SYN(x)
SYNACK(seqy,ACKnumx1) create new socket for
communication back to client
SYN(seqx)
listen
SYN sent
SYN rcvd
SYNACK(seqy,ACKnumx1)
ACK(ACKnumy1)
ESTAB
ACK(ACKnumy1)
L
50
TCP closing a connection
  • client, server each close their side of
    connection
  • send TCP segment with FIN bit 1
  • respond to received FIN with ACK
  • on receiving FIN, ACK can be combined with own
    FIN
  • simultaneous FIN exchanges can be handled

51
TCP closing a connection
client state
server state
ESTAB
ESTAB
52
TCP Overall state machine
53
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

54
Principles of congestion control
  • congestion
  • informally too many sources sending too much
    data too fast for network to handle
  • different from flow control!
  • manifestations
  • lost packets (buffer overflow at routers)
  • long delays (queueing in router buffers)
  • a top-10 problem!

55
Causes/costs of congestion scenario 1
original data lin
throughput lout
  • two senders, two receivers
  • one router, infinite buffers
  • output link capacity R
  • no retransmission

Host A
unlimited shared output link buffers
Host B
  • large delays as arrival rate, lin, approaches
    capacity
  • maximum per-connection throughput R/2

56
Causes/costs of congestion scenario 2
  • one router, finite buffers
  • sender retransmission of timed-out packet
  • app-layer input app-layer output lin lout
  • transport-layer input includes retransmissions
    lin lin

lin original data
lout
l'in original data, plus retransmitted data
Host A
finite shared output link buffers
Host B
57
Causes/costs of congestion scenario 2
  • idealization perfect knowledge
  • sender sends only when router buffers available

lin original data
lout
copy
l'in original data, plus retransmitted data
A
free buffer space!
finite shared output link buffers
Host B
58
Causes/costs of congestion scenario 2
  • Idealization known loss packets can be lost,
    dropped at router due to full buffers
  • sender only resends if packet known to be lost

lin original data
lout
copy
l'in original data, plus retransmitted data
A
no buffer space!
Host B
59
Causes/costs of congestion scenario 2
  • Idealization known loss packets can be lost,
    dropped at router due to full buffers
  • sender only resends if packet known to be lost

lin original data
lout
l'in original data, plus retransmitted data
A
free buffer space!
Host B
60
Causes/costs of congestion scenario 2
  • Realistic duplicates
  • packets can be lost, dropped at router due to
    full buffers
  • sender times out prematurely, sending two copies,
    both of which are delivered

R/2
lout
R/2
lin
lout
copy
l'in
A
free buffer space!
Host B
61
Causes/costs of congestion scenario 2
  • Realistic duplicates
  • packets can be lost, dropped at router due to
    full buffers
  • sender times out prematurely, sending two copies,
    both of which are delivered

R/2
lout
R/2
  • costs of congestion
  • more work (retrans) for given goodput
  • unneeded retransmissions link carries multiple
    copies of pkt
  • decreasing goodput

62
Causes/costs of congestion scenario 3
Q what happens as lin and lin increase ?
  • four senders
  • multihop paths
  • timeout/retransmit

A as red lin increases, all arriving blue pkts
at upper queue are dropped, blue throughput g 0
lout
Host A
lin original data
Host B
l'in original data, plus retransmitted data
finite shared output link buffers
Host D
Host C
63
Causes/costs of congestion scenario 3
C/2
lout
lin
C/2
  • another cost of congestion
  • when packet dropped, any upstream bandwidth used
    for that packet wasted!

64
Approaches towards congestion control
two broad approaches towards congestion control
  • end-end congestion control
  • no explicit feedback from network
  • congestion inferred from end-system observed
    loss, delay
  • approach taken by TCP
  • network-assisted congestion control
  • routers provide feedback to end systems
  • single bit indicating congestion (SNA, DECbit,
    TCP/IP ECN, ATM)
  • explicit rate for sender to send at

65
Case study ATM ABR congestion control
  • ABR available bit rate
  • elastic service
  • if senders path underloaded
  • sender should use available bandwidth
  • if senders path congested
  • sender throttled to minimum guaranteed rate
  • RM (resource management) cells
  • sent by sender, interspersed with data cells
  • bits in RM cell set by switches
    (network-assisted)
  • NI bit no increase in rate (mild congestion)
  • CI bit congestion indication
  • RM cells returned to sender by receiver, with
    bits intact

66
Case study ATM ABR congestion control
RM cell
data cell
  • two-byte ER (explicit rate) field in RM cell
  • congested switch may lower ER value in cell
  • senders send rate thus max supportable rate on
    path
  • EFCI bit in data cells set to 1 in congested
    switch
  • if data cell preceding RM cell has EFCI set,
    receiver sets CI bit in returned RM cell

67
Transport Layer Outline
  • 1 transport-layer services
  • 2 multiplexing and demultiplexing
  • 3 connectionless transport UDP
  • 4 connection-oriented transport TCP
  • segment structure
  • reliable data transfer
  • flow control
  • connection management
  • 5 principles of congestion control
  • 6 TCP congestion control

68
TCP congestion control additive increase
multiplicative decrease
  • approach sender increases transmission rate
    (window size), probing for usable bandwidth,
    until loss occurs
  • additive increase increase cwnd by 1 MSS every
    RTT until loss detected
  • multiplicative decrease cut cwnd in half after
    loss

additively increase window size . until loss
occurs (then cut window in half)
AIMD saw tooth behavior probing for bandwidth
cwnd TCP sender congestion window size
time
69
TCP congestion control window
sender sequence number space
  • TCP sending rate
  • roughly send cwnd bytes, wait RTT for ACKS, then
    send more bytes

cwnd
last byte ACKed
last byte sent
sent, not-yet ACKed (in-flight)
rate
bytes/sec
  • sender limits transmission
  • cwnd is dynamic, function of perceived congestion

LastByteSent - LastByteAcked
cwnd
70
TCP Slow Start
Host B
Host A
  • when connection begins, increase rate
    exponentially until first loss event
  • initially cwnd 1 MSS
  • double cwnd every RTT
  • done by incrementing cwnd upon every ACK
  • summary initial rate is slow but ramps up
    exponentially fast

one segment
RTT
two segments
four segments
71
TCP detecting, reacting to loss
  • loss indicated by timeout
  • cwnd set to 1 MSS
  • window then grows exponentially (as in slow
    start) to threshold, then grows linearly
  • loss indicated by 3 duplicate ACKs TCP RENO
  • dup ACKs indicate network capable of delivering
    some segments
  • cwnd is cut in half window then grows linearly
  • TCP Tahoe always sets cwnd to 1 (timeout or 3
    duplicate acks)

72
TCP slow start ? cong. avoidance
  • Q when should the exponential increase switch to
    linear?
  • A when cwnd gets to 1/2 of its value before
    timeout.
  • Implementation
  • variable ssthresh
  • on loss event, ssthresh is set to 1/2 of cwnd
    just before loss event

73
Summary TCP Congestion Control
74
TCP throughput Simplistic model
  • avg. TCP thruput as function of window size, RTT?
  • ignore slow start, assume always data to send
  • W window size (measured in bytes) where loss
    occurs
  • avg. window size ( in-flight bytes) is ¾ W
  • avg. throughput is 3/4W per RTT

In practice, W not known or fixed, so this model
is too simplistic to be useful
75
TCP throughput More practical model
  • Throughput in terms of segment loss probability,
    L, round-trip time T, and maximum segment size M
    Mathis et al. 1997

76
TCP futures TCP over long, fat pipes
  • example 1500 byte segments, 100ms RTT, want 10
    Gbps throughput
  • requires W 83,333 in-flight segments as per the
    throughput formula
  • ? to achieve 10 Gbps throughput, need a loss rate
    of L 2?10-10 an unrealistically small loss
    rate!
  • new versions of TCP for high-speed

77
TCP throughput wrap-up
  • Assume sender window cwnd, receiver window rwnd,
    bottleneck capacity C, round-trip time T, path
    loss rate L, maximum segment size MSS. Then,
  • Instantaneous TCP throughput
  • min(C, cwnd/T,rwnd/T)
  • Steady-state TCP throughput
  • min(C, 1.22M/(TvL))

78
TCP Fairness
  • 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
79
Why is TCP fair?
  • two competing sessions
  • additive increase gives slope of 1, as throughout
    increases
  • multiplicative decrease decreases throughput
    proportionally

R
equal bandwidth share
loss decrease window by factor of 2
congestion avoidance additive increase
Connection 2 throughput
loss decrease window by factor of 2
congestion avoidance additive increase
Connection 1 throughput
R
80
Fairness (more)
  • Fairness, parallel TCP connections
  • application can open many parallel connections
    between two hosts
  • web browsers do this
  • e.g., link of rate R with 9 existing connections
  • new app asks for 1 TCP, gets R/10
  • new app asks for 11 TCPs, gets R/2
  • Fairness and UDP
  • multimedia apps often do not use TCP
  • rate throttling by congestion control can hurt
    streaming quality
  • instead use UDP
  • send audio/video at constant rate, tolerate
    packet loss
Write a Comment
User Comments (0)
About PowerShow.com