Najważniejsze informacje o protokołach
IP
IP jest protokołem zapewniającym przesyłanie datagramów przez heterogeniczną intersieć. W tym celu IP realizuje dwie podstawowe funkcje:
globalną, logiczną adresację identyfikującą węzły w intersieci i umożliwiającą znalezienie drogi do odbiorcy datagramu w sieci rozległej.
fragmentację i składanie pakietów. Funkcja ta umożliwia działanie IP na dowolnych sieciach pakietowych, mogących różnić się maksymalnym dopuszczalnym rozmiarem pakietów (MTU ang. Maximum Transfer Unit). Fragmentacja jest dokonywana przez rutery, które muszą przesłać duży datagram do sieci o małym MTU. Składanie pakietu z fragmentów wykonuje tylko węzeł, do którego pakiet został zaadresowany. Proces ten przebiega automatycznie i administrator sieci ma nań ograniczony wpływ.
IP jest protokołem bezpołączeniowym. Każdy datagram jest samodzielną jednostką transportu danych przesyłaną niezależnie od innych, bez gwarancji dostarczenia. Zapewnienie niezawodnej komunikacji połączeniowej jest zadaniem wyższej warstwy - protokołu TCP (ang. Transmission Control Protocol).
Adresacja IP
Adres IP jest 32-bitowym identyfikatorem, unikalnym w całej intersieci, który jest przyznawany administracyjnie. Zapisuje się go w notacji kropkowej (ang. dot notation) - cztery liczby dziesiętne rozdzielone kropkami. Każda z liczb odwzorowuje 8 bitów od najstarszych do najmłodszych (najstarsze bity są przesyłane najpierw):
10 |
. |
5 |
. |
254 |
. |
1 |
00001010 |
|
00000101 |
|
11111110 |
|
00000001 |
Adres IP dzieli się na dwie części:
numer sieci
numer węzła
Numer sieci pełni podobną rolę co numer kierunkowy w sieciach telefonicznych. Pozwala ustalić, czy dany adres jest osiągalny bezpośrednio w sieci lokalnej, czy za pośrednictwem rutera. Numer sieci jest związany z konkretnym łączem umożliwiającym bezpośrednią komunikację pomiędzy węzłami. Może być to np. segment ethernetu, albo łącze modemowe. Z tego powodu komputer musi mieć tyle adresów IP, do ilu sieci jest przyłączony, gdyż adres IP nie identyfikuje tak naprawdę węzła, lecz jego dołączenie do sieci.
Cała przestrzeń adresowa jest podzielona na pięć klas. Klasę adresu określają jego najstarsze bity. Klasy A, B i C są wykorzystywane do zwykłej adresacji węzłów - różnią się liczbą bitów przeznaczonych na numer sieci i węzła:
Klasa A posiada jednobajtowy numer sieci i trzy bajty przeznaczone na numer węzła. Najstarszym bitem adresu należącego do klasy A jest 0.
Klasa B przeznacza po dwa bajty na numer węzła i sieci. Dwa pierwsze bity adresu z klasy B to '10'.
Klasa C używa 24 bitów na numer sieci i ośmiu na numer węzła. Najwyższe bity adresu klasy C to '110'.
Klasa D jest używana do adresacji węzłów uczestniczących w komunikacji grupowej (ang. multicasting).Każdy adres z klasy D identyfikuje inną grupę węzłów i rozpoczyna się bitami '1110'. Adres z klasy D jest dynamicznie przypisywany za pomocą IGMP (ang. Internet Group Management Protocol) węzłom zgłaszającym akces do danej grupy. Symulator nie obsługuje rozsyłania grupowego oraz adresów klasy D.
Klasa E jest przeznaczona do badań i eksperymentów. Pakiety zawierające adresy, które rozpoczynają się bitami '1111' nie powinny być przetwarzane przez zwykłe węzły.
Porównanie klas adresowych zawiera poniższa tabela:
Klasa |
Najwyższe bity |
Liczba sieci w klasie |
Maks. liczba |
Zakres adresów |
A |
0 |
126 |
16 777 214 |
1.0.0.0 - 126.255.255.255 |
B |
10 |
16384 |
65 534 |
128.0.0.0 - 191.255.255.255 |
C |
110 |
2 097 152 |
254 |
192.0.0.0 - 223.255.255.255 |
D |
1110 |
nie dotyczy |
nie dotyczy |
224.0.0.0 - 239.255.255.255 |
E |
1111 |
nie dotyczy |
nie dotyczy |
240.0.0.0 - 254.255.255.255 |
Adresy specjalne
Wśrod adresów należących do klas A, B i C są adresy o specjalnym znaczeniu, którymi nie wolno adresować węzłów. Poniżej opisano je używając następującej konwencji do symbolizowania adresu IP:
<numer sieci, numer węzła>
w miejscu numeru sieci i węzła są używane:
* - dowolna kombinacja bitów
-1 - same bity '1'
0 - same bity '0'
Poniżej wyliczono adresy specjalne i omówiono ich znaczenie:
<127, *> |
pętla wewnętrzna. Pakiet z takim adresem nie powinien pojawić się w sieci; |
<0, 0> |
dowolny węzeł w dowolnej sieci. Używany jako adres nadawcy przez węzły, które nie znają własnego adresu; |
<*, 0> |
dowolny adres w pewnej sieci. Może być użyty jako adres nadawcy; |
<-1, -1> |
adres rozgłoszeniowy o zasięgu lokalnym. Nie powinien być przekazywany przez rutery; |
<*, -1> |
ukierunkowany adres rozgłoszeniowy - może być używany jako adres odbiorcy i oznacza wszystkie węzły w sieci o podanym numerze. |
Nagłówek datagramu IP
Nagłówek datagramu IP ma conajmniej 20 bajtów i może zostać przedłużony przez opcje. Opcje IP mają bardzo ograniczone zastosowanie i nie będą tu omawiane.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
0 |
4 |
8 |
16 |
19 |
31 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Wersja |
IHL |
Rodzaj obsługi |
Długość całkowita |
||||||||||||||||||||||||||||
Identyfikator |
Flagi |
Przesunięcie fragmentu |
|||||||||||||||||||||||||||||
Czas życia (TTL) |
Protokół |
Suma kontrolna |
|||||||||||||||||||||||||||||
Adres nadawcy |
|||||||||||||||||||||||||||||||
Adres odbiorcy |
Objaśnienie pól
Wersja |
Musi być 4; |
IHL |
(ang. Internet Header Length) długość nagłówka w 32-bitowych słowach (jaka jest maksymalna długość nagłówka?); |
Rodzaj obsługi |
pole służy do oznaczenia sposobu obsługi datagramu. Każdy bit oznacza inny rodzaj wymagań, np: małe opóźnienie, duża przepustowość, niezawodność; |
Długość całkowita |
długość całego datagramu razem z nagłówkiem wyrażona w bajtach (jaka jest maksymalna długość pakietu IP?); |
Identyfikator |
identyfikator pakietu służący do składania pakietu z fragmentów. Wszystkie fragmenty datagramu dziedziczą jego identyfikator; |
Flagi |
3 bity dotyczące fragmentacji:
|
Przesunięcie fragmentu |
określa położenie fragmentu względem początku oryginalnego pakietu; |
Czas życia - TTL |
oznacza liczbę etapów, które pakiet może jeszcze przejść. Pole jest zmniejszane przez każdy ruter przesyłający pakiet. Jeśli po zmniejszeniu wartość pola osiągnie zero, pakiet jest usuwany; |
Protokół |
identyfikator protokołu przenoszonego przez IP; |
Suma kontrolna |
suma kontrolna nagłówka IP; |
Adres nadawcy |
adres IP pierwotnego nadawcy datagramu; |
Adres odbiorcy |
adres IP ostatecznego odbiorcy datagramu. |
Jak wspomniano powyżej, IP jest bezpołączeniowy. Może się więc zdażyć, że pakiety tworzące jeden strumień (np. kolejne części pliku) będą przesyłane różnymi drogami przez sieć. Każdy pakiet musi więc posiadać dokładny adres swego źródła i celu. Adres celu służy do wyznaczania trasy pakietu, a adres źródła - jako informacja, gdzie wysłać odpowiedź lub komunikat o spowodowanym przez pakiet błędzie.
Wskazówki
Nie wolno używać adresów specjalnych;
twój identyfikator sieci musi być unikalny w całej intersieci:
w Internecie adres musisz uzyskać od swojego dostawcy usług, a ten z InterNIC lub organizacji regionalnej (Polska podlega pod RIPE);
w sieciach prywatnych powinieneś używać adresów z RFC 1597;
identyfikator węzła nie może składać się z samych zer, lub samych jedynek;
Węzły dołączone do jednego segmentu LAN powinny mieć jednakowe identyfikatory sieci.
Address Resolution Protocol (ARP)
ARP jest używany do tłumaczenia adresów internetowych na adresy sprzętowe używane przez sieci lokalne. ARP może pracować z tymi rodzajami sieci, które posiadają mechanizm rozgłaszania.
Zasada działania ARP polega na wymianie komunikatów żądanie - odpowiedź. Węzeł szukający adresu sprzętowego związanego z określonym adresem IP rozgłasza pakiet ,,Żądanie ARP''. Każdy węzeł dołaczony do sieci odbiera taki komunikat i jeśli rozpozna, że szukany jest jego adres IP - zapisuje w pamięci adres sprzętowy i IP nadawcy i wysyła pakiet ,,Odpowiedź ARP''. Jeśli jednak żaden z węzłów nie odpowie na żądanie, komputer szukający adresu wyśle je ponownie po upłynięciu pewnego czasu (standardowo 1 s). Jeśli żadna z trzech kolejnych prób nie powiedzie się - adres jest uznawany za nieosiągalny.
Tablica ARP
Tablica ARP służy do przechowywania odnalezionych przez ARP odwzorowań w celu zwiększenia efektywności działania protokołu. Tablica zapobiega wysyłaniu żądań ARP oddzielnie dla każdego pakietu skierowanego pod określony adres IP. Przed wysłaniem żądania jest ona przeszukiwana i jeśli zostanie znalezione niekompletne odwzorowane (odpowiedź ARP jeszcze nie nadeszła) pakiet jest kolejkowany.Pozycje w tablicy podlegają przeterminowaniu.
Każda pozycja w tablicy ARP posiada następujące pola:
adres IP,
adres MAC (sprzętowy),
czas życia odwzorowania.
Internet Control Message Protocol (ICMP)
ICMP jest ściśle związany z IP, chociaż zaprojektowano go jako osobny protokół. Podstawowym zadaniem ICMP jest powiadamianie o błędach związanych z doręczaniem datagramów IP. ICMP posiada też kilka rodzajów komunikatów informacyjnych, zgrupowanych w pary pytanie - odpowiedź.
Nagłówki ICMP nie mają jednolitej struktury, ich zawartość zależy od dwu ośmiobitowych pól:
typ komunikatu
kod komunikatu danego typu.
W każdym nagłówku występuje jeszcze 16-bitowa suma kontrola obliczana z pierwszych 8 bajtów pakietu.
Typy komunikatów informacyjnych:
echo i odpowiedź na echo |
używany do testowania osiągalności węzłów IP (program ping). Węzeł, który otrymał komunikat ,,echo'' ma obowiązek wysłania odpowiedzi; |
prośba o informacje |
służy do uzyskania adresu sieci. Przestarzałe; |
prośba o maskę podsieci |
służy do uzyskania maski podsieci. Przestarzałe ; |
prośba o znacznik czasu |
zaprojektowane do synchronizacji czasu. Przestarzałe; |
Komunikaty informacyjne ICMP z wyjątkiem pary echo - odpowiedź na echo mają bardzo ograniczone zastosowanie, gdyż ich funkcje przejęły wyspecjalizowane protokoły: BOOTP i DHCP obsługują konfigurację maszyn bezdyskowych, a NTP jest najbardziej powszechnym protokołem synchronizacji czasu.
Komunikaty o błędach ICMP są reakcją na błędy powodujące zazwyczaj usunięcie pewnego datagramu IP. Komunikat o błędzie zawiera pierwsze 64 bajty (w tym nagłówek) pakietu, który spowodował błąd:
odbiorca nieosiągalny |
Wysyłane przez ruter, który nie potrafi obsłużyć pakietu, gdyż nie zna drogi do jego odbiorcy, albo przez odbiorcę, który nie obsługuje przenoszonego przez datagram IP protokołu lub usługi; |
przekroczenie terminu |
wysyłany przez ruter, który usuwa pakiet z TTL=0, lub przez odbiorcę, który usuwa fragmenty niekompletnego pakietu z pamieci, gdyż upłynął termin ich złożenia; |
tłumienie nadawcy |
służy do powiadomienia nadawcy pakietu o zatorze w sieci powodującym usunięcie pakietu. Jego wysłanie nie jest obligatoryjne. Komunikat powinien być wysyłany raz na kilkanaście lub kilkadziesiąt usuwanych pakietów pochodzących z danego źródła; |
kłopot z parametrami datagramu |
wysyłany przez węzeł, który nie potrafi zinterpretować któregoś pola w nagłówku IP; |
przekierowanie |
komunikat wysyłany przez pierwszy ruter na drodze pakietu, jeśli musi on wysłać pakiet przez ten sam interfejs, z którego go otrzymał. |
Bardzo ważną zasadą, wprowadzoną w celu zapobieżenia przeciążeniom sieci i lawinom pakietów jest zakaz wysyłania komunikatu o błędzie spowodowanym przez komunikat rozgłoszeniowy IP lub inny komunikat o błędzie ICMP.