Professional Documents
Culture Documents
03b - Transport Layer - New
03b - Transport Layer - New
CHC NNG - 1
03/2011
network data link physical network data link physical network data link physical
Transport
Network Data link
Physical
application application transport transport network network data link data link physical physical
NI DUNG
Gii thiu Nguyn tc truyn d liu ng tin cy Giao thc TCP Giao thc UDP
NHC LI
source
message
M M M M
03/2011
segment
packet frame
Ht Hn Ht
Hl Hn Ht
destination
M Ht Hn Ht M M
Hn Ht Hl Hn Ht
M M
Hn Ht
4 router
TNG VN CHUYN
-1
P2
M M
P3
Process nhn?
Ht D Ht D M
P1
Gi n Process?
Ht D M D Ht D H n segment M
P4
H n segment
TNG VN CHUYN
-2
03/2011
TNG VN CHUYN
-3
03/2011
H tr
Khng h tr
m bo thi gian tr m bo bng thng
03/2011
knh (Multiplexing):
knh (Demultiplexing):
Thc hin ti bn nhn phn phi cc segment nhn c cho socket tng ng
Khi
source port #
dest port #
Cu trc ca mt segment
P2
6428
P1 P1
5775
server IP: B
Client
IP:A
10
NI DUNG
Gii thiu Giao thc UDP Nguyn tc truyn d liu ng tin cy Giao thc TCP
11
UDP - 1
03/2011
Mt Khng ng th t
Khng kt ni:
Khng c handshaking gia bn gi v nhn Mi gi tin UDP c x l c lp Khng c trng thi kt ni
12
UDP - 2
32 bits Chiu di gi tin (tnh c header) source port # length dest port # checksum
UDP - 3
Application Transport .. U Cc segment n khng ng th t??? U1 M U2 U3
Application Transport ..
14
Mt segment?
UDP - 4
03/2011
Header nh Nhanh
15
UDP - 5
03/2011
Chu li Yu cu tc
16
NI DUNG
Gii thiu Nguyn tc truyn d liu ng tin cy Giao thc TCP Giao thc UDP
17
03/2011
BI TON
18
transport
ng truyn tin cy
c tnh ca ng truyn khng tin cy quyt nh phc tp ca nghi thc truyn tin cy
19
NI DUNG
03/2011
Pipeline
Go-back-N Gi li c chn
20
03/2011
Bn gi
Gi km theo thng tin kim tra li S dng cc phng php kim tra li
Bn nhn
Kim tra c xy ra li bit? Hnh ng khi xy ra li bit?
Bo v bn gi
21
GII QUYT MT GI
03/2011
Bn nhn
Gi tn hiu bo
Bn gi
nh ngha trng hp mt gi Ch nhn tn hiu bo Hnh ng khi pht hin mt gi
22
03/2011
Bn gi
Gi gi tin km theo thng tin kim tra li Dng v ch n khi no gi tin va gi n c bn nhn an ton: nhn c gi tin ACK Gi li khi c li xy ra: li bit, mt gi Kim tra li, trng lp d liu Gi gi tin phn hi
Bn nhn:
Phin bn:
RDT 1.0 RDT 2.0 RDT 2.1 RDT 2.2 RDT 3.0
23
03/2011
Gii quyt mt gi
Go back N Selective Repeat (gi li c chn)
24
03/2011
Khng li bit Khng mt gi tin Bn gi chuyn d liu xung knh bn di Bn nhn c d liu t knh truyn bn di
sender
receiver
25
03/2011
Lm
Acknowledgement(ACKs): bn nhn bo cho bn gi nhn c d liu Nagetive acknowledgement(NAKs): bn nhn bo gi tin b li Bn gi s gi li gi tin khi nhn NAK
So
vi rdt1.0, rdt2.0:
RDT2.0 FSM - 2
rdt_send(data) snkpkt = make_pkt(data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && isNAK(rcvpkt) Wait for Wait for call from above ACK or NAK udt_send(sndpkt)
03/2011
receiver
rdt_rcv(rcvpkt) && corrupt(rcvpkt) udt_send(NAK)
Wait for call from below rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) extract(rcvpkt,data) deliver_data(data) udt_send(ACK)
27
sender
ACK/NAK sai???
RDT2.0 - 3
03/2011
Gii quyt:
Bn gi gi li gi tin khi nhn ACK/NAK sai Bn gi nh s th t cho mi gi tin Bn nhn s loi b gi tin trng.
Dng v i
28
RDT2.1 BN GI X L LI ACK/NAK
rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) rdt_rcv(rcvpkt) &&
Wait for call 0 from above Wait for ACK or NAK 0
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) L rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt) ) udt_send(sndpkt)
Wait for ACK or NAK 1
rdt_rcv(rcvpkt) && (corrupt(rcvpkt) sndpkt = make_pkt(NAK, chksum) udt_send(sndpkt) rdt_rcv(rcvpkt) && not corrupt(rcvpkt) && has_seq1(rcvpkt) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK, chksum) udt_send(sndpkt)
30
03/2011
0 v 1???
Phi kim tra: ACK/NAK sai khng Phi nh gi tin hin thi c th t 0 hay 1
03/2011
C ch:
Checksum: kim tra c li xy ra khng? ACK: bn nhn nhn ng gi tin NAK: bn nhn nhn sai gi tin Sequence Number (1 bit = 0 hoc 1)
32
Bn gi nhn trng gi tin ACK xem nh gi tin NAK gi li gi va gi v gi ny cha nhn c ACK
33
RDT2.2: BN GI V BN NHN
rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt)
Wait for call 0 from above Wait for ACK 0
rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq1(rcvpkt) extract(rcvpkt,data) deliver_data(data) sndpkt = make_pkt(ACK1, chksum) udt_send(sndpkt)
34
03/2011
Gi thit:
Li bit mt gi Checksum, s th t, ACKs, truyn li vn cha
X l?
Gii php: bn gi i mt khong thi gian hp l cho ACK Gi li nu khng nhn c ACK trong khong thi gian ny Nu gi tin (hay ACK) b tr (khng mt)
Gi li c th trng, phi nh s th t Bn nhn phi xc nh th t ca gi tin ACK
Yu cu m thi gian
35
RDT3.0 BN GI - 2
rdt_send(data) sndpkt = make_pkt(0, data, checksum) udt_send(sndpkt) start_timer Wait for call 0from above rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,1) stop_timer Wait for ACK1 rdt_send(data) sndpkt = make_pkt(1, data, checksum) udt_send(sndpkt) start_timer 36 Wait for call 1 from above Wait for ACK0 rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt,1) )
L
timeout udt_send(sndpkt) start_timer rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt,0) stop_timer
rdt_rcv(rcvpkt)
03/2011
RDT3.0 - 3
37
03/2011
RDT3.0 - 4
38
03/2011
RDT3.0 DNG V I - 5
39
RDT3.0 HIU QU - 6
Rdt3.0 lm vic, nhng khng hiu qu Vd:bng thng 1Gbps, 15ms end2end delay, gi tin 8Kb
Usender : t l thi gian bn gi gi gi tin Nghi thc hn ch vic s dng ti nguyn mng
40
03/2011
03/2011
42
GO-BACK-N 1
S
03/2011
43
GO-BACK-N: BN NHN - 2
03/2011
Bn gi:
S dng buffer (window) lu cc gi tin gi nhng cha nhn c ACK Gi nu gi tin c th a vo window Thit lp ng h cho gi tin c nht (gi tin u window) Timeout: gi li tt c cc gi tin cha ACK trong window Ch gi ACK cho gi tin nhn ng vi s th t cao nht
Bn nhn:
44
03/2011
GO-BACK-N V D - 3
45
GI LI C CHN - 1
03/2011
Bn nhn:
a vo b m nu cn ch Hy gi tin
Bn gi:
C ng h cho mi gi tin cha nhn c ACK Time out: ch gi nhng gi tin khng nhn c ACK
46
GI LI C CHN - 2
Bt u bn gi Th t k tip ACK Gi, cha ACK Cha dng khng dng c
Th t bn gi
Bt u bn nhn Th t bn nhn 47
03/2011
GI LI C CHN - 4
48
GI LI C CHN - 5
03/2011
Vd:
49
NI DUNG
Gii thiu Nguyn tc truyn d liu ng tin cy Giao thc TCP Giao thc UDP
50
TCP
Gii thiu Nguyn tc hot ng Qun l kt ni iu khin lung iu khin tt nghn
51
03/2011
Full-duplex
Hng kt ni
03/2011
socket door
Pipeline
Kim sot lung Kim sot tt nghn
53
03/2011
source port #
dest port #
sequence number
acknowledgement number
head not U AP R S F len used
checksum
54
03/2011
Port ca ni gi v ni nhn
Sequence
number
Acknowledgment
number
Window
size
Thng bo c th nhn bao nhiu byte sau byte cui cng c xc nhn nhn
55
03/2011
Checksum
Urgent pointer
C:
56
TCP V D
Host A Seq: s th t ca byte
User types C
03/2011
Host B
03/2011
58
TCP BN GI
03/2011
Ht time out
Gi li d liu cn trong buffer Reset ng h
59
TCP BN NHN
03/2011
Nhn gi tin ng th t
Chp nhn Gi ACK v cho bn gi
60
TCP V D
Host A Host B Host A Host B
loss
time
Seq=92 timeout
Seq=92 timeout
timeout
premature timeout
61
TCP THIT LP KT NI
Thc
03/2011
SYN_RCVD state
ESTABLISHED state
62
TCP NG KT NI
03/2011
close
close
closed
63
timed wait
TCP QUN L KT NI
64
03/2011
Nguyn nhn:
Bn gi lm trn b m ca bn nhn khi gi qu nhiu d liu hoc gi qu nhanh Window size: lng DL c th a vo buffer
65
Empty
Bn gi c th gi n 2K
2K
1K
2K
66
03/2011
lout
Host B
67
03/2011
Host A
Host B
TTMTRANG - BM MMT&VT - KHOA CNTT - H KHTN TP.HCM
Bn gi:
Tc gi: c 2 pha
03/2011
Bi ging ca J.F Kurose and K.W. Ross v Computer Networking: A Top Down Approach
69