Na jó, akkor megpróbálom ezt is viszonylag röviden (?) összefoglalni. Előrebocsátom, hogy mindez az IPv6-ra nem vonatkozik, mert abban sokkal bonyolultabb a címzés, és azt még én sem értem.
Az IP címek két részből állnak: elöl van egy hálózati cím (network address), és utána egy gépcím (host address). Ez azért lényeges, mert amikor egy gép valakivel kommunikálni akar IP-vel, akkor először azt nézi meg, hogy az illető a küldő saját network address-e szerint egy hálózatban van-e vele, és amennyiben igen, akkor kiküld egy Layer 2-es ARP broadcast-ot, amelyben megkérdezi, hogy milyen MAC address tartozik ehhez a címhez, és ha erre választ kap, akkor a továbbiakban csak erre a MAC addressre küldi ki az adott célnak szánt csomagokat. Ha nincsenek egy subnetben, akkor a routing táblája (lekérdezése: route print) alapján dönti el, hogy milyen IP című gép fogja neki routolni az adott címet (alapesetben ez a default gateway lesz), és annak a MAC addressét kéri le, amennyiben az még nincs meg az ARP táblájában (lekérdezése: arp -a).
Azt, hogy hol ér véget a hálózati cím, és hol kezdődik a másik, egy maszk segítségével szokás megadni, ami általában úgy néz ki, hogy van benne néhány egyes, és a többi nulla. Például, a 255.255.255.0 egy eléggé szokványos netmask, ami annyit jelent, hogy minden gép, amelynek IP címében az első három szám megegyezik, logikailag egy hálózatban van. Egy ilyen hálózatban 254 db gép lehet, mert egy byte-on 8 bit van, 2
8=256, de a csupa 0 host cím magát a subnetet jelenti, a csupa 1 pedig broadcast cím. Ugyanígy pl. 255.255.255.240-es netmask esetén (a 240 binárisan: 11110000) 4 bites a host address, tehát egy subnetben 2
4-2=14 gép lehet, a subnetek címei pedig:
.0
.16
.32
...
.240
A régebbi szabvány nem engedte meg a "csupa 0" és a "csupa 1" subnet használatát (jelen esetben a .0 és a .240), tehát csak a többiből lehetett címeket osztogatni, de ma már valószínűleg minden gép elfogadja ezeket a címeket is.
Amennyiben két gépnek nem egyezik meg a netmask-ja, attól még lehet, hogy látják egymást IP-vel, amennyiben mind a két netmask szerint egy subnetben vannak. Például, ha egy server IP címe 192.168.2.1, netmask: 255.255.255.0, akkor gond nélkül tud kommunikálni akár a 192.168.2.15-ös, akár a 192.168.2.225-ös géppel, ha ezeken a netmask pl. 255.255.255.128, annak ellenére, hogy ez a két gép viszont nem látja egymást (hacsak valami gép össze nem routolja a két subnetet).
Az IP címeket úgynevezett osztályokba sorolják, ezek közül a legtöbben a C osztályú címekkel találkoznak (kivéve azokat, akik egy nagy szolgáltatótól kapnak IP címet), ami azt jelenti, hogy a címben az első szám legalább 192. Ezeknél a címeknél az alapértelmezett netmask a 255.255.255.0. A 192.168-cal kezdődő címek privát címek, ezeket az Internet routerek nem routolják, tehát ilyen címeket csak privát hálózatban lehet használni, az Internetre csak akkor lehet kimenni ezekről, ha valaki NAT-ol, vagy proxy szolgáltatást ad. Lényegében mind a kettő azt jelenti, hogy van egy server vagy router, aki a privát címekről érkező és kifelé tartó csomagokat elkapja, és a forrás (privát) IP címét kicseréli a saját publikus IP címére, valamint megjegyzi, hogy melyik privát címről jött a csomag, és oda továbbítja a választ, ezúttal a cél IP címet visszaírva a megfelelő privát címre. A 192.168.x.x-es címtartományokból 256 db lehet, 192.168.0.x-től 192.168.255.x-ig.
Ha az IP cím első byte-ja a 128-tól 191-ig terjedő tartományban van, akkor az egy B osztályú cím. Ezeknek az alapértelmezett netmask-juk 255.255.0.0, ami annyit jelent, hogy 65534 db gép lehet egy ilyen hálózatban (persze csak akkor, ha nincs subnetelve), mivel a csupa 0 host address itt is a network, a csupa 1 pedig a broadcast. Ezek közül a 172.16.x.x-től a 172.31.x.x-ig terjedő címtartományok a privát címek, tehát 16 db ilyen címtartomány van. Amennyiben valaki olyan hálózatot szeretne, amelyikben 254-nél több gép van, de nem több, mint 65534, akkor célszerű ilyen címtartományt használni. Természetesen egy B osztályú címet is lehet használni C osztályú subnet mask-kal, ekkor (legalábbis lokálisan) ugyanúgy működik, mint egy rendes C osztályú cím. Ezt azonban nagyobb részekre is lehet bontani, pl. egy 255.255.240.0 subnet mask-kal.
Itt kezdek elbizonytalanodni:
A 128-nál kisebb számmal kezdődő IP címek A osztályú címek, ami annyit jelent, hogy az alapértelmezett netmask ezeknél 255.0.0.0.
Van (legalább) egy speciális cím ebben a tartományban, ez a 127.0.0.1, ami egy loopback address, ami azt jelenti, hogy a saját gépünk IP címe. Azt, hogy ezt hogyan kell érteni, ha több hálózati kártyánk, és több IP címünk van, én sem tudom.
Speciális cím még a 0.0.0.0, amivel általában a default route-ot szokták jelölni, valamint a 255.255.255.255, ami elvileg egy minden IP címnek szóló broadcast.
Az A osztályú címek között is van privát címtartomány, de csak egy darab: a 10.x.x.x, ebben azonban már több, mint 16 millió cím lehet. Ennyi nyilván senkinek nem kell egy hálózaton belül, ezért ezeket a címeket mindig subnetelni szokták. Mindenki úgy szedi szét, ahogy akarja, csak arra kell vigyázni, hogy ezek megfelelően legyenek routolva. Ebbe most nem mennék bele mélyebben, mint ahogy abba sem, ami még az angol nyelvű linken volt: CIDR, interleaved subnets. Előbbiről csak annyit, hogy a CIDR notation, ami a linken is szerepel, azt jelenti, hogy a netmaskot nem egy külön 4 byte-os decimális számmal adjuk meg, hanem egyetlen decimális számmal. Pl. a linken szereplő 192.0.2.96/28 azt jelenti, hogy a / előtti szám egy IP cím, a 28 pedig azt jelenti, hogy ennyi egyes van a subnet maskban, tehát a subnet mask 255.255.255.240.
Még csak annyit, hogy mi az a supernet: ez azt jelenti, hogy az adott címet nagyobb terjedelmű hálózati címmel használjuk, mint az alapértelmezett netmaskja esetén. Például, egy 192.168.2.0/23 megad egy olyan tartományt, amelyben minden 192.168.2.x-es és 192.168.3.x-es cím benne van.
Még egy dolog a linkkel kapcsolatban: van ott egy
IPv4 Subnet Calculator, ami egy nagyon jól használható program ebben a témakörben.