TCP/IP

ITpedia

(Przekierowano z IP)

IP jest bezpołączeniowym protokołem komunikacyjnym, generującym usługi datagramowe. Datagramy są to pakiety, zawierające między innymi adres źródła i miejsca przeznaczenia oraz całość lub fragment danych przekazywanych między źródłem a miejscem przeznaczenia. Przepływ datagramów w sieci odbywa się bez kontroli kolejności dostarczania ich do miejsca przeznaczenia, kontroli błędów i bez potwierdzania odbioru. W tej sytuacji za uporządkowanie pakietów we właściwej kolejności i sprawdzenie, czy dotarły wszystkie i bez błędów, jest odpowiedzialny odbiorca. Tak znaczne uproszczenie funkcji wykonywanych w czasie transportu datagramów sprawia, że protokół IP jest szybki i efektywny.

Protokół IP (Internet Protocol) został zaprojektowany w celu umożliwienia współdziałania wielu systemów typu host. Znalazł szerokie zastosowanie w sieciach lokalnych LAN i WAN. IP łącznie z TCP (Transmission Control Protocol) są oficjalnymi protokołami sieci Internet.

W sieciach z protokołem IP przepływem pakietów sterują routery IP (IP router) łączące sieci przyłączone albo lokalnie, albo zdalnie i przesyłające datagramy pomiędzy nimi.

Spis treści

Adresy sieciowe protokołu IP

Prezentacja adresu IP
Prezentacja adresu IP

Adresy IP są sklasyfikowane w pięciu grupach adresów: klasach A, B, C, D i E. Każdy adres składa się z czterech liczb oddzielonych kropkami (na przykład 204.251.122.127). Każda z liczb przedstawiona w postaci binarnej jest reprezentowana przez 8 bitów, stąd nazwa - oktet. Adres w każdym oktecie ma zakres od 0 do 255. Pierwsza liczba (oktet) określa jedną z pięciu klas adresów. Pierwszy oktet adresów klasy A jest liczbą mieszczącą się w przedziale od 1 do 127. Pierwszy oktet adresów klasy B jest liczbą mieszczącą się w zakresie od 128 do 191. Pierwszy oktet adresów klasy C jest liczbą mieszczącą się w zakresie od 192 do 223. Pierwszy oktet adresów klasy D jest liczbą mieszczącą się w zakresie od 224 do 240.

W zależności od klasy adresu pozostałe oktety mają różne znaczenie. W adresach klasy A tylko pierwszy oktet jest używany do definiowania adresu sieci; pozostałe trzy oktety (24 bity) tworzą unikatowe adresy węzłów sieci lub hostów.

W adresach klasy B pierwsze dwa oktety są używane do definiowania adresów sieci, pozostałe dwa są adresami hostów.

Struktura adresów protokołu IPv4
Struktura adresów protokołu IPv4

W adresach klasy C pierwsze trzy oktety są używane do definiowania adresów sieci, czwarty oktet adresuje hosty. Jeśli dysponujemy adresem klasy C, na przykład 204.251.122.0, to w sieci o takim adresie możemy zainstalować 254 węzły (adresy 0 i 255 są zarezerwowane).

Dla abonentów zewnętrznych unikatowy adres ma postać 204.251.122.0. Urządzenia w tej sieci mogą mieć adresy 204.251.122.1, 2, 3... itd., aż do 254.

Format datagramu protokołu IPv4
Format datagramu protokołu IPv4

Łatwo się domyślić, że jeśli przydzielimy adresom sieci większą liczbę oktetów, to większa będzie możliwość adresowania. Na całym świecie w klasie A dysponujemy tylko 127 adresami sieci. Zostały one zagarnięte przez pierwszych użytkowników protokołu IP, takich jak MIT (Massachusetts Institute of Technology) i inne uniwersytety oraz korporacje, takie jak Xerox.

W klasie A jest używany do określenia adresu sieci tylko pierwszy oktet, pozostałe 24 bity można użyć do stworzenia prawie 17 milionów adresów hostów. Obecnie uzyskanie jednego spośród 127 adresów sieci w klasie A graniczy z cudem.

