1. Budowa adresów IP


Adres internetowy to 32-bitowe słowo. Słowo to dzieli się na dwie części: jedna identyfikuje sieć w której dany komputer się znajduje, a druga numer danego komputera. Komputery dołączone do tej samej sieci muszą posiadać taką samą cząstkę identyfikującą daną sieć. Podział adresów IP na sieć i host jest podstawowym warunkiem sprawnego kierowania ruchem pakietów IP (czyli tzw. routingu). Z uwagi na fakt, że na 32 bitach adresu IP musi znaleźć się zarówno identyfikator sieci (Net-ID), jak i identyfikator hosta (Host-ID), pojawia się pytanie, jak wiele bitów należy przeznaczyć na każdą z tych informacji. Im więcej bitów zarezerwujemy na Net-ID, tym więcej podsieci będzie mogło funkcjonować w przestrzeni adresowej IP. W takiej sytuacji pozostanie jednak mniej bitów na numer Host-ID, co oznacza, że do danej podsieci będzie można podłączyć mniej hostów. Ze względu na to, że Internet powinien obejmować zarówno duże, jak i małe sieci, kwestia ta nie została rozstrzygnięta jednoznacznie: utworzono bowiem trzy klasy adresów IP (A, B i C).
więcej...


Adresy internetowe dzielą się na klasy. Adres należący do danej klasy rozpoczyna się określoną sekwencją bitów, która jest używana przez oprogramowanie internetowe znajdujące się na każdym komputerze do identyfikacji klasy danego adresu. Kiedy klasa adresu zostanie rozpoznana oprogramowanie sieciowe jest w stanie określić które bity są używane do określenia sieci, a które konkretnego komputera.

Adres klasy A posiada bit zerowy ustawiony na zero, 7-bitowy numer sieci i 24-bitowy adres komputera. 128 sieci klasy A pozwala utworzyć do 16.777.214 adresów komputerowych w każdej z nich.

Adres klasy B posiada dwa najstarsze bity ustawione w sekwencję 1-0, 14-bitowy adres sieci i 16-bitowy adres komputera w tej sieci. 16.384 sieci klasy B mogą być zdefiniowane z 65.534 komputerami w każdej z nich.

Adres klasy C posiada trzy najważniejsze bity ustawione w kombinację 1-1-0, 21-bitowy adres sieci i 8-bitowy adres komputera w tej sieci. Pozwala to zdefiniować 2.097.152 sieci klasy C z 254 komputerami w każdej z nich.

Adresy klasy A odnoszą się najczęściej do dużych sieci zawierających wiele komputerów, adresy klasy B odpowiadają sieciom sredniej wielkości, zaś adresy klasy C małym sieciom. Adresy klasy D to tzw. adresy grupowe wykorzystywane w sytuacji, gdy ma miejsca jednoczesna transmisja do większej liczby urządzeń. Klasa E jest eksperymentalna i w zasadzie niewykorzystywana.

Dla ułatwienia, adres internetowy jest przedstawiony jako cztery liczby dziesiętne z zakresu od 0 do 255 oddzielone kropkami. Taki format zapisu adresu określa się jako DDN lub IP address. Notacja dzieli 32-bitowy adres na cztery 8-bitowe pola nazwane oktetami i przekształca niezależnie wartość każdego pola na liczbę dziesiętną. Wówczas podział na klasy wygląda następująco:

Klasa Najniższy adres Najwyższy adres A 1.0.0.0 127.0.0.0 B 128.0.0.0 191.255.0.0 C 192.0.0.0 223.255.255.0 D 224.0.0.0 239.255.255.255 E 240.0.0.0 248.255.255.255
Adresy zarezerwowane

Nie wszystkie adresy sieci i komputerów są dostępne dla użytkowników. Adresy, których pierwszy bajt jest większy od 223 są zarezerwowane. Także dwa adresy klasy A, 0 i 127 są przeznaczone do specjalnego zastosowania. Sieć 0 oznacza domyślną trasę, a sieć 127 jest to tak zwany loopback address. Domyœlna trasa jest używana do ułatwienia wyboru marszrut, które to zadani musi wykonywać IP. Loopback address jest przydatny aplikacją sieciowym, pozwalając im na adresowanie komputera lokalnego w ten sam sposób co komputerów oddalonych. Tych specjalnych adresów używamy konfigurując komputer.

