IPv4

**IPv4 internet protokol verzija 4**: Ova verzija internet protokola je aktuelna, definisana je u dokumentu , septembra 1981. godine.

### Zaglavlje internet protokola IPv4
IP protokol, takođe, opisuje standardnu strukturu paketa kojim podaci putuju kroz mrežu. Princip je enkapsulacija (pakovanje) informacije u strukture pogodne za prenos. Analogija je poštanski paket. U zaglavljju paketa, pored adrese pošiljaoca i primaoca podataka, stoje još i informacije o samom paketu koje obaveštavaju kako paket treba da putuje (koliko je stanica već prošao, da li se može deliti u manje pakete, itd.)




     **bit 0-3**   **4-7**  **8-15**
      **20-31**

    
    
    
    
    
    
    
    

     Verzija  Dužina  Tip servisa
     Ukupna dužina

     Identifikacija  0 

D

F



M

F

     Mesto fragmenta

     TTL  Protokol 
     Čeksuma (Provera bitskih grešaka)

     Izvorišna internet adresa

     Odredišna internet adresa

     Opcije

     Podatak (TCP segment ili UDP datagram)



Navodimo informacije o poljima u zaglavlju IP :
* *Verzija* (4 bita): Prikazuje iznos verzije kako bi se mogao dozvoliti razvoj protokola. Vrednost polja je 4.
* *Dužina Internet Zaglavlja* (IHL) (4 bita): Dužina zaglavlja u 32-bitnoj reči. Minimalna vrednost je pet za minimalnu dužinu zaglavlja od 20 bajta.
* *Tip servisa* -{TOS}- () (8 bita): U prethodnom opisu servisa, ovo polje se odnosilo na polje tip Servisa i određivalo je pouzdanost, prednost, odlaganje i parametre propusne moći. Ovakva iterpretacija je sada zamenjena. Prvih 6 bita polja Tipa Servisa sada pripada polju DS (), a ostala 2 bita rezervisana su za polje ECN ().
* *Ukupna dužina* (16 bita): Ukupna dužina datagrama, uključujući zaglavlje i podatke, izraženo je u bajtovima (oktetima).
* *Identifikacija* (16 bita): Niz brojeva, koji zajedno sa izvorišnom adresom, odredišnom adresom i korisničkim protokolom namerava da jedinstveno identifikuje paket. Prema tome, ovaj broj bi trebao da bude jedinstven za izvorišnu adresu, odredišnu adresu i korisnički protokol datagrama dok god je on u internetu.
* *Kontrolni bitovi* (3 bita): Samo dva od ovih bita su trenutno definisana. -{MF}- () se koristi za fragmentaciju i ponovno sklapanje, kao što je malopre objašnjeno. Bit -{DF}- () zabranjuje fragmentaciju kada se to traži. Ovaj bit može biti od velike koristi kada se zna da destinacija nema kapaciteta da sklopi fragmente. Ipak, ako je ovaj bit postavljen, paket će biti odbačen ako premaši maksimalnu veličinu mreže na nekoj ruti. Da se ovo ne bi desilo, bilo bi pametno koristiti izvorišno rutiranje da bi se zaobišle mreže koje imaju definisanu malu maksimalnu veličinu paketa.
* *Mesto fragmenta* (13 bita): Pokazuje gde je u originalnom datagramu mesto ovom fragmentu, iskazano u 64 bita. To znači da fragmenti koji nisu poslednji fragment moraju da sadrže polje podataka koje je deljivo sa 64 bita u dužini.
* *Vreme života* (TTL) (8 bita): Pokazuje koliko dugo, u skokovima, je dozvoljeno datagramu da bude u internetu. Svaki ruter koji procesira datagram mora da smanji TTL za najmanje jedan, tako da je TTL donekle sličan brojaču skokova.
* *Protokol* (8 bita): Pokazuje protokol višeg nivoa kome treba proslediti paket; prema tome, ovo polje identifikuje tip zaglavlja segmenta (sloj transporta). Vrednosti 1 (00000001) za ICMP, 6 (00000110) za -{TCP}-, 17 (00010001) za -{UDP}-
* *Zaštitna suma (Čeksuma)* (16 bita): Kod za detektovanje greške koji je privezan samo zaglavlju. Zbog menjanja nekih polja tokom puta (npr. vreme u životu, fragmentaciona polja), ovo polje se reverifikuje i procenjuje u svakom ruteru. Polje se formira tako što se uzmu jedinice iz 16 bita i dodaju se sve jedinice iz svih 16-bitnih reči u zaglavlju. Zbog računanja, polja čeksume su inicijalizovana na vrednost nula.
* *Izvorišna adresa* (32 bita): Kodirano da bi se dozvolile različite kombinacije bita za specificiranje mreže ili sistema prikačenog na mrežu.
* *Odredišna adresa* (32 bita): Iste katakteristike kao izvorišna adresa.
* *Opcije (promenljivo)*: Kodira opcije tražene od strane pošiljaoca.
* *Punjenje (promenljivo)* (): Koristi se da bi se moglo garantovati da je zaglavlje datagrama spoj 32-bitnih dužina.
* *Podaci višeg sloja (promenljivo)*: Ovo polje mora biti spoj 8-bitnih dužina celih brojeva. Maksimalna dužina datagrama (polja podataka + zaglavlja) je 65,535 bajtova

## Reference