You are on page 1of 112

Transport Layer 3-1

Chng 3
Lp Transport
Computer Networking:
A Top Down Approach
Featuring the Internet,
3
rd
edition.
Jim Kurose, Keith Ross
Addison-Wesley, July
2004.
Transport Layer 3-2
Chng 3: Lp Transport
Mc tiu:
hiu cc nguyn tc
ng sau cc dch v
lp transport:
multiplexing/demultipl
exing
truyn d liu tin cy
iu khin lung
iu khin tc nghn
nghin cu v cc giao
thc lp Transport trn
Internet:
UDP: vn chuyn khng kt
ni (connectionless)
TCP: vn chuyn hng kt
ni (connection-oriented)
iu khin tc nghn TCP
Transport Layer 3-3
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-4
Cc dch v v giao thc Transport
cung cp truyn thng logic
chy trn cc host khc nhau
cc giao thc transport chy
trn cc h thng u cui
pha gi: ct cc thng
ip ng dng thnh cc
on, chuyn cho lp
network
pha nhn: ti kt hp cc
on thnh cc thng ip,
chuyn cho lp application
c nhiu hn 1 giao thc
transport dnh cho cc ng
dng
Internet: TCP v UDP
application
transport
network
data link
physical
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Transport Layer 3-5
Lp Transport vi lp network
lp network: truyn
thng logic gia cc
host
lp transport: truyn
thng logic gia cc
tin trnh
da vo v lm ni bt
cc dch v lp network
Tnh hung t nhin tng
t:
12 a tr gi th n 12
a tr khc
cc tin trnh = cc a
tr
cc thng ip = th
trong bao th
cc host = cc gia nh
giao thc transport =
Ann v Bill
giao thc lp network =
dch v bu in
Transport Layer 3-6
Cc giao thc lp transport trn
Internet
tin cy, truyn theo th
t (TCP)
iu khin tc nghn
iu khin lung
thit lp kt ni
khng tin cy, truyn
khng theo th t: UDP
m rng ca giao thc IP
khng c cc dch v:
bo m tr
bo m bandwidth
application
transport
network
data link
physical
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
Transport Layer 3-7
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-8
Multiplexing/demultiplexing
application
transport
network
link
physical
P1
application
transport
network
link
physical
application
transport
network
link
physical
P2
P3
P4
P1
host 1 host 2
host 3
= tin trnh = socket
vn chuyn cc on nhn
c n ng socket
Demultiplexing ti host nhn:
thu nht d liu t nhiu
socket, ng gi d liu vi
header (s dng sau cho
demultiplexing)
Multiplexing ti host gi:
Transport Layer 3-9
Demultiplexing lm vic nh th no
host nhn cc IP datagrams
mi datagram c a ch IP
ngun v IP ch
mi datagram mang 1 on
ca lp transport
mi on c s port ngun
v ch
host dng a ch IP & s port
iu hng on n socket
thch hp
port # ngun port # ch
32 bits
d liu ng dng
(thng ip)
cc header fields khc
dng thc on TCP/UDP
Transport Layer 3-10
Demultiplexing khng kt ni
To cc sockets vi cc s
port:
DatagramSocket mySocket1 = new
DatagramSocket(12534);
DatagramSocket mySocket2 = new
DatagramSocket(12535);
UDP socket c xc nh
bi b 2:
(a ch IP, s port ch)
Khi host nhn on UDP:
kim tra port ch trong
on
iu hng on UDP n
socket no ph hp vi s
port
IP datagrams vi a ch
IP ngun v/hoc s port
khc nhau c th c
iu hng n cng
socket
Transport Layer 3-11
Demultiplexing khng kt ni
(tip)
DatagramSocket serverSocket = new DatagramSocket(6428);
Client
IP:B
P2
client
IP: A
P1
P1
P3
server
IP: C
SP: 6428
DP: 9157
SP: 9157
DP: 6428
SP: 6428
DP: 5775
SP: 5775
DP: 6428
SP cung cp a ch tr v
Transport Layer 3-12
Demultiplexing hng kt ni
TCP socket c xc
nh bi b 4:
a ch IP ngun
s port ngun
a ch IP ch
s port ch
host nhn dng c 4 gi
tr trn iu hng
on n socket thch
hp
Host server c th h
tr nhiu TCP socket
ng thi:
mi socket c xc nh
bi b 4 ca n
Web server c cc
socket khc nhau cho mi
kt ni t client
kt ni HTTP khng bn
vng s c socket khc
nhau cho mi yu cu
Transport Layer 3-13
Demultiplexing hng kt ni
(tip)
Client
IP:B
P1
client
IP: A
P1
P2 P4
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P5 P6 P3
D-IP:C
S-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:C
S-IP: B
Transport Layer 3-14
Demultiplexing hng kt ni:
Threaded Web Server
Client
IP:B
P1
client
IP: A
P1
P2
server
IP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P4 P3
D-IP:C
S-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:C
S-IP: B
Transport Layer 3-15
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-16
UDP: User Datagram Protocol [RFC 768]
giao thc Internet
transport n gin ha
dch v best effort, cc
on UDP c th:
mt mt
vn chuyn khng th t
n ng dng
connectionless (khng kt
ni):
khng bt tay gia ngi
nhn v ngi gi UDP
mi on UDP c qun
l c lp
C UDP lm g?
khng thit lp kt ni (gip
c th thm delay)
n gin: khng trng thi
kt ni ti ni gi, ni nhn
header ca on nh
khng iu khin tc nghn:
UDP c th gi nhanh nht
theo mong mun
Transport Layer 3-17
UDP: (tt)
thng dng cho cc ng
dng streaming multimedia
chu mt mt
cm nhn tc
ngoi ra, UDP dng
DNS
SNMP
truyn tin cy trn UDP:
thm kh nng ny ti lp
application
sa li
source port # dest port #
32 bits
d liu
ng dng
(thng ip)
dng thc on UDP
length checksum
di
on UDP
bao gm c
header
Transport Layer 3-18
UDP checksum
Ngi gi:
i x cc ni dung on
nh mt chui cc s
nguyn 16-bit
checksum: b sung(tng
b 1) ca cc ni dung
on
t gi tr checksum vo
trng UDP checksum
Ngi nhn:
tnh ton checksum ca on
nhn
kim tra gi tr trn c bng
vi gi tr trong trng
checksum:
NO c li xy ra
YES khng c li.
Nhng c th cn li khc
na? Xem tip phn sau .
Mc tiu: kim tra cc li (cc bit c bt ln)
trong cc on truyn
Transport Layer 3-19
V d Checksum
Lu
Khi cng cc s, mt bit nh pha cao nht c
th s phi thm vo kt qu
V d: cng hai s nguyn 16-bit
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
1 1 0 1 1 1 0 1 1 1 0 1 1 1 0 1 1
1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
bit d
tng
checksum
Transport Layer 3-20
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-21
Cc nguyn l truyn d liu tin cy
quan trng trong cc lp application, transport, link
l danh sch 10 vn quan trng nht ca mng
cc c th ca knh truyn khng tin cy s xc nh s phc
tp ca giao thc truyn d liu data transfer protocol (rdt)
Transport Layer 3-22
Cc nguyn l truyn d liu tin cy
quan trng trong cc lp application, transport, link
l danh sch 10 vn quan trng nht ca mng
cc c th ca knh truyn khng tin cy s xc nh s phc
tp ca giao thc truyn d liu data transfer protocol (rdt)
Transport Layer 3-23
Cc nguyn l truyn d liu tin cy
quan trng trong cc lp application, transport, link
l danh sch 10 vn quan trng nht ca mng
cc c th ca knh truyn khng tin cy s xc nh s phc
tp ca giao thc truyn d liu data transfer protocol (rdt)
Transport Layer 3-24
Truyn d liu tin cy
send
side
receive
side
rdt_send(): c gi bi lp app.
Chuyn d liu cn truyn n lp
cao hn bn nhn
udt_send(): c gi bi
rdt, truyn cc gi trn
knh khng tin cy n ni
nhn
rdt_rcv(): c gi khi gi n
knh bn nhn
deliver_data(): c gi
bi rdt truyn d liu n
lp cao hn
Transport Layer 3-25
Truyn d liu tin cy
S:
ch xem xt truyn d liu theo 1 hng duy
nht
nhng iu khin lung thng tin s theo c 2 chiu!
dng my trng thi hu hn (finite state
machines-FSM) xc nh ngi gi, ngi
nhn
trthi
1
trthi
2
s kin gy ra trng thi truyn
cc hnh ng xy ra khi truyn
trng thi: khi trng
thi ny th trng
thi k tip duy nht
c xc nh bi s
kin k tip
s kin
cc hnh ng
Transport Layer 3-26
Rdt1.0: truyn d liu tin cy trn 1 knh truyn tin
cy
knh u tin tin cy hon ton
khng c cc li
khng mt mt cc gi
cc FSM phn bit cho ngi gi, ngi nhn:
ngi gi gi d liu vo knh u tin
ngi nhn nhn d liu t knh u tin
ch gi
t lp
trn
packet = make_pkt(data)
udt_send(packet)
rdt_send(data)
extract (packet,data)
deliver_data(data)
ch gi
t lp
di
rdt_rcv(packet)
ngi gi
ngi nhn
Transport Layer 3-27
Rdt2.0: knh vi cc li
knh u tin c th bt ln mt s bit trong gi
checksum kim tra cc li
Hi: lm sao khi phc cc li?
acknowledgements (ACKs): bn nhn r rng thng bo cho
bn gi rng qu trnh nhn gi tt
negative acknowledgements (NAKs): bn nhn r rng
thng bo cho bn gi rng qu trnh nhn gi c li
ngi gi gi li gi no c xc nhn l NAK
cc c ch mi trong rdt2.0 (sau rdt1.0):
kim tra li
nhn phn hi: cc thng ip iu khin (ACK,NAK) bn
nhn bn gi
Transport Layer 3-28
rdt2.0: c t FSM
ch gi t
lp trn
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) &&
corrupt(rcvpkt)
ch ACK
hoc
NAK
ch gi t
lp di
ngi gi
ngi nhn
rdt_send(data)
A
Transport Layer 3-29
rdt2.0: hot ng khi khng li
ch gi t
lp di
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) &&
corrupt(rcvpkt)
ch ACK
hoc
NAK
ch gi t
lp di
rdt_send(data)
A
Transport Layer 3-30
rdt2.0: hot ng khi c li
ch gi t
lp di
snkpkt = make_pkt(data, checksum)
udt_send(sndpkt)
extract(rcvpkt,data)
deliver_data(data)
udt_send(ACK)
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
rdt_rcv(rcvpkt) && isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
isNAK(rcvpkt)
udt_send(NAK)
rdt_rcv(rcvpkt) &&
corrupt(rcvpkt)
ch ACK
hoc
NAK
ch gi t
lp di
rdt_send(data)
A
Transport Layer 3-31
rdt2.0 c l hng nghim trng!
iu g xy ra nu
ACK/NAK b hng?
ngi gi khng bit iu g
xy ra ti bn nhn!
khng th n phng
truyn li: kh nng trng
lp
Qun l trng lp:
ngi gi truyn li gi hin
ti nu ACK/NAK b hng
ngi gi thm s th t
vo mi gi
ngi nhn hy (khng nhn)
gi trng lp
Ngi gi gi 1 gi,
sau dng li ch phn hi
t ngi nhn
dng v ch
Transport Layer 3-32
rdt2.1: ngi gi qun l cc ACK/NAK b
hng
ch gi 0
t lp trn
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_send(data)
ch ACK
hoc NAK
0
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isNAK(rcvpkt) )
sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
rdt_send(data)
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isNAK(rcvpkt) )
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt)
ch gi 1
t lp trn
ch ACK
hoc NAK
1
A
A
Transport Layer 3-33
rdt2.1: ngi gi qun l cc ACK/NAK b
hng
ch
0 t
di
sndpkt = make_pkt(NAK, chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
not corrupt(rcvpkt) &&
has_seq0(rcvpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
ch
1 t
di
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq0(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
not corrupt(rcvpkt) &&
has_seq1(rcvpkt)
rdt_rcv(rcvpkt) && (corrupt(rcvpkt)
sndpkt = make_pkt(ACK, chksum)
udt_send(sndpkt)
sndpkt = make_pkt(NAK, chksum)
udt_send(sndpkt)
Transport Layer 3-34
rdt2.1: tho lun
ngi gi:
s th t # thm vo
gi
ch cn hai s th t
(0,1) l . Ti sao?
phi kim tra nu vic
nhn ACK/NAK b hng
s trng thi tng ln 2
ln
trng thi phi nh gi
hin ti c s th t l
0 hay 1
ngi nhn:
phi kim tra c nhn
trng gi khng
trng thi ch r c hay
khng mong ch s th
t 0 hoc 1
ch : ngi nhn
khng bit ACK/NAK
va ri ca n c c
ngi gi nhn tt hay
khng
Transport Layer 3-35
rdt2.2: mt giao thc khng cn
NAK
chc nng ging nh rdt2.1, ch dng cc ACK
thay cho NAK, ngi nhn gi ACK cho gi va ri
nhn tt
ngi nhn phi r rng chn s th t ca gi va ACK
trng ACK ti ngi gi hu qu ging nh hnh ng
ca NAK: truyn li gi va ri
Transport Layer 3-36
rdt2.2: gi, nhn cc mnh
Ch cho
gi 0 t
trn
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
rdt_send(data)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isACK(rcvpkt,1) )
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt,0)
Ch cho
ACK
0
gi phn mnh
FSM
Ch
cho gi
0 t
di
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt)
&& has_seq1(rcvpkt)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(ACK1, chksum)
udt_send(sndpkt)
rdt_rcv(rcvpkt) &&
(corrupt(rcvpkt) ||
has_seq1(rcvpkt))
udt_send(sndpkt)
nhn phn mnh
FSM
A
Transport Layer 3-37
rdt3.0: cc knh vi li v mt mt
Gi nh mi: knh u tin
cng c th lm mt
cc gi (d liu hoc
cc ACK)
checksum, s th t, cc
ACK, cc vic truyn li
s h tr nhng khng

Cch tip cn: ngi gi ch


ACK trong khong thi
gian chp nhn c
truyn li nu khng nhn ACK
trong khong thi gian ny
nu gi (hoc ACK) ch tr
(khng mt):
truyn li s gy trng,
nhng dng s th t s
gii quyt c
ngi nhn phi xc nh s
th t ca gi va gi ACK
cn b nh th m li
Transport Layer 3-38
rdt3.0 gi
sndpkt = make_pkt(0, data, checksum)
udt_send(sndpkt)
start_timer
rdt_send(data)
Ch
cho
ACK 0
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isACK(rcvpkt,1) )
Ch cho
gi 1
t trn
sndpkt = make_pkt(1, data, checksum)
udt_send(sndpkt)
start_timer
rdt_send(data)
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt,0)
rdt_rcv(rcvpkt) &&
( corrupt(rcvpkt) ||
isACK(rcvpkt,0) )
rdt_rcv(rcvpkt)
&& notcorrupt(rcvpkt)
&& isACK(rcvpkt,1)
stop_timer
stop_timer
udt_send(sndpkt)
start_timer
timeout
udt_send(sndpkt)
start_timer
timeout
rdt_rcv(rcvpkt)
Ch cho
gi 0
t trn
Ch
cho
ACK 1
A
rdt_rcv(rcvpkt)
A
A
A
Transport Layer 3-39
hnh ng ca rdt3.0
Transport Layer 3-40
hnh ng ca rdt3.0
Transport Layer 3-41
Hiu sut ca rdt3.0
rdt3.0 lm vic c, nhng nh gi hiu sut hi rc ri
v d: lin kt 1 Gbps, tr lan truyn gia hai u cui l 15
ms, gi 1KB:
T
truyn
=
8kb/pkt
10**9 b/sec
= 8 microsec
U
sender
: kh dng