Także pewne adresy komputerów są zarezerwowane do specjalnych celów. Są to we wszystkich klasach sieci, adresy komputerów 0 i 255. Adres IP posiadający wszystkie bity adresu komputera równe 0, identyfikuje sieć jako taką. Na przykład, 26.0.0.0 oznacza sieć 26, a 172.16.0.0 odnosi się do sieci komputerowej 172.16. Adresy w takiej formie są stosowane w tablicach rutowania do wskazywania całych sieci.

Adresy klas A-C są używane do transmisji unicastowych, czyli pomiędzy wyłącznie dwoma hostami w sieci (one-to-one communication). Stosowane są również do komunikacji rozgłoszeniowej - broadcastowej (one-to-everyone communication). W przypadku adresu klasy D, o przedziale adresowym od 224 do 239, najstarsze bity mają wartości 1110. Adresy klasy D używane są do transmisji grupowej (multicast - one-to-many communication), czyli skierowanej do większej ilości hostów (np. wideokonferencja). Zastosowanie tej klasy adresów zostało dokładnie omówione m.in. w RFC-1020 i -1060. Dla adresów klasy E najstarsze bity pierwszego oktetu przyjmują wartość binarną 1111. Adresy te są zarezerwowane do celów testowych i nie wolno ich używać do adresowania hostów. Nie wszystkie adresy IP mogą być używane w Internecie. IANA (Internet Assigned Numbers Authority www.iana.org) jest odpowiedzialna za przydział adresów IP dla potrzeb komercyjnych i doświadczalnych. Dla Europy adresy IP są przydzielane przez organizację Resaux IP Europeens - www.ripe.net. Na stronach tej organizacji znajdują się wyszukiwarki whois, które umożliwiają zdobycie informacji o właścicielu adresu IP. Adresy można podzielić na ogólne (publiczne) i do zastosowań specjalnych, w tym prywatne. Adresy ogólne są stosowane do adresowania hostów w Internecie.

Adresy prywatne, nieroutowalne w sieci internetowej, są używane tylko w ramach sieci lokalnej. Administrator sieci lokalnej może używać tych adresów bez konieczności ich uzyskania od w/w organizacji. Na ten cel zostały zarezerwowane następujące adresy:

Adresy te mają głównie zastosowanie do adresowania hostów w Intranecie. Sieć intranetowa używa m.in. operacji NAT (Network Address Translation, RFC 1631) do komunikacji z Internetem (mapowanie adresów prywatnych na adresy publiczne). Zastosowanie tej techniki pozwala zaoszczędzić adresy publiczne i dodatkowo wpływa na bezpieczeństwo sieci intranetowych. Najważniejsze adresy do zastosowań specjalnych zostały zestawione w tabeli:

Adresów prywatnych i specjalnych nie wolno używać w ruchu zewnętrznym, poza siecią lokalną (Intranetem).

Czy aktualnie jest możliwość uzyskania pełnej klasy adresów A lub B? Odpowiedź brzmi NIE. Uzyskanie pełnej puli adresów klasy C jest w tej chwili bardzo trudne. Kiedy otrzymuje się pulę adresów klasy C (256 adresów) to do zaadresowania hostów pozostają 254 adresy. Każda bowiem sieć musi mieć swój adres sieci i adres rozgłoszeniowy (broadcastowy). Te dwa adresy nie mogą być użyte do zaadresowania hostów, np. dla sieci klasy C 199.119.99.x.



Adres broadcastowy 199.119.99.255 będzie użyty wtedy, kiedy host w sieci 199.119.99.x będzie chciał nadać komunikat do wszystkich hostów do niej należących (wspólna domena rozgłoszeniowa). Komunikat broadcastowy nie zostanie przekazany do sieci 200.1.100.0.

Porty pomagają rozdzielić poszczególne przesyłki.
Protokoły IP i ARP wchodzą w skład internetowej warstwy wymiany pakietów. Na wyższym poziomie znajduje się natomiast warstwa transportowa, którą obsługują protokoły UDP i TCP. Gdy przez Internet komunikują się ze sobą takie aplikacje, jak serwery i przeglądarki WWW, muszą one korzystać z pomocy jednego z tych dwóch ostatnich protokołów. Nie mają natomiast w ogóle dostępu do pakietów IP, gdyż pakiety te są wysyłane do hostów internetowych, a nie aplikacji. Jeśli na danym hoście funkcjonuje kilka takich aplikacji, nie istnieje tu możliwość jednoznacznej identyfikacji, czy dany pakiet IP jest kierowany do serwera WWW czy FTP.

