TCP Udp Checksum
TCP Udp Checksum
Overview
Packet checksums
Can provide:
- Application-level multiplexing (ports)
- Error detection, reliability, etc.
16
31
SrcPort
DstPort
Length
Checksum
Data
Error detection
Transmission errors definitely happen
- Cosmic rays, radio interference, etc.
- If error probability is 230 , thats 1 error per 128 MB!
Checksum algorithms
Good checksum algorithms
UDP pseudo-header
0
1
2
3
01234567890123456789012345678901
Source IP address
Destination IP address
Zero
Protocol (=17)
Source Port
UDP length
Wait
for
Packets
receive packet
send ACK
deliver packet
Sender FSM:
Bandwidth
Wait
for
Data
Wait
for
ACK
timeout
re-send packet
received ACK
Sender
Timeout
Timeout
ACK
Duplicates
ACK
Timeout
Fram
(a)
Timeout
Fram
e
Timeout
Fram
ACK
Fram
ACK
ACK
(d)
Receiver
Fram
Receiver
Fram
Sender
ACK
Sender
Timeout
Receiver
(b)
(c)
Sender
Timeout
Time
Receiver
Fram
e0
ACK
Fram
e1
1
ACK
Fram
e0
0
ACK
Receiver
Fram
Time
Sender
Time
Receiver
Sender
SW sender
Assign sequence number to each frame (SeqNum)
Maintain three state variables:
SW receiver
Maintain three state variables
LAR
LFS
LFR
LAF
Application process
Read
bytes
Write
bytes
TCP
TCP
Send buffer
Receive buffer
Segment
Segment
Segment
Transmit segments
Congestion control
- Keeps sender from overrunning network [more next lecture]
TCP fields
TCP segment
0
1
2
3
01234567890123456789012345678901
source port
destination port
sequence number
data
offset
urgent pointer
options
acknowledgment number
UA P R S F
reserved R C S S Y I
Window
G K H T NN
checksum
Ports
padding
data
Checksum
Urgent pointer
TCP Flags
URG urgent data present
ACK ack no. valid (all but first segment)
PSH push data up to application immediately
RST reset connection
SYN synchronize establishes connection
FIN close connection
Connection establishment
Active participant
(client)
Connection termination
SYN,
Sequ
e
Passive participant
(server)
nceN
um =
x
,
m=y
ceNu
n
e
+1
u
Seq
t=x
,
n
K
e
C
+A
dgm
SYN
owle
Ackn
ACK,
Ackno
wledg
ment
=y+
1
Typical close:
- A B: FIN, seq SA , ack SB
- B A: ack SA + 1
- B A: FIN, seq SB , ack SA + 1
- A B: ack SB + 1
Passive open
Close
Close
LISTEN
Send/SYN
SYN/SYN + ACK
SYN/SYN + ACK
SYN_RCVD
ACK
ESTABLISHED
Close/FIN
Close/FIN
FIN/ACK
FIN_WAIT_1
CLOSE_WAIT
FIN/ACK
ACK
Close/FIN
FI
FIN_WAIT_2
/A
CLOSING
LAST_ACK
FIN/ACK
ACK
CLOSED
TIME_WAIT
Sending data
Bulk data sent in MSS-sized segments
SYN_SENT
SYN + ACK/ACK
Receiving application
Sending application
TCP
TCP
LastByteRead
LastByteWritten
LastByteAcked
LastByteSent
NextByteExpected
(a)
LastByteRcvd
(b)
Delayed ACKs
Goal: Piggy-back ACKs on data
Retransmission
TCP dynamically estimates round trip time
- Can delay ACKs for 200 msec in case application sends data
Other details
Persist timer
Bandwidth
T1 (1.5 Mbps)
57 minutes
T3 (45 Mbps)
13 minutes
6 minutes
4 minutes
55 seconds
28 seconds
Bandwidth
T1 (1.5 Mbps)
18KB
122KB
T3 (45 Mbps)
549KB
1.2MB
1.8MB
7.4MB
14.8MB
Summary