Szybki i prosty sposób na maski IPv4

Mimo, że to blog programistyczny dzisiaj poruszę trochę inny temat. Spokojnie, będzie on nadal związany z branżą IT. 🙂 Jak już kiedyś wspominałem, jestem uczniem Technikum informatycznego. W związku z tym nie mogły ominąć mnie tematy dotyczące adresowania urządzeń w sieciach komputerowych, w tym również dosyć nudne przeliczanie adresów kolejnych sieci w zależności od użytej maski. Nie jest, to może zbyt ciekawy temat na wpis, jednak zauważyłem, że sporo osób miewa z tym problemy. Jakby tego było mało – sposób na przeliczanie tych wartości, którego uczy się w szkole, jest dla mnie zbyt czasochłonny. Mój dobry kolega pokazał mi inny (dla mnie dużo prostszy i szybszy). Myślę, że dla osób, które nigdy o nim nie słyszały, może okazać się bardzo przydatny 🙂

Podstawowe pojęcia

Jeżeli już tutaj trafiłeś, zakładam, że jesteś uczniem Technikum informatycznego lub jakiegoś pochodnego kierunku (nie mam pomysłu, komu to się jeszcze może do czegoś przydać). W związku z tym powinieneś posiadać podstawową wiedzę nt. sieci komputerowych. Aby zastosować w praktyce sposób, który przedstawię niżej, musisz wiedzieć, czym jest:

  • Adres sieci
  • Adres hosta/klienta
  • Adres rozgłoszeniowy

Znajomość operacji logicznych jest zbędna (nie będziemy rozbijać adresów na postać binarną), w przeciwieństwie do sposobu, który nauczany jest w szkole (przynajmniej w mojej). Tutaj można zobaczyć, jak stosuje się go w praktyce. No dobrze, skoro wszystko już jasne możemy przejść do rzeczy.

Przeliczanie adresów

Załóżmy, że mamy dany adres IP jakiegoś komputera w sieci. Jest to 192.168.20.122 z maską 255.255.255.192. Na tej postawie mamy obliczyć:

  • Adres sieci, w której się znajduje
  • Adres pierwszego hosta w tej sieci
  • Adres ostatniego hosta w tej sieci
  • Adres rozgłoszeniowy tej sieci
  • Liczbę hostów w tej sieci

Ot, typowe zadanie z kartkówki o adresacji. Można do niego podejść na dwa sposoby. Link do pierwszego podałem już wcześniej. Teraz przedstawię preferowany przeze mnie sposób.

No to liczymy…

Najpierw określmy, co jaką liczbę następuje adres kolejnej sieci. W tym celu należy od liczby 256 odjąć końcówkę naszej maski:

256 – 192 = 64

Co mówi nam ten wynik? Mówi, że każda kolejna sieć będzie mieć adres +64 do ostatniej sieci. Dokładniej:

  • Sieć pierwsza – 192.168.20.0 //+64
  • Sieć druga – 192.168.20.64 //+64
  • Sieć trzecia – 192.168.20.128 //+64
  • Sieć czwarta – 192.168.20.192  //+64
  • 192.168.20.256 //nie możliwe, taki adres nie istnieje

Nasz host ma adres 192.168.20.122 – widać wyraźnie, że musi znajdować się w sieci 192.168.20.64

Łatwo można też określić adres pierwszego i ostatniego hosta w tej sieci. Pierwszy host będzie miał adres 192.168.20.64 + 1, czyli 192.168.20.65. Ostatni host 192.168.20.126, ponieważ ostatni adres w tej sieci 192.168.20.127 – przeznaczony jest dla rozgłoszenia.

Określenie liczby hostów w takiej sieci też nie jest żadnym problemem. Wiemy przecież, że każda następna sieć to +64 do adresu, gdzie pierwszy adres przeznaczony jest dla sieci, a ostatni dla rozgłoszenia. Dlatego też, odejmując od 64 liczbę 2 otrzymamy maksymalną liczbę hostów w tej sieci, czyli 62.

