Beruflich Dokumente
Kultur Dokumente
31 January 2014
Application
Presentation
Session
Application
Transport
Transport
Network
Internet
Data Link
Physical
Network
Interface
Ethernet,
802.3, 802.5,
FDDI, and so
on.
31 January 2014
Application
Transport
Internet
Transmission Control
Protocol (TCP)
User Datagram
Protocol (UDP)
Network
Interface
Hardware
31 January 2014
TCP
Defined in RFC 793
Reliable
- Acknowledgments
- Guarantee of packet delivery
- Delayed Ack Piggybacking
- Reassembly of out of order data
- Discards duplicates caused by IP
- Provided end-to-end flow control
- finite buffer size
31 January 2014
TCP
Connection oriented
31 January 2014
# Bits
16
16
32
Source
Port
Dest.
Port
Sequence
Number
32
Acknowledgement
HLEN
Number
16
16
16
0 or 32
Window
Checksum
Urgent
Pointer
Options
31 January 2014
Reserved
Code
Bits
Data...
Port Numbers
Application
Layer
Transport
Layer
F
T
P
T
E
L
N
E
T
S
M
T
P
D
N
S
T
F
T
P
S
N
M
P
21
23
25
53
69
161
31 January 2014
TCP
Port
Numbers
UDP
Dest.
Port
Telnet Z
Ephemeral Ports
31 January 2014
Host A
Host Z
SP
DP
1028
23
Send SYN
(seq=100 ctl=SYN)
31 January 2014
Host B
SYN received
Send SYN
(seq=100 ctl=SYN)
SYN received
31 January 2014
Host B
SYN received
2
Send SYN
(seq=300 ack=101 ctl=syn,ack)
10
Send SYN
(seq=100 ctl=SYN)
SYN received
Host B
SYN received
2
Send SYN
(seq=300 ack=101 ctl=syn,ack)
Established
(seq=101 ack=301 ctl=ack)
31 January 2014
11
Send SYN
(seq=100 ctl=SYN)
SYN received
Established
(seq=101 ack=301 ctl=ack)
Data Segment
(seq=101 ack=301 ctl=ack
Data)
31 January 2014
Host B
SYN received
2
Send SYN
(seq=300 ack=101 ctl=syn,ack)
12
Receiver
31 January 2014
Window size = 1
13
Receiver
Send 1
Receive 1
31 January 2014
Window size = 1
14
Receiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
31 January 2014
Window size = 1
15
Receiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
Send 2
Receive 2
31 January 2014
Window size = 1
16
Receiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
Send 2
Receive 2
Send ACK 3
Receive ACK 3
Window size = 1
31 January 2014
17
Receiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
Send 2
Receive 2
Send ACK 3
Receive ACK 3
Send 3
Receive 3
31 January 2014
Window size = 1
18
Receiver
Send 1
Receive 1
Send ACK 2
Receive ACK 2
Send 2
Receive 2
Send ACK 3
Receive ACK 3
Send 3
Receive 3
Send ACK 4
Receive ACK 4
31 January 2014
Window size = 1
19
TCP Windowing
Sender
31 January 2014
Receiver
20
TCP Windowing
Sender
Window size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
31 January 2014
21
TCP Windowing
Sender
Window size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
ACK 1
Window size = 2
ACK 2
Window size = 2
ACK 3
Window size = 2
31 January 2014
22
TCP Windowing
Sender
Window size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
ACK 1
Window size = 2
ACK 2
Window size = 2
Window size = 3
Send 4
ACK 3
Window size = 2
Window size = 3
Send 5
31 January 2014
23
TCP Windowing
Sender
Window size = 3
Send 1
Receiver
Window size = 3
Send 2
Window size = 3
Send 3
ACK 1
Window size = 2
ACK 2
Window size = 2
Window size = 3
Send 4
Window size = 3
Send 5
ACK 3
Window size = 2
ACK 4
Window size = 2
ACK 5
Window size = 2
31 January 2014
24
Dest.
Port
Sequence
#
Acknowledgement
#
I just
sent #10.
Source Dest. Seq. Ack.
1028
23
10
31 January 2014
25
Dest.
Port
Sequence
#
Acknowledgement
#
I just
sent #10.
23
10
31 January 2014
1028
26
11
Dest.
Port
Sequence
#
Acknowledgement
#
I just
sent #10.
23
10
1028
23
11
31 January 2014
27
11
31 January 2014
Send FIN
Host B
FIN received
28
Send FIN
ACK received
31 January 2014
Host B
FIN received
Send ACK
29
Send FIN
ACK received
FIN received
31 January 2014
Host B
FIN received
Send ACK
Send FIN
30
Send FIN
ACK received
FIN received
31 January 2014
Send ACK
Host B
FIN received
Send ACK
Send FIN
ACK received
31
request
31 January 2014
32
31 January 2014
33
31 January 2014
34
Half-Close
Host A
31 January 2014
Send FIN
Host B
FIN received
35
Half Close
Host A
Send FIN
ACK received
31 January 2014
Host B
FIN received
Send ACK
36
Half Close
Host A
Host B
Send FIN
ACK received
FIN received
Send ACK
Send Data
Segment
31 January 2014
37
31 January 2014
38
MSS
Maximum Segment Size
31 January 2014
39
MSS
Larger the MSS, better it is for the protocol
= MTU 20 20 byte
- For Ethernet = 1500-20-20 = 1460
If destination is non-local, MSS normally
defaults to 536
MSS is configurable value
31 January 2014
40
MSS
When two sides announce different MSS,
31 January 2014
41
- Loss of packet
Due to congestion
Due to error in header
Due to error in data
- Loss of ACK
- Delayed delivery by IP
31 January 2014
42
- Retransmission timer
- Receipt of duplicate ack
TCP assumes that the non-delivery is
because of congestion
Reduces the window size when the packet is
declared as undelivered
- Not an efficient way if loss of packet is due to a
transmission error
31 January 2014
43
- Abrupt termination
- Using reset (RST)
31 January 2014
44
31 January 2014
45
RST
Generated on receipt of an incorrect TCP
segment
an nonexistent port
Generated by application when it aborts the
application
31 January 2014
46
RST
At sender side, any queued data is thrown
away
At the receiver side, APIs used should be
31 January 2014
47
PSH
PUSH Flag
Indicates to the receiver to send the data to
interactive operations
Also used when last portion of the data is
31 January 2014
48
Half-open Connections
One side abruptly terminates the session
May be caused by
- System crash
- Machine powered off without graceful shutdown
Server will not know the closure and will be in
wait state
Security risk
31 January 2014
49
31 January 2014
50
31 January 2014
51
Sliding Window
Start small slow start
Grow exponentially
Bound by upper limit of window size
Reduces window size when encounter
segment loss
Increases window size again
52
Sliding Window
Slow Start
31 January 2014
53
Congestion Avoidance
Indication of loss of packet
- Timeout
- Duplicate ACK
On receiving duplicate ACK reduce usable
31 January 2014
54
Fast Retransmit
When three or more duplicate ACK received,
31 January 2014
55
Reading Assignment
Congestion Avoidance
Slow Start
Fast Retransmit
Fast Recovery
31 January 2014
56
Congestion Avoidance
Indication of loss of packet
- Timeout
- Duplicate ACK
Two variables
57
Thank you!
31 January 2014
58