1 / 28

Architektura protokołów TCP/IP

Architektura protokołów TCP/IP. Warstwy w architekturze protokołów TCP/IP. 4 Warstwa Aplikacji składa się z aplikacji i procesów używających sieci 3 Warstwa Transportowa Host to Host udostępnia usługi dostarczające dane z jednego miejsca w inne 2 Warstwa Internet

jack
Download Presentation

Architektura protokołów TCP/IP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Architektura protokołów TCP/IP

  2. Warstwy w architekturze protokołów TCP/IP 4 Warstwa Aplikacji składa się z aplikacji i procesów używających sieci 3 Warstwa Transportowa Host to Host udostępnia usługi dostarczające dane z jednego miejsca w inne 2 Warstwa Internet definiuje datagramy i wyznacza trasy przesyłania danych 1 Warstwa Dostępu do Sieci składa się z procedur umożliwiających dostęp fizyczny do sieci

  3. Dane Nagłówek Dane Nagłówek Nagłówek Dane Nagłówek Nagłówek Nagłówek Dane „Opakowywanie” danych Warstwa Aplikacji Warstwa Transportowa Warstwa Internet Warstwa Dostępu do Sieci

  4. IP(Internet Protokol) IP - najważniejszy protokół usług bezpołączeniowych, określa-jący w pierwszym rzędzie podstawową jednostkę przesyłania danych w sieciach IP - datagram oraz schemat adresowania. IP określa także reguły przetwarzania i przenoszenia datagra-mów oraz metodykę generowania komunikatów o błędach. Inne funkcje wynikają z analizy pól nagłówka. IP nie zajmuje się kontrolą pakietów, ustawieniem kolejności czy potwierdzaniem odbioru. Błędy wynikające z transmisji muszą być korygowane przez warstwy wyższe. Datagram bywa często nazywany pakietem.

  5. Protokół Internet • Protokół ten jest elementem warstwy Internet. Jego funkcje zawierają: • definiowanie datagramów, będących w Internecie podstawowymi jednostkami transmisyjnymi; • definiowanie schematu adresowania używanego w Internecie; • przekazywanie danych między warstwą dostępu do sieci a warstwą transportową tost-to-host; • kierowanie datagramów do komputerów oddalonych; • dokonywanie fragmentacji i ponownego składania datagramów. • IP jest protokołem bezpołączeniowym.

  6. Format pakietu IPv4

  7. Format pakietu IPv4 • Nagłówek IPv4 zawiera przynajmniej 12 pól i zajmuje ok. 20 bajtów, co w połączeniu z 20-bajtowym nagłówkiem TCP zwiększa ryzyko przeciążenia protokołów. • Znaczenia pól: • Wersja - zawiera liczbę 4, odróżniającą IPv4 od IPv6; • Długość nagłówka -długość wyrażana liczbą 32-bitowych słów, nie mniejsza niż 5; • Typ usługi - ToS (Type of Service), pole predefiniowane w RFC 24H Definition of the Differentiated Services Field (OS Field) in the IPv4 and IPv6 Headers. Nosi ono nazwę OS, identyczną jak ośmiobitowe pole Tratric Class w poszerzeniu nagłówka IPv6, i składa się z sześciu bitów OSCP oraz dwu bitów CU rezerwy;

  8. Format pakietu IPv4 • Całkowita długość datagramu - liczba bajtów z przedziału 576-65535; • Identyfikator - umożliwia scalenie datagramu poddanego fragmentacji. IP może dzielić datagramy na mniejsze porcje danych - fragmenty; • 3 Flagi jednobitowe (bO, b1, b2); bO = O (zarezerwowana), dwie kolejne flagi przenoszą następujące informacje: b1 = O: (fragmentowanie), b1 = 1: (nie można fragmentować), b2 = O: (ostatni fragment), bit drugi = 1: (więcej fragmentów); • Umiejscowienie fragmentu względem początku datagramu (Fragment offset) - pozycja fragmentu względem początku datagramu określana liczbą przyrostów 64-bitowych w 13-bitowym polu. Przesunięcie pierwszego fragmentu równa się zero;

  9. Format pakietu IPv4 • Czas życia - TTL (Time To Live) , czas przebywania datagramu w sieci, wyrażany w sekundach. Jeśli ruter przetwarza nagłówek w czasie poniżej 1 s, odejmuje całą sekundę, a jeśli dłużej - odejmuje rzeczywistą wartość. Przy TTL = O s pakiet jest kasowany przez ruter, a nadawca otrzymuje stosowny komunikat; • Protokół- identyfikator liczbowy protokołu, którego dane są przenoszone w ostatnim polu datagramu IP zwykle numer ICMP (1) lub TCP (6) W IPv6 numery tych protokołów są inne; • Suma kontrolna - umożliwia odbiorcy sprawdzenie poprawności nagłówka. Każde przetwarzanie nagłówka przez węzeł na trasie pakietu musi być odzwierciedlone w tej sumie, np. po zmniejszeniu przez ruter wartości HL; • Opcje - pole występujące w niektórych datagramach - ma różne długości, zależne od dodatkowych wymagań. Pole toskłada się z kodu o długości 1 bajta i ciągu pełnych bajtów przenoszących na przykład trasę przebytą przez pakiet.

  10. Format pakietu IPv6

  11. Adresy IPv6 cz.1 • W IPv6 pola adresowe (nadawcy i odbiorcy) zawierają po 128 bitów i mają postać ośmiu bloków 16-bitowych, oddzielanych dwukropkiem: • x : x : x : x : x : x : x : x, gdzie x = yyyy yyyy yyyy yyyy • Każdy ciąg binarny yyyyjest przedstawiany w kodzie szesnastkowym. W efekcie przykładowy adres IPv6 może mieć postać: • 0111: FACB: 1001: AC16: 0000: 0000: 0012: EECD • Grupę czterech zer zastępuje się jednym zerem, a ponadto pomija się zera z lewej strony pozostałych grup, dzięki czemu zapis staje się krótszy: • 111 : FACB : 1001 : AC16 : 0 : 0 : 12 : EECD

  12. Adresy IPv6 cz.2 • Zera rozdzielone pojedynczym dwukropkiem można zastąpić dwoma dwukropkami, wobec czego zapis skraca się jeszcze bardziej: • 111 : FACB : 1001 : AC16 :: 12 : EECO • Podwójny dwukropek może jednak wystąpić tylko jeden raz w jednym zapisie. Zwraca uwagę fakt, że nawet w tej uproszczonej formie adres jest nie tylko trudny do zapamiętania, ale także do bezbłędnego zanotowania. W tym kontekście ONS nabiera niezwykle ważnego znaczenia. • W szesnastkowym systemie liczbowym jest 16 symboli: 10 cyfrowych (0-9) i 6 literowych (A, B, C, O, E, F). Każdemu z symboli O-F zostały przyporządkowane kolejne kombinacje czterobitowe z naturalnego kodu binarnego: • 0=0000,..., 6=0110,..., 9=1001, A=1010, B=1011, C=1100, 0=1101, E=1110, F=1111.

  13. UDP TCP message (wiadomość) stream (strumień) segment pakiet datagram datagram frame (ramka) frame (ramka) „Opakowywanie” danych Warstwa Aplikacji Warstwa Transportowa Warstwa Internet Warstwa Dostępu do Sieci

  14. UDP (User Datagram Protocol) UOP (RFC 768), protokół alternatywny wobec TCP, jest używany do transportu danych w trybie bezpołączeniowym, a więc bez gwarancji dostarczenia ich do odbiorcy. Jeśli pakiet nie dotrze do odbiorcy albo kiedy wyliczona suma kontrolna nie będzie zgodna z zawartą w nagłówku, to UDP nie podejmie żadnych działań zmierzających do korekty lub retransmisji pakietów. Dla różnych aplikacji wykonujących się na maszynie protokół UDP używa terminu "port", którego nie można utożsamiać z klasycznym pojęciem portu urządzeń sieciowych.

  15. UDP (User Datagram Protocol) Nagłówek UDP zawiera m.in.: numer portu źródłowego i numer portu docelowego. Obydwa typy portów są identyfikatorami programów z wyższej warstwy aplikacyjnej. Na przykład FTP ma port 21 dla połączenia sterującego i dla połączenia utworzonego do transmitowania danych, a HTTP-80. Port źródłowy jest opcjonalny. Kiedy jego pole zawiera inne dane niż zera, to są one wspomnianym numerem aplikacji w komputerze nadawcy. Port źródłowy i adres IP źródła składają się na adres zwrotny pakietu.

  16. UDP (User Datagram Protocol) Środkiem transportu dla UDP jest datagram IP podobnie jak dla wielu innych protokołów. Wpisanie w odpowiednie pole IP (Next header w 1Pv6) numeru 17 będzie oznaczało, że w polu danych znajduje się ładunek należący do UDP. Będą to datagramy w rodzaju komunikatów systemowych, rozgłaszania grupowego, głosu cyfrowego, TFTP czy RPC, dla których usługi TCP są zbyt pracochłonne albo nadmiarowe. Dotrą one do komputera odbiorcy na podstawie adresu docelowego z nagłówka IP a do określonej aplikacji dzięki adresowi z pola "Port docelowy" w nagłówku UDP. Usługi UOP sprowadzają się głównie do multipleksowania i demultipleksowania ruchu generowanego lub przyjmowanego przez aplikacje.

  17. UDP (User Datagram Protocol) Porty źródłowe i docelowe stanowią szczególną formę dopełnienia adresów IP. Są to niewielkie dodatnie liczby całkowite identyfikujące programy wykonujące się na maszynie. Dzięki tym portom pakiet może trafić do określonej aplikacji. Porty źródłowe i docelowe są też nazywane portami wirtualnymi, a para w postaci adresu IP i portu - gniazdem (socket). DNS, HTTP, TELNET, FTP i wiele innych protokołów mają stałe numery portów we wszystkich implementacjach TCP/IP Takie numery portów należą do grupy powszechnie znanych portów (well-known ports).

  18. UDP (User Datagram Protocol)

  19. TCP (Transmission Control Protocol) TCP (RFC 793) jest protokołem alternatywnym wobec UDP wykorzystywanym do transportu danych w trybie połączeniowym, a więc z gwarancją dostarczenia ich odbiorcy. Wszystkie połączenia TCP są wirtualne, rozpoznawane po adresach i portach komputerów źródłowych i docelowych. Transmisje są głównie dupleksowe, ale protokół dopuszcza wyłączenie jednego z kierunków. Informacje TCP są przesyłane w datagramach IP Pakiety noszą nazwę segmentów TCP.

  20. TCP (Transmission Control Protocol) • TCP negocjuje warunki połączenia w 3 etapach i jeśli nie nastąpi przerwanie zgodnione lub wymuszone, to utrzymuje je do końca sesji: • najpierw nadawca wysyła pod określonym adresem swój segment z ustawionym SYN=1 i proponowanym numerem inicjującym w polu Numer sekwencji; • w razie przyjęcia propozycji nadawca otrzyma segment z ACK=1, SYN=1 i numerem sekwencji, od której odbiorca rozpocznie liczenie kolejnych segmentów; • jeśli w tym czasie nic się nie zmieniło, nadawca wysyła pierwsze dane i ustawia ACK= 1. Transmisja będzie trwała aż do końca sesji.

  21. TCP (Transmission Control Protocol) Mechanizm sterowania przepływem danych może być w razie potrzeby wyłączany zadeklarowaniem danych jako pilnych (urgent). Wtedy nadawca ustawia URG=1, a w polu Wskaźnik pilności określa położenie pilnych danych w segmencie danych, ale nic więcej. TCP nie zajmuje się więcej tymi danymi. Poza tym TCP sprawdza i porządkuje pakiety, obsługuje wiele strumieni danych, wysyła potwierdzenia, sprawdza poprawność danych i koryguje błędy - pakiety uszkodzone lub zagubione są ponownie przesyłane.

  22. TCP (Transmission Control Protocol) Każdy pakiet przed wysłaniem jest rejestrowany przez nadawcę, a w chwili wysłania uruchamia się zegar odmierzający czas oczekiwania na potwierdzenie odbioru (ACK). Kiedy ACK nie pojawi się w przewidywanym czasie, nadawca retransmituje pakiet. Ten mechanizm znany jest pod nazwą Pozytywne potwierdzenie z retransmisją - PAR (Positive Acknowledgment with Retransmission).

  23. TCP (Transmission Control Protocol) Nagłówek TCP którego długość musi być wielokrotnością 32 bitów, zawiera m.in. pola dla numeru portu źródłowego, numeru portu docelowego, numeru sekwencyjnego, numeru potwierdzenia i rozmiaru okna. Port źródłowy, który zainicjował sesję, oraz adres źródłowy IP tworzą adres zwrotny. Natomiast w polach Port docelowy i Port źródłowy znajdują się adresy interfejsów programów wyższej warstwy aplikacji w komputerach odbiorcy i nadawcy, które używają połączenia TCP Z kolei 16-bitowe pole Okno (rozmiar okna przesuwnego) umożliwia przystosowanie transmisji do warunków sieci: większy natłok - mniejsza szybkość transmisji. W to pole urządzenie odbiorcze wpisuje liczbę bajtów danych, którą są w stanie przyjąć jego bufory. Może również wpisać zero i wtedy nadawca musi przerwać nadawanie. Wznowienie transmisji nastąpi w chwili, kiedy odbiorca wpisze w pole Okno liczbę większą od zera, a w polu Numer potwierdzenia - kolejny numer sekwencyjny oczekiwanego segmentu. Dzięki takim procedurom sieć TCP/IP jest odporna na przeciążenia.

  24. TCP (Transmission Control Protocol) Numer sekwencyjny umożliwia odbiorcy skompletowanie pakietów przenoszących kolejne fragmenty pewnej całości danych. Pakiety mogą jednak przybywać różnymi drogami, a ponadto z przerwami spowodowanymi fizycznym uszkodzeniem trasy i ponownym ustalaniem połączenia. Numer sekwencyjny określa położenie pierwszego bajtu bieżącego segmentu w całym ciągu danych przesyłanych porcjami. Pole Numer potwierdzenia wypełnia odbiorca kolejnym numerem oczekiwanego segmentu. W ten sposób informuje jednocześnie nadawcę, że zdążył odebrać poprzedni segment. TCP ma identyfikator 6, który wpisuje się w odpowiednie pole IP. Wiadomo wówczas, że w polu danych pakietu IP znajduje się ładunek TCP.

  25. TCP (Transmission Control Protocol)

  26. TCP/IP (Numery portów) TCP i UDP identyfikują aplikacje używając 16-bitowego numeru portu. Jak dobierane są numery portów ? Serwery są zwykle rozpoznawane dzięki ich numerom portów określanych jako dobrze znane. Na przykład, każda implementacja TCP/IP, która zapewnia usługi serwera FTP, uruchamia te usługi na porcie TCP o numerze 21. Każdy serwer Telnet pracuje na porcie 23. Każda implementacja TFTP (TrivialFile Transfer Protocol) pracuje na porcie UDP o numerze 69. Usługi, które mogą być zapewnione przez każdą implementację TCP/IP, mają dobrze znane numery portów z zakresu 1 do 1023. Przydziałem takich numerów zajmuje się Internet Assigned Numbers Authority (IANA).

  27. TCP/IP (Numery portów) • Do roku 1992 dobrze-znane numery portów zawierały się w przedziale od 1 do 255. Porty od 256 do 1023 były używane przez systemy Unix do świadczenia usług typowych tylko dla Unixa - pewne usługi można było znaleźć w Unixie, ale rzadko kiedy pojawiały się w innych systemach operacyjnych. Obecnie lANA zarządza numerami od 1 do 1023. • Przykładem ilustrującym różnice pomiędzy usługami ogólnie dostępnymi w Internecie a usługami zapewnianymi przez systemy Unix jest porównanie usług Telnet i Rlogin. Obydwie pozwalają użytkownikowi zalogować się przez sieć do oddalonego hosta. Telnet jest standardem TCP lIP pracującym na dobrze znanym numerze portu 23 i może być implementowany w prawie każdym systemie operacyjnym. RIogin zaś był opracowany dla systemów Unix (choć wiele innych systemów również go używa) i jego numerem portu, wybranym na początku lat 80., jest 513.

  28. TCP/IP (Numery portów) Klient zwykle nie zwraca uwagi na to, jaki numer portu używany jest po jego stronie. Musi być tylko pewien, że numer usługi pracującej na jego hoście jest niepowtarzalny dla tego hosta. Numery portów klienta nazywane są numerami efemerycznymi (tzn. krótkotrwałymi). Wynika to z tego, że klient zwykle istnieje tak długo, jak długo użytkownik ma uruchomioną aplikację danej usługi, podczas gdy serwery są zwykle uruchomione tak długo, jak długo pracuje host, na którym działają. Większość implementacji TCP/IP alokuje efemeryczne numery portów w przedziale od 1024 do 5000. Numery portów powyżej 5000 przydzielane są usługom, które nie są popularne w Internecie. Solaris 2.2 jest godnym uwagi wyjątkiem od powyższej reguły. Domyślnie efemeryczne numery portów dla usług TCP i UDP zaczynają się od 32768. W części EA znajduje się szczegółowy opis, jak administrator systemu może zmodyfikować te domyślne ustawienia.

More Related