Šta je mreža?
Cilj učenja: Pre nego što počneš da kucaš Linux mrežne komande, treba da razumeš šta se zapravo dešava ispod njih — šta je IP adresa, šta je port, čemu služi DNS i kako računari "razgovaraju" preko mreže.
Mreža u jednoj rečenici
Mreža je skup računara koji razmenjuju podatke. Da bi razmena radila, svaki učesnik mora imati adresu (gde je), mora postojati dogovor o pravilima razgovora (kako se obraćaju), i mora postojati način da se ime prevede u adresu (jer ljudi pamte imena, ne brojeve).
Ti pojmovi imaju imena: IP adresa, protokol, DNS. Kreni redom.
IP adresa — adresa računara
IP adresa je jedinstven identifikator računara na mreži. Funkcioniše kao kućna adresa: ako neko hoće da ti pošalje paket, mora znati gde tačno da ga isporuči.
Najčešća vrsta je IPv4 — četiri broja od 0 do 255, odvojena tačkama:
192.168.1.10
8.8.8.8
142.250.185.46
Postoji i IPv6, novija verzija sa znatno više raspoloživih adresa. Zapisuje se duže (2001:db8::1) i koristi se sve više, ali za sad je dovoljno znati da postoji — princip je isti.
Lokalne i javne IP adrese
Adrese se dele na dve grupe:
-
Lokalne (privatne) adrese se koriste unutar jedne kućne ili kancelarijske mreže. Tipični opsezi:
192.168.0.0–192.168.255.25510.0.0.0–10.255.255.255172.16.0.0–172.31.255.255
Tvoj laptop, telefon i štampač u kući verovatno imaju adrese tipa
192.168.1.x. Te adrese su validne samo unutar tvoje mreže — internet ih ne vidi. -
Javne adrese su jedinstvene na celom internetu. Server
google.comili tvoj kućni ruter (kad gleda ka spolja) imaju javnu adresu.
Analogija: Lokalna adresa je kao broj sobe u zgradi — važi samo unutar te zgrade. Javna adresa je kao adresa cele zgrade na ulici — jedinstvena u celom gradu.
Port — vrata ka konkretnom servisu
IP adresa govori "koji računar". Port govori "koji servis na tom računaru".
Na jednom serveru istovremeno mogu raditi web server, mejl server, baza podataka i SSH. Svaki sluša na drugom portu — broju od 1 do 65535. Klijent koji se obraća serveru mora znati i adresu i port.
Analogija: IP adresa je adresa zgrade. Port je broj stana. Da bi paket stigao do prave osobe, treba ti i ulica i broj stana.
Neki portovi su standardizovani — uvek se koriste za isti servis:
| Port | Servis |
|---|---|
| 22 | SSH (siguran udaljeni terminal) |
| 25 | SMTP (slanje mejla) |
| 53 | DNS |
| 80 | HTTP (web, nesigurno) |
| 443 | HTTPS (web, sigurno) |
| 3306 | MySQL baza |
| 5432 | PostgreSQL baza |
Kad u browseru otkucaš https://primer.rs, browser zna da treba da se obrati portu 443 jer je to standard za HTTPS.
Protokol — pravila razgovora
Protokol je dogovor o tome kako računari razmenjuju podatke. Definiše šta se kada šalje, kako izgleda zaglavlje poruke, ko prvi govori, kako se završava razgovor.
Na najnižem nivou postoje dva osnovna transportna protokola:
-
TCP (Transmission Control Protocol) — pouzdan. Garantuje da paketi stignu, da budu u tačnom redosledu i bez grešaka. Ako se nešto izgubi, šalje ponovo. Koristi se kad je važno da podaci budu tačni: web stranice, mejlovi, kopiranje fajlova.
-
UDP (User Datagram Protocol) — brz, ali bez garancije. Šalje paket i ne brine se da li je stigao. Koristi se gde je važnija brzina od savršene tačnosti: video pozivi, streaming, online igre, DNS upiti.
Iznad TCP-a i UDP-a rade aplikacijski protokoli koje koristiš svakodnevno:
- HTTP / HTTPS — web (HTTPS je HTTP sa enkripcijom)
- SSH — siguran udaljeni terminal
- FTP / SFTP — prenos fajlova
- SMTP / IMAP — mejl
Svi oni su "razgovori" — definisana sekvenca poruka između klijenta i servera.
DNS — telefonski imenik interneta
Računari komuniciraju IP adresama, ali ljudi pamte imena. Ti pišeš google.com, ne 142.250.185.46. Ko prevodi jedno u drugo?
DNS (Domain Name System) je sistem koji ime domena (npr. wikipedia.org) pretvara u IP adresu (npr. 208.80.154.224). Funkcioniše kao gigantski distribuirani telefonski imenik.
Analogija: Znaš ime osobe ali ne i njen broj telefona. Otvoriš imenik (DNS), pronađeš ime, dobiješ broj. Tek onda pozivaš.
Bez DNS-a bi morao da pamtiš IP adresu svakog sajta koji posetiš.
Klijent-server model
Većina mrežne komunikacije danas radi po klijent-server principu:
- Server je program koji čeka. Sluša na nekom portu i odgovara na zahteve. Web server, mejl server, baza, SSH server.
- Klijent je program koji traži. On pokreće razgovor — šalje zahtev serveru i čeka odgovor. Browser, mejl klijent,
sshkomanda.
Server uvek "radi", klijent se javlja kad mu zatreba nešto.
Nije svaka komunikacija ovakva — postoji i peer-to-peer model gde su svi učesnici ravnopravni (BitTorrent, neki sistemi za poruke). Ali za početak je dovoljno da razumeš klijent-server.
Gateway — izlaz iz tvoje mreže
Tvoja kućna mreža je mali skup uređaja. Kako paket koji ide ka google.com izlazi iz tvog stana?
Gateway (mrežni prolaz) je uređaj koji povezuje tvoju lokalnu mrežu sa ostatkom interneta. Najčešće je to tvoj kućni ruter. Sav saobraćaj koji ide na neku adresu van lokalne mreže prolazi kroz gateway.
Analogija: Gateway je kapija stambene zgrade. Kad nosiš pismo komšiji u istoj zgradi, ne ideš kroz kapiju. Kad nosiš pismo nekom napolju, moraš proći kroz kapiju.
Praktičan primer: šta se dešava kad otvoriš https://primer.rs
Da povežeš sve pojmove, evo šta se dogodi između trenutka kad pritisneš Enter i trenutka kad ti se prikaže stranica:
- DNS upit — Browser pita DNS server: "koja je IP adresa za
primer.rs?" - DNS odgovor — DNS server odgovara: "to je
93.184.216.34." - Konekcija — Browser otvara TCP konekciju ka
93.184.216.34na port443(jer je HTTPS). Paketi prolaze kroz tvoj gateway na putu ka serveru. - HTTPS rukovanje — Klijent i server se dogovore o enkripciji.
- HTTP zahtev — Browser šalje: "daj mi početnu stranicu."
- HTTP odgovor — Server vraća HTML stranicu.
- Renderovanje — Browser prikazuje stranicu.
Sve ovo traje obično ispod sekunde, ali iza toga rade DNS, TCP, HTTPS, rutiranje preko gateway-a i još mnogo toga.
Mali pojmovnik
| Pojam | Šta je |
|---|---|
| IP adresa | Jedinstvena adresa računara na mreži (npr. 192.168.1.10) |
| IPv4 / IPv6 | Dve verzije IP adresa |
| Lokalna adresa | Važi samo unutar jedne mreže (192.168.x.x, 10.x.x.x) |
| Javna adresa | Jedinstvena na celom internetu |
| Port | Broj koji označava konkretan servis na računaru (npr. 443) |
| Protokol | Pravila razgovora između računara (HTTP, SSH, TCP, UDP) |
| TCP | Pouzdan transportni protokol |
| UDP | Brz transportni protokol bez garancije |
| DNS | Sistem koji ime domena pretvara u IP adresu |
| Klijent | Program koji šalje zahtev |
| Server | Program koji odgovara na zahteve |
| Gateway | Uređaj koji povezuje lokalnu mrežu sa internetom (najčešće ruter) |