U
sender
=
.008
30.008
=
0.00027
microsec
L / R
RTT + L / R
=
L ( di gi tnh bng bits)
R (tc truyn, bps)
=
gi 1KB mi 30 msec -> 33kB/s trn ng truyn 1 Gbps
giao thc network hn ch vic dng cc ti nguyn vt l!
Transport Layer 3-42
rdt3.0: hot ng dng-v-ch
gi u tin truyn, t = 0
gi nhn
RTT
gi cui cng truyn, t = L / R
gi u tin n
gi cui cng n, gi ACK
ACK n, gi gi k tip,
t = RTT + L / R

U
sender
=
.008
30.008
=
0.00027
microsec
L / R
RTT + L / R
=
Transport Layer 3-43
Cc giao thc Pipelined
Pipelining: ngi gi cho php gi nhiu gi ng thi,
khng cn ch bo nhn c
nhm cc s th t phi tng dn
phi c b nh m ti ni gi v/hoc ni nhn
hai dng ph bin ca cc giao thc pipelined: go-Back-
N, Lp c la chn
Transport Layer 3-44
Pipelining: kh dng tng
gi u tin truyn, t = 0
sender receiver
RTT
gi cui cng truyn,
t = L / R
gi u tin n
gi cui cng n, gi ACK
ACK n, gi gi
k tip, t = RTT + L / R
bit cui ca gi th 2 n, gi ACK
bit cui ca gi th 3 n, gi ACK

