IPv4

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

IPv4 ( Internet Protocol versiunea 4 ) este a patra revizuire a Protocolului Internet . Protocolul este descris în RFC 791 , publicat de IETF în septembrie 1981 și este cel mai utilizat la nivelul rețelei , deoarece face parte din suita de protocol Internet .

În 1998 a fost sugerată o nouă versiune a Protocolului Internet, numită IPv6 , din cauza problemei saturației IPv4 . Cu toate acestea, începând din 2011 , IPv6 este mai puțin utilizat decât versiunea 4 [1] .

Pachetul IPv4

Antetul pachetului IPv4 este format din 13 câmpuri, dintre care 1 este opțional (marcat în diagramă cu un fundal roșu) și apelat cu numele de Opțiuni . Câmpurile sunt inserate cu cel mai semnificativ octet plasat primul (notație big-endiană ) și în cadrul octetilor unici bitul cel mai semnificativ este primul (cel cu index 0).

+ Biți 0-3 4-7 8-15 16-18 19–31
0 Versiune Internet
Lungimea antetului
Tipul serviciului
(acum DiffServ și ECN )
Lungime totală
32 Identificare Steaguri Fragment Offset
64 Timpul sa traiesti Protocol Suma de verificare a antetului
96 Sursa adresei
128 Adresa de destinație
160 Opțiuni (opțional)
160
sau
192+

Data
  • Versiune [4 biți] - Indică versiunea pachetului IP: pentru IPv4, are o valoare de 4 (de aici și numele IPv4);
  • Lungime antet Internet ( IHL ) [4 biți] - Indică lungimea (în cuvinte de 32 biți) a antetului pachetului IP sau decalajul câmpului de date; această lungime poate varia de la 5 cuvinte (20 octeți) până la 15 cuvinte (60 octeți) în funcție de prezența și lungimea câmpului Opțiuni opționale;
  • Tipul de serviciu ( TOS ) [8 biți] - În specificația protocolului inițial ( RFC 791 ), acești biți au fost utilizați de gazda de trimitere pentru a specifica modul și în special precedența cu care gazda de recepție ar trebui să se ocupe de datagrama:
    • bit 0-2: Precedență
    • bit 3: Latență (0 = normal, 1 = scăzut)
    • bit 4: Randament (0 = normal, 1 = mare)
    • bit 5: Fiabilitate (0 = normal, 1 = mare)
    • bit 6-7: Rezervat pentru utilizare viitoare