A co w przypadku innych masek?

Zasada pozostaje niezmienna. Jedyna różnica, jaką można zauważyć jest sposób, w jaki liczmy maksymalną liczbę hostów w sieci.

Załóżmy, że mamy dany adres z klasy B: 128.65.18.100, przy masce 255.255.128.0. Obliczmy te same wartości, co w poprzednim przykładzie:

Tak, jak wcześniej określamy adres sieci:

256 – 128 = 128

W związku z tym, wiemy że:

  • Sieć pierwsza: 128.65.0.0
  • Sieć druga: 128.65.128.0

W tym momencie widać już, że nasz host znajduje się w sieci 128.65.0.0.

Adres pierwszego hosta w tej sieci to 128.65.0.1, natomiast ostatniego 192.65.127.254. Rozgłoszenie zgodnie z definicją będzie miało ostatni adres dostępny w tej sieci: 192.65.127.255.

Teraz określmy liczbę hostów. W tym celu wystarczy wykonać proste działanie: (256*128) – 2 = 32768 – 2 = 32766. Mnożymy tutaj liczbę 256 z liczbą, co jaką następuje adres nowej sieci. W tym przypadku to 128. Od wyniku należy odjąć liczbę dwa, gdyż są to adresy przeznaczone dla sieci i rozgłoszenia.

Podsumowanie

Cóż to byłoby na tyle. Mam nadzieje, że komuś się przyda. Dajcie znać w komentarzach, co sądzicie o tym sposobie przeliczania adresów 🙂

991 total views, 1 views today

9 przemyśleń nt. „Szybki i prosty sposób na maski IPv4

    • Nie wiem, czy dobrze zrozumiałem pytanie, ale maski służą do wyodrębnienia części sieciowej adresu IP od części hosta.
      Jednakże przeliczanie tego ręcznie, przydało mi się tylko w trakcie pisania kartkówki w szkole 😉

    • Zamieniamy adres CIDR na „zwykłą” maskę. Tutaj już trzeba umieć zamieniać liczby binarne na dziesiętne:
      /16 = 11111111.11111111.00000000.00000000 = 255.255.0.0
      /24 = 11111111.11111111.11111111.00000000 = 255.255.255.0
      Kiedy mamy już taką maskę, to resztę liczymy jak napisałem wyżej 🙂

    • Wszystko jest wyżej:

      – Sieć pierwsza – 192.168.20.0 //+64
      – Sieć druga – 192.168.20.64 //+64
      – Sieć trzecia – 192.168.20.128 //+64
      – Sieć czwarta – 192.168.20.192 //+64
      -192.168.20.256 //nie możliwe, taki adres nie istnieje

      Widać, że sieci jest cztery, ponieważ każda następna ma adres +64 od ostatniej. Ostatnia sieć ma adres 192.168.20.192, ponieważ po dodaniu do niej 64 wyjdziemy już poza liczbę 255 (adresować można tylko do tej liczby, z uwagi na 8 jedynek w postaci binarnej).

      • Jest mała nieścisłość, jeżeli adres pierwszej sieci to 192.168.20.0 i liczba hostów wynosi 64, to adres następnej sieci to bedzie 192.168.20.64 +1 czyli 192.168.20.65

        • Przy masce 255.255.255.192, hostów w sieci będzie tylko 62. Liczba, która wychodzi po odjęciu końcówki maski (256-192 = 64) to liczba, co jaką następuje adres kolejnej sieci – nie jest to liczba możliwych do zaadresowania hostów.

          Dlatego mamy:
          192.168.20.0 //pierwsza sieć
          192.168.20.1-.192.168.20.62 //hosty
          192.168.20.63 //rozgłoszenie

          192.168.20.64 // adres kolejnej sieci
          //itd

Możliwość komentowania jest wyłączona.