U
sender
=
.024
30.008
=
0.0008
microsecon
3 * L / R
RTT + L / R
=
kh dng tng ln
gp 3 ln!
Transport Layer 3-45
Go-Back-N
Bn gi:
k-bit s th t trong header ca gi
ca s tng ln n N, cho php gi cc gi lin tc khng cn
ACK
ACK(n): ACKs tt c cc gi n, cha s th t n ACK tch ly
c th nhn cc ACK trng lp (xem bn nhn)
nh th cho mi gi trn ng truyn
timeout(n): gi li gi n v tt c cc gi c s th t cao hn
trong ca s
Transport Layer 3-46
GBN: bn gi m rng FSM
ch
start_timer
udt_send(sndpkt[base])
udt_send(sndpkt[base+1])

udt_send(sndpkt[nextseqnum-1])
timeout
rdt_send(data)
if (nextseqnum < base+N) {
sndpkt[nextseqnum] = make_pkt(nextseqnum,data,chksum)
udt_send(sndpkt[nextseqnum])
if (base == nextseqnum)
start_timer
nextseqnum++
}
else
refuse_data(data)
base = getacknum(rcvpkt)+1
If (base == nextseqnum)
stop_timer
else
start_timer
rdt_rcv(rcvpkt) &&
notcorrupt(rcvpkt)
base=1
nextseqnum=1
rdt_rcv(rcvpkt)
&& corrupt(rcvpkt)
A
Transport Layer 3-47
GBN: bn nhn m rng FSM
ACK-duy nht: lun lun gi ACK cho gi nhn ng,
vi s th t xp hng cao nht
c th sinh ra cc ACK trng nhau
ch cn nh expectedseqnum
gi khng theo th t:
hy -> khng nhn vo b m!
gi li ACK vi s th t xp hng cao nht
ch
udt_send(sndpkt)
default
rdt_rcv(rcvpkt)
&& notcurrupt(rcvpkt)
&& hasseqnum(rcvpkt,expectedseqnum)
extract(rcvpkt,data)
deliver_data(data)
sndpkt = make_pkt(expectedseqnum,ACK,chksum)
udt_send(sndpkt)
expectedseqnum++
expectedseqnum=1
sndpkt =
make_pkt(expectedseqnum,ACK,chksum)
A
Transport Layer 3-48
GBN
hot ng
Transport Layer 3-49
Lp c la chn
bn nhn thng bo nhn ng tt c tng gi
mt
m (buffer) cc gi nu cn thit
bn gi ch gi li cc gi no khng nhn c
ACK
bn gi nh th i vi mi gi khng gi ACK
ca s bn gi
N s th t lin tc
hn ch s th t cc gi khng gi ACK
Transport Layer 3-50
Lp c la chn: cc ca s gi, nhn
Transport Layer 3-51
Lp c la chn
d liu t lp trn:
nu s th t k tip sn
sng trong ca s, gi gi
timeout(n):
gi li gi n, ti khi to b
nh th
ACK(n) trong
[sendbase,sendbase+N]:
nh du gi n l nhn
nu gi khng ACK c n nh
nht, dch chuyn ca s
base n s th t khng
ACK k tip
Gi
gi n trong [rcvbase, rcvbase+N-
1]
gi ACK(n)
khng th t: m (buffer)
c th t: truyn (cng
truyn cc gi m, c
th t), dch chuyn ca s
n gi cha nhn k tip
gi n trong [rcvbase-N,rcvbase-
1]
ACK(n)
ngc li:
l i
Nhn
Transport Layer 3-52
Hot ng ca lp c la chn
Transport Layer 3-53
Lp c la chn:
tnh trng kh
gii quyt
V d:
S th t: 0, 1, 2, 3
Kch thc ca s = 3
bn nhn khng thy s
khc nhau trong 2 tnh
hung
chuyn khng chnh xc
d liu trng lp nh d
liu mi trong (a)
Hi: quan h gia dy s
th t v kch thc
ca s?
Transport Layer 3-54
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-55
TCP: Tng quan RFCs: 793, 1122, 1323, 2018, 2581
d liu full duplex:
lung d liu i 2 chiu
trong cng mt kt ni
MSS: maximum segment
size kch thc on ti
a
hng kt ni:
bt tay (trao i cc
thng ip iu khin)
trng thi bn gi, bn
nhn trc khi trao i d
liu
iu khin lung:
bn gi s khng ln t
bn nhn
point-to-point:
mt bn gi, mt bn nhn
tin cy, dng byte c
th t:
khng ranh gii thng
ip
knh lin lc:
TCP iu khin lung v
tc nghn, thit lp kch
thc ca s
cc b m gi & nhn
socket
door
TCP
send buffer
TCP
receive buffer
socket
door
segment
application
writes data
application
reads data
Transport Layer 3-56
TCP: cu trc on
port # ngun port # ch
32 bits
d liu ng dng
( di thay i)
s th t
s ACK
ca s nhn
con tr URG
checksum
F S R P A U
head
len
not
used
Ty chn ( di thay i)
URG: d liu khn cp
(thng khng dng)
ACK: ACK #
hp l
PSH: push data now
(thng khng dng)
RST, SYN, FIN:
thit lp kt ni
(cc lnh thit lp,
chia nh)
s byte bn
nhn sn
sng chp
nhn
m bi s byte
ca d liu
Internet
checksum
(ging UDP)
Transport Layer 3-57
Cc s th t TCP v ACK
Cc s th t:
dng byte nh
s byte u tin
trong d liu ca
on
cc ACK:
s th t ca byte
k tip c ch i
t pha bn kia
ACK tch ly
Hi: lm th no bn nhn
qun l cc on khng
th t
Tr li: TCP khng
cp, ty thuc
ngi hin thc
Host A Host B
User
nhp
C
host ACKs
nhn phn hi
C
host ACKs
bo nhn
C, phn hi
ngc li C
time
tnh hung telnet n gin
Transport Layer 3-58
TCP Round Trip Time vTimeout
Hi: Lm th no
thit lp gi tr TCP
timeout?
di hn RTT
khc vi RTT
qu ngn: timeout sm
truyn li khng cn
thit
qu di: phn ng chm
i vi vic mt mt gi
Hi : Lm th no thit lp
RTT?
SampleRTT: thi gian c o t
khi truyn on n khi bo nhn
ACK
l i vic truyn li
SampleRTT s thay i, mun c
lng RTT mt hn
tnh trung bnh mt s gi tr
o c gn , khng ch
SampleRTT hin ti
Transport Layer 3-59
TCP Round Trip Time v Timeout
EstimatedRTT = (1- o)*EstimatedRTT + o*SampleRTT
gi tr c trng: o = 0.125
Transport Layer 3-60
V d nh gi RTT:
RTT: gaia.cs.umass.edu to fantasia.eurecom.fr
100
150
200
250
300
350
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
R
T
T

