Sieci komputerowe I



Pobieranie 51.99 Kb.
Data08.05.2016
Rozmiar51.99 Kb.



Katedra Informatyki Stosowanej

Politechnika Łódzka

Al. Politechniki 11, 90-925 Łódź

Tel. (0-42) 631-26-89


Sieci komputerowe I

Wykład 3: Protokoły UDP, TCP i IP.



Opracowanie:

mgr Łukasz Sturgulewski (lsturgu@kis.p.lodz.pl)


Adresy w Internecie (adresy IP).

Wstęp.


Główne zadania stawiane systemowi adresowania w sieciach rozległych:

  • Potrzeba globalnego systemu identyfikacji każdej jednostki przyłączonej do sieci.

  • Identyfikator ma za zadanie określić: nazwę, adres i trasę do jednostki docelowej.

W najpopularniejszej obecnie wersji IPv4 używa się 32-bitowych adresów. Część adresu identyfikuje sieć a pozostała reszta określa konkretną jednostkę znajdującą się w tej sieci.

Adresy IP zostały podzielone na klasy (zwiększa to znacznie elastyczność tego rozwiązania). Klasa, do której należy dany adres, jest identyfikowana przez pierwsze trzy bity (analizowane do napotkania zera).


Klasa

Charakterystyka

A

7 bitów adres sieci

24 bity adres jednostki w tej sieci

Klasa wykorzystywana w dużych sieciach


B

14 bitów adres sieci

16 bity adres jednostki w tej sieci

Klasa wykorzystywana w średnich sieciach


C

21 bitów adres sieci

8 bity adres jednostki w tej sieci

Klasa wykorzystywana w małych sieciach


Tabela 1 Klasy adresów.
Adres IP określa sieć oraz konkretny węzeł w tej sieci – nie jest więc związany z jednostką, ale z przyłączeniem do sieci.

W celu ułatwienia analizy adresu IP, a także jego zapamiętania, stosuje się konwencję zapisu:



a.b.c.d

gdzie a, b, c, d są liczbami całkowitymi z zakresu 0-255, oznaczającymi kolejne 8 bitów z całego 32 bitowego adresu.



Jak identyfikowane są jednostki w sieciach TCP/IP?


W sieciach TCP/IP stosuje się identyfikatory będące 32-bitowymi liczbami całkowitymi (zwanymi adresami IP). Adres IP składa się z pary (ids, idm), gdzie:

  • ids – określa sieć w której znajduje się dana jednostka;

  • idm – określa jednoznacznie jednostkę w tej sieci.



Co oznacza adres IP?


Adres IP określa sieć oraz węzeł w tej sieci, czyli przyłączenie do sieci.

Spójrzmy na urządzenie (ogólnie węzeł) o wielu przyłączeniach do sieci (np. router) posiadający wiele adresów. Każdy adres odpowiada jednemu połączeniu urządzenia z siecią.

W niezbyt precyzyjnym uproszeniu adres IP nazywany jest adresem komputera lub jednostki.

Jakie są konsekwencje stosowania powyższych rozwiązań?


Należy pamiętać, że zmiana sieci, do której przyłączone jest urządzenie pociąga za sobą konieczność zmiany adresu IP.

Pakiety IP kierowane do urządzeń, które posiadają wiele adresów mogą podążać różnymi drogami – zależnymi od części adresu identyfikującej sieć.



Po co stosuje się klasy adresów oraz które z nich są najważniejsze?


W celu zapewnia elastyczności adresów oraz uproszczeń w wyznaczaniu sieci zdefiniowano pięć klas adresów IP.

Klasę identyfikują najstarsze bity adresu, które analizowane są do napotkania zera. W zależności od pozycji, na której znajduje się zero określamy klasę adresu.

