Așa cum am mai spus încerc să orientez blogul din ce în ce mai mult spre partea de rețelistică. Astăzi, urmează primul meu articol scris din ceea ce am învățat. Poate că cei care vor ajunge aici, își vor găsi răspunsul în rândurile de mai jos, dacă nu sunt invitați să pună întrebări, iar în limita în care voi putea, voi răspunde la acestea. Nu pretind că le știu pe toate, dacă cineva consideră că am greșit îl rog să-mi atragă atenția. Ajunge cu introducerea, hai să discutăm despre IP-uri.
Ce sunt IP-urile?
IP este acronimul pentru Internet Protocol. El definește un număr scris pe 32 de biți, care identifică un calculator într-o rețea. Deși mulți dintre noi știm că forma IP-ului este ceva de genul 192.168.0.1, forma cu care calculatorul, switchurile și routerele lucrează este 11000000101010000000000000000001 (același lucru ca IP-ul de mai sus). Oamenii folosesc totuși prima formă – zecimală – în defavoarea celei de-a doua – binară – pentru că este mult mai ușor de reținut.
Cum se calculează IP-ul?
Algoritmul este destul de simplu. Primul pas este împărțirea IP-ului în formă binară în 4 bucăți de câte 8 biți fiecare. Apoi fiecare bit al octetului indica coeficientul lui 2 la puterea x, unde x este prioritatea bitului. x=7 daca vorbim de primul bit din octet, x=6 pentru al doilea bit … x=0 pentru ultimul bit.

Bineînțeles în aceeași manieră se trec în zecimal și ceilalți octeți. Pentru a obține codul binar al unui număr scris pe 8 biți (numărul maxim fiind 255), trebuie să gândim ca un bancomat. Îi dai clientului banii ceruți în cât mai puține bancnote cerute. Spre exemplu dacă cineva îmi cere 168 și am la dispoziție bancnote de 128, 64, 32, 16, 8, 4, 2 și 1, cel mai ușor, îmi va fi să-i dau o banconotă de 128, una de 32 și încă una de 8.

Dacă vă întrebați la ce sunt bune operațiile astea, răspunsul este următorul. Înțelegerea IP-ului este bază pentru identificarea lui la o clasă, în subnetizări și în verificarea dacă două sau mai multe hosturi/interfețe fac parte din aceeași subrețea.
Clase de IP-uri
Clasa A – IP-urile din clasa A, au forma primului octet 0xxxxxxx. Asta înseamnă că bitul cu cea mai mare prioritate este fixat la 0, iar celelate pot varia între 0 și 1. Primul IP din clasa A este 0.0.0.0 iar ultimul este 0111 1111.1111 1111.1111 1111.1111 1111 adică 127.255.255.255. Clasa A concentrază 50% din spațiul de adresare IPv4.
Clasa B – Forma primului octet este 10xxxxxx. Primul IP din clasa B este 128.0.0.0 iar ultimul este 191.255.255.255. Acesta deține 50% din ceea ce a rămas după ce am extras clasa A, adica 25% din totalul IPv4.
Clasa C – Primul octet este 110xxxxx. Primul IP este 192.0.0.0 iar ultimul este 223.255.255.255 și încadrează 17.5% din totalul de adresa IPv4
Clasa D – IP-urile din această clasă nu vor aparea pe hosturi întrucât sunt adrese de multicast. Nu am să intru acum în detalii, important este că această clasă este un mai specială și nu se vor aloca IP-uri din aceasta. Primul octet este 1110 xxxx, primul IP este 224.0.0.0 iar ultimul este 239.255.255.255. Aici se încadreaza 8,75% din IP-uri.
Clasa E – IP-urile din clasa E, sunt experimentale. Ca și în cazul celor de clasa D, nu se vor aloca pe hosturi. Primul octet este 1111 xxxx, adică cu primul IP 240.0.0.0 pănă la finalul spațiului de adresare 255.255.255.255. Aici sunt tot 8.75% adrese.
Masca de rețea
Pentru a înțelege mai departe, este nevoie să lămurim ce este mască (subnet mask). Masca de rețea definește câți biți fac parte din ID-ul de rețea și câți biți sunt de biți de host.
Spre exemplu, IP-ul de mai devreme 192.168.0.1 are în mod normal masca 255.255.255.0 pentru că este un IP de clasa C. Clasa A are mască 255.0.0.0 și clasa B 255.255.0.0, iar clasele D și E nu au măști. În formă scurtă 255.255.255.0 se poate scrie și ca /24 pentru că sunt 24 de biți de rețea iar restul de 8 biți (până la 32) vor fi biți de host.
Regula de bază măștii de rețea este că nu poate exista un bit prioritar de 0. Este una dintre cele mai frecvente greșeli și în subrețele complexe utilizând VLSM poate fi ceva mai greu de indentificat. Ce înseamnă asta? Scris în formă binară masca /24 este de forma 1111 1111.1111 1111.1111 1111.0000 0000 adică 24 de biți de 1. Desigur pot avea mască /2 adica doi 1, urmați de 30 de biți de 0, adică 192.0.0.0 sau mască /10, care are primul octet 255 și din al doilea primii doi biți 1, adică 255.192.0.0
O mască greșită, este una în care apare un 0, în fața unui 1.
Exemple greșite:
- 255.1101 1111.0.0,
- 255.255.0000 0001.0
Adresa unei rețele nu are sens fără mască de rețea. Asta însemnă că fără mască nu se poate identifica rețeaua din care face parte un IP. O condiție esențială a unui IP de rețea, este să aibă toți biții de host egali cu 0. Dacă doar unul diferă, acela nu este un IP de rețea.
Figura de mai sus, mă ajută să înțeleg datorită măștii, care sunt biții care îmi denumesc rețeaua și care sunt cei de host. Operația se numește ANDing, pentru are loc operația AND între biții cu aceeași poziție ai IP-ului și ai măștii. Primii 24 de biți din IP sunt biții de rețea, următorii, vor fi FORȚAȚI 0, datorită regulii de mai sus. Deci, în final, adresa de rețea din care face parte 192.168.0.1 este 192.168.0.0/24. Care este ultimul IP din această plajă. Păi conform teoriei, eu nu am voie să mai umblu la biții de rețea, doar la cei de host, care sunt în număr de 8. Numărul maxim se atinge atunci când toți dintre ei, iau valoarea 1, ceea ce face ca în ultimul octet să se obțină valoarea 255. Asta înseamnă că ultimul IP este 192.168.0.255.
Să încercăm un exemplu puțin mai greu.
Se dă IP-ul 172.16.96.25 /19.
1) Care este IP-ul dat, în formă binară?
2) Care este este masca în format binar?
3) Care este IP-ul de rețea?
4) Care este ultimul IP din această plajă?
5) Care primul și ultimul IP valid din această rețea?
Rezolvare:
1) Aplicând regulile de mai sus, IP-ul se va scrie în format binar 1010 1100.0001 0000. 0110 0000.0001 1001
2) 1111 1111.1111 1111.1110 0000.0000 0000
3), 4)

