Pytania teoretyczne o adresowanie

Witam,

Mam kilka pytań. Na czym polega podział na adresy hosta i adres sieci, i co ma do tego maska ?

Przyjmijmy że mamy ulicę Pokątną z blokiem pod numerem 1, w bloku jest np 80 mieszkań. Aby uprościć adresowanie nie adresujemy korespondencji:

ul. Pokątna 1 mieszkania 1, tylko ul. Pokątna 101 i tak dale do adresu ul. Pokątna 180. Taki sposób adresowania stosuje się w wielu miejscach na świecie i podobnie jest w sieciach IP

Pokątna 100 jest adresem bloku / sieci

Pokątna 101 do 180 jest adresami mieszkań / hostów

Jeżeli teraz zamiast stosować nazwę “Pokątna” nadamy jej jakiś numer np. 50. Miastu nadamy numer 168, a państwu 192 to zamiast pisać:

Polska.Warszawa.Pokątna.101

napiszemy

192.168.50.101

Po co maska? Ano po to że na Pokątnej 2 mamy blok w którym jest tylko 20 mieszkań i tam zakres adresowy jest nieco inny:

Pokątna 200 to adres bloku /sieci

Pokątna 201 do 220 to adresy mieszkań hostów

Dzięki masce podsieci jesteśmy w stanie określić co jest adresem sieci, co adresem hosta oraz ile maksymalnie hostów może istnieć w danej sieci.

W rzeczywistości zasady adresowania IP są ciut bardziej skomplikowane, ale zbliżone do powyższego przykładu i służą temu żeby listonosz się niepotrzebnie nie nałaził (nie generować zbędnego ruchu), żeby system był czytelny dla urzędników sortujących pocztę (routerów) i żeby ekonomicznie gospodarować dostępnymi adresami (to akurat nie wynika z powyższego przykładu ale nie chcę tego bardziej komplikować). Różnica w adresowaniu jest w zasadzie tylko taka że w sieciach IP stosuje się wartości szesnastkowe ale wpisuje się ich dziesiętną reprezentację, np adres 127.0.0.1 jako szesnastkowy wygląda 7f:00:00:01.

Maska 255.255.255.0 to szesnastkowo FF:FF:FF:00 co daje dwójkowe 11111111 11111111 11111111 00000000

taka maska, w uproszczeniu, oznacza że pierwsze trzy części adresu to adres sieci, a ostatnia część to adresy hostów.

Uprościłem to jak tylko mogłem, aż się boję że zaraz ktoś zacznie mi wytykać nieścisłości.

Maska ma właśnie to do tego, że określa, która część adresu to adres sieci, a która to adres hosta. My ludzie widzimy adres w postaci liczb dziesiętnych, routery widzą adresy w postaci liczb binarnych, czyli

adres 10.0.0.1 to

00001010.0000000.0000000.00000001

Skąd to się bierze, to musisz sobie poczytać jak się przekształca liczby dziesiętne na binarne (dwójkowe). Teraz, żeby router wiedział, które bity to adres sieci, bo tylko to go interesuje, potrzebna jest maska, która określa ile bitów ma sprawdzać. Załóżmy, że dla tej sieci maska ma 24 bity, więc pierwsze 3 oktety to adres sieci, czyli 10.0.0, czwarty oktet to adres hosta. Binarnie.

00001010.00000000.00000000.00000001

Maska podsieci ma 24 bity, czyli 24 jedynki.

11111111.11111111.11111111.00000000

Router wykonuje operację AND (1 i 1 to 1, 1 i 0 to 0, 0 i 0 to też 0) i uzyskuje wynik.

00001010.00000000.00000000.000000001

11111111.11111111.11111111.000000000


00001010.00000000.00000000.000000000

czyli adres sieci to 10.0.0.0.

Gdy router odbiera pakiet IP, sprawdza w nagłówku jego adres, maska ma 24-bity, więc sprawdza tylko te pierwsze 24 bity adresu, sprawdza czy adres takiej sieci jest w tablicy routingu i jeśli jest dopasowanie, kieruje pakiet do odpowiedniej sieci, jeśli nie ma, no to go odrzuca.