W klasie B jest przeszło 16 000 adresów sieci, z których każdy dysponuje 65 534 unikatowymi 16-bitowymi adresami hostów. Są one zarezerwowane dla przedsiębiorstw i instytucji posiadających co najmniej 4000 hostów i które mogą uzasadnić konieczność posiadania 32 podsieci. Chociaż pozostało jeszcze trochę adresów tej klasy, to jest ich coraz mniej i coraz trudniej je uzyskać. W klasie C jest nieco ponad 2 miliony adresów sieci, z których każdy może udostępnić 254 adresy węzłów. Użytkownicy klasy C łagodzą rozrost sieci przez użycie zasad adresowania klasy A lub B w obrębie sieci i zastosowanie urządzeń translacyjnych do komunikacji ze światem zewnętrznym.

Datagram protokołu IP

Datagram IP zawiera informacje niezbędne do dostarczenia pakietu danych od nadawcy do odbiorcy. W sieciach niezdolnych do przesyłania dużych datagramów, tam gdzie wymagany jest podział pakietu na co najmniej dwa datagramy, są wykorzystywane pola: identyfikacji, flag i umiejscowienia fragmentu.

Protokół IPv6

Ogromny rozwój Internetu ujawnił kilka wad protokołu IPv4. Pole adresowe o długości 32 bitów może co prawda teoretycznie zidentyfikować ponad 4 miliardy systemów, ale zdefiniowane klasy adresów znaczne ograniczają tę liczbę. Ponadto w poprzednich wersjach protokołu IP nie przewidziano odpowiedniego poziomu zabezpieczeń i wspomagania przepływu informacji w czasie rzeczywistym, wymaganego w sytuacjach, takich jak przenoszenie głosu przez Internet.

Protokół IPv6 w dokumentach RFC

Opis i zasady implementacji protokołu IPv6 można znaleźć w następujących dokumentach RFC (Request for comments):

Pakiety protokołu IPv6

Najbardziej istotnymi różnicami w porównaniu do pakietów protokołu IPv4 jest udoskonalenie systemu adresowania, który używa 128 bitów w miejsce 32, oraz format pakietu, który pozwala umieszczać opcje w nagłówkach rozszerzających. Zapewnia to optymalizację przepływu pakietów przez routery, ponieważ każdy host i router, badając nagłówki, może trafnie dobrać funkcje sterujące przepływem pakietów.

Inne funkcje wspomagają koncepcję "zainstaluj i pracuj" (plug and play), dzięki której nowe węzły w sieci mogą otrzymać parametry i własne adresy bez absorbowania w każdym przypadku serwera. Przewidziano również wspomaganie dla przepływów w czasie rzeczywistym (głos i wideo). Umożliwi to w przyszłości Internetowi i sieciom intranet dostawę usług telefonicznych i telewizji kablowych.

Pole określające wersję protokołu ma 4 bity (6 na tym polu oznacza, że jest to nagłówek protokołu IPv6). Pole priorytetu również ma 4 bity, informacja tu zawarta wskazuje priorytet pakietu. Przykładowo uaktualnienia protokołów zarządzania siecią lub routingu mogą mieć przydzielony priorytet wyższy od poczty elektronicznej. W ten sposób pakiety o największym znaczeniu będą miały szansę na przejście przez zatłoczoną sieć.

24-bitowe pole etykiety przepływu (Flow Label) jest używane do identyfikowania transmisji danych, które wymagają specjalnej obsługi. Pomysł ten jest co prawda w fazie eksperymentu, lecz może już być użyty w sieci Internet do wspomagania przesyłania danych w czasie rzeczywistym.

Pole długości (Payload) jest liczbą 16-bitową, która określa długość pakietu wyrażoną w oktetach (od 576 do 65 535 oktetów). Jeśli należy przesłać więcej danych, to można użyć opcji Jumbo Payload Option. Daje ona większe możliwości w porównaniu do protokołu IPv4, który ogranicza długość pakietu do 65 535 bajtów.

