Download lecture - CUNY.edu

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Document related concepts

Cracking of wireless networks wikipedia, lookup

Recursive InterNetwork Architecture (RINA) wikipedia, lookup

Deep packet inspection wikipedia, lookup

IEEE 1355 wikipedia, lookup

UniPro protocol stack wikipedia, lookup

Internet protocol suite wikipedia, lookup

TCP congestion control wikipedia, lookup

CAN bus wikipedia, lookup

Transcript
outline
 TCP
 segment structure
 reliable data transfer
 flow control
 congestion control
Transport Layer
3-1
TCP Flow Control
 receive side of TCP
connection has a
receive buffer:
(currently)
TCP data application
IP
unused buffer
(in buffer)
process
datagrams
space
flow control
sender won’t overflow
receiver’s buffer by
transmitting too much,
too fast
 speed-matching
service: matching
send rate to receiving
application’s drain rate
 app process may be
slow at reading from
buffer
Transport Layer
3-2
TCP Flow control: how it works
(currently)
TCP data application
IP
unused buffer
(in buffer)
process
datagrams
space
rwnd
RcvBuffer
(suppose TCP receiver
discards out-of-order
segments)
 unused buffer space:
 receiver: advertises
unused buffer space by
including rwnd value in
segment header
 sender: limits # of
unACKed bytes to rwnd

guarantees receiver’s
buffer doesn’t overflow
= rwnd
= RcvBuffer-[LastByteRcvd LastByteRead]
Transport Layer
3-3
Next: Principles of Congestion Control
Transport Layer
3-4
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 (queuing in router buffers)
Transport Layer
3-5
Causes/costs of congestion
Q: what happens as number of
senders increase?
 four senders
 multihop paths
 Loss/timeout/retransmit
Host A
lin : original data
lout
l'in : original data, plus
retransmitted data
finite shared output
link buffers
Host B
Transport Layer
3-6
TCP congestion control: cwnd
 goal: TCP sender should transmit as fast as possible,
but without congesting network

Q: how to find rate just below congestion level
 each TCP sender sets its own rate, called congestion
window (cwnd) based on implicit feedback:
 ACK: segment received (a good thing!),
 network not congested
 so increase sending rate
 lost segment: assume loss due to congested
network, so decrease sending rate
Transport Layer
3-7
TCP Slow Start
Host B
RTT
Host A
time
Transport Layer
3-8
TCP: congestion avoidance
Increasing sending rate:
 How far would the
doubling of cwnd go?
 Till, it reaches a
threshold
 After that it increases
linearly
What if a loss happens?
 Decrease sending rate
 Set the threshold
value to half of
current cwnd
 loss: decrease cwnd to
1 and start the slowstart again
Transport Layer
3-9
cwnd window size (in segments)
Popular “flavors” of TCP
TCP Reno
ssthresh
ssthresh
TCP Tahoe
Transmission round
Transport Layer 3-10
Summary: TCP Congestion Control
 when cwnd < ssthresh, sender in slow-start
phase, window grows exponentially.
 when cwnd >= ssthresh, sender is in congestion-
avoidance phase, window grows linearly.
 when loss/timeout occurs, ssthresh set to
cwnd/2, cwnd set to 1
Transport Layer
3-11
UDP
 multimedia apps often do not use TCP
 do not want rate throttled by congestion control
 instead use UDP:
 pump audio/video at constant rate, tolerate packet loss
Transport Layer 3-12
UDP: User Datagram Protocol [RFC 768]
 “no frills,” “bare bones”
Internet transport
protocol
 “best effort” service, UDP
segments may be:
 lost
 delivered out of order
to app
 connectionless:
 no handshaking between
UDP sender, receiver
 each UDP segment
handled independently
of others
Why is there a UDP?
 no connection
establishment (which can
add delay)
 simple: no connection state
at sender, receiver
 small segment header
 no congestion control: UDP
can blast away as fast as
desired
Transport Layer 3-13
UDP: more
 often used for streaming
multimedia apps
 loss tolerant
 rate sensitive
Length, in
bytes of UDP
segment,
including
header
 other UDP uses
 DNS
 SNMP
 reliable transfer over UDP:
add reliability at
application layer
 application-specific
error recovery!
32 bits
source port #
dest port #
length
checksum
Application
data
(message)
UDP segment format
Transport Layer 3-14