Najważniejsze (najpopularniejsze) są trzy pierwsze:


  • klasa A: 7 bitów adres sieci, 24 bity adres jednostki (wykorzystywana w dużych sieciach);

  • klasa B: 14 bitów adres sieci, 16 bitów adres jednostki (wykorzystywana w średniej wielkości sieciach);

  • klasa C: 21 bitów adres sieci, 8 bitów adres jednostki (wykorzystywana w małych sieciach);



Jak zapisuje się adresy IP?


W celu ułatwienia zapamiętania oraz użytkowania adresy IP zapisuje się w postaci czterech liczb dziesiętnych oddzielonych kropkami. Każda z tych liczb to jeden oktet adresu IP.

Zebranie adresów specjalnych.


Istniej kilka kombinacji zer (bieżący) i jedynek (każdy)


  • same zera: Dany komputer (do wykorzystania tylko w czasie rozruchu systemu);

  • ids = zera, idm = komputer: Komputer w danej sieci (do wykorzystania tylko w czasie rozruchu systemu);

  • same jedynki: Ograniczone rozgłaszanie (w sieci lokalnej)

  • ids = sieć, idm = jedynki: Ukierunkowane rozgłaszanie;

  • 127.0.0.1: Pętla zwrotna.



Co to jest ograniczone rozgłaszanie?


W ograniczonym rozgłaszaniu mamy możliwość wysłania pakietów do wszystkich znajdujących się w tej samej sieci lokalnej, co nadawca. Nie jest wymagana znajomość adresu sieci.

Co to jest ukierunkowane rozgłaszanie?


Wysyłanie pakietów do wszystkich maszyn znajdujących się w wyspecyfikowanej w adresie sieci. To czy usługa zostanie zrealizowana zależy od sieci, do której wysyłamy pakiety.

Co to jest adres pętli zwrotnej?


Adres pętli zwrotnej służy do testowania TCP/IP oraz komunikacji międzyprocesowej lokalnej dla danej jednostki. Oprogramowanie protokołu komunikacyjnego przekazuje pakiety z adresem pętli zwrotnej bezpośrednio jednostce bez wysyłania ich w sieć. Adresy pętli zwrotnej mają numer sieci równy 127.

Jak przydzielane są adresy?


Zadanie przydziału i zarządzania adresami, w celu zapewnienia jednoznaczności, spoczywa na jednej organizacji IANA (Internet Assigned Number Authority). Przydzielaniem adresów sieciom przyłączającym się do Internetu zajmuje się INTERNIC (Internet Network Information Center). Otrzymaną pulą adresów instytucje mogą zarządzać już na własną rękę.

Jaka jest kolejność bajtów przy przesyłaniu adresu IP?


Zastosowano metodę, w której komórka o najniższym adresie zawiera najstarszy bajt liczby (najpierw starszy bajt – big endian). Od strony pakietu najbardziej znaczący bajt liczby znajduje się bliżej początku adresu, zaś najmniej znaczący – na końcu.

UDP (User Datagram Protocol).

Wielozadaniowość systemów operacyjnych wymusiła powstanie portów protokołów.

Protokół UDP zapewnia zawodne, bezpołączeniowe usługi transportowe. UDP daje możliwość rozróżnienia datagramów między wieloma adresatami w obrębie jednej jednostki docelowej.

Programy użytkowe biorą na siebie całą odpowiedzialność za rozwiązywanie problemów niezawodności, czyli:



  • gubienie komunikatów;

  • duplikowanie;

  • opóźnienia;

  • dostarczanie w niewłaściwej kolejności;

  • utratę łączności z adresatem.



Po co powstał taki protokół?


Minimalna, dodatkowa ilość przesyłanych danych przez sieć (małe obciążenie).

Jaki jest podstawowy problem przy testowaniu aplikacji?


Aplikacje wykorzystujące UDP, napisane bez obsługi błędów transmisji, ale testowane w środowisku sieci lokalnej, mogą działać bardzo dobrze, podczas gdy w sieci rozległej praktycznie przestaną funkcjonować.

Format datagramów UDP.


0 16 31

Port UDP nadawcy

Port UDP odbiorcy