Format nagłówka protokołu IPv4
Format nagłówka protokołu IPv4

Pole Next Header zajmuje 8 bitów i identyfikuje nagłówek następujący bezpośrednio po nagłówku IPv6, na przykład nagłówek TCP lub jeden z nagłówków rozszerzających protokółu IPv6.

Pole Hop Limit ma długość 8 bitów. Pola adres źródła i adres miejsca przeznaczenia zajmują pola o długości 128 bitów.

Porównując nagłówek IPv6 z istniejącym nagłówkiem IPv4, widać, że pole priorytetu IPv6 jest podobne do pola TOS, funkcje pola Next Header są podobne do funkcji pola Protocol IPv4 oraz pole Hop Limit w IPv6 działa podobnie do pola czas życia.

Nagłówki opcjonalne

Podstawowy nagłówek IPv6 jest tylko dwa razy dłuższy od nagłówka IPv4 (40 oktetów w stosunku do 20). Zwiększenie wydajności uzyskuje się przez optymalizację operacji związanych z nagłówkiem pakietu i przesuwając niektóre opcjonalne funkcje do nagłówków rozszerzenia.

Jeśli na przykład jest żądana funkcja fragmentacji, to informacja o niej jest umieszczana w specjalnym nagłówku rozszerzenia. W ten sposób ogranicza się liczbę pól tylko do niezbędnych. Host wysyłający pakiet określa wymagane opcjonalne nagłówki rozszerzenia, które z kolei są badane przez routery.

Tak więc pakiet IPv6 może mieć zero, jeden lub większą liczbę nagłówków rozszerzających. Pole Next Header identyfikuje nagłówek, który przychodzi w następnej kolejności.

Zdefiniowano sześć opcjonalnych, rozszerzających nagłówków:

  • Opcja Hop-by-Hop (skok po skoku) - przenosi informację, która musi być sprawdzana i przetwarzana w każdym węźle wzdłuż drogi przesyłania pakietu, również w węźle docelowym.
  • Opcja Destination (miejsca przeznaczenia) - przenosi informację, która wymaga sprawdzenia pakietu tylko w miejscu przeznaczenia. Obecnie brak jest przykładu na zastosowanie tej opcji, jednak jej zdefiniowanie wskazuje na to, jak protokół IPv6 w przyszłości będzie spełniać trudne dziś do przewidzenia wymagania.
  • Routing Header (nagłówek routingu) - specyfikuje pośrednie węzły tworzące ścieżkę od źródła do miejsca przeznaczenia.
  • Fragment Header (nagłówek fragmentacji) - używany przez węzeł źródłowy w celu dzielenia komunikatu na fragmenty, które mogą być przetwarzane przez znajdujące się po drodze routery.
  • Authentication (uwierzytelnianie) - zapewnia integralność i uwierzytelnianie danych, używając metod, takich jak MD5 (Message Digest 5).
  • Encapsulating Security Payload (ESP) - zapewnia poufność danych, na przykład używając metody DES (Data Encryption Standard).

Strukturalizacja pakietu IPv6, w podstawowym nagłówku poprzedzającym opcjonalne nagłówki rozszerzające, w przyszłości uprości dodawanie nowych własności i funkcji do tego protokołu.

Rodzaje adresów w protokole IPv6

Protokół IPv6 całkowicie rozwiązuje problem wyczerpywania się adresów: zwiększa bowiem przestrzeń adresową z 32 do 128 bitów. Dokument RFC 1884 (IPv6 Addressing Architecture) definiuje trzy rodzaje adresów protokołu IPv6:

  • Unicast - zapewnia komunikację typu punkt-punkt (point-to-point).
  • Anycast - pozwala komunikować się z najbliższym urządzeniem z grupy urządzeń.
  • Multicast - pozwala komunikować się z wieloma urządzeniami z grupy urządzeń.