De exemplu, o gazdă ar putea alege o latență scăzută, în timp ce alta ar putea prefera o fiabilitate ridicată. În practică, această utilizare a câmpului TOS nu a prins pe scară largă.
După multe experimentări și cercetări, acești 8 biți au fost redefiniți recent și au funcția de servicii diferențiate (DiffServ) în punctele de cod IETF și Explicit Congestion Notification (ECN) (a se vedea RFC 3168 ), necesare pentru noile tehnologii bazate pe fluxul de date. timp real, cum ar fi Voice over IP ( VoIP ) utilizat pentru schimbul interactiv de date vocale;
  • Lungime totală [16 biți] - Indică dimensiunea (în octeți) a întregului pachet, inclusiv antetul și datele; această lungime poate varia de la un minim de 20 de octeți (antetul minim și câmpul de date gol) la un maxim de 65535 octeți. În orice moment, fiecare gazdă trebuie să poată gestiona datagrame cu o dimensiune minimă de 576 octeți în timp ce sunt autorizate, dacă este necesar, să fragmenteze datagrame de dimensiuni mai mari;
  • Identificare [16 biți] - Folosit, conform specificațiilor inițiale, pentru a identifica în mod unic diferitele fragmente în care un pachet IP ar fi putut fi „spart”. Cu toate acestea, unele experimentări ulterioare au sugerat utilizarea acestui câmp în alte scopuri, cum ar fi adăugarea funcționalității de urmărire a pachetelor;
  • Steaguri [3 biți] - Biți folosiți pentru controlul fragmentării protocolului și datagramelor:
    • Rezervat - întotdeauna setat la 0. În ziua de aprilie , în RFC 3514 s-a propus să-l folosim ca „ bitul răului ”;
    • DF ( Don't Fragment ) - dacă este setat la 1 indică faptul că pachetul nu trebuie fragmentat; dacă un astfel de pachet nu poate fi redirecționat de o gazdă fără a fi fragmentat, este pur și simplu aruncat. Acest lucru poate fi util pentru „inspectarea” capacității de gestionare a diferitelor gazde din calea de rutare ;
    • MF ( Mai multe fragmente ) - dacă este setat la 0 indică faptul că pachetul este ultimul fragment sau singurul fragment al pachetului original, prin urmare toate celelalte fragmente ale acestuia au bitul MF setat la 1. Desigur, acest bit va fi întotdeauna 0 chiar și în toate datagramele care nu au fost fragmentate.
  • Fragment Offset [13 bit] - Indică offsetul (măsurat în blocuri de 8 octeți) al unui anumit fragment în raport cu începutul pachetului IP original: primul fragment are offset 0. Offsetul maxim este, prin urmare, egal cu 65528 octeți care, inclusiv antetul, ar putea depăși dimensiunea maximă de 65535 octeți ai unui pachet IP;
  • Timpul de viață ( TTL ) [8 biți] - Indică timpul de viață ( timpul de viață ) al pachetului, necesar pentru a evita persistența sa nedeterminată în rețea în cazul în care nu poate fi livrat destinatarului. Din punct de vedere istoric, TTL măsura „secundele de viață” ale pachetului, în timp ce acum măsoară numărul de „hamei” de la nod la nod din rețea: fiecare router care primește pachetul înainte de a-l redirecționa scade TTL (modificând în consecință câmpul Suma de verificare a antetului ), atunci când aceasta ajunge la zero, pachetul nu mai este redirecționat, ci aruncat. De obicei, atunci când un pachet este aruncat din cauza epuizării TTL, un mesajICMP este trimis automat expeditorului de pachete, specificând codul de solicitare expirat ; primirea acestui mesaj ICMP este baza mecanismului de trasare ;
  • Protocol [8 biți] - Indică codul asociat cu protocolul utilizat în câmpul de date al pachetului IP: de exemplu, protocolul TCP este asociat cu codul 6 , codul 17 este asociat cu UDP , în timp ce codul 41 este asociat cu IPv6 . Lista codurilor diferitelor protocoale, definite inițial în RFC 790 , este menținută și gestionată de către Internet Assigned Numbers Authority .
  • Header Checksum [16 bit] - Acesta este un câmp utilizat pentru verificarea erorilor antetului. La fiecare hop, suma de control este recalculată (conform definiției date în RFC 791) și comparată cu valoarea acestui câmp: dacă nu există potrivire, pachetul este aruncat. Trebuie remarcat faptul că nu se efectuează nicio verificare a prezenței erorilor în câmpul Date prin atribuirea acestuia la nivelurile superioare;
  • Adresa sursă [32 biți] - Indică adresa IP asociată cu gazda expeditorului de pachete.
Rețineți că este posibil ca această adresă să nu fie cea a expeditorului „real” în cazul traducerilor prin NAT . De fapt, dacă o gazdă intermediară efectuează această traducere, aceasta înlocuiește adresa expeditorului cu propria sa, având apoi grijă să restabilească adresa originală la toate mesajele de răspuns care ajung la expeditorul original;
  • Adresa de destinație [32 biți] - Indică adresa IP asociată cu gazda destinatarului pachetului și respectă aceleași reguli ca și câmpul Adresă sursă ;
  • Opțiuni - Opțiuni (opționale și neutilizate pe scară largă) pentru utilizări mai specifice ale protocolului, cum ar fi informații despre routere;
Amintiți-vă că valoarea câmpului IHL trebuie să fie suficient de mare pentru a include, de asemenea, toate opțiunile și, dacă acestea sunt mai scurte decât un cuvânt, padding-ul necesar pentru a completa cei 32 de biți. Mai mult, în cazul în care lista de opțiuni nu coincide cu sfârșitul antetului, trebuie adăugat un marker EOL ( End of Options List ) la sfârșitul acestuia.
În cele din urmă, trebuie remarcat faptul că, deoarece pot provoca probleme de securitate, utilizarea opțiunilor LSSR și SSRR ( Loose and Strict Source and Record Route ) este descurajată și multe routere blochează datagramele care conțin aceste opțiuni.

Mai jos este structura conținută în antetul ip.h al bibliotecii GNU C :

 struct iphdr {
#if __BYTE_ORDER == __LITTLE_ENDIAN
    unsigned int ihl: 4;
    versiunea int nesemnată: 4;
#elif __BYTE_ORDER == __BIG_ENDIAN
    versiunea int nesemnată: 4;
    unsigned int ihl: 4;
#else
# error "Vă rugăm să remediați <bits / endian.h>"
#endif
    u_int8_t tos;
    u_int16_t tot_len;
    u_int16_t id;
    u_int16_t frag_off;
    u_int8_t ttl;
    protocol u_int8_t;
    u_int16_t verifica;
    u_int32_t saddr;
    u_int32_t daddr;
    // Opțiunile încep aici.
};

Adresare IPv4

Adresa IPv4 este formată din 32 de biți, este unică în rețeaua căreia îi aparține. Mai mult, această adresă nu trebuie atribuită gazdei, ci conexiunilor fizice la rețeaua pe care gazda o are (în distribuția gazdelor multicolore sau a dispozitivelor de rețea ). Cu toate acestea, s-a verificat că primele țări în care s-a răspândit internetul și, în interiorul lor, primii furnizori, au „apucat” un număr proporțional dezechilibrat de adrese IP. Prin urmare, ultimii furnizori au fost nevoiți să recurgă la un sistem pentru a remedia deficitul de IP atribuit acestora. Prin urmare, au considerat utilizatorii conectați la ei dintr-un oraș întreg ca o singură rețea LAN și, prin urmare, toți echipați cu același IP.

Conceptual, adresa IP constă din două părți:

  1. identificatorul de rețea și precis al subrețelei ;
  2. identificator gazdă .

Notare zecimală punctată

Pentru a simplifica citirea, fiecare adresă IP este descrisă cu 4 numere în bază zecimală, astfel încât fiecare reprezintă un octet (valoarea unui octet variază de la 0 la 255 când o considerăm în baza zece), separate prin simbolul „punct” ; un exemplu de adresă IPv4 este 192.0.34.166.

Adrese speciale

Orice adresă în care identificatorul gazdă are toate 0 se referă la rețea, în timp ce dacă toți biții acestui identificator sunt la 1, adresa se referă la o transmisie directă.

În practică, atunci când un pachet ajunge la un router în care partea gazdă a adresei are toți biții la 1, acesta transmite către toate nodurile subrețelei. Acest comportament a fost exploatat de crackeri pentru a crea atacuri de refuz de serviciu , deci este o idee bună să dezactivați redirecționarea directă a transmisiei pe routere.

Adresarea clasei

Pictogramă lupă mgx2.svg Același subiect în detaliu: clase de adrese IP .

Dacă o gazdă trebuie să comunice cu o altă gazdă din aceeași subrețea, va folosi protocolul layer 2 al rețelei la care este conectat, altfel va trebui să trimită pachetele către un gateway sau router , care va fi conectat la altul rețele și se va ocupa de redirecționarea pachetelor.primite.

Comunicarea între routere are loc prin adrese IP folosind tehnici speciale de adresare pentru a identifica subrețeaua și gazda.

Inițial schema subdiviziunilor celor două componente era în clase pentru care o adresă IP aparținea unei clase (clasă completă ) bazată pe primii 4 biți ai IP.

Cu această schemă, adresa se autoidentifică, deoarece granița dintre cele două componente poate fi determinată cu cei mai semnificativi biți.

Limite

Numărul de adrese unice disponibile în IPv4 este , dar trebuie avut în vedere că nu toate sunt utilizate, deoarece unele sunt rezervate pentru o anumită utilizare (de exemplu, adresele 0.0.0.0, 127.0.0.1 , 255.255.255.255, 192.0.34.166 și clasa 192.168.0.1/16 ) și de ce anumite clase nu sunt exploatate pe deplin datorită împărțirii interne în clase mai mici.

Adresarea la clase , tocmai din acest motiv, are diferite limite datorate mai ales numărului de gazde care pot fi gestionate de diferite clase.

În practică, dacă adresele unice puse la dispoziție de o clasă se epuizează, de exemplu C prin conectarea a mai mult de 255 de gazde, este necesar să se utilizeze o adresă de o clasă superioară.

Schimbarea adresei nu este nedureroasă cu această tehnică, deoarece software-ul de rețea trebuie actualizat cu noile adrese și nu permite o tranziție lină.

În practică, indicatorul unic de rețea nu a putut satisface nevoile de creștere pe care rețelele LAN le-au avut în anii 1980. Deci, pentru a economisi pe prefixele de rețea, trebuiau concepute alte tehnici, cum ar fi mascarea (vezi NAT ), pentru a vă asigura în continuare că IPv4 își poate îndeplini rolul înainte de introducerea IPv6 .

Adresare fără clasă

Adresarea bazată pe clasă este considerată învechită și pentru a permite o mai bună exploatare a adreselor IP disponibile, a fost introdusă adresarea fără clasă sau CIDR .

Modificarea introdusă de CIDR constă în esență în utilizarea măștilor de subrețea de lungime arbitrară, în timp ce adresarea cu clase a permis doar trei lungimi ale măștii de subrețea: / 8, / 16 și / 24. Vechea mască de clasă C (/ 24) este încă populară, dar măștile mai scurte pentru plase mari (/ 23 sau / 22) sau măști mai lungi pentru plase mici (/ 25, / 26, până la / 30 pentru plase sunt de asemenea folosite la punctul).

Biții care sunt la 1 în masca de subrețea fac parte din adresa de subrețea, ceilalți sunt adresa gazdă. În mod normal, masca de subrețea este formată din N biți la 1 urmat de (32-N) biți la 0 și poate fi abreviat la forma / N.

În acest fel nu sunteți legat de un număr fix de biți pentru a determina adresa rețelei, dar biții utili pentru a reprezenta rețeaua, mai degrabă decât gazda, sunt fixați liber.

A se vedea, de asemenea, saturația IPv4 .

Organisme de conducere

Adresele IP sunt unice la nivel mondial și sunt atribuite central de o ierarhie de entități desemnate. Sunt considerate o resursă valoroasă care trebuie gestionată cu grijă. Pentru a consolida acest concept, vorbim de „adrese IP publice”.

Inițial autoritatea responsabilă a fost IANA ( Internet Assigned Number Authority ), după 1998 a fost creată și funcționează și astăzi ICANN ( Internet Corporation for Assigned Names and Numbers ). Este responsabil pentru gestionarea adreselor IP în conformitate cu liniile directoare ale RFC 2050.

Notă

Elemente conexe

Alte proiecte

linkuri externe

Controlul autorității GND ( DE ) 4588596-5
Telematică Portal telematic : accesați intrări Wikipedia care vorbesc despre rețele, telecomunicații și protocoale de rețea