(
m
i
l
l
i
s
e
c
o
n
d
s
)
SampleRTT Estimated RTT
Transport Layer 3-61
TCP Round Trip Time v Timeout
Thit lp timeout
EstimtedRTT cng h s d tr an ton
s bin thin ln trong EstimatedRTT -> h s d tr an ton
ln hn
c lng u tin v s bin thin ca SampleRTT t
EstimatedRTT :
TimeoutInterval = EstimatedRTT + 4*DevRTT
DevRTT = (1-|)*DevRTT +
|*|SampleRTT-EstimatedRTT|
(tiu biu | = 0.25)
Sau thit lp timeout interval:
Transport Layer 3-62
TCP: truyn d liu tin cy
TCP to dch v rdt
trn dch v khng tin
cy IP
cc on Pipelined
cc ACK tch ly
TCP dng b nh th
truyn li n
Truyn li c kch
hot bi:
cc s kin timeout
cc ack trng lp
lc u kho st cc
bn gi TCP n gin:
l i cc ack trng lp
l i iu khin lung,
iu khin tc nghn
Transport Layer 3-63
TCP cc s kin:
d liu nhn t ng
dng:
to on vi s th t
ca n
s th t l s theo
byte d liu u tin
khi ng b nh th
nu cha chy
khong thi gian ht
hn:
TimeOutInterval
timeout:
gi li on no gy ra
timeout
khi ng li b nh
th
Ack nhn:
cp nht ci g s c
ACK
khi ng b nh th
nu c cc on cn ch
Transport Layer 3-64
TCP
bn gi
(n gin)
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
loop (forever) {
switch(event)
event: data received from application above
create TCP segment with sequence number NextSeqNum
if (timer currently not running)
start timer
pass segment to IP
NextSeqNum = NextSeqNum + length(data)
event: timer timeout
retransmit not-yet-acknowledged segment with
smallest sequence number
start timer
event: ACK received, with ACK field value of y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
} /* end of loop forever */
Ch thch:
SendBase-1: byte
va c ACK
tch ly
V d:
SendBase-1 = 71;
y= 73, v th bn nh
mun 73+ ;
y > SendBase, v th
d liu mi c
chp nhn
Transport Layer 3-65
TCP: cc tnh hung truyn li
Host A
time
timeout sm
Host B
S
e
q
=
9
2

