1 HERMETYZACJA DANYCH polega na opakowaniu danych - w każdej warstwie modelu OSI, kolejno idąc z góry na dół - w konieczne nagłówki/stopki odpowiednich protokołów hermetyzacja danych kroki: 1. pojawienie się danych 2. podział danych na segmenty (PDU-Protocol Data Unit warstwy transportowej) do transportu pomiędzy punktami końcowymi (end-to-end) 3. dodanie nagłówka pakietu (PDU warstwy sieciowej) a w nim źródłowego i docelowego adresu logicznego (IP) 4. dodanie nagłówka i stopki ramki (PDU warstwy łącza danych) w nagłówku znajdują się adresy fizyczne (MAC) hosta bieżącego i następnego przeskoku 5. konwersja ramki na odpowiedni strumień bitów (PDU warstwy fizycznej) dla przesłania przez medium sieciowe
2 ISO OSI: warstwa 3 - sieć = TCP/IP: warstwa 2 - Internet Protokół IP (RFC 791) jest protokołem transmisji z komutacją pakietów definiuje pakiet IP i sposób adresowania - nie dotyczy zawartości pakietów tj. przenoszonych danych (warstw wyższych) przesyła dane między warstwą (TCP/IP): Internetową i warstwą dostępu do sieci określa zawartość nagłówka pakietu IP, który zawiera adresy i inne informacje kontrolne potrzebne do znajdowania najlepszej ścieżki ze źródła do celu przez sieć (=rutowania) jest najszerzej używaną implementacją hierarchicznego schematu adresowania sieciowego usługi zapewniane przez IP są bezpołączeniowe (inaczej bezstanowe) - datagramy nie są powiązane między sobą, co oznacza, że: o datagramy mogą być wysyłane bez konieczności ustanawiania połączenia ze stacją docelową o datagramy mogą podróżować w sieci różnymi drogami do stacji docelowej o datagramy mogą być odbierane w innej kolejności przez stację docelową niż są wysłane przez stacje źródłową IP realizuje usługę best effort, która może być zawodna (unreliable) - w przypadku jakiegoś problemów z transmisją (np. przepełnienie buforów rutera) datagram IP jest usuwany i wysyłany jest komunikat ICMP - mechanizmy niezawodności są realizowane przez protokoły warstwy wyższej
3 Rozmiar datagramu IP protokół IP z założenia ma współpracować z różnymi technologiami warstwy łącza danych TCP/IP nakłada to ograniczenie na maksymalny rozmiar pakietu (MTU, Maximum Transfer Unit) przenoszonego przez ramkę sieci lokalnej: o Ethernet - 1500 oktetów o IEEE 802.3-1492 oktety o Token Ring - 4440 do 17940 oktetów (decyduje czas przetrzymywania tokenu) o FDDI - 4352 oktety o IEEE 802.4-8166 oktetów Fragmentacja na trasie podróży datagramu pomiędzy nadawcą a odbiorcą, mogą być stosowane różne technologie - te technologie mogą mieć różniące się wymagania co do parametru MTU docierający do granicy datagram może być większy niż dopuszcza to sieć, wtedy ruter decyduje o podziale - fragmentacji datagramu przychodzącego na mniejsze, które maja też strukturę datagramu IP MTU2 < MTU1 < MTU3 datagramy, które podlegały fragmentacji są składane w całość wyłącznie przez stację docelową
4 Pakiet IP składa się z danych wyższych warstw plus nagłówek IP Format nagłówka IP (RFC 791, RFC 1122) - żółte pola: 0 2 4 6 8 10 12 14 15 16 18 20 22 24 26 28 30 31 WERSJA DŁ.NAGŁ. TYP USŁUGI DŁUGOŚĆ CAŁKOWITA IDENTYFIKACJA FLAGI PRZESUNIĘCIE FRAGMENTU CZAS ŻYCIA PROTOKÓŁ SUMA KONTROLNA NAGŁÓWKA ŹRÓDŁOWY ADRES IP DOCELOWY ADRES IP OPCJE DANE WYPEŁNIENIE WERSJA (VERSION) aktualnie używana wersja protokołu IP 4 bity jeśli to pole jest różne od wersji IP zaimplementowanej w urządzeniu, urządzenie odrzuci pakiety numery wersji: 0 zarezerwowane 1-3 nieprzypisane 4 IPv4 5 - protokół strumieniowy 6 IPv6 7 - TP/IX Next Internet 8 - protokół międzysieciowy P
5 DŁUGOŚĆ NAGŁÓWKA (IHL, INTERNET HEADER LENGTH) długość nagłówka IP w słowach 32-bitowych nagłówek może posiadać lub nie pola opcje i wypełnienie ( wypełnienie uzupełnia pole opcje do 32 bitów) i to decyduje o długości nagłówka 4 bity bez opcji długość nagłówka wynosi 5 (słów) [20 oktetów] typowy datagram IP, maksymalna długość nagłówka wynosi 15 słów [60 oktetów] TYP USŁUGI (TOS, TYPE OF SERVICE) obecnie pole to jest inaczej używane informuje o wymaganym poziomie ważności datagramu (wymaganej jakości usług sieci) jest nadawany przez protokoły warstw wyższych 8 bitów jest 5 parametrów jakości usługi, zapisywanych w formie podpól o pole pierwszeństwo (precedence) podaje poziom ważności datagramu o pole opóźnienie o pole przepustowość o pole niezawodność o pole koszt o bit MBZ (Must Be Zero) musi mieć wartość zero, korzystać mogą z niego protokoły eksperymentalne wykorzystanie informacji tego pola przez protokoły zajmujące się wyznaczaniem tras o większość protokołów (np. RIP) ignoruje pole typu obsługi o protokół OSPF ma w założeniu wykorzystywać informacje zapisane w tym polu, jednak spośród czterech ostatnich bitów można ustawić tylko jeden - pozostałe muszą być zerami
6 DŁUGOŚĆ CAŁKOWITA (TOTAL LENGTH) całkowita długość pakietu IP w bajtach (nagłówek+dane) aby otrzymać długość danych użytecznych transportowanych w pakiecie należy odjąć od tej długości długość nagłówka 16 bitów format pola określa teoretyczną maksymalną długość pakietu 2 16 =65535 oktetów jednak wartość MTU jest znacznie mniejsza (np. 1500 oktetów dla Ethernet) - wynika to z warunków komunikacji, zbyt duże bufory są nieefektywne wymaga się, aby wszystkie węzły sieci IP odbierały datagramy o długości co najmniej 576 bajtów, w całości i podzielonych 576 = 64 (nagłówek) + 512 (dane) IDENTYFIKACJA (IDENTIFICATION) niepowtarzalny numer datagramu, przypisany przez stację nadającą stacja ustala liczbę od której zaczyna liczyć i względem niej przydziela sekwencyjnie liczby identyfikujące kolejne datagramy 16 bitów pole identyfikacja razem ze znacznikami fragmentacji DF i MF pola flagi oraz wartością przesunięcia fragmentu stanowi podstawę procedury składania pakietów, które uległy fragmentacji pole to stanowi podstawę dla rozpoznania, którą częścią datagramu wyjściowego (sprzed fragmentacji) jest otrzymany datagram
7 FLAGI (FLAGS) pole 3 bitowe pierwszy bit jest nieużywany = 0 znacznik fragmentacji DF ( Don t Fragment ) jeden bit o =1 - oznacza nie fragmentować o =0 - ruter lub hosty przesyłające mogą fragmentować datagramy IP znacznik fragmentacji MF ( More Fragments ) jeden bit o =1 - oznacza, że otrzymany datagram nie jest ostatnim fragmentem większego o =0 - oznacza, że jest to ostatni fragment - gdy datagramy nie podlegają fragmentacji znacznik ten zawsze jest 0 BITY 0 1 2 0 DF MF POLE FLAGI PRZESUNIĘCIE FRAGMENTU (OFFSET) 13 bitów informuje (jednostką jest oktet) o położeniu danych fragmentu względem początku danych datagramu pierwotnego, przed fragmentacją wartość pola jest interpretowana po uzupełnieniu go trzema bitami zerowymi offset000 o 13 bitów pozwala opisać przesunięcie 8192 o wyraża przesuniecie, które jest wielokrotnością 8 bajtów - dane każdego fragmentu nie będącego ostatnim muszą być wielokrotnością 8 oktetów przy rozważaniu MTU należy brać pod uwagę nagłówek ponieważ każdy z osobna fragment musi zostać opatrzony nagłówkiem IP (co najmniej 20 oktetów)
8 Procedura dzielenia datagramów
9 Procedura składania datagramów datagramy są składane w węźle docelowym procedura składania rozpoczyna się po odebraniu wszystkich datagramów składowych jeżeli choć jeden datagram składowy nie dotrze do punktu przeznaczenia lub jest uszkodzony, cały datagram zostaje odrzucony, retransmisja jest realizowana przez protokoły warstw wyższych informacja, czy wszystkie fragmenty dotarły, jest ustalana na podstawie analizy rozmiaru fragmentów, offsetu fragmentów i rozpoznaniu znacznika MF stacja docelowa uruchamia reassembly timer (licznik czasu składania) w chwili przyjścia pierwszego fragmentu datagramu - jeśli ustalony czas upłynie przed odebraniem wszystkich fragmentów, datagramy fragmentu są odrzucane, a w konsekwencji cały datagram zostaje odrzucony - do nadawcy jest wysyłany odpowiedni komunikat ICMP CZAS ŻYCIA (TTL, TIME-TO-LIVE) czas życia liczba przeskoków, jakie pakiet może przebyć standardowe ustawienie początkowe to 128 lub 256 (obecnie rekomendowane 64) liczba jest zmniejszana o jeden przy każdym przejściu pakietu przez ruter kiedy wartość osiąga zero pakiet jest odrzucany zapobiega to nieustannemu krążeniu pakietu w sieci, które może być spowodowane pętlą routingu (przy odrzuceniu pakietu wysyłany jest do hosta źródłowego komunikat ICMP informujący o przedawnieniu datagramu) 8 bitów PROTOKÓŁ (PROTOCOL) służy do multipleksowania i demultipleksowania danych protokołów warstw wyższych - wskazuje który protokół warstwy wyższej otrzymuje ten pakiet IP 8 bitów wybrane wartości 1 - ICMP (Internet Control Message Protocol) 2 - IGMP (Internet Group Mnagement Protocol) 3 - GGP (Gataway-to-Gateway Protocol) 4 - IP (IP kapsułkowane w IP) 6 - TCP (Transmission Control Protocol) 8 - EGP (Exterior Gateway Protocol) 17 - UDP (User Datagram Protocol)
10 SUMA KONTROLNA NAGŁÓWKA (HEADER CHECKSUM) zapewnia integralność nagłówka IP ponieważ ruter zmienia wartość TTL, wartość pola suma kontrolna nagłówka musi być obliczana przez każdy ruter na trasie pakietu wartość pola jest obliczana na podstawie bitów zawartych jedynie w nagłówku datagramu dla potrzeb obliczeń nagłówek dzielony jest na słowa 16-to bitowe, w miejscu sumy kontrolnej wstawiane są same zera dodaje się słowa używając arytmetyki uzupełnieniowej do jeden, a następnie całą sumę uzupełnia się do 1 w miejscu docelowym suma kontrolna jest obliczana ponownie - jeśli jest różna od wartości zapisanej w nagłówku - oznacza to, że nagłówek został uszkodzony - datagram jest wtedy odrzucany i nie wysyła się żadnego komunikatu o błędzie 16 bitów ŹRÓDŁOWY ADRES IP (SOURCE IP ADDRESS) adres IP hosta wysyłającego 32 bity DOCELOWY ADRES IP (DESTINATION IP ADDRESS) adres IP hosta docelowego 32 bity adres źródłowy i docelowy musi posiadać każdy datagram IP -ponieważ jest przesyłany niezależnie od innych - pola te nie są zmieniane w trakcie podróży pakietu w sieci jeżeli nie wykorzystuje się NAT na podstawie adresu docelowego rutery kierują pakiety pomiędzy sobą aż do miejsca przeznaczenia, informacja zwrotna korzysta z adresu źródłowego
11 OPCJE (OPTIONS) pole o zmiennej długości - musi być wielokrotnością 32 bitów - jeśli krótsze to korzysta się z pola wypełnienie umożliwia wprowadzenie dodatkowych reguł, które są wykorzystywane w trakcie podróży pakietu IP w sieci choć wg. specyfikacji, każdy węzeł sieci IP musi zapewniać obsługę opcji IP, możliwości te są rzadko używane ze względu na bezpieczeństwo opcje dotyczą o zabezpieczeń o rejestrowania trasy o ścisłego wyznaczania trasy według nadawcy o swobodnego wyznaczania trasy według nadawcy o międzysieciowego znacznika czasu Format pola opcji kopiowanie określa sposób traktowania opcji przez rutery w trakcie fragmentacji =0 - kopiowanie opcji tylko do pierwszego fragmentu =1 - kopiowanie opcji do wszystkich fragmentów klasa opcji =0 - sterowanie siecią =2 - analiza i pomiary
12 numer opcji =0 - End of Option List, koniec listy opcji (klasa opcji 0), Format 1 (oktet złożony z samych zer), stosuje się jako wypełnienie na końcu listy opcji aby dopełnić 32 bity =1 - No Operation, opcja pusta (klasa opcji 0), Format 1 (00000001), stosowana jako wypełnienie pomiędzy kolejnymi opcjami na liście =2 - Basic Security, podstawowa opcja zabezpieczeń (klasa opcji 0), Format 2 (długość opcji 11), może zawierać informacje o kodach zabezpieczeń, wprowadzać ograniczenie usług, określać użytkowników =5 - Extended Security, rozszerzone opcje zabezpieczeń (klasa opcji 0), Format 2, (długość zmienna), rozszerza funkcje ochronne =3 - Loose Source Routing, swobodne wyznaczanie trasy według nadawcy (klasa opcji 0), Format 2 (długość zmienna), pokazuje sekwencję adresów, według której ma przebiegać trasa podróży datagramu =9 - Strict Source Routing, ścisłe wyznaczanie trasy według nadawcy (klasa opcji 0), Format 2 (długość zmienna), pokazuje drogę, którą ma podróżować pakiet IP =7 - Record Route, rejestrowanie trasy (klasa opcji 0), Format 2 (długość zmienna), korzysta się z niej do śledzenia trasy podróży datagramu, zapisywany jest adres przyłącza przez które wychodzi datagram =4 - Internet Time Stamp, znacznik czasu (klasa opcji 2), Format 2 (długość zmienna), rutery na trasie datagramu zapisują w polu danych opcji swój adres IP i znacznik czasowy informujący o momencie przesłania pakietu =8 - identyfikator strumienia SATNET - przestarzałe Schemat pola opcje dla przypadku numeru opcji: 3, 7, 9
13 Ścisłe wyznaczanie trasy (numer opcji: 9) wyszczególnione na liście opcji węzły (ich adresy) łączy tylko jeden segment sieci nie może być sieci pośrednich jeśli kolejne adresy ruterów zapisane na liście adresów opcji są przedzielone jakimś innym ruterem, który nie figuruje na liście to wysyłany jest komunikat ICMP source route failed Swobodne wyznaczanie trasy (numer opcji: 3) pomiędzy wyszczególnionymi w opcji adresami węzłów sieci mogą występować sieci pośrednie
14 Międzysieciowy znacznik czasu (numer opcji: 4) służy do rejestracji czasu odebrania datagramu przez każdy kolejny ruter i adresu tego rutera czas jest mierzony względem północy czasu UTC (Universal Time Coordinated) w milisekundach wskaźnik pokazuje pierwsze wolne miejsce na wpis względem początku (w oktetach) najmniejsza wartość 5 przepełnienie rejestruje liczbę ruterów, które nie mogły zapisać znacznika z powodu przekroczenia rozmiaru pola danych (jeżeli przekroczy 1111 2 =15 datagram jest uważany za uszkodzony, a do nadawcy zostaje wysłany komunikat ICMP Parameter problem ) pole znaczniki określa rodzaj informacji umieszczanych w polu dane o =0 tylko znaczniki czasu, adresy IP nie są zapisywane o =1 zapisywany jest adres IP przed znacznikiem czasu o =3 - adres IP wypełnia nadawca, wtedy znacznik czasu wypełniają tylko te rutery, których adres został wprowadzony przez nadawcę jeżeli w polu znacznika czasu pierwszy bit jest ustawiony na 1 jest to sygnał, że ruter używa niestandardowego określenia czasu WYPEŁNIENIE (PADDING) wypełnienie składające się z dodatkowych zer zapewnia, że nagłówek IP jest zawsze wielokrotnością 32 bitów DANE (DATA) informacje wyższych warstw
15 zmienna długość aż do 64 KB