Długość komunikatu UDP

Suma kontrolna UDP

DANE

...


Porty – używane do odnajdywania procesu oczekującego na dany datagram;

Długość – liczba oktetów datagramu UDP (min. 8);

Suma kontrolna – (może być zero, gdy nie używana). W celu obliczenia sumy kontrolnej stosuje się pseudonagłówek zawierający dodatkowo:

  • Adres IP nadawcy;

  • Adres IP odbiorcy;

  • PROTO – typ kodu protokołu (dla UDP 17);

  • Długość komunikatu UDP (bez pseudonagłówka).



Główne zadanie protokołu UDP.


Rozróżnianie między nadawcami i odbiorcami w obrębie jednej maszyny.

Jak przydzielane są numery portów?


Są dwa sposoby:

  • Oparte na centralnym autorytecie: Niskie numery portów są przypisane określonym usługom.

  • Oparte na wiązaniach dynamicznych: Wysokie numery portów przydzielane są dynamicznie przez oprogramowanie sieciowe.

TCP (Transmission Control Protocol).

TCP to protokół komunikacyjny realizujący usługę niezawodnych strumieni. Definicje protokołu określają przede wszystkim format danych i potwierdzeń, które są wymienione między jednostkami, aby mieć pewność, że dane zostały prawidłowo dostarczone do celu. W warstwowym ułożeniu protokołów TCP znajduje się nad IP. To właśnie dzięki TCP programy użytkownika mogą jednocześnie korzystać z sieci. TCP rozdziela przychodzące pakiety między działające programy. Końcowy odbiorca jest identyfikowany po numerze portu (będący liczbą całkowitą). Protokół TCP jest zorientowany na połączenie, które musi nastąpić pomiędzy dwoma końcówkami przed rozpoczęciem transmisji. Każdy punkt końcowy jest identyfikowany przez adres IP i port węzła np.:



192.51.212.4 , 80

Ten zapis oznacza port 80 węzła o adresie IP 192.51.212.4

Uwaga.

Połączenie identyfikowane jest przez parę punktów końcowych stąd np. punkt 192.51.212.4, 80 może występować w dwóch różnych połączeniach.



Własności usługi niezawodnego dostarczania danych.


  • Przesyłanie strumieni (przekazanie odbiorcy tego samego ciągu oktetów, który wysłał nadawca);

  • Łączenie w obwód wirtualny (tworzenie wirtualnego połączenia między nadawcą i odbiorcą w celu ustalenia gotowości obu jednostek a później w celu wykrywania błędów transmisji);

  • Przesyłanie z użyciem buforów (oczekiwanie i wysyłanie większej ilości danych tak, aby ograniczyć zbędny ruch w sieci – mechanizm wypchnięcia, gdy dane należy wysłać natychmiast);

  • Brak strukturyzacji strumienia (brak rozróżniania rodzaju przesyłanych danych użytkownika);

  • Połączenie w pełni dwukierunkowe;



Jak realizowane jest niezawodne połączenie?


Metoda „Pozytywne potwierdzanie z retransmisją”.

Nadawca zapisuje informacje o każdym wysłanym pakiecie (uruchamia także licznik czasowy) i przed wysłaniem następnego pakietu czeka na potwierdzenie (komunikat ACK).

Rysunek czasowy (wyjaśnia zależności między nadawcą i odbiorcą).

Wykrywanie duplikatów.

Każdy pakiet ma przydzielany numer identyfikacyjny, który musi być odesłany przez odbiorcę w potwierdzeniu otrzymania pakietu.

Technika „Przesuwających się okien”.

Technika ta umożliwia przesyłanie wielu pakietów zanim nadawca otrzyma potwierdzenie.

Technika „Zmiennych rozmiarów okien”.

Nadawca i odbiorca ustalają w czasie transmisji rozmiar okno – dzięki temu można płynnie regulować generowany ruch.



Uwaga.

W TCP mechanizm okien działa na poziomie oktetów a nie datagramów.



