This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Skripta iz kolegija mreže računala 2010
Skripta iz kolegija mreže računalaSastavio Mario Bašić
DNS ( Domain Name Server )................................................................................................................26
Organizacija DNS-a...........................................................................................................................26
Multipleksiranje- Omogučava da jedno sredstvo koristi više korisnika istovremeno
Vremenski multipleks ( TDM )- Određen dio vremena jedan resurs dajemo jednom korisniku, potom drugom itd ...- Svaki korisnik ima cijeli komunikacijski kanal za slanje svoje poruke, ali samo jedan dijelić
Podjela računalnih mreža- Prema prijenosnom mediju:
o Žičneo Bežične
- Prema području na kojemu se rasprostiru ( veličini ):o Lokalne ( LAN – Local Area Network )o Gradske ( MAN – Metropolitan Area Network )o Međugradske ( WAN – Wide Area Network )
Mrežni sloj predstavlja temelj interneta
Mrežni sloj- Temelj mrežnog sloja čine IP adrese i paketi
Ipv4 adrese i paketi- Npr. 192.168.10.12- Jedan oktet=28 tj. _ _ _ _ _ _ _ _ tj. 8 bitova- Maksimalna vrijednost = 255- Binarno:
o 11000000.10101000.0001010.00001100- Mogući broj kombincija od 32 bita je 232
Mrežna maska ( Subnet Mask )- Definira adresu mreže koja se koristi u procesu usmjeravanja
Uz svaku IP adresu vezana je Subnet maska
- Npr. 192.168.10.12/255.255.255.0 ili 192.168.10.12/24- Mrežna maska dijeli IP adresu na dva dijela:
o Mrežni dioo Računalni dio
Npr. 192.168.10.12/255.255.255.0
Za računanje računalnog, mrežnog dijela ili broadcast dijela IP adrese možete koristiti:
Danas se koristi besklasno adresiranje CIDR ( Classless Interdomain Routing )
Svaka IP adresa ima svoju subnet masku
Devil linux- Učitavanje drivera ethernet kartice:
o „modprobe pcnet32“- Ethernet kartica se označava sa:
o „eth0 ili eth1 ili eth2 ; ovisno o rednom broju te kartice u kompjuteru“- Prikaz svih sučelja:
o „ip link sh“- Sučelje je aktivirano kada sadrži zastavicu <up>- Aktiviranje sučelja:
o „ip link set dev <sučelje> up“- Deaktiviranje sučelja:
o „ip link set dev <sučelje> down“- Pregled IP adresa sučelja:
8
Skripta iz kolegija mreže računala 2010
o „ip addr sh“- Za postavljanje IP adrese i subnet maske:
o „ip addr add <adresa>/<maska> dev <sučelje>“- Za brisanje IP adrese i subnet maske:
o „ip addr del <adresa>/<maska> dev <sučelje>“- Učitavanje HR tipkovnice:
o „loadkeys croat“- Aktiviranje mrežnog snifera:
o „tcpdump –i <sučelje>“- Pauziranje procesa:
o „Ctrl+Z“- Ubijanje procesa:
o „Ctrl+C“- Pregled pinganih IP i ethernet adresa:
o „arp“- Prikazuje IP adresu sa tcpdump-om:
o „tcpdump –i <sučelje> -n“
Ethernet lokalne mreže- Standardizacijom ethernet mreža bavi se IEEE pod oznakom 802.3 ( IEEE 802.3 )- Podatkovni sloj dijelimo na:
o LLC ( Logical Link Control )o MAC ( Media Access Control )
- Koriste se bakreni vodiči CAT5e ili CAT6 standarda- Ethernet mreža koristi 48-bitni broj za adresu- xx:xx:xx:xx:xx:xx npr. 00:0c:f1:ae:ba:4c- IEEE određuje privh 24 bita
CSMA/CD- Carrier Sense Multiple Access/Colision Detection
9
Skripta iz kolegija mreže računala 2010
- Pripada MAC podsloju
CSMA/CD je napredniji od ALOHA
Ponašanje CSMA/CD:1. Pogledaj da li netko več nešto šalje2. Ako ne, počni sa slanjem3. Ako dođe do kolizije, pričekaj neko slučajno vrijeme i ponovi postupak
Formati okvira ethernet mreža
DIX ethernet okvir
Preambula - služi za usklađivanje dva računala odnosno njihovih mrežnih kartica
TYPE - Služi za raspoznavanje paketa:
o 0x800 = IP paketo 0x806 = ARP
IEEE 802.3 ethernet okvir
Kako se IP adresa preslikava u ethernet adresu ?
- Koristi se ARP protokol
ARP protokol1. Svim računalima u mreži šalje se upit o IP adresi2. Računalo čija je to IP adresa odgovara samo računalu koje je poslalo taj upit3. Nakon primitka odgovora podatak se privremeno pohranjuje kako se idući put ne bi ponovno
slao upit na mrežu
ARP postupak
e = ethernet adresa ; ip = IP adresa
Mrežni sloj računala A želi poslati paket računalu D. Računalo A zna IP adresu od D, ali treba mu ethernet adresa od D
10
Skripta iz kolegija mreže računala 2010
1. Računalo A šalje ARP upit svima na mreži:a. Eth( BROADCAST, ae, ARPReq( aip, dip ) )
2. Računalo čija je to IP adresa šalje odgovor:a. Eth( ae, de, ARPResp( dip, aip ) )
Kako bi se smanjio broj slanja ARP paketa, rezultati ARP upita se memoriraju u „arp cache“.
3. U ARP tablicu računala A pohranjuju se sljedeći podaci:a. IP adresa b. Ethernet adresac. Vrijeme valjanosti
Postupak provjere prije slanja 1. Je li destinacija = BROADCAST tj. Je li =
a. BROADCAST te mrežeb. Globalni BROADCAST ( 255.255.255.255 )c. BROADCAST loopback sučelja
2. Je li destinacija = local IP tj. Je li =a. Destinacija = destinacijab. Destinacija = localhost ( 127.0.0.1 )
3. Je li destinacija u arp-cache-u4. Ako nije pošalji ARPReq
Ethernet mrežni uređaji
HubKorištenjem hub-a mreža je fizički zvijezda, ali logički je i dalje sabirnica.
Danas za povezivanje koristimo UTP kabel sa RJ45 konektorom.
U slučaju kvara mrežne kartice nekog računala hub može isključiti tu karticu.
Problemi korištenja hub-a- Još uvijek samo jedan može slati- Još uvijek svi mogu vidjeti sav promet- Još uvijek ograničenje velike mreže
Switch
Prednosti switch-a- Povezuje isključivo računala koja komuniciraju- Istovremeno može komunicirati više računala- Računalo može istovremeno slati i primati- Ostala računala ne vide komunikaciju
11
Skripta iz kolegija mreže računala 2010
Princip rada programa u switchuWhile(1){
čekaj na okvir();kada okvir stigne pogledaj od koga je i zapamti računalo + port:pogledaj za koga je;if(znaš za koga je){
pošalji samo njemu;}
else{pošalji svima osim pošiljaocu;}
Elementi u tablici vrijede sve dok ne isteknu ili sve dok računalo koje je upisano u tablicu ne pošalje poruku s drugoga porta.
Switch pamti ethernet adresu i port u tablici.
Petlja
- okviri počinju kružiti između switcheva i umnažati se
- Mreža postaje zagušena i neuporabljiva
Rješenje problema petlje = STP- Spanning Tree Protocol- Dio IEEE specifikacije koja definira ethernet- Imaju ga skuplji switchevi- Oni mogu upravljati portovima te tako izbjegavati petlje- Switchevi pomoču STP protokola uče gdje se nalaze drugi switchevi
12
Skripta iz kolegija mreže računala 2010
Podjela switch-eva
Virtual LAN ( VLAN )- Tehologija koja omogučava da se jedan LAN podijeli na više međusobno nezavisnih mreža- To se postiže modifikacijom ethernet okvira unutar kojeg se ubacuje oznaka VLAN-a kojemu
okvir pripada
Wire Speed- označava da preklopnik može preklapati bez zastoja pri punom opterečenju
Načini preklapanja- store and forward- cut through- fragment free- adaptive switching
Store and forward- prima cijeli paket- provjerava pogreške i odbacuje neispravne okvire- tek nakon provjere šalje cijeli okvir- okvir može doći jednom brzinom, a otići drugom
Cut through- prima prvih 6 okteta okvira ( odredišna adresa ( DA ) ) i odmah šalje okvir na odredišni port- ne provjerava pogreške- vrlo mala latencija ( ovo je dobra stvar )- smanjena pouzdanost- jednaka dolazna i odlazna brzina okvira
13
Skripta iz kolegija mreže računala 2010
Fragment free- prihvača prvih 64 okteta i provjerava pojavu pogreške ( kolizije ), te ako nema iste prospaja- ulaz i izlaz komuniciraju istom brzinom- relativno mala latencija- relativno velika pouzdanost
Adaptive switching- adaptivno prebacivanje između osnovnih načina ( 1 – 3 ), ovisno o broju pojave pogreške i
runtova ( fragmenata manjih od 64 okteta )
Stacking- mogučnost povezivanja više preklopnika koji se potom ponašaju kao jedan
Proslijeđivanje- kako povezati dva LAN-a na mrežnom sloju ?
o Uz pomoć uređaja koji se naziva usmjernik ( router )- Usmjernici su uglavnom računala koja sadrže minimalno dva mrežna sučelja ( kartice )
Funkcija usmjernika- Kada primi paket usmjernik mora odlučiti kamo će ga poslati- Cilj je da paket stigne na odredište
Tablica proslijeđivanja- Služi usmjerniku da odabere dobru rutu za neki paket- Ona određuje sudbinu paketa- U pravim usmjernicima tablice prosljeđivanja su vrlo složene strukture
14
Skripta iz kolegija mreže računala 2010
Karakteristike tablice proslijeđivanja- Svaki redak naziva se ruta- Svaka ruta opisuje nekakvu mrežu tj. Način kako se dolazi do određene mreže
Idući čvor ( next hop )- Ako je polje prazno tada je mreža direktno spojena na usmjernik- Ako polje nije prazno paket se proslijeđuje na navedenu IP adresu
Postupak pretraživanja1. Uzmi odredišnu IP adresu2. Poredaj sve rute po opadajućoj duljini mrežne maske3. Za svaku rutu
a. Uzmi broj bitova u mrežib. Usporedi toliko bitova iz odredišne adrese i odredišne maskec. Stani kada se vrijednosti poklapaju
Defaultna ruta- 0/0 ili 0.0.0.0/0 ili default je posebna ruta koja se uvjek poklapa- Provjerava se zadnja jer ima najkracu mrežnu masku
I obična računala koriste tablice proslijeđivanja. Te tablice su jako male, svega nekoliko zapisa: lokalna mreža, defaultna ruta i loopback ruta.
Podešavanje tablice prosljeđivanja u virtualnim mašinamaBridge = 0
NAT = 8
Host only = 1
- ispisuje tablicu prosljeđivanja:o „ip route sh“
- Dodaje defaultnu rutu u tablicu:o „ip route add default via <ip>“
- Dodaje rutu u tablicu za lokalne mreže:o „ip route add <ip>/<maska> dev <sučelje>“
15
Skripta iz kolegija mreže računala 2010
- Dodaje rutu u tablicu za nelokalnu mrežu preko drugoga rutera:o „ip route add <ip>/<maska> via <ip>“
- Brisanje svih ruta iz tablice:o „ip route flush“
Naredbe za provjeravanje pogreški- „ping“- „traceroute“- „tcpdump“
ICMP- Internet Control Message Protocol- Upravljački protokol mrežnog sloja interneta- Definira poruke koje nose upravljačke informacije- Nema adresiranja- Namjena mu je prijenos informacija o stanju mreže- Prenosi se unutar IP paketa- Tip ICMP poruke razlikuje se prema polju Type- Svaki Tip ima svoj Podtip u polju Code
Echo i Echo reply- Koristi se za ispitivanje ispravnosti mreže ( ping )
Naredba ping- Šalje se poruka Echo s upisanim vremenom slanja- Odrediste odgovara s porukom Echo Reply- Ping ispisuje podatke o pristigloj poruci
Zapisivanje poruke Echo- IP ( izvorište ( SA ) , odredište ( DA ), ICMP( Echo, slijedni broj ) )
Zapisivanje poruke Echo Reply- IP ( izvorište ( SA ), odredište ( DA ) , ICMP( EchoReply, slijedni broj ) )
Istek vremenskog ograničenja ( TTL )- Obavijest o isteku vremenskog ograničenja se javlja kada:
o Polje TTL IP paketa je doseglo nuluo Fragment IP paketa nije pristigao u zadanom roku
Korištenje u naredbi „traceroute“- Pošalje se IP paket s TTL=1
o Prvi usmjernik odgovara s ICMP porukom isteka vremenskog ograničenja
16
Skripta iz kolegija mreže računala 2010
o „time exceeded in transit“- Pošalje se IP paket s TTL=2
o Drugi usmjernik odgovara s ICMP porukom isteka vremenskog ograničenjao „time exceeded in transit“
- Itd ...
Zapis paketa- IP ( izvorište ( SA ) , odredište ( DA ) , ICMP ( TimeExceeded() ) )
Modificiranje IP paketa od strane rutera ( usmjernika )1. Usmjernik primi poruku2. Prije nego pogleda u tablicu prosljeđivanja, umanji TTL u IP paketu za jedan3. Pogleda koji je TTL upisan u IP paketu4. Ako je TTL=0 odbaci paket, inače pogleda u tablicu prosljeđivanja
Naredba za dobivanje IP adrese servera ( Windows )- „nslookup –type=A <url>“- Npr. „nslookup –type=A www.google.com“
Mjesto u linuxu za podešavanje DNS servera- „/etc/resolv.conf“
Editori za linux- Pico- Joe- Nano- Vi
SNAT- Source Network Address Translation- Za SNAT je zadužen firewall
- „-o“ = output interface- „-p“ = protocol- „—icmp-type“ = određeni tip ICMP-a- „-P“ = policy ( defaultna politika )- „-m“ = učitavanje modula za detaljnije ispitivanje
Moguće akcije:- ACCEPT- DROP- LOG
Tablice u lancimaFILTER – služi za filtriranje paketa
MANGLE – služi za modificiranje paketa
NAT – služi za promjenu adresa u IP paketima ( Network Address Translation )
Prijenosni slojPrijenosni protokoli prenose podatke između krajeva ( end-to-end ). Izolira korisnike od specifičnosti računalnih mreža. Koriste se portovi od 0 do 65535. Operacijski sustav aplikaciji uvijek daje zadnji korišteni port uvećan za 1. Ne reciklira portove.
Podjela prijenosnog sloja
UDP ( User Datagram Protocol )
PonavljanjeMREŽNI SLOJ
- Brine se o prijenosu paketa između različitih mreža
PODATKOVNI SLOJ
- Brine se o prijenosu okvira između dva direktno spojena uređaja
FIZIČKI SLOJ
- Brine se o prijenosu pojedinih bitova između dva direktno spojena uređaja
20
Skripta iz kolegija mreže računala 2010
UDP okvirSvaki UDP paket je samostalna jedinica.
Primjeri upotrebe UDP-a- Kada nije bitno da li će koji paket biti izgubljen ( Audio i video toleriraju gubitke )- Kada se šalje istovremeno do više aplikacija ( difuzija u grupi )- Kada na poslužitelju želimo imati što manje podataka o pojedinim konekcijama
Mrežne usluge se općenito koriste putem socket API-ja
SOCKET- Je standardizirano sučelje na nivou operacijskog sustava
TCP ( Transmission Control Protocol )
Alternating Bit Protocol ( ABP )- Ako je primljen neispravan paket šalje se NACK# ( Negative acknowledgment )- Ako je primljen ispravan paket šalje se ACK# ( Positive acknowledgment )- # = redni broj ( 0 ili 1 )
21
Skripta iz kolegija mreže računala 2010
Glavni problem Alternating Bit ProtokolaNEEFIKASNOST – veća je što je veći umnožak kašnjenja i brzina veze
Rješenje problemaSlanje više paketa bez potvrde
Postoje dvije varijante protokola:
- Protokol s vraćanjem ( go back N )- Protokol sa selektivnim vraćanjem ( selective repeat )
Natuknice:- Za svaki paket očekujemo potvrdu. - Potvrda potvrđuje primitak svih paketa do iskljucivo toga broja. - Obavezno uvođenje vremenskog ograničenja.- Ako potvrda ne stigne nanovo poslati paket.
Funkcije / razredi u javi za TCPPogledati sljedeće datoteke tcpclient.java i tcpserver.java.
Datoteke se pokreću iz komandne linije s sintaksom:
„java –cp . tcpclient <ip od poslužitelja> <port od poslužitelja>“ – za pokretanje klijenta
„java –cp . tcpserver <port koji zelimo koristiti>“ – za pokretanje servera
POSLUŽITELJServerSocket – TCP pristupna točka poslužitelja koju vežemo na zadani port ( bind ) i koja je pasivna
.bind() – metoda koja povezuju pristupnu točku na zadani port
.accept() – provodi 3-way hand-shake ( uspostavu TCP spoja ) i vraća novu pristupnu točku kroz koju se može komunicirati s klijentom
KLIJENTSocket – općenita pristupna točka za TCP
.connnect() – metoda kojom klijent traži uspostavu spoja ( započinje i provodi postupak 3-way hand-shake )
.close() – metoda za zatvaranje pristupne točke
.getInputStream() – vraća „kraj za čitanje“ pristiglih podataka
.getOutputStream() – vraća „kraj za pisanje“ podataka
DataInputStream i DataOutputStream su pomoćni razredi za čitanje, pisanje kompleksnih tipova podataka ( stringovi, brojevi ... )
.flush() – šalje podatke iz spremnika za slanje na drugu stranu
TCP numerira prenesene oktete, a ne poruke. Redni broj poruke ACK potvrđuje sve što je poslano s rednim brojem manjim od toga.
23
Skripta iz kolegija mreže računala 2010
Tok TCP komunikacije između poslužitelja i klijenta
Raskid TCP spoja
24
Skripta iz kolegija mreže računala 2010
Raskid spoja može inicirati bilo koja strana. Zastavica FIN oznaćava zahtjev za raskidom spoja. Spoj se može raskinuti na dva načina:
- Poluzatvorena veza- Zatvorena veza
Vezu se može zatvoriti na tri načina:
- U 4 latencije:o Klijent pošalje zahtjev za raskidom spoja, poslužitelj prihvati zahtjev tj. Pošalje ACK.
Zatim poslužitelj pošalje zahtjev za raskidom spoja, što klijent prihvati tj. Pošalje ACK.- U 3 latencije:
o Klijent pošalje zahtjev za raskidom spoja, poslužitelj prihvati zahtjev tj. Pošalje ACK i u istoj poruci pošalje FIN. Zatim klijent prihvača FIN te šalje potvrdan odgovor ACK.
- U 2 latencije:o U isto vrijeme i klijent i poslužitelj pošalju poruku sa zastavicom FIN. Oboje prime
poruke prihvate ih te pošalju ACK-ove
HTTP ( Hypet Text Transfer Protocol )- Koristi se za prijenos web stranica- Koristi TCP ili UDP- Za njega je rezerviran port :80- Spada u aplikacijski sloj- Definiran je 80-tih godina
Karakteristike HTTP-a- HTTP je jednostavan upit/odgovor ( request/response ) protokol. (Klijent se spaja na
poslužitelja, predaje zahtjev i prihvaća odgovor )- HTTP je protokol bez stanja ( Poslužitelj smatra sve pristupe različitim i međusobno
nepovezanim )
Primjer jednostavnog HTTP zahtjeva za osnovnom stranicomGET / HTTP/1.1
GET = metoda
KRAJ zahtjeva označava se praznom linijom.
Koristi se verzija 1.1 HTTP-a, osim nje koristi se i 1.0
Dodatni atributi koji se mogu pojaviti u zahtjevuAccept = klijent može reći koje vrste datoteke želi
Accept: text/plain; q=0.5 , text/html
25
Skripta iz kolegija mreže računala 2010
Text/x-dvi; q=0.8 , text/x-c
Accept-Charset = prihvatljivi kodni raspored
Accept-Language = prihvatljivi jezici
Connection = da li se veza zatvara nakon odgovora
Referer = URL s kojega klijent pristupa
User-Agent = korisnikov agent ( PR )
PROXYProxy je HTTP poslužitelj koji prihvaća zahtjev od klijenta i šalje ga „pravom“ poslužitelju.
Razlozi upotrebe- Pohranjuje često tražene stranice pa može smanjiti opterećenje web poslužitelja- Mogu se uvesti kontrole pristupa pojedinim stranicama koje firewall ne može ostvariti- Može filtrirati sadržaj stranica
DNS ( Domain Name Server )- Pretvara imena računala u IP adrese- Koristi UDP :53 za slanje informacija
Kako bismo saznali nečiju IP adresu koristiti čemo naredbu „nslookup“. Primjer. Da bi saznali IP adresu od VERN-a trebamo izvršiti sljedeću naredbu: „nslookup www.vern.hr“. Ta naredba za nas šalje upit DNS poslužitelju i ispisuje primljeni odgovor.
- DNS također omogučava pretvaranje IP adrese u ime
No to uvijek ne radi, ovisno o tome da li je administrator podesio DNS poslužitelj.
- Jedna IP adresa može imati više imena, također jedno ime može imati više IP adresa. Razlog tome je postizanje visoke raspoloživosti
Organizacija DNS-aPrije DNS-a na jednom mjestu na Internetu postojala je datoteka sa svim parovima IP adresa/ ime računala.
- Za svako novo računalo trebalo je čekati osvježavanje datoteke- Veliko opterečenje na poslužitelju koji je posluživao datoteku- Internet je u to vrijeme bio daleko manji u odnosu na današnje stanje
Odlučeno je kako DNS treba biti distribuiran i hijerarhijski.
DNS hijerarhija kreće od korijene domene ( root ). Unutar pojedine domene mogu se nalaziti poddomene ili računala. Puno ime računala dobivamo tako da isčitavamo odozdo prema gore. Za svaku domenu brine se jedan ili više poslužitelja.
I imena poslužitelja za pojedinu domenu smještena su u DNS poslužiteljima.
- Primjerice, kako bi saznali koji su DNS poslužitelji zaduženi za vern.hr domenu koristimo nslookup naredbu na sljedeći naćin: „nslookup –type=ns vern.hr“
Naredba nslookup pita lokalni DNS poslužitelj. Lokalni DNS poslužitelj iterativno traži odgovor. Odgovori se privremeno pohranjuju kako bi idući puta upit bio brži.
- 13 root DNS poslužitelja čuva podatke o top level domenama.
Postoje dva načina razrješavanja upita:
- Rekurzivno - prvi puta drugoga, zatim drugi pita trecega, zatim treci pita cetvrtoga .. i tako sve dok se ne dobije onaj pravi. Zatim odgovor od pravoga ide preko svih prethodnih, preko kojih se doslo do pravoga
- Iterativno - odbija rekurziju, ali šalje podatak tko zna više