Aby dokonać takiej identyfikacji, protokoły UDP i TCP korzystają z pomocy tzw. portów, których funkcję pełni specjalna liczba 16-bitowa (WORD). Podobnie jak pakiety IP, w których właściwe dane poprzedza odpowiedni nagłówek, również pakiety UDP i TCP wykorzystują taki element. Najważniejszą informacją zawartą w nagłówku jest identyfikator portu adresata, do którego ma trafić dany pakiet, oraz identyfikator portu nadawcy. Gdy oprogramowanie sieciowe otrzyma pakiet UDP lub TCP, może za pomocą numeru portu rozpoznać, do jakiej aplikacji należy przesyłka, i skierować nadesłane dane do właściwego programu.

W celu nawiązania komunikacji z serwerem internetowym potencjalny klient potrzebuje nie tylko jego numer IP, ale również numeru portu. Numer ten musi być więc z góry znany. Z tego też względu poszczególne numery portów z przedziału 0-1024 są na stałe przyporządkowane różnym usługom internetowym (takim jak FTP czy HTTP). Gdy zatem w przeglądarce WWW wpiszemy adres URL (np. http://www.chip.pl), program ten będzie od razu wiedział, że ma odwołać się do portu numer 80 w komputerze, który kryje się pod nazwą www.chip.pl.

Najpopularniejsze usługi internetowe i ich numery portów

PortProtokółZadanie
20+21TPTransmisja danych
23TELNETWiersz poleceń zdalnego hosta
25SMTPNadawanie przesyłek e-mailowych
53DNS Odwzorowywanie nazw domen na postać adresów IP
70GOPHERUsługa wyszukiwawcza dla Archive
80HTTPWorld Wide Web
110POP3Pobieranie przesyłek e-mailowych
119NNTPUsenet
161SNMPZdalne administrowanie urządzeniami sieciowymi
194IRCInternet Chat
666 DOOMUlubiona gra wraz z odpowiednim numerem portu

Takie rozwiązanie sprawia jednak, że hakerzy mogą stosunkowo łatwo docierać do całych grup adresów IP i przez nawiązanie kontaktu za pomocą znanych numerów portów sprawdzać, czy pod danym adresem funkcjonuje określony serwer. Jeśli tak, to próbują się do niego włamać, wykorzystując w tym celu słabe punkty danej usługi. Z drugiej strony istnieje dość prosty sposób, pozwalający na ukrycie określonych usług internetowych przed zwykłymi użytkownikami. W tym celu wystarczy po prostu przypisać dany serwer do nietypowego numeru portu. I tak zamiast korzystać z portu numer 80, można uruchomić serwer WWW na porcie 7436. Kontakt z tym serwerem będą mogły nawiązać tylko osoby, które znają ten numer i w swojej przeglądarce wpiszą adres URL w postaci http://www.chip.pl:7436/. Podanie oznaczenia protokołu jest w tym wypadku konieczne, gdyż inaczej przeglądarka nie będzie wiedziała, jakiej usługi się pod wyspecyfikowanym portem spodziewać.
mniej...

2. Przeliczanie adresów IP z postaci dziesiętnej na binarną


Adres IP w wersji 4 ma zawsze i niezmiennie długość 32 bitów. Należy zwrócić uwagę, że mimo binarnej natury administratorzy najczęściej przedstawiają go postaci dziesiętnej, co znacznie ułatwia posługiwanie się nim.
więcej...

Adres podzielony jest na cztery 8-bitowe bloki zwane oktetami:

11000011. 01111101.00000010. 00110010

odpowiada dziesiętnej postaci adresu:

195.125.2.50

Maksymalna wielkość liczby w każdym oktecie nie może przekroczyć wartości 255 (11111111 dwójkowo). Administrator sieci musi biegle przeliczać liczby z systemu dwójkowego na dziesiętny i odwrotnie.
Kiedy trzeba przedstawić adres IP w postaci binarnej, mając jego postać dziesiętną należy rozpocząć od najstarszego oktetu:

212.77.98.9