Gym
lesson

Š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.0192.168.255.255
    • 10.0.0.010.255.255.255
    • 172.16.0.0172.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.com ili 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, ssh komanda.

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:

  1. DNS upit — Browser pita DNS server: "koja je IP adresa za primer.rs?"
  2. DNS odgovor — DNS server odgovara: "to je 93.184.216.34."
  3. Konekcija — Browser otvara TCP konekciju ka 93.184.216.34 na port 443 (jer je HTTPS). Paketi prolaze kroz tvoj gateway na putu ka serveru.
  4. HTTPS rukovanje — Klijent i server se dogovore o enkripciji.
  5. HTTP zahtev — Browser šalje: "daj mi početnu stranicu."
  6. HTTP odgovor — Server vraća HTML stranicu.
  7. 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)