Professional Documents
Culture Documents
transport service:
provide logical communication between app process running on different h
ost
run in end systems
send side: break app msg into segment, pass to network layer
receive side: reassemble segment into msg, pass to app layer
Internet: TCP and UDP
TCP: reliable, in-order delivery
congestion control
flow control
connection setup
UDP: unreliable, unordered delivery
no-frills extension of best-effort IP
no delay guarantee
no bandwidth guarantee
demultiplexig at rcv host:
delivering received segment to correct socket
multiplexing at send host
gathering data from multiple socket, envelope data with header
UDP: User Datagram Protocol
no fills, bare bones
best effort service
connectionless:
no handshaking
UDP segment handled independently
no connection establishment
simple
small segment header
no congestion control
streaming multimedia app
loss tolerant
rate sensitive
DNS, SNMP
reliable transfer over UDP: add at application layer
checksum: detect error in transmit segment
Reliable data transfer:
rdt1.0: reliable transfer over a reliable channel
no bit error
no loss of packet
rdt2.0: channel with bit error
ACK, NACK
error detection
receiver feedback -> sender
rdt2.1: handle garble ACK/NAK
stop and wait
retransmit current packet if ACK/NAK garble
timeout:
retransmit segment that cause timeout
restart timer
ACK receive:
if acknowledge previously unACK segment:
update what is known to be ACK
start timer if there are outstanding segments
fast retransmit
timeout period often relatively long
long delay before resending lost packet
detect lost segment via duplicate ACK
sender often send many segmenet back-to-back
if segment is lost, there will be many duplicate ACK for
that segment
fast retransmit: resend segment before timer expire
flow control:
sender won't overflow receiver buffer by transmitting too much,
too fast
receiver advertise unused buffer space by including rwnd value i
n segment header
sender: limit # of unACK byte to rwnd
connection management:
establish connection before exchanging data segment
initialize TCP variables
seq #s, buffer, flow control info
3 way handshake:
client host send TCP-SYN segment to server
specify initial seq #, no data
server host receive SYN, reply with SYNACK segment:
server allocate buffer
specify server initial seq #
client receive SYNACK, reply with ACK segment, may conta
in data
closing connection:
client end system send TCP FIN control segment to server
server receive FIN, reply with an ACK, close connection,
send FIN
client receive FIN, reply with an ACK
enter time wait, will respond with ACK to receiv
e FIN
server receive ACK, close connection
Congestion control:
too many source sending too much data too fast for network to handle
different from flow control
manifestation:
lost packet (buffer overflow at router)
long delay (queueing in router buffer)
cost of congestion:
more work for given goodput
unneeded retransmission
when packet drop, any upstream transmission capacity use for tha
t packet was wasted
end-end congestion: