Professional Documents
Culture Documents
Računalne mreže
SVEUČILIŠTE U ZAGREBU
1
Računalne mreže
Transportni sloj
1
26.11.2020.
Uvod
application
transport
network
data link
• nalazi se između aplikacijskog sloja i physical
Računalne mreže
mrežnog sloja
• omogućava usluge procesima na
sloju aplikacije
• osigurava logičku komunikaciju
između aplikacijskih procesa - iz
perspektive aplikacije izgleda kao da
su računala na kojima se procesi
izvršavaju direktno povezani) application
transport
network
• ostvaruje potporu komunikaciji data link
physical
između procesa, odnosno između
krajnjih računala
Predajna strana:
- razdvajanje poruka (iz aplikacijskog sloja) u segmente, prosljeđivanje
mrežnom sloju
Prijemna strana:
- slaganje segmenata u poruke, prosljeđivanje aplikacijskom sloju
proces = osobe
app messages = pisma u kuvertama/omotnicama
hosts = kuće
transport protocol = Ivica i Marica
network-layer protocol = poštanska usluga
4
2
26.11.2020.
Segment payload
- Pouzdanost
Računalne mreže
• uspostava konekcije
• pouzdani prijenos
• beskonekcijska usluga
• ne osigurava se pouzdanost prijenosa
3
26.11.2020.
Poslužitelj
Računalne mreže
IP
TELNET IBM Compatible
2345
1023 1023
255 255
80
Svaka priključnica (socket) definirana je s tri parametra:
-protokol (UDP, TCP),
-IP adresa (npr. 161.53.97.2) 7
-oznaka porta (broj vrata) (npr. 21 za FTP).
= socket = proces
Računalne mreže
application P3 P1
P1 application P2 P4 application
host 2 host 3
host 1
Zaglavlje protokola transportne razine
- nosi brojeve priključnih točaka (port) izvorišta i odredišta
4
26.11.2020.
Multipleksiranje i demultipleksiranje
10
5
26.11.2020.
P2 P1
P1
Računalne mreže
P3
11
– izvorišna IP adresa
– izvorišni broj porta
– odredišna IP adresa
– odredišni broj porta
12
6
26.11.2020.
P1P3
Računalne mreže
P1 P4 P5 P6 P2
SP: 5775
DP: 80
S-IP: B
D-IP:C
13
- ako se izabere UDP umjesto TCP-a, aplikacija se “skoro direktno” obraća IP-u
14
14
7
26.11.2020.
15
15
segmenta
16
8
26.11.2020.
Računalne mreže
17
17
UDP checksum
Pošiljatelj: Primatelj:
• Sadržaj segmenta tretira kao • računa checksum of primljenog
16-bitne cijele brojeve segmenta
• checksum: zbrajanje sadržaja • Provjera da li je izračunati
segmenta checksum jednak onom u polju
• Pošiljatelj stavlja vrijednost – NE – detekcija pogreške
checksuma u UDP checksum
– DA – nema pogrešaka
polje
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
suma 1 1 0 1 1 1 0 1 1 1 0 1 1 1 1 0 0
checksum 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 1
18
9
26.11.2020.
(stvarnom) vremenu
Slijedi stvaranje UDP paketa koji omataju RTP pakete, i prosljeđuju prema
mrežnom sloju
19
19
RTP payload
Računalne mreže
Aplikacija
Korisnička
razina RTP
Slojevita
arhitektura
UDP
Razina operacijskog IP
sustava
Ethernet 20
20
10
26.11.2020.
(multicasting)
21
22
22
11
26.11.2020.
Predajna Prijemna
strana strana
23
Pošiljatelj Primatelj
24
24
12
26.11.2020.
rdt_send(data)
rdt_rcv(rcvpkt) &&
sndpkt = make_pkt(0, data, checksum) ( corrupt(rcvpkt) ||
udt_send(sndpkt) isACK(rcvpkt,1) )
start_timer
rdt_rcv(rcvpkt) L
Računalne mreže
Riješeni problemi detekcije pogreške, prijema paketa, gubitka paketa, dupliciranja paketa
25
Bez gubitaka
Izgubljen paket
26
26
13
26.11.2020.
27
27
Definiran u dokumentima RFC 793, RFC 1122, RFC 1323, RFC 2018 i RFC 2581
Računalne mreže
28
28
14
26.11.2020.
- Adresiranje i multipleksiranje
više procesa na istom računalu može simultano koristiti TCP
Računalne mreže
- Pouzdanost
sposobnost oporavka od gubitka, poduplavanja, pogrešaka ili pogrešnog
redosljeda u toku byte-ova
- Upravljanje tokom
onemogućava se bržem pošiljatelju „preplavljivanje” sporijeg primatelja
byte-ovima koje isti ne stiže obraditi (svaka potvrda popraćena je informacijom
o veličini prozora, window, koja određuje koliko byte-ova predajnik smije
odaslati prije prijema potvrde)
- Upravljanje vezom
logička veza između procesa uspostavlja se prije i raskida nakon obavljene
komunikacije (uporabom posebnih statusnih podataka)
- Prioritet 29
posebni zahtjevi koje specificiraju procesi
29
može:
30
30
15
26.11.2020.
32 bits
URG: urgent data counting
Računalne mreže
31
Seq. #’s:
Host A Host B
– byte stream “number”
prvog byte-a u
Računalne mreže
User
podatkovnom types
segmentu ‘C’
ACKs: host ACKs
– seq # sljedećeg byte-a receipt of
očekivanog od druge ‘C’, echoes
strane back ‘C’
host ACKs
receipt
of echoed
‘C’
time
jednostavni telnet scenario
32
32
16
26.11.2020.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Izvorišna priključna točka Odredišna priključna točka
Računalne mreže
Redni broj
Potvrdni broj
Pomak Reserved UAP R S F Prozor prijemnika
podataka R C S S Y I
GKH T N N
Kontrolna suma Pokazivač hitnih podataka
Opcije Nadopuna
Podaci
Izvorišna priključna točka (Source Port) - identificira proces koji šalje podatke
Odredišna priključna točka (Destination Port) - identificira proces koji prima
podatke
Redni broj (Sequence Number) - je redni broj početnog byta (okteta) segmenta
Potvrdni broj (Acknowledgment Number) - broj slijedećeg okteta korisnikove
poruke, ujedno i kumulativna potvrda
33
33
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Izvorišna priključna točka Odredišna priključna točka
Računalne mreže
Redni broj
Potvrdni broj
Pomak Reserved UAP R S F Prozor prijemnika
podataka R C S S Y I
GKH T N N
Kontrolna suma Pokazivač hitnih podataka
Opcije Nadopuna
Podaci
34
17
26.11.2020.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Računalne mreže
35
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Računalne mreže
36
18
26.11.2020.
Računalne mreže
37
37
– Neželjene retransmisije
Predugo: spora reakcija na gubitak segmenta
38
19
26.11.2020.
(tipično, = 0.25)
300
250
RTT (milliseconds)
200
150
100
1 8 15 22 29 36 43 50 57 64 71 78 85 92 99 106
time (seconnds)
39
Ack primljen:
40
20
26.11.2020.
NextSeqNum = InitialSeqNum
SendBase = InitialSeqNum
loop (forever) {
switch(event)
Računalne mreže
41
Seq=92 timeout
timeout
X
loss
Sendbase
= 100
Seq=92 timeout
SendBase
= 120
SendBase
= 100
SendBase
= 120 premature timeout
vrijeme vrijeme
Izgubljeni ACK scenario
42
42
21
26.11.2020.
Host A Host B
Računalne mreže
timeout X
loss
SendBase
= 120
vrijeme
Kumulativni ACK scenario
43
Kontrola toka
TCP koristi gubitak segmenta kao indikaciju zagušenja
održava mrežu u radnoj točki s prosječno punim redovima čekanja
nadopunjavani)
- upravljanja prometom
- sprječavanje zagušenja
44
22
26.11.2020.
45
45
Upravljanje vezom
– seq. #s
– buffers, flow control info (e.g. RcvWindow)
Kod uspostave veze dva TCP procesa moraju sinkronizirati početne redne
brojeve
(razmjenom segmenata za uspostavu veze, segmenti nose slučajno odabran
kontrolni bit SYN ISN (Initial Sequence Number)
Prilikom sinkronizacije obje strane moraju poslati svoj ISN, te primiti potvrdu
za to od druge strane
46
23
26.11.2020.
Upravljanje vezom
47
client server
close
Zatvaranje konekcije
close
client closes socket:
clientSocket.close();
Računalne mreže
timed wait
closed
closing
Korak 2: server prima FIN, odgovara sa
ACK. Zatvara konekciju, šalje FIN.
closing
Korak 3: klijent prima FIN, odgovara sa
ACK.
– unosi “timed wait” – odgovoriti
timed wait
24
26.11.2020.
CLOSED LISTEN
korisnik poslužitelj
SYN_SENT SYN k
Računalne mreže
SYN_RCVD
SYN,ACK p,k+1
ESTABLISHED
ACK k+1,p+1
ESTABLISHED
IZMJENA
PODATAKA
CLOSE_WAIT
TIME_WAIT
CLOSED
49
49
50
25
26.11.2020.
STANJE: ZNAČENJE:
CLOSED Veza je neaktivna (raskinuta)
LISTEN Stanje čekanja zahtjeva za vezu
SYN-SENT Poslan je zahtjev za vezu; čeka se da druga strana odgovori zahtjevom za vezu
SYN-RECEIVED Primljen je zahtjev za vezu; čeka se potvrda zahtjeva za vezu
ESTABLISHED Stanje normalnog prijenosa podataka
FIN-WAIT-1 Odaslan je zahtjev za raskidanje veze
FIN-WAIT-2 Čeka se zahtjev za raskidanje veze od udaljenog TCPa
CLOSE-WAIT Čekanje na zahtjev za raskidanje veze od lokalnog korisnika
CLOSING Čeka se potvrda na poslani zahtjev za prekid veze
LAST-ACK Čeka se potvrda na zahtjev za raskid veze od udaljenog TCPa
TIME-WAIT Čeka se dva maksimalna vremena života segmenta (MSL), kako bismo se
uvjerili da su svi zaostali segmenti stigli do udaljenog TCPa. Za to vrijeme se
ne može ponovo uspostaviti veza između ove dvije priključnice.
51
51
aktivni OPEN
napravi TCB & šalji SYN
CLOSED
CLOSE
izbriši TCB
pasivni OPEN CLOSE
napravi TCB izbriši
TCB
primljen RST
LISTEN
Računalne mreže
primljen SYN+ACK
primljena potvrda šalji ACK
CLOSE
SYNa ESTABLISHED
šalji FIN
CLOSE
šalji FIN primljen FIN
šalji ACK
primljen FIN
šalji ACK
FIN-WAIT-1 CLOSING CLOSE-WAIT
Timeout = 2MSL
izbriši TCB
primljena potvrda
FINa
CLOSED
52
52
26