Upload
sopoline-knowles
View
73
Download
6
Embed Size (px)
DESCRIPTION
Lekcija 9. Računarske mreže. Transportni sloj ( Transport layer ). Aplication Layer. Transport Layer. Network Layer. Uvod. Predstavlja suštinu hijerarhije protokola Zadatak transportnog sloja: - PowerPoint PPT Presentation
Citation preview
22.1.2007. Predavanja 1
Računarske mrežeRačunarske mreže
Transportni sloj(Transport layer)
Lekcija 9
22.1.2007. Predavanja 2
Uvod
• Predstavlja suštinu hijerarhije protokola• Zadatak transportnog sloja:
– Prihvata podatke aplikacije izvorišta i dostavlja ih aplikaciji odredišta starajući se o prenosu, kontroli i ispravljanju grešaka pri prenosu
– Nezavisno od fizičke mreže ili mreže koja se trenutno nalazi između izvorišta i odredišta
• Transportni sloj obezbeđuje usluge aplikativnom sloju, a koristi usluge mrežnog sloja
• Izvori i odredišta su najčešće procesi u sloju aplikacije
Transport Layer
Aplication Layer
Network Layer
22.1.2007. Predavanja 3
Uvod
• Funkcionalnosti koje su bitne za ovaj sloj:– Ostvarivanje virtuelne veze za prenos podataka.– Prevođenje podataka u (uglavnom binarni) format
pogodan za prenos.– Segmentacija podataka radi efikasnijeg iskorišćenja
komunikacionog kanala.– Isporuka podataka u obliku u kom su poslati.– Omoućavanje optimalne brzine prenosa podataka u
skladu sa propusnom moći i učestalošću grešaka na komunikacionom kanalu i prihvatnoj moći primaoca.
22.1.2007. Predavanja 4
• Logička komunikacija između aplikacija koje rade na različitim računarima (hostovima)
• Transportni protokoli rade na krajnjim sistemima – Predajna strana: deli
aplikacionu poruku u segmente, prosleđuje ih mrežnom sloju
– Prijemna strana: slaže segmente u poruku, prosleđuje je aplikaciji
• Postoji više transportnih protokola za aplikacije– Internet: TCP i UDP
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysicalnetwork
data linkphysical
logical end-end transport
Uvod
22.1.2007. Predavanja 5
Uvod
Sloj aplikacije(ili sesije)
Mrežni slojMrežni sloj
TransportnaTransportnajedinicajedinica
Sloj aplikacije(ili sesije)
Mrežni slojMrežni sloj
TransportnaTransportnajedinicajedinica
Transportna
adresa
Mrežnaadresa
TPDUTPDU
TransportProtocol
Data Unit- SEGMENT
-
22.1.2007. Predavanja 6
Uvod
Koristan teret TPDU porukeKoristan teret TPDU poruke
Koristan teret paketa
Koristan teret okvira
Zaglavlje
okvira
Zaglavlje
paketa
ZaglavljeTPDU poruke
22.1.2007. Predavanja 7
Uvod
• Osnovna uloga transportnog sloja:– Izolacija viših slojeva od tehnologije, strukture i nedostataka
podmreže
• Transportni sloj poboljšava kvalitet usluge i ostvaruje pouzdaniju uslugu u odnosu na mrežni sloj– Usluga mrežnog sloja: isporuka od računara do računara– Usluga transportnog sloja: isporuka od procesa do procesa za
aplikacije koje se izvršavaju na računarima
22.1.2007. Predavanja 8
Elementi transportnih protokola
• Transportni protokol povezuje dve transportne jedinice• Razlikuje se od protokola mrežnog sloja:
– Fizički kanal za komunikaciju je čitava podmreža– Mora se zadati adresa odredišta (kod mrežnog sloja
jedan izlaz iz rutera vodi tačno do drugog)
routherrouther
Fizički komm.
kanal
Podmreža
22.1.2007. Predavanja 9
• Krajnje tačke – procesi aplikacija na Internetu imaju portove (ports)• Za neke druge mreže uobičajen naziv je Transport Service Access
Point - TSAP
AdresiranAdresiranjeje
Fizički slojFizički sloj
Sloj veze podatakaSloj veze podataka
Mrežni slojMrežni sloj
Transportni slojTransportni sloj
Sloj aplikacijeSloj aplikacijeTSAP1TSAP1 TSAP2TSAP2 TSAP3TSAP3
NSAP1NSAP1 NSAP2NSAP2
Računar 1Računar 1 Računar 2Računar 2ProcesProcesaplikacijeaplikacije
22.1.2007. Predavanja 10
Portovi
• Transportni sloj poseduje interni sistem adresiranja čija je adresna jedinica port– Port je određen 16-bitnim numeričkim parametrom
• Portovi se mogu podeliti na:– privilegovane, – registrovane i – dinamičke (ili kratkotrajne) portove
22.1.2007. Predavanja 11
Portovi
• Privilegovani portovi: – Portovi u opsegu 0-1023 i pravo na njihovo otvaranje
uglavnom ima samo operativni sistem – Na ovim portovima se nalaze najčešće korišćeni servisi
(FTP, SSH, Telnet, DNS i sl.)
• Registrovani portovi se kreću u opsegu od 1024 do 49151 i na njima se zvanično koriste servisi novijeg datuma
• Dinamički ili kratkotrajni portovi se kreću u opsegu od 49152 do 65535 i njih nije moguće registrovati a uglavnom služe za klijentske komponente klijent/server softvera
22.1.2007. Predavanja 12
PortoviPort Servis
20 FTP prenos podataka
21 FTP kontrolne poruke
22 SSH - Secure Shell
23 Telnet
25 SMTP - Simple Mail Transfer Protocol
53 DNS - Domain Name System
80 HTTP - Hyper Text Transfer Protocol
110 POP3 - Post Office Protocol verzije 3
123 NTP - Network Time Protocol
143 IMAP4 - Internet Message Access Protocol 4
161 SNMP - Simple Network Management Protocol
389 LDAP - Lightweight Directory Access Protocol
443 HTTPS - HTTP obezbeđen putem TLS/SSL
860 iSCSI - Internet SCSI
631 IPP - Internet Printing Protocol
989 FTP prenos podataka obezbeđen putem TLS/SSL
990 FTP kontrolne poruke obezbeđen putem TLS/SSL
22.1.2007. Predavanja 13
Socket
• Kompozitna adresna jedinica transportnog i mrežnog sloja jeste socket.
• Socket (nekada se naziva i mrežni socket) je sačinjen od sledećih komponenti:– IP adresa izvorišta– Port izvorišta– Protokol transportnog sloja– Port odredišta– IP adresa odredišta
22.1.2007. Predavanja 14
Socket
• Podrška za socket-e se u operativnim sistemima najčešće realizuje pomoću gotovih sistemskih biblioteka.
• Neki od najpopularnijih socket biblioteka su:– Berkeley socket za Unix operativne sisteme i – Winsock za MS Windows operativne sisteme
22.1.2007. Predavanja 15
Multipleksiranje/demultipleksiranje
application
transport
network
link
physical
P1 application
transport
network
link
physical
application
transport
network
link
physical
P2P3 P4P1
host 1 host 2 host 3
= process= socket
Isporuka primljenih segmenataodređenom soketu
Demux na prijemnom računaru:Prihvatanje podataka sa višesoketa, dodavanje hedera (kasnije se koristi za demultipleksiranje)
Mux na predajnom računaru:
22.1.2007. Predavanja 16
• Prijemni računar dobija IP datagram– Svaki datagram sadrži source
IP adresu, destination IP adresu– Svaki datagram sadrži 1
transport-layer segment– Svaki segment sadrži
source/destination broj porta (za određenu aplikaciju)
• Krajnji računar koristi IP adrese i broj porta za dostavljanje segmenta odgovarajućoj aplikaciji
source port # dest port #
32 bits
applicationdata
(message)
other header fields
TCP/UDP segment format
Multipleksiranje/demultipleksiranje
22.1.2007. Predavanja 17
Usluge prenosa
• Usluge prenosa tr. sloja mogu biti:– Sa uspostavljajem direktne veze: uspostavljanje veze, prenos
podataka i raskidanje veze– Bez uspostavljanja direktne veze: datagramska podrška (bitna za
aplikacije u realnom vremenu)
22.1.2007. Predavanja 18
Demux i T protokol bez uspostavljanja
veze
DatagramSocket serverSocket = new DatagramSocket(6428);
ClientIP:B
P2
client IP: A
P1P1P3
serverIP: C
SP: 6428
DP: 9157
SP: 9157
DP: 6428
SP: 6428
DP: 5775
SP: 5775
DP: 6428
SP ima smisla kao “adresa za odgovor”
22.1.2007. Predavanja 19
• UDP socket se identifikuje sa parom:– dest IP address – dest port number
• IP datagrami sa različitim source IP adresama i/ili različitim brojevima source porta mogu se usmeriti na isti socket
Demux i T protokol bez uspostavljanja
veze
22.1.2007. Predavanja 20
ClientIP:B
P1
client IP: A
P1P2P4
serverIP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P5 P6 P3
D-IP:CS-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:CS-IP: B
Demux i T protokol sa uspostavljanjem veze
22.1.2007. Predavanja 21
ClientIP:B
P1
client IP: A
P1P2
serverIP: C
SP: 9157
DP: 80
SP: 9157
DP: 80
P4 P3
D-IP:CS-IP: A
D-IP:C
S-IP: B
SP: 5775
DP: 80
D-IP:CS-IP: B
Demux i T protokol sa uspostavljanjem veze
22.1.2007. Predavanja 22
• TCP socket se identifikuje sa sledećim:– source IP address– source port number– dest IP address
– dest port number)
• Serveri mogu da podrže više različitih TCP soketa
• Web serveri mogu da imaju različite sokete za istog klijenta
Demux i T protokol sa uspostavljanjem veze
22.1.2007. Predavanja 23
• Osnovne operacije:– LISTEN– CONNECT– SEND– RECEIVE– DISCONNECT
• Mnogi programi (i programeri) rade sa uslugama prenosa. – Usluge treba da su pogodne i lake za korišćenje– Kod usluga mrežnog sloja mala je fleksibilnost
Osnovne operacije u uslugama prenosa
22.1.2007. Predavanja 24
Uspostavljanje veze
• Suština veze:– TPDU pruka CONNECTION REQUEST– Odgovor odredišta CONNECTION ACCEPTED
• Problemi:– Gubljenje, čuvanje, kašnjenje i dupliranje paketa– Npr: Transakcija prebacivanje para sa računa na račun
• Poništavanje duplikata u mreži:– Odgovarajućim projektovanjem mreže– Uključenje brojača skokova u svaki paket– Vremensko označavanje svakog paketa
• U praksi, poništavaju se i paketi i njihove potvrde
22.1.2007. Predavanja 25
Trostepeno usaglašavanje
• Strane u komunikaciji imaju odgovarajuće brojače– redni brojevi paketa
• U toku uspostave veze dve strane kreću od različitih rednih brojeva
1. Računar 1 bira redni broj x i šalje računaru 2 TPDU zahtev CONNECTION REQUEST
2. Računar 2 TPDU potvrdom kojom prihvata x i najavljuje svoj početni redni broj y
3. Računar 1 potvrđuje da prihvata početni redni broj y računara 2, u prvom TPDU paketu sa podacima koji mu šalje
22.1.2007. Predavanja 26
Trostepeno usaglašavanje
• Normalan rad
Računar 1Računar 1 Računar 2Računar 2CR(r.b.=x)
CR(r.b.=x)
ACK(r.b.=y, ACK=x)
ACK(r.b.=y, ACK=x)
Podaci (r.b.=x, ACK=y)
Podaci (r.b.=x, ACK=y)
vvrreemmee
CR=CONNECTION REQ.CR=CONNECTION REQ.
ACK=ACKNOWLEDGMENTACK=ACKNOWLEDGMENT
22.1.2007. Predavanja 27
Trostepeno usaglašavanje
• Stari duplikat – CR se pojavljuje neočekivano
Računar 1Računar 1 Računar 2Računar 2
CR(r.b.=x)
CR(r.b.=x)
ACK(r.b.=y, ACK=x)
ACK(r.b.=y, ACK=x)
Odbacivanje (ACK=y)
Odbacivanje (ACK=y)
vvrreemmee
22.1.2007. Predavanja 28
Trostepeno usaglašavanje
• Stari duplikat – CR i ACK se pojavljuju neočekivano
Računar 1Računar 1 Računar 2Računar 2CR(r.b.=x)
CR(r.b.=x)
ACK(r.b.=y, ACK=x)
ACK(r.b.=y, ACK=x)
Odbacivanje (ACK=y)
Odbacivanje (ACK=y)
vvrreemmee
Podaci(r.b.=x, ACK=z)
Podaci(r.b.=x, ACK=z)
22.1.2007. Predavanja 29
Raskidanje veze
• Raskidanje je lakše od uspostavljanja veze• Raskidanje veze
– Asimetrično
• Jedan od učesnika naglo raskida vezu• Npr. telefonski sistem
– Simetrično
• Svaka veza je sistem od dve paralelne jednosmerne veze
• Svaka jednosmerna veza se raskida zasebno
22.1.2007. Predavanja 30
Asimetrično raskidanje
• Može da izazove gubitak podatakaRačunar 1Računar 1 Računar 2Računar 2
CRCR
ACKACK
PodaciPodaci
vvrreemmee
PodaciPodaci
DRDR Izgubljeni podaciIzgubljeni podaci
22.1.2007. Predavanja 31
Simetrično raskidanje
• Izbegava se gubljenje paketa• Nezavisno se raskida svaka od dve jednosmerne veze• Moguće je da računar prima podatke iako je sam
raskinuo vezu (tj. svoj smer)• Radi dobro kada svaki od dva procesa treba da pošalje
fiksnu količinu podataka (precizno zna kada ih je sve poslao)
• Trostepeno usaglašavanje:
1. Prvi računar: zahtev za raskid
2. Drugi računar: zahtev za raskid
3. Prvi računar: potvrda zahteva
22.1.2007. Predavanja 32
Simetrično raskidanje
• Normalan slučaj trostepenog usaglašavanja
Računar 1Računar 1 Računar 2Računar 2DRDR
DRDR
ACKACK
vvrreemmee
Šalje DRi pokrećetajmer
Raskidavezu
Šalje ACK
Šalje DRi pokrećetajmer
Raskidavezu
22.1.2007. Predavanja 33
Simetrično raskidanje
• Gubi se poslednja ACK poruka
Računar 1Računar 1 Računar 2Računar 2DRDR
DRDR
ACKACK
vvrreemmee
Šalje DRi pokrećetajmer
Raskidavezu
Šalje ACK
Šalje DRi pokrećetajmer
Po istekuroka,
tajmerraskida
vezu
tajmertajmer
22.1.2007. Predavanja 34
Simetrično raskidanje
• Gubi se odgovorRačunar 1Računar 1 Računar 2Računar 2
DRDR
DRDR
vvrreemmee
Šalje DRi pokrećetajmer
Raskidavezu
Šalje ACK
Šalje DRi pokrećetajmer
Raskidavezu
DRDR
DRDR
Šalje DRi pokrećetajmer
ACKACK
22.1.2007. Predavanja 35
Simetrično raskidanje
• Gubi se i odgovor i naknadne DR porukeRačunar 1Računar 1 Računar 2Računar 2
DRDR
DRDR
vvrreemmee
Šalje DRi pokrećetajmer
Posle Nneuspelihpokušajatajmerraskida
vezu
Šalje DRi pokrećetajmer
DRDR
Po istekuroka,
tajmerraskida
vezu
tajmertajmertajmertajmer
22.1.2007. Predavanja 36
Upravljanje uspostavljenom vezom
• Osnovni zadatak – kontrola toka• Sličnost sa kontrolom toka u sloju veze
– Primena kliznog prozora, da brz pošiljaoc ne bi porukama zatrpao sporijeg primaoca
• Osnovna razlika– Ruter ima relativno mali broj izlaznih linija– U transportnom sloju se mogu ostvariti brojne veze
22.1.2007. Predavanja 37
Upravljanje uspostavljenom vezom
• Pošiljaoc mora da baferuje sve TPDU poruke, dok se ne potvrde (za slučaj da ih ponovo šalje)
• Na prijemu se takođe obezbeđuju baferi– Fiksni (slaba iskorišćenost)– Cirkularni
• Veze se uspostavljaju i raskidaju• Unapred se ne zna broj veza u jednom trenutku
– Dinamička dodela bafera (rad sa klizećim prozorima promenljive dužine)
22.1.2007. Predavanja 38
Upravljanje uspostavljenom vezom
• Brzina slanja podataka zavisi od broja slobodnih bafera primaoca– Može se popraviti dodavanjem više RAMa
• Sledeće ograničenje: prenosni kapacitet podmreže– Kontroliše se pošiljaoc, da na mreži ne bi bilo previše
nepotvrđenih TPDU (klizeći prozori promenljive dužine)• Određivanje prenosnog kapaciteta mreže
– Brojanjem potvrđenih TPDU u jedinici vremena– Radi se povremeno, jer se menjaju uslovi prenosa
22.1.2007. Predavanja 39
Oporavak posle pada sistema
• Pad podmreže sa ruterima u toku veze– Transportni sloj se oslanja na usluge mrežnog sloja
• Paketska komutacija: očekuje se odgovor o izgubljenom TPDU• Čvrsta direktna veza: uspostavlja se novo virtuelno kolo
• Pad računara (npr. servera) u toku veze– Server mora difuzno da obavesti sve računare da se upravo oporavio– Računari obaveštavaju server o stanju veze– Važne razlike: da li je server prvo upisuje TPDU, a zatim šalje ACK
potvrdu– Moguća pojava duplikata, gubljenje TPDU ili nastavak