Jak realizowane jest połączenie między punktami końcowymi?


Oba punkty końcowe muszą zgodzić się na współpracę.

Jeden z punktów wykonuje funkcję pasywnego otwarcia (sygnalizując gotowość do nawiązania połączenia). Drugi zaś punkt używa funkcji aktywnego otwarcia w celu ustalenia połączenia.

Nawiązanie połączenia TCP:


  • Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit SYN;

  • Węzeł 2: Wysyła segment, w którym pole kodu ma ustawione bity SYN i ACK;

  • Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit ACK.

Zamykanie połączenia:

  • Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit FIN;

  • Węzeł 2: Wysyła segment, w którym pole kodu ma ustawiony bit ACK;

  • Węzeł 2: Wysyła segment, w którym pole kodu ma ustawione bity FIN i ACK;

  • Węzeł 1: Wysyła segment, w którym pole kodu ma ustawiony bit ACK.



Segment TCP.


W TCP informacje między jednostkami są wymieniane w postaci segmentów TCP – rysunek 2. Dotyczy to zarówno danych jak i procesów otwierania czy zamykania połączenia.

Opis pól segmentu TCP:



  • PORT NADAWCY i PORT ODBIORCY: Porty TCP określające programy wymieniające między sobą dane;

  • NUMER PORZĄDKOWY: Określa pozycję danych segmentu w strumieniu bajtów nadawcy;

  • NUMER POTWIERDZENIA: Określa numer oktetu, który nadawca spodziewa się otrzymać w następnej kolejności;

  • DŁUGOŚĆ NAGŁÓWKA: Określa rozmiar nagłówka segmentu jako wielokrotność 32 bitów;

  • ZAREZERWOWANE: Przeznaczone do ewentualnego wykorzystania w przyszłości;

  • BITY KODU: Określają przeznaczenie zawartości segmentu:

Bity pola BITY KODU opisane od lewej do prawej:

    • URG – Wskaźnik pilności jest istotny;

    • ACK – Pole potwierdzenia jest istotne;

    • PSH – Ten segment stanowi prośbę o wypchnięcie;

    • RST – Skasuj połączenie;

    • SYN – Zsynchronizuj numery porządkowe;

    • FIN – Koniec strumienia bajtów u nadawcy.

  • OKNO: Rozmiar pola oprogramowania TCP wysyłającego segment (16-bitowa liczba całkowita);

  • SUMA KONTROLNA: Służy do kontroli poprawności transmisji danych i nagłówka (16 bitów). Do jej obliczenia także stosuje się pseudonagłówek.

  • WSKAŹNIK PILNYCH DANYCH: Oznacza miejsce w segmencie gdzie kończą się pilne dane. Pilne dane powinny zostać dostarczone do programu po stronie odbiorcy poza strumieniem tak szybko jak to jest tylko możliwe.

  • OPCJE: Jedna z opcji służy do ustalenia maksymalnego rozmiaru segmentu. Rozmiar segmentu zależy od:

    • buforów jednostki nadawcy i odbiorcy;

    • rodzaju sieci przez, którą będzie podróżował datagram.




Uwaga.


TCP realizuje wszystkie cele stawiane warstwie transportowej:

  • niezawodny, przezroczysty transfer danych między punktami;

  • kontrola transmisji;

  • mechanizmy te są wbudowane w protokół.



Jakie są najpopularniejsze numery portów?


Numery portów przypisane najpopularniejszym usługom – tabela 4.8.


Numer portu

Usługa

7

ECHO

13

DAYTIME

20

FTP-DATA

21

FTP

23

TELNET

25

SMTP

37

TIME

42

NAMESERVER

53

DOMAIN

69

TFTP

113

AUTH

161

snmp

162

snmp-trap

Tabela 2 Najpopularniejsze numery portów.

IP (Internet Protocol).

Protokół IP definiuje sposób bezpołączeniowej, zawodnej transmisji danych.


