CS 78 Computer Networks TCP Internet Checksum Example Go

5/1/09
Internet Checksum Example
CS 78 Computer Networks
TCP
•  Example: add two 16-bit integers
Andrew T. Campbell
[email protected]
Stop-and-wait
sender
•  Note
–  When adding numbers, a carryout from the
most significant bit needs to be added to
the result
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
wraparound 1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
sum 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
Go-Back-N
receiver
sender
receiver
RTT
RTT
Sender:
Go-Back-N
Selective repeat: sender, receiver
windows
•  seq # in pkt header
•  “window” of up to N, consecutive unack’ed packets allowed
•  ACK(n): ACKs all packets up to, including seq # n “cumulative ACK”
–  may receive duplicate ACKs
•  Timer for each in-flight packets
•  Timeout(n): retransmit packets n and all higher seq #
packets in window
1
5/1/09
Selective repeat
TCP seq. #’s and ACKs
Seq. #’s:
–  byte stream
“number” of first
byte in segment’s
data
ACKs:
–  seq # of next byte
expected from other
side
–  cumulative ACK
Q: how receiver handles
out-of-order segments
A: TCP spec doesn’t say, up to implementor
Retransmissions
2, 8 by
tes da
ta
=100
ACK
X
loss
2, 8 by
ta
100
100,
20 byt
SendBase
= 120
2, 8 by
ta
tes da
ta
20
K=1
Host B
Seq=9
0
10
K=
120
AC ACK=
SendBase
= 120
tes da
Seq=1
00, 20
X
ta
=100
ACK
bytes
data
loss
=120
ACK
AC
premature timeout
time
lost ACK scenario
Host A
ta
es da
2, 8 by
=
ACK
SendBase
= 100
time
Seq=
tes da
Seq=9
Sendbase
= 100
SendBase
= 120
tes da
2, 8 by
Seq=92 timeout
Seq=9
Host B
Seq=9
Seq=92 timeout
timeout
Host A
Host B
Seq=9
timeout
Host A
Retransmissions
time
Cumulative ACK scenario
RTT estimation:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
RTT
(milliseconds)
300
250
200
150
100
1
8
15
22
29
36
43
50
time
SampleRTT
57
64
71
78
85
92
99
106
(seconnds)
Estimated RTT
2