Katedra Informatyki Stosowanej
Politechnika Łódzka
Al. Politechniki 11, 90-925 Łódź
Tel. (0-42) 631-26-89
Sieci komputerowe I
Wykład 4: Protokół ICMP; DNS.
Opracowanie:
mgr Łukasz Sturgulewski (lsturgu@kis.p.lodz.pl)
Protokół ICMP (Internet Control Message Protocol).
Krótka charakterystyka.
Protokół ICMP jest częścią protokołu IP i służy do przekazywania informacji o sytuacjach wyjątkowych.
Powstał z myślą o udostępnieniu routerom mechanizmu powiadamiania węzłów o przyczynach problemów w dostarczeniu datagramów do celu. Jednak może być wykorzystany do komunikacji pomiędzy dwoma dowolnymi węzłami w sieci.
Komunikaty ICMP są wysyłane do pierwotnego nadawcy, który musi otrzymaną wiadomość zinterpretować i podjąć odpowiednie kroki w celu wyeliminowania błędów.
Komunikat ICMP jest przesyłany przez sieć w części danych datagramu IP (mimo to nie jest on protokołem wyższego poziomu, lecz stanowi rozszerzenie protokołu IP).
Komunikat o błędzie nie jest tworzony, jeśli błąd powstał przy przesyłaniu komunikatu ICMP.
Budowa komunikatu.
Każdy komunikat ICMP ma swój własny format. Jednak istnieje kilka cech wspólnych. Pierwsze pola komunikatu są takie same:
TYP (8 bitów) - Identyfikator typu komunikatu;
KOD (8 bitów) - Dalsze informacje na temat rodzaju komunikatu;
SUMA KONTROLNA - odnosi się wyłącznie do komunikatu ICMP i jest obliczana wg tych samych reguł, co w przypadku IP.
Typy komunikatów oraz ich budowa.
Prośba o echo.
Pomyślna odpowiedź tzw. „odpowiedź z echem” oznacza, że komunikacja między węzłami funkcjonuje prawidłowo.
TYP (8 lub 0) |
KOD |
SUMA KONTROLNA |
IDENTYFIKATOR |
NUMER KOLEJNY |
|
DANE |
||
... |
TYP: 8 - prośba o echo, 0 - odpowiedź z echem;
IDENTYFIKATOR - umożliwia powiązanie próśb i odpowiedzi przez nadawcę;
NUMER KOLEJNY - umożliwia powiązanie próśb i odpowiedzi przez nadawcę;
DANE - te same dane są w prośbie i odpowiedzi z echem.
Odbiorca nieosiągalny.
Wysyłane przez router, jeśli nie jest on w stanie nic dalej zrobić z datagramem (router wysyła komunikat ICMP i traci pakiet).
TYP (3) |
KOD (0 - 12) |
SUMA KONTROLNA |
ZERO (nie używane) |
||
Nagłówek oraz pierwsze 64 bity datagramu, który spowodował błąd. |
||
... |
Tłumienie nadawcy.
Komunikat wysyłany przez router w celu powiadomienia nadawcy o zbyt dużym obciążeniu napływającymi datagramami.
TYP (4) |
KOD (0) |
SUMA KONTROLNA |
ZERO (nie używane) |
||
Nagłówek oraz pierwsze 64 bity datagramu, który spowodował błąd. |
||
... |
Zmień trasowanie.
Komunikat przesyłany z routera do węzła znajdującego się w tej samej sieci i próbującego wysyłać datagramy przez powyższy router podczas gdy istnieje bardziej optymalna droga.
TYP (5) |
KOD (0 - 3) |
SUMA KONTROLNA |
ADRES ROUTERA (zapewniającego bardziej optymalną obsługę) |
||
Nagłówek oraz pierwsze 64 bity datagramu, który spowodował błąd. |
||
... |
Przekroczenie czasu.
Router porzuca datagram, gdy licznik czasu jego życia został wyczerpany, oraz wysyła komunikat ICMP „przekroczenie czasu” (KOD 0).
Ten sam komunikat jest wysyłany, gdy zostanie przekroczony czas na składanie fragmentów datagramu w węźle (KOD 1).
TYP (11) |
KOD (0 - 1) |
SUMA KONTROLNA |
ZERO (nie używane) |
||
Nagłówek oraz pierwsze 64 bity datagramu, który spowodował błąd. |
||
... |
Inne kłopoty.
Komunikat „inne kłopoty” jest wysyłany przez router gdy stwierdzi np. błędy w nagłówku datagramu.
TYP (12) |
KOD (0 - 1) |
SUMA KONTROLNA |
WSKAŹNIK |
ZERO (nie używane) |
|
Nagłówek oraz pierwsze 64 bity datagramu, który spowodował błąd. |
||
... |
WSKAŹNIK - wskaźnik do oktetu, który spowodował błąd (KOD 0). Jeśli brakuje jakiejś opcji pole WSKAŹNIK nie jest wypełniane tylko zwracany jest KOD 1.
Prośba o czas.
Komunikat „prośba o czas” umożliwia synchronizację zegarów i szacowanie czasu przesyłania pakietów.
TYP (13 - 14) |
KOD (0) |
SUMA KONTROLNA |
IDENTYFIKATOR |
NUMER KOLEJNY |
|
CZAS POCZĄTKOWY (wypełnia pierwotny nadawca przed wysłaniem) |
||
CZAS OTRZYMANIA (wypełnia odbiorca tuż po otrzymaniu) |
||
CZAS ODESŁANIA (wypełnia odbiorca tuż przed wysłaniem odpowiedzi) |
Prośba o maskę adresową.
Jednostka wysyła do routera to zapytanie, aby ustalić maskę podsieci.
TYP (17 - 18) |
KOD (0) |
SUMA KONTROLNA |
IDENTYFIKATOR |
NUMER KOLEJNY |
|
MASKA ADRESOWA |
DNS (Domain Name System)
Po co stosuje się nazwy w internecie?
Pomimo funkcjonowania dobrze zrozumiałego mechanizmu adresów IP (nazwy niskiego poziomu), dużo łatwiej jest zapamiętać nazwy złożone z ciągu znaków wybranych z alfabetu skończonego (nazwy wysokiego poziomu).
Jaki jest podstawowy problem przy nadawaniu nazw?
Chyba najważniejszym problemem jest ilość przyłączonych do sieci komputerów. W pojedynczej firmie problem ten praktycznie nie występuje, jednak w sieci rozległej - internet staje się on niezwykle istotny.
Co oznacza pojęcie „płaska przestrzeń nazw”?
Początkowo nazwy jednostek w interecie posiadały nazwy składające się z ciągu znaków bez żadnej struktury („płaska przestrzeń nazw”). Całą przestrzenią nazw zarządzał centralny ośrodek - NIC (Network Information Center) przekształcony później w INTERNIC (INTERnet Network Information Center).
Zalety i wady „płaskiej przestrzeni nazw”.
Zalety:
Nazwy są przeważnie krótkie i wygodne;
Wady:
Problem z obsługą dużej liczby maszyn:
Nazwy pochodzą ze wspólnej puli - następuje więc często konflikt interesów.
Wzrasta obciążenie ośrodka centralnego - związane zarówno pod względem obsługi nowych zgłoszeń, jak i kosztów utrzymania pełnej listy nazw i ich adresów. Rośnie także obciążenie sieci, jeśli cała baza nazw znajduje się w jednym węźle sieci.
Co to jest „hierarchiczna przestrzeń nazw”?
Hierarchiczna przestrzeń nazw eliminuje główną wadę płaskiej przestrzeni nazw tzn. obciążenia ośrodka centralnego.
Tworząc hierarchiczną przestrzeń nazw:
Decentralizujemy mechanizm przydzielania nazw;
Dzielimy przestrzeń nazw na niezależnie zarządzane części;
Decentralizujemy bazę umożliwiającą odwzorowanie nazw na adresy IP.
Kto odpowiada za przydzielanie i obsługą nazw w systemie hierarchicznym?
Ośrodek centralny dokonuje podziału przestrzeni nazw i każdą z tak powstałych podprzestrzeni przekazuje do pełnego zarządzania mniejszym (bardziej lokalnym) organizacjom. Powyższy podział może następować tak długo aż rozmiar końcowej części będzie prosty i szybki w obsłudze. Hierarchie odpowiedzialności odwzorowuje przeważnie przyjęta powszechnie struktura nazw:
nazwa_lokalna.nazwa_regilonalna.nazwa_globalna
Aby lepiej zrozumieć potrzebę, zasadę oraz podział obowiązków w funkcjonowaniu hierarchicznej przestrzeni nazw, można ją porównać do struktury organizacyjnej dużej firmy... (dyrektor -> kierownik -> pracownik).
Co określa System Nazw Dziedzin (DNS)?
Składnię nazw:
Przyjęto, że nazwa dziedziny składa się z ciągu nazw cząstkowych (etykiet) oddzielonych od siebie separatorem (kropką). Zapisując nazwę zaczynamy od etykiety lokalnej a kończymy na etykiecie dziedziny najwyższego poziomu. Nie są rozróżniane małe i duże litery.
Reguły podziału odpowiedzialności za poddziedziny;
Implementację systemu rozproszonego.
Dzięki temu mamy:
zbiór współpracujących serwerów znajdujący się w wielu ośrodkach;
większość nazw można rozwijać lokalnie, co zwiększa szybkość i odporność na uszkodzenia.
awaria pojedynczej jednostki nie ma wpływu na pracę systemu (serwery zapasowe, pamięć podręczna).
Jakich nazw można używać tworząc dziedziny?
Praktycznie dowolnych (szczególnie w sieciach autonomicznych, odłączonych od innych). Jednak ze względu na czytelność, łatwość zapamiętania oraz perspektywę włączenia się w strukturę rozległej sieci (Internet) stosuje się schemat nazw Internetu.
Jak można podzielić główny poziom hierarchii nazw?
Podział nazw może bazować na:
hierarchii geograficznej:
us, pl, ny, lodz itd.
hierarchii organizacyjnej:
com, edu, gov, mil, net, org
Jaką strukturę ma system nazw dziedzin?
Jest to struktura drzewa, która nie ma nic wspólnego ze strukturą sieci. Ilustruje ona tylko zależności między serwerami nazw (kto zna kogo).
Generalnie drzewa nazw są bardziej płaskie niż wynikałoby to z liczby etykiet w nazwie.
Jakie są sposoby korzystania z systemu nazw?
Aby jednostka mogła korzystać z systemu nazw musi znać adres przynajmniej jednego serwera nazw.
Rekurencyjne odwzorowywanie nazw (klient zażądał pełnego tłumaczenia): Jeśli zapytany serwer nie ma potrzebnych informacji to kontaktuje się z serwerem, który potrafi dać odpowiedź i wynik ten przesyła klientowi.
Iteracyjne odwzorowywanie nazw: Jeśli zapytany serwer nie ma potrzebnych informacji to zwraca adres następnego serwera, który powinien być odpytany.
Jak tłumaczone są nazwy?
Ogólnie zasada tłumaczenia oparta jest na dwustopniowym procesie rozwiązywania nazw, który rozpoczyna poszukiwanie nazwy od lokalnego serwera, i jeśli ten nie posiada właściwych informacji kieruje zapytania do serwerów nadrzędnych. Dzięki temu unikamy obciążenia głównych serwerów (w pobliżu korzenia drzewa hierarchii), zwiększamy szybkość i niezawodność tłumaczenia.
Po co stosuje się pamięć podręczną w serwerach nazw?
Aby zwiększyć szybkość wyszukiwania nazw nie lokalnych. Serwer wysyłając informację do klienta zaznacza, że jest to informacja nieautorytatywna i podaje dodatkowo adres serwera, od którego otrzymał te dane.
Format komunikatów.
Takie komunikaty są przesyłane między klientem a serwerem nazw (serwer, który nie posiada odpowiednich informacji staje się z kolei klientem „wyższego” serwera).
1 31
IDENTYFIKACJA |
PARAMETR |
LICZBA PYTAŃ |
LICZBA ODPOWIEDZI |
LICZBA AUTORYTETÓW |
LICZBA DODATKOWYCH |
PYTANIA ... |
|
ODPOWIEDZI ... |
|
AUTORYTETY ... |
|
DODATKOWE INFORMACJE ... |
IDENTYFIKACJA - Dopasowanie pytań i odpowiedzi.
PARAMETR - Żądana operacja oraz kod odpowiedzi.
LICZBA * - Informacje o ilości pozycji w dalszej części komunikatu.
PYTANIA - Pole składa się z kilku mniejszych pól:
NAZWA: Szukana nazwa;
TYP: Typ pytania - czy interesuje nas adres jednostki, czy adres pocztowy;
KLASA: Nazwy internetowe stanowią tylko jedną klasę nazw.
ODPOWIEDZI, AUTORYTETY, DODATKOWE INFORMACJE - Te pola zawierają następujące podpola:
NAZWA ZASOBU.
TYP.
KLASA.
CZAS ŻYCIA: Jak długo można przechowywać otrzymane informacje w pamięci podręcznej;
DŁUGOŚĆ DANYCH: Liczba oktetów pola DANE.
DANE: Informacje dotyczące nazwy.
Jakie są najważniejsze typy obiektów w DNS?
TYP |
ZNACZENIE |
A |
Adres jednostki |
MX |
Nazwa jednostki zapewniająca wymianę poczty |
NS |
Nazwa serwera zawierającego autorytatywne informacje dla danej dziedziny. |
SOA |
Ciąg pól, które wyznaczają część hierarchii nazw, za którą odpowiedzialny jest dany serwer |
Po co stosuje się serwery podstawowe i zapasowe w DNS?
Zapewniają zwiększenie niezawodności systemu nazw.
Protokół ICMP; DNS
- 7 -