t
i
m
e
o
u
t
Host A
loss
t
i
m
e
o
u
t
tnh hung mt ACK
Host B
X
time
S
e
q
=
9
2

t
i
m
e
o
u
t
SendBase
= 100
SendBase
= 120
SendBase
= 120
Sendbase
= 100
Transport Layer 3-66
TCP: cc tnh hung truyn li (tt)
Host A
loss
t
i
m
e
o
u
t
Cumulative ACK scenario
Host B
X
time
SendBase
= 120
Transport Layer 3-67
TCP sinh ra ACK [RFC 1122, RFC 2581]
S kin ti bn nhn
on n vi ng s th t
mong mun. Tt c d liu n
c ACK
on n vi ng s th t
mong mun. Mt on khc ang
ch ACK
Cc on n khng th t
ln hn s th t on mong mun.
C khong trng
on n
lp y tng phn hoc ton b
khong trng
TCP bn nhn hnh ng
ACK tr. Ch n 500ms
cho on k tip. Nu khng c on
k tip, gi ACK
Gi ngay mt ACK tch ly, chp nhn
cho c cc on theo th t
Gi ngay ACK trng lp, ch th s th t
on ca byte k tip ang mong ch
Gi ngay ACK, vi iu kin l on
bt u ngay im c khong trng
Transport Layer 3-68
Truyn li nhanh
Chu k Time-out
thng tng i di:
tr di trc khi gi
li gi mt
Xc nhn cc on
mt bng cc ACK
trng lp.
bn gi thng gi nhiu
on song song
Nu on b mt, s xy
ra tnh trng ging nh
nhiu ACK trng nhau
Nu bn gi nhn 3 ACK
ca cng mt d liu, n
cho l on sau d liu
ACK b mt:
Truyn li nhanh: gi li
on trc khi b nh th
ht hn
Transport Layer 3-69
s kin: ACK nhn, vi trng l y
if (y > SendBase) {
SendBase = y
if (there are currently not-yet-acknowledged segments)
start timer
}
else {
increment count of dup ACKs received for y
if (count of dup ACKs received for y = 3) {
resend segment with sequence number y
}
Gii thut truyn li nhanh:
mt ACK trng lp cho
on c ACK
Truyn li nhanh
Transport Layer 3-70
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-71
TCP iu khin lung
bn nhn ca kt ni
TCP c mt b m
nhn:
dch v so trng tc
: so trng tc gi
vi tc nhn ca ng
dng
tin trnh ng dng c
th chm ti lc c b
m
bn gi s khng lm
trn b m v truyn
qu nhiu v qu nhanh
iu khin lung
Transport Layer 3-72
TCP iu khin lung: cch lm?
(Gi s bn nhn TCP loi b
cc on khng c th t)
d phng trong b m
= RcvWindow
= RcvBuffer-[LastByteRcvd -
LastByteRead]
Bn nhn thng bo
khong d tr nh gi
tr RcvWindow trong
cc on
Bn gi hn ch d liu
khng c ACK vo
RcvWindow
bo m b m nhn
khng trn
Transport Layer 3-73
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-74
TCP qun l kt ni
Ch : Bn gi v bn nhn
TCP thit lp kt ni trc
khi trao i d liu
khi to cc bin TCP:
cc s th t on
thng tin cc b m,
iu khin lung (nh
RcvWindow)
client: ngi khi xng kt
ni
Socket clientSocket = new
Socket("hostname","port
number");
server: c tip xc bi
client
Socket connectionSocket =
welcomeSocket.accept();
3 phng php bt tay:
Bc 1: client host gi onTCP
SYN n server
xc nh s th t khi u
khng phi d liu
Bc 2: server host nhn SYN,
tr li vi on SYNACK
server cp pht cc b
m
xc nh s th t khi u
Bc 3: client nhn SYNACK, tr
li vi on ACK (c th cha
d liu)
Transport Layer 3-75
TCP qun l kt ni (tt)
ng mt kt ni:
client ng socket:
clientSocket.close();
Bc 1: client gi on iu
khin TCP FIN n server
Bc 2: server nhn FIN, tr
li vi ACK. ng kt ni,
gi FIN.
client
server
ng
ng
ng
t
h

i

g
i
a
n

c
h

Transport Layer 3-76


TCP qun l kt ni (tt)
Bc 3: client nhn FIN, tr
li vi ACK.
Trong khong thi gian
ch s phn hi vi
ACK nhn cc FIN
Bc 4: server, nhn ACK.
Kt ni ng.
Ch : vi mt sa i nh,
c th qun l nhiu FIN
ng thi.
client
server
ang ng
ang ng
ng
t
h

i

g
i
a
n

c
h

ng
Transport Layer 3-77
TCP qun l kt ni (tt)
chu k sng ca
TCP client
chu k sng ca
TCP server
Transport Layer 3-78
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-79
Cc nguyn l iu khin tc nghn
Tc nghn:
qu nhiu ngun gi qu nhanh v qu nhiu d liu
n mng
khc vi iu khin lung!
cc biu hin:
cc gi b mt (trn b m ti cc router)
cc tr qu di (xp hng trong b m ca
router)
l 1 trong 10 vn nan gii nht!
Transport Layer 3-80
Cc nguyn nhn/chi ph ca tc nghn:
tnh hung 1
2 gi, 2 nhn
1 router, cc b
m khng gii hn
khng c truyn li
cc tr ln
hn khi tc
nghn
nng sut c
th t ti a
unlimited shared
output link buffers
Host A

in
: original data
Host B

out
Transport Layer 3-81
Cc nguyn nhn/chi ph ca tc nghn:
tnh hung 2
1 router, cc b m c gii hn
bn gi truyn li cc gi mt
chia s v hn
cc b m ouput
Host A

in
: d liu gc
Host B

out
'
in
: d liu gc, cng vi
d liu truyn li
Transport Layer 3-82
Cc nguyn nhn/chi ph ca tc nghn:
tnh hung 2
lun lun:
truyn li hon ton ch khi mt mt:
truyn li v tr (khng mt) lm cho ln hn vi cng

in

out
=

in

out
>

in

out
cc chi ph ca tc nghn:
nhiu vic (truyn li)
cc truyn li khng cn thit: lin kt nhiu bn sao ca gi
R/2
R/2

in

o
u
t
b.
R/2
R/2

in

o
u
t
a.
R/2
R/2

in

o
u
t
c.
R/4
R/3
Transport Layer 3-83
Cc nguyn nhn/chi ph ca tc nghn:
tnh hung 3
4 ngi gi
cc ng qua nhiu hop
timeout/truyn li

in
Hi: iu g xy ra nu v
tng ln?

in
chia s v hn
cc b m ouput
Host A

in
: d liu gc
Host B

out
'
in
: d liu gc, cng
vi d liu truyn li
Transport Layer 3-84
Cc nguyn nhn/chi ph ca tc nghn:
tnh hung 3
chi ph khc ca tc nghn:
khi cc gi b b, bt k kh nng truyn upstream
dng cho gi s b lng ph!
H
o
s
t
A
H
o
s
t
B

o
u
t
Transport Layer 3-85
Cc cch tip cn i vi iu khin tc
nghn
iu khin tc nghn end-
end:
khng c phn hi r rng
t mng
tc nghn c suy ra t
vic quan st cc h thng
u cui c mt mt, tr
tip cn c qun l bi
TCP
iu khin tc nghn c s
h tr ca mng:
cc router cung cp phn
hi v cc h thng u cui
1 bit duy nht ch th tc
nghn (SNA, DECbit,
TCP/IP ECN, ATM)
tc s gi c xc
nh r rng
2 cch:
Transport Layer 3-86
V d: iu khin tc nghn ATM ABR
ABR: tc bit sn
sng:
dch v mm do
nu ng gi cha ht:
bn gi s dng bng
thng sn sng
nu ng gi tc nghn:
bn gi iu tit vi
tc ti thiu
RM (resource management):
gi bi bn gi, ri rc vi cc
d liu
cc bit trong thit lp bi cc
switch
bit NI : khng tng tc
(tc nghn nh)
bit CI : tc nghn r rt
Cc RM c tr v bn gi t
bn nhn vi nguyn vn cc bit
Transport Layer 3-87
V d: iu khin tc nghn ATM ABR
trng 2-byte ER trong RM
switch tc nghn c th c gi tr ER thp hn trong
tc gi do c th c h tr ti a trn ng
EFCI bit trong cc d liu: c ci gi tr 1 trong
switch tc nghn
nu d liu ng trc RM c ci EFCI, bn gi s ci bit
CI trong RM tr v
Transport Layer 3-88
Chng 3: Ni dung trnh by
3.1 Cc dch v lp
Transport
3.2 Multiplexing v
demultiplexing
3.3 Vn chuyn khng
kt ni: UDP
3.4 Cc nguyn l ca
vic truyn d liu tin
cy
3.5 Vn chuyn hng kt
ni: TCP
cu trc phn on
truyn d liu tin cy
iu khin lung
qun l kt ni
3.6 Cc nguyn l ca
iu khin tc nghn
3.7 iu khin tc nghn
TCP
Transport Layer 3-89
TCP iu khin tc nghn: additive tng ln,
multiplicative gim xung
8 Kbytes
16 Kbytes
24 Kbytes
time
congestion
window
Cch tip cn: tng tc truyn (kch thc ca s),
tm kh nng bng thng c th, cho n khi c mt
mt xy ra
additive tng ln: tng CongWin bi 1 MSS mi RTT
cho n khi c mt mt xy ra
multiplicative gim xung: b CongWin trong na
giai on sau khi mt mt
time
k

c
h

t
h

c

c

a

s

c

n
g
h

n
Tm kim
bng thng
Transport Layer 3-90
TCP iu khin tc nghn: chi
tit
bn gi hn ch vic truyn:
LastByteSent-LastByteAcked
s CongWin
Cng thc,
CongWin thay i, chc nng l
nhn bit tc nghn trn mng
Lm th no bn gi nhn
bit tc nghn?
mt mt xy ra =
timeout hoc 3 ack
trng lp
bn gi gim tc
(CongWin) sau khi mt
mt xy ra
3 c ch:
AIMD
khi ng chm
thn trng sau khi c
cc s kin timeout
tc =
CongWin
RTT
Bytes/s
Transport Layer 3-91
TCP khi ng chm
Khi kt ni bt u,
CongWin = 1 MSS
V d: MSS = 500 bytes &
RTT = 200 ms
tc khi to = 20 kbps
bng thng sn sng c
th >> MSS/RTT
mong mun nhanh chng
tng tc ln tc c th
p ng
Khi kt ni bt u, tng
tc ln rt nhanh cho
n khi s c mt mt
xy ra u tin
Transport Layer 3-92
TCP khi ng chm (tt)
Khi kt ni bt u,
tng tc ln rt nhanh
cho n khi s c mt
mt xy ra u tin:
nhn i CongWin mi
RTT
hon thnh nh tng
CongWin ng vi mi
ACK nhn
Tng kt: tc khi
u l chm nhng sau
tng tc rt nhanh
Host A
R
T
T
Host B
thi gian
Transport Layer 3-93
Tinh ch
Hi: Khi no vic tng
tc tr thnh tuyn
tnh?
Tr li: Khi CongWin
t n 1/2 gi tr
ca n trc khi
timeout.
Hin thc:
Ngng thay i
Ti thi im c s c mt
mt, ngng c ci gi tr
bng ca CongWin ngay
trc
Transport Layer 3-94
Tinh ch: nhn bit mt mt
Sau 3 ACK trng lp:
CongWin s gim 1/2
kch thc ca s tng
tuyn tnh
nhng sau s c timeout:
CongWin thay gi tr
bng 1 MSS;
kch thc ca s tng
cp ly tha
khi n mt ngng th
tng tuyn tnh
3 ACK trng nhau ch ra
kh nng truyn ca mng
timeout ch th nhiu
cnh bo v tnh hung
tc nghn
Nguyn l:
Transport Layer 3-95
Tng kt: TCP iu khin tc nghn
Khi CongWin di Threshold, bn gi ang trong
giai on khi ng chm, kch thc ca s tng
nhanh theo cp ly tha.
Khi CongWin trn Threshold, bn gi ang trong
giai on trnh tc nghn, kch thc ca s tng
nhanh theo cp tuyn tnh.
Khi c 3 ACK trng lp xy ra, Threshold =
CongWin/2 v CongWin = Threshold.
Khi timeout xy ra, Threshold = CongWin/2 v
CongWin = 1 MSS.
Transport Layer 3-96
TCP iu khin tc nghn bn gi
Trng thi S kin TCP bn gi hnh ng Din gii
Slow Start
(SS)-Khi
ng chm
ACK bo
nhn cho d
liu cha
ACK trc

CongWin = CongWin + MSS,


If (CongWin > Threshold)
ci t trng thi Trnh tc
nghn
Hu qu lm tng gp i
CongWin mi RTT
Congestion
Avoidance
(CA) Trnh
tc nghn
ACK bo
nhn cho d
liu cha
ACK trc

CongWin = CongWin+MSS *
(MSS/CongWin)
Additive tng ln, lm tng
CongWin ln 1 MSS mi
RTT
SS hoc CA S c mt
mt xy ra
khi thy c 3
ACK trng
lp
Threshold = CongWin/2,
CongWin = Threshold,
ci t trng thi Trnh tc
nghn
Khi phc nhanh, hin thc
gim xung multiplicative.
CongWin s khng gim
xung di 1 MSS.
SS hoc CA Timeout Threshold = CongWin/2,
CongWin = 1 MSS,
ci t trng thi Khi ng
chm
Vo ch Khi ng
chm
SS hoc CA ACK trng
lp
m ACK tng ln cho on
va c ACK
CongWin v Threshold
khng thay i
Transport Layer 3-97
TCP throughput
Throughout trung bnh ca TCP biu din
qua kch thc ca s v RTT?
B qua trng thi Khi ng chm
Cho W l kch thc ca s khi c mt mt
xy ra.
Khi kch thc ca s = W, lu lng =
W/RTT
Ch ngay sau khi mt mt, ca s gim xung
= W/2, lu lng = W/2RTT.
throughout trung bnh: 0.75 W/RTT
Transport Layer 3-98
TCP tng lai
V d: cc on di 1500 byte, RTT 100ms, lu
lng 10 Gbps
Kch thc ca s yu cu W = 83,333 on trn
ng truyn
Lu lng trong cc trng hp mt mt:
L = 210
-10
Phin bn mi ca TCP dnh cho nhu cu tc cao!
L RTT
MSS 22 . 1
Transport Layer 3-99
Mc tiu: nu K phin lm vic TCP chia s kt ni c
chai ca bng thng l R, mi phin c tc
trung bnh l R/K
TCP kt ni 1
router c chai
kh nng R
TCP
kt ni 2
TCP: tnh cng bng
Transport Layer 3-100
Ti sao phi TCP cng bng?
2 phin lm vic cnh tranh nhau:
Additive tng, lu lng tng
multiplicative gim lu lng tng xng
R
R
chia s bng thng bng nhau
Connection 1 throughput
trnh tc nghn: additive tng ln
mt mt: gim ca s bng 1/2
trnh tc nghn: additive tng ln
mt mt: gim ca s bng 1/2
Transport Layer 3-101
TCP: tnh cng bng (tt)
Tnh cng bng & UDP
nhiu ng dng thng
khng dng TCP
khng mun tc b
iu tit do iu khin
tc nghn
Thay bng dng UDP:
truyn audio/video vi
tc n nh, chu
c mt mt
Nghin cu: giao thc
thn thin vi TCP
Tnh cng bng & cc kt ni
TCP song song
khng c g ngn cn vic
ng dng m cc kt ni
song song gia 2 host.
Trnh duyt Web lm ging
nh th
V d: tc R h tr 9
kt ni ;
ng dng mi yu cu 1 TCP,
c tc R/10
ng dng mi yu cu 11 TCP,
c tc R/2 !
Transport Layer 3-102
M hnh tr
Hi: Mt bao lu nhn 1
i tng t Web server
sau khi gi yu cu?
B qua tc nghn, tr b nh
hng bi:
thit lp kt ni TCP
tr truyn d liu
khi ng chm
Notation, cc gi nh:
Gi s mt kt ni gia
client v server c tc R
S: MSS (bits)
O: kch thc i tng
(bits)
khng truyn li (khng mt
mt, khng hng)
Kch thc ca s:
Gi nh 1: ca s tc nghn
c nh, c W on
Sau ca s thay i, m
hnh khi ng chm
Transport Layer 3-103
Ca s tc nghn c nh (1)
Trng hp u tin:
WS/R > RTT + S/R: cho on
u tin trong ca s tr
v trc khi ca s d liu
gi ACK
tr = 2RTT + O/R
Transport Layer 3-104
Ca s tc nghn c nh (2)
Trng hp th hai:
WS/R < RTT + S/R: sent
ch cho ACK sau khi gi
d liu
tr = 2RTT + O/R
+ (K-1)[S/R + RTT - WS/R]
Transport Layer 3-105
TCP M hnh tr: Khi ng chm (1)
By gi gi s kch thc ca s tng ln ty theo qu
trnh khi ng chm
tr ca mt i tng s l:
R
S
R
S
RTT P
R
O
RTT Latency
P
) 1 2 ( 2
(

+ + + =
trong P l s ln TCP rnh ti server:
} 1 , { min = K Q P
- trong Q l s ln server rnh nu i tng khi to kch thc
- v K l s lng ca s bao trm i tng
Transport Layer 3-106
TCP M hnh tr: Khi ng chm (2)
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmission
object
delivered
time at
client
time at
server
V d:
O/S = 15 on
K = 4 ca s
Q = 2
P = min{K-1,Q} = 2
Server rnh P=2 ln
Cc thnh phn tr:
2 RTT dnh cho thit
lp kt ni v yu cu
O/R truyn i
tng
thi gian server rnh
bi v khi ng chm
Server rnh:
P = min{K-1,Q} ln
Transport Layer 3-107
TCP M hnh tr(3)
R
S
R
S
RTT P RTT
R
O
R
S
RTT
R
S
RTT
R
O
idleTime RTT
R
O
P
k
P
k
P
p
p
) 1 2 ( ] [ 2
] 2 [ 2
2 delay
1
1
1
+ + + =
+ + + =
+ + =

=
=

th window after the time idle 2


1
k
R
S
RTT
R
S
k
=
(

+
+

ement acknowledg receives server until


segment send to starts server when from time = + RTT
R
S
window kth the transmit to time 2
1
=

R
S
k
RTT
initiate TCP
connection
request
object
first window
= S/R
second window
= 2S/R
third window
= 4S/R
fourth window
= 8S/R
complete
transmission
object
delivered
time at
client
time at
server
Transport Layer 3-108
TCP M hnh tr (4)
(
(
(

+ =
+ > =
> =
> + + + =
> + + + =

) 1 ( log
)} 1 ( log : { min
} 1 2 : { min
} / 2 2 2 : { min
} 2 2 2 : { min
2
2
1 1 0
1 1 0
S
O
S
O
k k
S
O
k
S O k
O S S S k K
k
k
k
A
A
cch tnh ton Q tng t (xem HW).
K = s lng ca s bao trm i tng
Lm th no tnh c K ?
Transport Layer 3-109
HTTP M hnh
Gi s trang Web cha:
1 trang HTML (kch thc O bits)
M hnh nh (mi ci kch thcO bits)
HTTP khng bn vng:
M+1 TCP kt ni
Thi gian p ng = (M+1)O/R + (M+1)2RTT + tng s thi gian
rnh
HTTP bn vng:
2 RTT yu cu v nhn file HTML
1 RTT yu cu v nhn M hnh nh
Thi gian p ng = (M+1)O/R + 3RTT + tng s thi gian rnh
HTTP khng bn vng vi X kt ni song song
Gi s M/X l s nguyn.
1 TCP kt ni cho file
M/X thit lp cc kt ni song song cho cc hnh nh
Thi gian p ng = (M+1)O/R + (M/X + 1)2RTT + tng s thi
gian rnh
Transport Layer 3-110
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
0
2
4
6
8
10
12
14
16
18
20
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
HTTP thi gian p ng (giy)
RTT = 100 msec, O = 5 Kbytes, M=10 v X=5
Vi bng thng thp, thi gian kt ni & p ng tri hn thi gian
truyn
Cc kt ni bn vng ch cho s ci thin khng ng k trn cc kt ni
song song
Transport Layer 3-111
The image cannot be displayed. Your computer may not have enough memory to open the image, or the image may have been corrupted. Restart your computer, and then open the file again. If the red x still appears, you may have to delete the image and then insert it again.
0
10
20
30
40
50
60
70
28
Kbps
100
Kbps
1
Mbps
10
Mbps
non-persistent
persistent
parallel non-
persistent
HTTP thi gian p ng (giy)
RTT =1 sec, O = 5 Kbytes, M=10 and X=5
Vi RTT ln hn, thi gian p ng tri hn thi gian tr ch thit lp kt ni
TCP & khi ng chm. Cc kt ni bn vng by gi cho thy ci thin r rt: c bi
vi cc mng bng thng cao
Transport Layer 3-112
Chng 3: Tng kt
cc nguyn l ca cc dch
v lp transport
multiplexing,
demultiplexing
truyn d liu tin cy
iu khin lung
iu khin tc nghn
khi to v hin thc trong
Internet
UDP
TCP
Tip theo:
nghin cu xong cc
vn ngoi bin
(cc lp application,
transport)
chun b vo phn
li ca mng

You might also like