Download as pdf or txt
Download as pdf or txt
You are on page 1of 27

Internet infrastruktura

Aplikacije: NAT, HTTP, BitTorrent


Aplikacijski sloj
• Posao mreže je da prenosi datagrame što efikasnije i fleksibilnije, sve
drugo se treba raditi na rubovima.

Internet

Klijent Poslužitelj
177.64.18.57 167.155.220.26
NAT – Network Address Translator

NAT Internet

177.64.18.57 167.155.220.26
NAT – Network Address Translator

Unutarnji IP Vanjski IP

NAT
177.64.18.57

192.168.1.15 167.155.220.26
NAT – Network Address Translator
• IP adrese u IP datagramima se zamjenjuju adresama privatne mreže
• Hostovi iz privatne mreže tako mogu komunicirati s internetom
• NAT radi na usmjerivačima koji su spojeni na internet
• NAT ima tablicu translacija adresa
• Pooling IP adresa – mreža ima puno hostova a samo mali broj javnih
IP adresa
HyperText Transfer Protocol - HTTP
• Temelj modernog Interneta
• Inicijalno zamišljen za prijenos dokumenata
• Sada se koristi za toliko toga više, Netflix i aplikacije koje izvršavaju skripte
• Klijent – Poslužitelj
• Klijent – browser
• Poslužitelj – web poslužitelj
• Očekuje zahtjev od nekog klijenta
Prihvaća TCP konekciju od klijenta
• Preuzima ime zahtjevane datoteke
• Pronalazi datoteku (na svom hard disku)
• Šalje datoteku klijentu
• Zatvara TCP konekciju.
HyperText Transfer Protocol - HTTP
• HyperText – format za dokument koji uključuje formatiranje i sadržaj
informacija u dokumentu
• HyperText je ASCII tekst, svaki tekst editor ga može prikazati
• HyperText Markup Language - HTML
HyperText
HyperText
• Nije ideja HTML-a da bude samo formatiranje i sadržaj.
• Unutar HyperText-a mogu se staviti drugi dokumenti, datoteke
• Te datoteke se ne spremaju unutar tog dokumenta nego se na njih
referencira da se učitaju s drugog mjesta
• IMG tag kaže „učitaj sliku s ovog URL-a i onda prikaži ovdje”
• URL – Uniform Resource Locator
• http://en.wikipedia.org/wiki/Velika_Gorica
World Wide Web - HTTP
• Klijent otvara TCP konekciju (port 80) prema poslužitelju i šalje zahtjeve
• Najčešća komanda je GET zahtjev, koja zahtjeva stranicu
• Ako se otvori stranica http://www.vvg.hr/ preglednik će otvoriti konekciju
prema poslužitelju i poslati GET zahtjev za root stranicom tog web site-a
• Ako server odgovori s porukom 200 OK to znači da je prihvaćen zahtjev i da
je ostatak odgovora dokument stranice
• Postoje i drugi zahtjevi: PUT, DELETE, INFO, POST
• I drugi odgovori: 400 Bad Request, 301 Moved permanently, 404 Not
Found, 505 HTTP Version Not Supported
HTTP/1.0
• Otvoriti konekciu
• Poslati GET
• Server zatvara konekciju nakon odgovora
HTTP/1.0 brzina
• Latencija: 50ms
• Veličina zahtjeva: 1 puni segment
• Veličina odgovora: 2 puna segmenta
• Packetization delay segmenta: 10ms
• Maksimalan broj otvorenih konekcija: 2
HTTP/1.0 brzina
• Jedna stranica:
• SYN: 50ms
• SYN/ACK: 50 ms
• ACK/request: 60ms
• Response: 70ms

• Ukupno = 230ms
HTTP/1.0 brzina
• Stranica s dvije slike
• Postavljanje konekcije: 100ms
• Request/response: 130ms
• Slike: 100ms, request/response??

• 480ms
HTTP/1.0
• Otvaranje puno konekcija je sporo
• Puno podataka se šalje u malim dijelovima, TCP window ne može
narasti

• HTTP/1.1
HTTP/1.1
• Konekcijsko zaglavlje za zahtjeve:
• Keep-alive: kaže poslužitelju „molim ostavi konekciju otvorenu, zahtjevat ću
još”
• Zatvaranje: kaže poslužitelju da zatvori konekciju
• Poslužitelj može uvijek ignorirati
• Konekcijsko zaglavlje za odgovore:
• Keep-alive: kaže klijentu da će držati konekciju otvorenu
• Zatvaranje: kaže klijentu da će zatoriti konekciju
• Keep-Alive zaglavlje za odgovore:
• Kaže klijentu kako dugo konekcija može ostati otvorena
HTTP/1.1 brzina
• Latencija: 50ms
• Veličina zahtjeva: 1 puni segment
• Veličina odgovora: 2 puna segmenta (prozor je 30 segmenata)
• Packetization delay segmenta: 1ms
HTTP/1.1 brzina
• Stranica koja učitava 11 slika

• HTTP/1.0: 1421 ms
• Konekcija i stranica: 100 ms + 103ms
• 11 slika, 6x (konekcija 100ms + zahtjev/odgovor: 103ms)
• HTTP/1.1: 326 ms
• Konekcija i stranica: 100 ms + 103ms
• 11 slika: 123ms
• 51ms za prvi zahtjev i 72 ms za 11 odgovora (50 ms latencije i 22 ms packetization delay)
SPDY
• Protokol od Google-a
• Pipelining zahtjeva
• Micanje redundantnih zaglavlja
• Baza HTTP/2.0
BitTorrent
Torrent datoteka
• Torrent datoteka (.torrent) opisuje datoteku za prijenos
• Imenuje trackera, poslužitelja koji prati tko sudjeluje
• Dužina datoteke, dužina jednog dijela, SHA1 hash dijelova
• Dodatni metadata
• Specificira vrstu trackera
• Klijent komunicira trackera i počinje komunikaciju s ostalima
• Trackerless torrenti koriste DHT (distributed hash table)
• Informacija o swarmu je spremljena na puno čvorova
• Mehanizam distributivne koordinacije
Torrent datoteka
• BitTorrent razdijeli datoteku na N broj dijelova
• Za dobru propusnost, dijelovi su od 256kB – 1MB
• Za latenciju, podijeljeni u poddijelove
• Hash dijelova osigurava end-to-end integritet
• Hash izračuna sažetak dijela
• Kriptografska funkcija
• Blacklisting peers – HBO serije
BitTorrent
• Klijenti međusobno razmjenjuju podatke koje dijelove imaju
• Prvo se skidaju najrijeđi dijelovi: rarest first policy
• Kada je prijenos pri kraju zatraži se konekcija s više peer-ova
• Tit-for-Tat policy: šalju se podaci članovima koji vama šalju
• Oni koji ne šalju su „ugušeni”

You might also like