Anycast jest nowym typem adresu, który na przykład umożliwia komunikację z najbliższym routerem. Router ten będzie mógł rozpowszechnić informację w innej grupie urządzeń. W ten sposób host wysyła zaktualizowane dane do jednego routera, który z kolei będzie odpowiedzialny za retransmisję tej informacji do wszystkich zgrupowanych urządzeń.

Adres typu Multicast ogranicza zasięg pakietu, to znaczy określa, jak daleko ma dotrzeć. Przykładowo, używając adresu Multicast dla telekonferencji w pewnym przedsiębiorstwie, można zapewnić, że pakiet z sieci lokalnej nie przedostanie się przez router i nie powędruje do sieci globalnej.

Nowe funkcje wspomagające

Rozwinięto nowe operacje protokołu, które wspomagają wymagania funkcjonalne IPv6. Najbardziej przekonywającym przykładem są nagłówki Authentication i ESD, które zapewniają warstwie zabezpieczenia (secure layer) protokołu IPv6 niezbędne funkcje dla przyszłej komercjalizacji sieci Internet.

Innym przykładem są funkcje protokołu autokonfiguracji niezależnej od przynależności państwowej (Stateless Autoconfiguration Protocol), umożliwiającego włączenie komputera na zasadzie "plug-and-play".

Protokół autokonfiguracji zapewnia środki, by komputer włączony do dowolnej sieci sam sobie przydzielił adres IPv6, który w części jest oparty na jego karcie sieciowej.

Ponieważ adres karty jest unikatowy, to przydzielony sobie adres IPv6 również będzie unikatowy, co zapobiegnie dublowaniu się adresów.

Zastosowanie protokołu IPv6 wymaga szeregu zmian w dotychczas użytkowanym oprogramowaniu sieciowym, na przykład wprowadzenia zmian w protokole RIP (Routing Information Protocol) lub w protokole OSPF (Open Shortest Path First).

Aplikacje użytkowników końcowych i systemy operacyjne również mogą wymagać zmian, by miały dostęp do własności, jakimi dysponuje protokół IPv6. Przykładem niech będą rozszerzenia do systemu operacyjnego Unix (Berkley). Interfejs programów użytkowych tego systemu (powszechnie znany jako interfejs stocket) jest używany przez wiele aplikacji opierających się na protokole TCP/IP. Ten rodzaj aplikacji API koniecznie trzeba zmienić, by wykorzystać nowe możliwości przynoszone przez protokół IPv6, takie jak pola priorytetów i etykietowania przepływów zawarte w podstawowym nagłówku.

TCP/IP i przełączanie pakietów

Protokół TCP/IP i przełączanie pakietów stanowią podstawę Internetu, a także i intrasieci (intranetów). Protokół TCP/IP jest zbiorem protokołów tworzących stos (w sensie kolejności ich wykonywania), współpracujących ze sobą w celu zapewnienia komunikacji w Internecie (intrasieci). Protokół ten opiera się na modelu warstw sieciowych ISO/OSI. Do każdej takiej warstwy są przypisane protokoły określające jej przeznaczenie. Model ISO/OSI definiuje siedem warstw funkcjonalnych sieci; TCP/IP wykorzystuje pięć warstw tego modelu:

Każdy węzeł sieci TCP/IP musi mieć przyporządkowany 4-bajtowy adres identyfikujący zarówno sieć, jak i lokalnego hosta lub węzeł sieci. Adres ten jest zapisywany w formie czterech grup cyfr oddzielonych kropkami (np. 191.33.139.98). W przypadku sieci nie związanych z Internetem adres ten może być arbitralnie wybrany i ustalony przez administratora sieci w momencie dołączania do niej nowych węzłów (w niektórych przypadkach, stacja robocza może zwrócić się do serwera o nadanie adresu dynamicznego, przyznawanego na czas połączenia). W sytuacji podłączania do Internetu adres musi być uzgodniony i zarejestrowany w Network Information Center (NIC), nad którym zarząd powierzono firmie Network Solutions z USA.

-
-