wydawać się nieco dziwne, dlatego też przy takich informacjach będę
zapisywać oznacznie oryginalności zapisu (<strong>sic/sic!</strong>).
</p>
+ <h1 id="1.13.icmpprotocol">1.13. Protokół ICMP</h1>
+ <p>
+ Protokół ICMP jest protokołem diagnostyczno-kontrolnym, wspomagając
+ protokoł IP. Przez użytkowników może zostać wykorzystany do sprawdzenia
+ połączenia z siecią oraz weryfikacji transy wysyłanych pakietów.
+ </p>
+ <h2 id="1.13.icmpmessages">1.13.1. Komunikaty protokołu ICMP</h2>
+ <p>
+ Protokoł ICMP dostarcza informacji o problemach związanych z
+ przetwarzaniem pakietów IP w określonych warunkach.
+ </p>
+ <p>
+ ICMP w wersji 4 posiada głównie funkcjonalność sygnalizacyjną na IPv4.
+ Natomast w przypadku IPv6 funkcjonalność protokołu ICMPv6
+ rozszerzono o dodatkowe role.
+ </p>
+ <p>
+ Oczywiśćie ICMP dla IPv6 dalej pozostaje protokołem sygnalizacyjnym.
+ Obie wersje protokółu wspierają podstawowe komunikaty takie
+ jak:
+ </p>
+ <ul>
+ <li>Osiągalność hosta</li>
+ <li>Nieosiągalność celu lub usług</li>
+ <li>Wyczerpanie czasu</li>
+ </ul>
+ <p>
+ Warto zaznaczyć, że nie ze wszystkich sieci otrzymamy odpowiedź,
+ ponieważ w wielu z nich protokół ICMP jest blokowany przy użyciu
+ zapory, ze względów bezpieczeństwa.
+ </p>
+ <p>
+ Do badania osiągalności hosta, można wykorzystać komunikat
+ ICMP <strong>Echo</strong>. Jeden z hostów wysyła do drugiego
+ żądanie <em>Echo</em> (<em>request</em>), jeśli ten drugi host jest
+ osiągalny to odpowie przy użyciu komunikatu odpowiedzi <em>Echo</em>
+ (<em>reply</em>)
+ </p>
+ <p>
+ W przypadku mierzenia osiagalności celów oraz usług sprawa trochę
+ bardziej skomplikowana. Komunikat ICMP może zawierać specjalny
+ kod, który wskaże nam dlaczego pakiety nie mogą dotrzeć.
+ </p>
+ <p>
+ Dla IPv4 są to kolejno:
+ </p>
+ <ul>
+ <li><strong>0</strong> - sieć jest nieosiągalna</li>
+ <li><strong>1</strong> - host jest nieosiągalny</li>
+ <li><strong>2</strong> - protokół jest nieosiągalny</li>
+ <li><strong>3</strong> - port jest nieosiągalny</li>
+ </ul>
+ <p>
+ Natomiast dla IPv6 są to kolejno:
+ </p>
+ <ul>
+ <li><strong>0</strong> - brak trasy do celu</li>
+ <li><strong>1</strong> - komunikacja z celem została zablokowana przez
+ administratora (np. na komunikację nie pozwala firewall)</li>
+ <li><strong>2</strong> - poza zakresem adresu źródłowego</li>
+ <li><strong>3</strong> - adres nieosiągalny</li>
+ <li><strong>4</strong> - port nieosiągalny</li>
+ </ul>
+ <p>
+ Innym rodzajem komunikatu jest upłynięcie czasu. Jak możemy pamiętać
+ z budowy nagłówka pakietu IPv4, to zawiera on pole TTL, każde
+ przejście pakietu przez router obniża tą wartość o 1, aż do jej
+ wyzerowania. W momecie wyzerowania pola TTL, dla np. naszego
+ żądania <em>Echo</em>, możemy otrzymać komunikat o tym, że pole TTL
+ zostało wyzerowane w trakcie przesyłu pakietu
+ </p>
+ <p>
+ Protokół ICMP dla IPv6 został zaktualizowany, a jego funkcjonalność
+ została rozszerzona na 4 nowe rodzaje komunikatów jako część
+ protokołu <em>Neighbor Discover Protocol</em>.
+ </p>
+ <p>
+ Nowe komunikaty dzielą się na wymieniane między hostem a routerem,
+ to jest:
+ </p>
+ <ul>
+ <li><strong>Zapytanie o router</strong> - <em>Router Solicitation</em>
+ (RS)</li>
+ <li><strong>Ogłaszanie się routera</strong> -
+ <em>Router Advertisement</em> (RA)</li>
+ </ul>
+ <p>
+ Jak i na te wymienie między hostami, to jest:
+ </p>
+ <ul>
+ <li><strong>Zgłoszenie się hosta</strong> -
+ <em>Neighbor Solicitation</em> (NS)</li>
+ <li><strong>Ogłoszenie się hosta</strong> -
+ <em>Neighbor Advertisement</em> (NA)</li>
+ </ul>
+ <p>
+ ICMPv6 zawiera jeszcze inne komunikaty, ale są one np. podobne do
+ komunikatu przekierowania (<em>redirect</em>) wykorzystywanego IPv4.
+ </p>
+ <p>
+ Komunikaty RA w IPv6 są wysyłane przez router co 200 sekund, aby
+ dostarczyć informacje do wszystkich obsługujących IPv6 urządzeń.
+ Poza adresami routera przekazywany jest prefix i jego długość, adresy
+ DNS czy nazwa domenowa. Komunikaty RA są wykorzystywane do konfiguracji
+ bramy domyślnej dla hostów, które są ustawione na samodzielną
+ konfigurację przy ustawią one adres lokalny.
+ </p>
+ <p>
+ Routery odpowiedzą za pomocą komunikatu RA na otrzymany komunikat RS.
+ Hosty wysyłają RS w celu określenia informacji na temat adresacji
+ protokołu IPv6.
+ </p>
+ <p>
+ Urządzenia, które mają skonfigurowane IPv6 pod GUA lub Local-Link,
+ mogą używać mechanizmu <strong>DAD</strong>
+ (<em>Duplicate Adress Detection</em>) w celu upewnienia się o
+ unikalności adresu. W celu sprawdzenia unikalności swojego adresu
+ host wysyła komunikat NS, ustawiając swój adres jako adres docelowy.
+ Jeśli jeden z hostów będzie mieć taki adres, wówczas odpowie na tem
+ pakiet komunikatem (NA).
+ </p>
+ <p>
+ W przypadku IPv6 protokół ICMP w wersji 6, przejął rozwiązywanie
+ adresów IP na adresy MAC. Host, który potrzebuje adresu MAC innego
+ hosta wysła do niego komunikat NS. W odpowiedzi host odpowiada
+ komunika NA zawierającym adres MAC stacji, która go wysłała.
+ </p>
+ <h2 id="1.13.2.pingandtraceroutetests">1.13.2. Testy ping oraz traceroute</h2>
+ <p>
+ Polecenie <strong>ping</strong> jest narzędziem testowym zarówno dla
+ IPv4 i IPv6. Polega ono na wysłaniu kilku komunikatów
+ <em>echo requests</em> i oczekiwaniu na <em>echo reply</em>
+ wyswietlając każdą odpowiedź. Na koniec zwracane jest podsumowanie
+ zawierające m. in. uśredniony czas wszystkich odpowiedzi. Polecenia
+ ping mogą wyglądać różnie w zależności od systemu.
+ </p>
+<!-- Przykład z pingiem na loopback z Windowsa, Linux i IOS -->
+ <p>
+ Polecenie ping możemy zastosować kilku scenariuszach aby uzyskać kilka
+ odpowiedzi. Jeśli chcemy sprawdzić czy nasz stos siciowy działa
+ poprawnie możemy zpingować swój adres pętli zwrotnej:
+ <code class="code-inline">ping 127.0.0.1</code>. Pozytywna odpowiedź
+ oznacza, że nasz host może funkcjonować we wszystkich współczesnych
+ sieciach. Drugim testem jaki możemy wykonać jest ping na adres bramy
+ domyślnej, pozwoli nam to ustalić czy nasz konfiguracja IP jest
+ prawidłowa. Szczególnie przydatne, gdy konfigurowaliśmy nasz ręcznie
+ bez użycia serwera DHCP. Jeśli odpowiedź na ten test będzie pozytywna
+ to oznacza, to że nasz host ma możliwość komunikacji w sieci, do
+ której jest podpięty. Ostatnim trzecim testem jest sprawdzenie
+ dostępności jakiegoś hosta w Internecie lub w drugiej sieci. Takie
+ działania może mieć na celu upewnienie się, że mamy dostęp Internetu
+ oraz, że nasz router jest skonfigurowany jeśli obsługuje on więcej niż
+ dwie sieci.
+ </p>
+ <p>
+ Innym z narzędzi pozwalających nam testować możliwości połączenia. Jest
+ <strong>traceroute</strong> w systematch takich jak Windows może
+ nosić nazwę <em>tracert</em>. Nie koniecznie może być przedatne
+ zwykłym użytkownikom, ale jeśli administrator ma kilka routerów, to
+ za pomocą tego narzędzia sprawdzić możliwości komunikacji miedzy
+ odległymi sieciami. Działa ono w oparciu o komunikat
+ <em>Time exceeded</em> manipulując wartością TTL. Na początku nadawca
+ wysyła pakiet IP z zawartością ICMP do docelowego hosta
+ ustawia TTL na jeden i przesyła do bramy. Brama zmniejsza TTL i
+ odsyła do klienta komunikata <em>time exceeded</em>, nam na ekranie
+ pojawia się pierwszy skok. Następnie nadawca zwiększa TTL o 1 i
+ wysyła ponownie i tak dalej, aż osiągnie cel podany podczas wydawania
+ polecenia lub liczba skoków osiągnie 30. Zamiast nazw hostów (routerów)
+ lub ich adresów IP zobaczymy gwiazdki (<strong>*</strong>), wówczas
+ oznaczna to, że wysłany pakiet został utracony lub host nie jest
+ w stanie (np. ze względów bezpieczeństwa) opowiedzieć za pomoca
+ komunikatu <em>time exceede</em>.
+ </p>
+ <p>
+ W przypadku nagłówków pakietów IPv6 nie mamy doczynienia z polem TTL, a
+ z polem <em>Hop Limit</em>.
+ </p>
+ <h3 id="1.13.2.pka">Zadanie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="">Weryfikacja adresacji IPv4 i IPv6</a><br />
+ <a href="">Użycie ping oraz traceroute do sprawdzenia łączności w sieci</a>
+ </p>
+ <h2 id="ch13summary">Podsumowanie</h2>
+ <p>
+ Ten rozdział zamyka warstwę trzecią. Poznaliśmy w nim protokoł ICMP,
+ podstawowe komunikaty oraz ich rodzaje. Dowiedzieliśmy się jaką ważną
+ rolę będzie pełnić ten protokół w sieciach opartych na IPv6.
+ Na koniec omówiliśmy sobie sposób działania narzędzi takich jak
+ <em>ping</em>
+ czy <em>traceroute</em> oraz w jaki sposób wykorzystują do swojego
+ działania komunikaty protokołu ICMP.
+ </p>
+ <h3 id="1.13.pka">Zadanie praktyczne - Packet Tracer</h3>
+ <p>
+ <a href="">Użyj ICMP do naprawy połączeń w sieci</a>
+ </p>
+ <h3 id="1.13.lab">Laboratorium</h3>
+ <p>
+ <a href="">Wykorzystaj ping oraz traceroute do testów sieciowych</a>
+ </p>
<h1 id="1.14.transportlayer">1.14. Warstwa transportowa</h1>
<p>
Warstwa transportowa jest odpowiedzialna za komunikację pomiędzy