Professional Documents
Culture Documents
z
/
z Internet:
UDP:
TCP:
z
z /
z : UDP
z
z : TCP
byte
TCP
:
z application
transport
network
data link
host
h st
physical
phys cal
z
host
:
:
application
transport
network
data link
z
physical
p y
Internet: TCP and UDP
z ,
, .
z
7 7
6 6
5 5
Transport Transport
z
IP IP IP
Datalink 2 2 Datalink
Physical 1 1 Physical
router
z : host
z
:
z :
, ,
.
.
=
=
hosts =
=
=
z
,
:
(
))
z
z
.
z
z
(
(/)
)
z host
Host 1 Host 2
App.
pp App.
pp
O.S. Data
D Header Data
D Header O.S.
D H
D H
D H D H D H
D H
best-effort ;
, , host ;
host
Internet
application
transport
z network
data link
: UDP physical
phys cal
best-effort IP
z
: TCP
application
transport
network
data link
physical
p y
z
:
Internet
HTTP RA DNS
Application z UDP:
p1 p2 p1 p2 p3 p1 p2
z TCP: ,
Transport
A B C
IP
z 16-bit
UDP TCP
z client server
z (0-1023):
(0 1023):
telnet:23
.., telnet:23, SMTP:25,
SMTP:25 DNS:53
DNS:53, http:80,
http:80
z (1024-65535):
client
host : host :
,
(-
)
= =
P3 P1
P1 P2 P4 application
application application
physical
p y physical
p y physical
host 2 host 3
host 1
host
IP 32 bits
source port # dest port #
source IP
destination IP
o
source destination port
host ()
IP
z :
DatagramSocket mySocket1 = new DatagramSocket(9157);
D t
DatagramSocket
S k t mySocket2
S k t2 = new DDatagramSocket(9222);
t S k t(9222)
z UDP :
(d st IP address,
(dest dd ss dest
d st p
portt numb
number))
z host UDP:
destination port
UDP
z IP source
/ source port ,
d t IP
dest
dest
d t port,t
P2 P1
P1
P3
SP
z TCP :
source IP address, source p
port number, dest IP
address, dest port number
z host 4
z Server host
TCP :
z Web
W b servers
s s
client
- HTTP
/
P1 P4 P5 P6 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
P1 P4 P2 P1P3
SP: 5775
DP: 80
S-IP: B
D-IP:C
UDP: User Datagram Protocol [RFC 768]
z
Internet UDP;
z z
. (
UDP : )
)
z :
,
z : z
UDP
z :
UDP
UDP
UDP
A1 A2 B1 B2
OS
DP1 DP2
UDP
DP1
DP2
IP
UDP, TCP,
UDP
z 64KB
z / IP
z TCP
IP
z streaming multimedia
z UDP
DNS
SNMP
RIP
z UDP,
UDP
UDP
()
32 bit
.
216-1= 65,535
,
UDP 8 byte (..,
Data) 65,535 byte
UDP
IP
UDP
:
z
z : z :
z z checksum
16-bit
z checksum: checksum
z
checksum
1 1111111111111111:
z -
checksum checksum -
UDP .
.
z UDP checksum;
z
,
bit
z : 16
16-bit
bit
1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0
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 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
1
checksum 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
6, TCP
z datagram
, host
z
Ch k
Checksum
z , ,
.
- -
z
(rdt)
rdt_send(): deliver_data():
(.., app.) rdt
- -
udt_send():
rdt
rdt, rcv():
rdt_rcv():
rdt
TCP:
byte
TCP TCP
IP
TCP:
z :
z
(
( )
)
byte
z
TCP
z buffers
TCP TCP
b ff
buffer b ff
buffer
TCP:
z
MSS maximum
MSS: i segmentt size
i
z
z
z /
IP
z
z : file transfer,
transfer
chat, web, SMTP (e-mail)
TCP:
z ,
TCP :
z
TCP
(
(server)
)
z TCP (client) server
z
.
z ,
CLIENT SERVER
TCP: byte
Host A
Host B
TCP: byte
Host A
:
TCP Data 1. (MSS byte),
2 ,
2.
3. .
TCP Data
Host B
TCP: byte
z , TCP
, .
z
,
TCP
byte
byte
y
z ,
!
1. read 40 byte
1. write 100 byte 2. read 40 byte
2. write 20 byte 3. read 40 byte
byte
TCP
TCP byte
TCP: byte
TCP:
TCP
32 bit
byte
20 byte
not
. used U A P R S F
checksum
h k
( )
( )
(65.535-20-20=65.495 byte)
TCP:
z .
z (IP address, port number)
.
z ((client IP address, client p
port number)) ((server
IP address, server port number) TCP.
Applications
Applications
Ports: 23 80 104 7 80 16
Ports:
TCP TCP
IP IP
TCP:
TCP 32 bit.
0 Sequence number 232 -1 4.3 Gbyte
client server ISN
.
TCP
TCP Data
HDR
= byte
Ack =
byte
TCP
HDR TCP Data
Host B
TCP:
z TCP
NACK (Negative ACKnowledgement)
ACK
z :
1...1500
15013000, .
.
AckNo = 1
TCP:
: Telnet
Host A Host B
C
host
C,
C
host
C
z
;
TCP telnet
.
TCP:
32 bit
ACK:
ACK
URG:
32 bit
not
. used
UAP R SF
PSH: byte
pushed data checksum
RST,, SYN,, FIN ( )
byte
b
urgent
, ( )
data
(65.535-20-20=65.495 byte)
TCP:
(options)
z
End of
Options kind=0
1 byte
NOP
kind=1
(no operation)
TCP 4 byte
1 byte
Maximum maximum
Segment Size
kind=2 len=4
segment size
1 byte 1 byte 2 bytes
Window Scale
Factor
kind=3 len=3 shift count
1 byte 1 byte 1 byte
z TCP
z
ACK
z ACK
z ACK: TCP
ACK (
200ms)
z ACK
TCP:
TCP
:
z seq #
z seq # byte
z (
)
z : TimeOutInterval
:
z timeout
z timer
ck:
z
timer
TCP:
Host A Host B Host A Host B
meout
ut
Seq=92 tim
timeou
X
loss
meout
Seq=92 tim
time time
ACK timeout
TCP:
Host A Host B
timeout
X
loss
time
ACK
TCP:
TCP
ACK. 200ms
, , .
,
ACK
ACK
, ,
ACK
ACK,
byte
ACK,
TCP:
TCP
TCP:
TCP
TCP ,
.
z ACK
z ACK
TCP:
z timeout :
z
.
,
.
z T :
TCP:
ACK 1K SeqNo=0
z ACK
AckNo=1024
, TCP 1K SeqNo=1
024
1K SeqNo=2
048
. 1. duplicate AckNo=1024
TCP
1K SeqNo=3
072
z
AckNo=1024
2. duplicate
,
1K SeqNo=4
096
AckNo=1024
.
3. duplicate
1K SeqNo=1
024
z
1K SeqNo=5
120
TCP:
:
ACK, ACK ACK
y
if (y > SendBase) {
SendBase = y
if ( )
}
else {
ACKs
y
if ( ACKs y = 3)
y
}
ACK
SendBase-1: byte
TCP:
z TCP .
(retransmission timer)
z ,
z
,
z
,
z
;
TCP:
Round Trip Timeout
timeout
(
(Retransmission Timeout, RTO)) TCP;
P
z RTT
RTT
z : timeout
z : ,
RTT;;
z SampleRTT:
ACK
z SampleRTT ,
RTT, SampleRTT
TCP:
Round Trip Timeout
z
() z
RTT.
z ,
RTO - .
z ,
. variance
.
Variance
variance
RTT
mean
TCP:
Timeout
RTO RTT
TCP
z TCP Segment 1
RTTT #1
t1
ACK for Segmenn
Segment 2
Segment 3
RTTT #2
ACK ACK for Seg
m ent 2 + 3
z Segment
4
(., Segment 5
RTT #3
ment 4
ACK for Seg
) ment 5
ACK for Seg
z
RTT
TCP:
Timeout
z RTO RTT
(srtt)
variance
i (rttvar)
z RTT :
srttn+1 = SampleRTT + (1- ) srttn
rttvar
tt n+1 = ( | SampleRTT
S l RTT - srtt
ttn | ) + (1-
1 ) rttvar
tt n
RTOn+1 = srttn+1 + 4 rttvarn+1
=1/8 =1/4
TCP:
Timeout
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
350
300
250
RTT (miilliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
z
RTO
RTO:
RTO0 = 3 sec
z
RTO
RTT
srtt1 = SampleRTT
rttvar1 = SampleRTT / 2
RTO1 = srtt1 + 4 rttvarn+1
TCP:
Timeout
ACK segme
nt
, Timeout ! retrans
miss
of segm ion
ACK ent
RTT ?
RTT
T ?
. ACK
z Karn:
RTT
RTT
ACK
timeout,,
RTO
( )
RTOn+1 = min ( 2 RTOn , 64) seconds
TCP:
z
z
z
z
TCP:
z TCP
:
z 1: client host TCP SYN
SYN bit
(ISN)
z 2:
2 server host
h t
SYN
SYNACK
SYN ACK bits
ACK ISN client
z 3: client SYNACK ACK.
ACK
ACK ISN server.
TCP:
(Active) (Passive)
Client Server
TCP:
((Active)) ((Passive))
Client Server
SYN
client
li
(
(
SeqNo = x+1), o server .
TCP:
X Y
z close
(half-close)
z
,
close
FIN.
ait
:
timed wa
z
(1) X FIN Y
(active close)
( ) Y
(2) FIN,
F N closed
(: Y
X)
(3)
Y
FIN
X
(passive close)
(4) X FIN.
TCP:
TCP
client client
30 sec TCP
SYN
ACK TCP
FIN
TCP:
TCP server
server
ACK
SYN
FIN SYN & ACK
ACK
FIN
ACK
TCP:
z
:
1
Seq:i
q
SYN Win
Port Port
34278 80
A B
SYN_SENT LISTEN
TCP:
z
: 2
Port Port
34278 80
Seq:j
A ACK:i+1 B
SYN,ACK Win
SYN_SENT SYN_RCVD
TCP:
z
:
3
Seq:i+1
ACK:j+1
ACK Win
Port Port
34278 80
A B
ESTABLISHED SYN_RCVD
TCP:
z ESTABLISHED,
ESTABLISHED
...
Port Port
34278 80
A B
ESTABLISHED ESTABLISHED
TCP:
z
:
1
Seq:t
ACK:q
ACK,FIN Win
Port Port
34278 80
A B
FIN_WAIT_1 ESTABLISHED
TCP:
z
:
2
Port Port
34278 80
Seq:q
A ACK:t+1 B
ACK Win
Wi
FIN_WAIT_1 CLOSE_WAIT
TCP:
z B
Port Port
34278 80
A B
FIN_WAIT_2 CLOSE_WAIT
TCP:
z : 3
Port Port
34278
80
Seq:p
A ACK:t+1 B
ACK,FIN Wi
Win
FIN_WAIT_2 LAST_ACK
TCP:
z
:
4
Seq:t+1
ACK:p+1
ACK Win
Port Port
34278 80
A B
TIME_WAIT LAST_ACK
TCP:
z Client
Cli t
2*MSL
CLOSED ( B
FIN))
Port Port
34278 80
A B
TIME_WAIT CLOSED
TCP:
2MSL = TIME_WAIT
z TCP active close,
ACK,
TIME_WAIT
(maximum segment
lifetime, MSL).
2MSL= 2 * Maximum Segment Lifetime
z ;
TCP client
li t
ACK. ( server timeout
FIN
FIN)
z MSL 2 min 1 min 30 sec.
TCP:
TIME_WAIT
active close passive close
application
close( ) CLOSE_WAIT
FIN_WAIT1
EOF to application
AST_ACK
K
FIN_WAIT2
timeout
AIT
ACK
TIME_WA
LA
2MSL
T
TCP:
z
((reset))
RST
z
RST;
server
, ..
z
RST .
RST
TCP:
TCP
:
- telnet, rlogin
- ftp, mail, http
TCP
.
:
:
TCP:
: Telnet
3.
2.
/
1
1.
(..,
( T l t)
Telnet)
server. server
client.
, 3 :
1. Client Server:
2 Server Client:
2.
3. Client Server:
TCP:
: Telnet
4
character
z
:
ter
ACK of charac
te r
echo of charac
z , character
:
ACK of echoed character
z TCP
ACK
TCP:
telnet host
z :
char1
, ., ACK of char 1 + ech
o of char1
ACK + char2
z
z
,
ACK
TCP:
Nagle
z
z :
,
,
MSS
z
:
,
TCP:
Nagle
z
byte
y
(
ACK)
A
z
z :
,
z
TCP:
z TCP
:
NACK
ACK
z
z
window size
AckNo
(win)
32 bits 16 bits
z
,
, ,
, byte
y
AckNo, AckNo+1, , AckNo + win -1
z
z
TCP:
byte:
1 2 3 4 5 6 7 8 9 10 11
6,7,8.
TCP:
:
byte ( SeqNo = 6)
(AckNo = 5, Win=4):
1 2 3 4 5 6 7 8 9 10 11
Byte 6
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5, Win = 4
1 2 3 4 5 6 7 8 9 10 11
TCP:
:
(AckNo = 5, Win=6):
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5,
5 Win = 6
1 2 3 4 5 6 7 8 9 10 11
TCP
(
).
TCP:
(AckNo = 5, Win=3):
1 2 3 4 5 6 7 8 9 10 11
AckNo = 5, Win = 3
1 2 3 4 5 6 7 8 9 10 11
TCP:
:
Buffer
2K 0 4K
2K SEQ=0
ACK=2048, WIN=2048
2K
2K SEQ 2048
SEQ=2048
ACK=4096, WIN=0
2K
ACK=4096, WIN=2048
1K
1K SEQ=4096