5) Într-o rețea primul și ultimul IP fizic nu sunt considerate IP-uri valide pentru că: primul IP, în care toți biții de host sunt 0, este un IP de rețea, și nu se poate aloca niciunui host, iar ultimul IP în care toți biții sunt 1, este un IP de broadcast. Pe scurt un IP de broadcast este un IP care cuprinde ca și destinație toate calculatoarele din rețea. Este mai convenabil să trimiți un singur pachet la broadcast într-o rețea cu 1000 de calculatoare, decât să trimiți 1000 de pachete cu destinatar specific. Cu alte cuvinte, primul și ultimul IP-uri valide sunt de fapt al doilea și penultimul IP din rețea. 172.16.96.1 și 172.16.127.254
Număr de rețele/număr de hosturi.
Presupunând că am la dispoziție IP-ul 172.16.0.0 /16 și am nevoie de 10 rețele a câte 60 de calculatoare fiecare, voi aplica următoarele reguli.
2 la ce putere va fi cel mai mic număr, mai mare decât 10? Răspunsul este 4. 2^4 = 16. Înseamnă că voi împrumuta din biții de host, 4 biți pe care îi voi transforma în biți de rețea. Efectul acestei operații este mărirea numărului de adrese de rețea și micșorarea numărului de IP-uri de host. Mă voi folosi de 10 adrese cu mască 16+4 = 20.
Câte adrese IP valide și alocabile am? Simplu: 2^(numărul de biți de host rămași) – 2. Scad 2 adrese pentru că, așa cum spuneam mai sus, primul și ultimul IP nu sunt IP-uri valide. Cu alte cuvinte, am 20 biți de rețea, adică 12 biți de host. 2^12 – 2 = 4094 de adrese IP valide în fiecare din cele 16 rețele obținute, ceea ce îmi este evident suficient necesităților inițiale. Acest proces se numeste subnetizare sau subnetting fiind de tip SLSM (single length subnet masking).
Sper să abordez și subnetizarea VLSM (variable length subnet masking) într-un post viitor. Până una alta, sper ca ceea ați găsit aici, a fost de folos, iar dacă aveți întrebări, nu ezitați să mi le adresați.
« trafic.ro si matematica | iPhone 4 – un vis devenit realitate »
21:03 on iulie 30th, 2010 1
Salut. Lasa si mie id tau de Y!M pe mail. Vreau sa te intreb ceva legat de IP. Sau daca nu da-mi tu add “louis_boniasky_11″ Y!M
22:20 on iulie 30th, 2010 2
Salut. Te rog intreaba aici, pentru ca si altii sa poata vedea raspunsul.
9:19 on iulie 31st, 2010 3
Vreau sa stiu si eu care sunt cele mai bune ip-uri. Ma intereseaza in special pentru redirecte. Multumesc
0:08 on august 1st, 2010 4
Nu exista astfel de diferente intre IP-uri. Din punct de vedere tehnic, toate sunt de aceeasi calitate. In plus ele sunt asignate de IANA la nivel mondial si de RIPE (Réseaux IP Européens) la nivelul Europei. Din cunostintele mele, acestea nu sunt date dupa preferinte ci dupa criteriile proprii ale organizatiilor abilitate mai sus mentionate.
13:48 on august 17th, 2010 5
Salut, am o intrebare te rog,
daca se da un anume IP, de exemplu : 192.168.223.127 cum poti stii exact ce masca are ? genul : /24 sau /27 sau /25 ?
STIMA~
13:54 on august 17th, 2010 6
Salut. Conform claselor de IP-uri, in special cele private definite in RFC 1918, IP-ul dat de tine face parte din clasa C. In general IP-urile din clasa C au masca /24, dar in real life nu putem face din asta o regula. Daca administratorul retelei a folosit subnetizare de tip VLSM, reteaua din care face parte IP-ul poate avea o masca mai mare. Sau chiar mai mica (desi nu este o practica obisnuita), este tehnic posibil. In concluzie, cel mai probabil este vorba de masca /24.