











Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
An outline of the cs 461 course from spring 2002, focusing on reliable byte-stream (tcp) and simple demultiplexor (udp). Topics include connection establishment and termination, sliding window, flow control, adaptive timeout, end-to-end protocols, segment format, and various algorithms for handling window sizes, nagle's algorithm, and protection against wrap around. The document also covers the differences between data link and transport layers.
Typology: Study notes
1 / 19
This page cannot be seen from the preview
Don't miss anything!












Spring 2002
CS 461
End-to-End Protocols
-^
drop messages
-^
re-orders messages
-^
delivers duplicate copies of a given message
-^
limits messages to some finite size
-^
delivers messages after an arbitrarily long delay
-^
Spring 2002
CS 461
-^
guarantee message delivery
-^
deliver messages in the same order they are sent
-^
deliver at most one copy of each message
-^
support arbitrarily large messages
-^
support synchronization
-^
allow the receiver to flow control the sender
-^
support multiple application processes on each host
TCP Overview
-^
-^
app writes bytes
-^
TCP sends
segments
app reads bytes
-^
-^
-^
Spring 2002
CS 461
Application process
Writebytes
TCP Send buffer
Segment
Segment
Segment
Transmit segments
Application process
Readbytes
TCP Receive buffer
■ ■ ■
Data Link Versus Transport
-^
Potentially connects many different hosts^ – need explicit connection establishment and termination
-^
Potentially different RTT^ – need adaptive timeout mechanism
-^
Potentially long delay in network Spring 2002
CS 461
-^
Potentially long delay in network^ – need to be prepared for arrival of very old packets
-^
Potentially different capacity at destination^ – need to accommodate different node capacity
-^
Potentially different network capacity^ – need to be prepared for network congestion
Segment Format (cont)
-^
(SrcPort, SrcIPAddr, DsrPort, DstIPAddr)
-^
acknowledgment, SequenceNum, AdvertisedWinow
Sender
Data
(SequenceNum)
Receiver
Spring 2002
CS 461
-^
-^
pseudo header + TCP header + data
Sender
Acknowledgment +AdvertisedWindow
Receiver
Connection Establishment and
Termination
Active participant
(client)
Passive participant
(server)
Spring 2002
CS 461
Sliding Window Revisited
Sending application LastByteWritten
TCP LastByteSent
LastByteAcked
Receiving application
LastByteRead
TCP LastByteRcvd
NextByteExpected
(a)
(b)
Spring 2002
CS 461
-^
LastByteAcked
LastByteSent
LastByteSent
LastByteWritten
-^
buffer bytes between LastByteAcked
and
LastByteWritten
-^
LastByteRead
NextByteExpected
NextByteExpected
LastByteRcvd +
-^
buffer bytes between NextByteRead
and
LastByteRcvd
Flow Control
-^
-^
-^
LastByteRcvd
LastByteRead
MaxRcvBuffer
AdvertisedWindow
MaxRcvBuffer
NextByteExpected
NextByteRead
-^
CS 461
11
-^
LastByteSent
LastByteAcked
AdvertisedWindow
EffectiveWindow
AdvertisedWindow
LastByteSent
LastByteAcked
LastByteWritten
LastByteAcked
MaxSendBuffer
block sender if (
LastByteWritten
LastByteAcked
y
MaxSenderBuffer
-^
-^
Nagle’s Algorithm
-^
How long does sender delay sending data?^ – too long: hurts interactive applications– too short: poor network utilization^ –
Spring 2002
CS 461
When application generates additional data^ – if fills a max segment (and window open): send it– else
if there is unack’ed data in transit: buffer it until ACK arrives
Protection Against Wrap Around
-^
Bandwidth
Time Until Wrap Around
T1 (1.5 Mbps)
6.4 hours
Spring 2002
CS 461
Ethernet (10 Mbps)
57 minutes
T3 (45 Mbps)
13 minutes
FDDI (100 Mbps)
6 minutes
STS-3 (155 Mbps)
4 minutes
STS-12 (622 Mbps)
55 seconds
STS-24 (1.2 Gbps)
28 seconds
TCP Extensions
-^
Implemented as header options
-^
Store timestamp in outgoing segments
-^
Extend sequence space with 32
Spring 2002
CS 461
-^
Extend sequence space with 32
(PAWS)
-^
Shift (scale) advertised window
Adaptive Retransmission
(Original Algorithm)
-^
Measure
for each segment / ACK pair
-^
Compute weighted average of RTT^ –
α
β
α
β
Spring 2002
CS 461
α
β
α
β
-^
Set timeout based on
Jacobson/ Karels Algorithm
-^
where
δ
is a factor between 0 and 1
-^
Spring 2002
CS 461
-^
μ
φ
where
= 1 and
-^
algorithm only as good as granularity of clock (500ms on Unix)
-^
accurate timeout mechanism important to congestion control (later)