Zadania realizowane przez protokół IP:


  • Określenie formatu przesyłania danych;

  • Określenie sposobu wybierania trasy pakietu;

  • Określenie sposobu obsługi pakietów podczas przesyłania ich przez sieć.

Opis datagramu IP:




  • WERSJA (4 bity): Wersja protokołu IP, z którego użyciem stworzono ten datagram (obecnie jest to wersja czwarta);

  • DŁUGOŚĆ NAGŁÓWKA (4 bity): Większość pól nagłówka ma stałą wielkość, oprócz OPCJE IP i UZUPEŁNIENIE. Wielkość ta określa długość nagłówka mierzoną w 32 bitowych słowach;

  • DŁUGOŚĆ CAŁKOWITA (16 bitów): Całkowita długość datagramu IP mierzona w oktetach;

  • TYP OBSŁUGI (8 bitów): Strukturę tego pola przestawia rysunek 4.8, a jego opis znajduje się tuż poniżej.




    • Pierwszeństwo: Pole to, pomimo iż daje duże możliwości kontroli przepływu danych nie jest praktycznie wykorzystywane. Wartości tego pola pochodzą z przedziału od 0 do 7, gdzie 0 – normalny stopień ważności, a 7 – sterowanie siecią.

    • O: Bit oznaczający prośbę o krótkie czasy oczekiwania.

    • S: Bit oznaczający prośbę o przesyłanie datagramu szybkimi łączami.

    • P: Bit oznaczający prośbę o dużą pewność poprawnego przesłania danych.

Uwaga: Powyższe prośby są traktowane w formie sugestii - nie mają i nie mogą mieć charakteru żądania.
Kontrola fragmentacji i składania datagramu (Fragmentacja następuje w wyniku przesyłania datagramów przez sieci o różnym MTU(Maximum Transfer Unit)):

  • IDENTYFIKACJA: Umożliwia identyfikacje fragmentów należących do tego samego datagramu;

  • ZNACZNIK: Umożliwia kontrolę fragmentacji (pierwszy bit = 1 ozncza nie fragmentuj, młodszy bit = 1 oznacza „dalsze fragmenty”);

  • PRZESUNIĘCIE FRAGMENTU: mierzone w jednostkach 8-oktetowych. Fragmenty datagramu mogą docierać do celu w różnej kolejności, a dzięki temu polu możliwe jest prawidłowe jego odtworzenie.




  • CZAS ŻYCIA: Określa jak długo datagram może być transportowany w sieci. Nadawca decyduje o czasie życia a urządzenia obsługujące transmisję (routery) zmniejszają wartość tego parametru. W przypadku osiągnięcia zera, usuwają datagram z sieci.

  • PROTOKÓŁ: Określa protokół wysokiego poziomu, który został użyty do stworzenia treści pola danych datagramu;

  • SUMA KONTROLNA NAGŁÓWKA: Zapewnia kontrolę poprawności nagłówka (przy obliczaniu tego pola przyjmuje się, że suma kontrolna nagłówka równa się zero);

  • ADRES IP NADAWCY i ADRES IP ODBIORCY: Omówione wcześniej adresy IP jednostki wysyłającej datagram i odbierającej.


Uwagi:

Korzystnie jest, aby jeden datagram podróżował w jednej ramce fizycznej. Taka sytuacja jest jednak trudna do uzyskania (różne wielkości maksymalnych jednostek transmisji w sieci np. Ethernet 1500 oktetów a FDDI 4470 oktetów, danych w ramce). Z powyższego faktu wyboru wielkości datagramu dokonuje się niezależnie od stosowanego protokołu warstwy niższej, a gdy datagram jest zbyt duży, aby przesłać go w jednej ramce, dokonana zostaję fragmentacja, czyli podział na kilka ramek. Po przejściu sieci o „małych ramkach” nie następuje natychmiast proces składanie datagramów – wykonywany jest on dopiero u odbiorcy.








©absta.pl 2019
wyślij wiadomość

    Strona główna