Klasyfikacja klasy adresu IP

No to wracamy do punktu wyjścia. Maska określa, która część adresu jest adresem sieci, a która adresem hosta. Szczegóły znajdziesz chociażby na Wikipedii.

Jeśli w masce jest 10 zapalonych bitów wtedy 10 bitów koduje sieć ?

Tak.

Ok.

Mam problem ze zrozumieniem tego modelu OSI. Wiem, że to abstrakcja, stąd ten problem. Chciałbym, abyś powiedział mi co nieco o takiej sytuacji. Wysyłam tutaj posta. Idzie jakiś formularz (zapytanie POST bodaj). Wszystko to dzieje się w warstwie aplikacji pod przewodnictwem protokołu HTTP, ale co dalej ? Jak to zejdzie w dół w tym modelu ?

Każda warstwa działa niezależnie od siebie i każda warstwa ma swoje protokoły. Protokół określa zasady. Na wspomnianym przykładzie, wysyłasz do serwera WWW zapytanie i żądasz wyświetlenia strony. Wpisujesz w przeglądarce, czyli aplikacji adres strony, aplikacja korzysta z protokołu http, który zajmuje się wysłaniem żądania do serwera. Zanim żądanie protokołu http zostanie wysłane, komputer musi nawiązać połączenie z serwerem, tym zajmuje się warstwa transportowa, w skrócie nawiązuje sesję z serwerem, gdy strona zostanie pobrana na komputer, sesje zostaje zakończona, aplikacja otrzymuje odpowiedź, wyświetla się strona.

W tym momencie pewnie zastanawiasz się po co niższe warstwy, skoro z tego co opisałem (w skrócie) wynika, że to już wszystko. Otóż nie, żeby komputer mógł nawiązać połączenie z serwerem, musi wysłać do niego pakiet pod adres IP serwera WWW (zapewne ciekawi Cię skąd komputer zna ten adres, ale teraz tego nie będę pisał, aby nie mieszać za dużo, wyjaśnię to na końcu), tym zajmuje się warstwa sieciowa, komputer na podstawie swojej tablicy routingu wie czy serwer znajduje się w sieci LAN czy poza nią, zakładając że serwer znajduje się w internecie, czyli poza siecią LAN, potrzebuje on odpytać bramę, czyli router o jego adres MAC, żeby mógł wysłać do niego pakiet, tym zajmuje się warstwa łącza danych. Gdy komputer zna już adres MAC routera, może wysłać pakiet, ale żeby przesłać go przez kabel, musi zamienić dane na sygnał elektryczny (lub optyczny, jeśli to światłowód, lub fale radiowe, jeśli to medium bezprzewodowe) i tym zajmuje się warstwa fizyczna.

Cała procedura przebiega tak, aplikacja tworzy dane, te dane są segmentowane w warstwie transportowej, następnie enkapsulowane w pakiet w warstwie sieciowej (oznacza to, że do segmentu dodawany jest nagłówek IP), pakiet enkapsulowany jest w ramkę w warstwie łącza danych, ramka zamieniana jest na bity i przesyłana jako sygnał elektryczny lub inny.

Wracając do tego skąd komputer zna adres IP serwera, chociażby stąd, że możesz wpisać adres IP w przeglądarce, a jeśli używasz nazwy domenowej, komputer przed wysłaniem pakietu odpytuje serwer DNS.

Możesz pobrać sobie program Wireshark, przy jego pomocy zobaczysz jak wygląda nawiązanie połączenia. W programie każda warstwa jest szczegółowo opisana, więc możesz zobaczyć, która za co odpowiada.

Ok. Wielkie dzięki za to wyjaśnienie :slight_smile:

Okazuje się, że to bardzo skomplikowany proces.

  1. Za co odpowiada Broadcast ? Czytałem niby na wikipedii, ale mam wątpliwości. Adres rozgłoszeniowy, ale co on “rozgłasza” ? Po co on jest ?

  2. Za co odpowiada protokół IP - tzn kiedy go używam, zaraz użyję HTTP. A kiedy IP ? A jak ma się TCP/IP do IP ?

Wydaje Ci się.

Ten adres nic nie rozgłasza. Host wysyła na adres rozgłoszeniowy zapytania, jeśli nie zna adresu innego hosta, wówczas pakiet trafia do wszystkich hostów w domenie rozgłoszeniowej (podsieci) i odpowiada tylko ten, do którego miało trafić zapytanie. Przykładem jest zapytanie ARP, np. host chce wysłać coś do innego hosta potrzebuje znać jego adres IP oraz jego adres MAC, zakładając że zna tylko IP, niech to będzie 192.168.1.1, musi zapytać wszystkie hosty, do kogo należy ten adres IP, w tym celu wysyła rozgłoszenie na adres rozgłoszeniowy, czyli 192.168.1.255, zapytanie trafia do wszystkich hostów w sieci, odpowiada tylko ten, który ma adres 192.168.1.1 i odsyła on informację o swoim MAC adresie. Warstwa łącza danych również ma swój adres rozgłoszeniowy i jest to FF:FF:FF:FF:FF:FF. Istnieje jeszcze inny adres rozgłoszeniowy 255.255.255.255 różnica polega na tym, że na ten adres można wysyłać zapytania z dowolnej podsieci, wykorzystuje się go, np. w odpytywaniu serwera DHCP lub TFTP, ponieważ host zanim uzyska adres IP z serwera DHCP nie posiada żadnego adresu IP, jego adres jest zerowu, czyli 0.0.0.0 w związku z tym nie wie w jakiej podsieci się znajduje, wysyła zapytanie na 255.255.255.255, które trafia do wszystkich hostów i odpowiada tylko serwer DHCP, jeśli istnieje w sieci.

Jak pisałem, każda warstwa ma swoje protokoły i jest ich sporo, musiałbyś je poznać. Protokół IP odpowiada za wysyłanie pakietów, przechowuje on informację o adresie źródłowym i docelowym. Protokół TCP odpowiada właśnie za nawiązywanie sesji z serwerem.

Czyli rozgłoszeniowy zna każdy komputer (alternatywa adresu hosta i negacji maski - więc każdy go zna). I teraz nadaje jakiś pakiet za pomocą ARP do tego adresy broadcast. Co się dzieje dalej ? Czyli wychodzi na to, że dalej broadcast (cokolwiek to jest) ZNA adresy każdego hosta wpiętego do danej podsieci i do każdego z nich nada tamtą “wiadomość”

Nie, źle to zrozumiałeś. Każdy host zna adres broadcast, (z tego co widzę ipconfig w Windows nie pokazuje adresu broadcast, ale linuksowy ifconfig tak), wyobraź sobie, że wszystkie hosty mają ten sam adres IP 192.168.1.255, wszystkie dostają pakiet, ale nie do wszystkich był on kierowany, tylko do konkretnej maszyny, a tę maszynę rozpoznaje się na podstawie adresu MAC, który jest unikalny i maszyna z właściwym MAC odpowiada, reszta ignoruje pakiet.

Tutaj masz animację jak to działa na przykładzie zapytań ARP

Czy możesz opowiedzieć na czym polega administracja siecią opartą o architekturę klient-serwer?