Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet
Transkrypt
Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet
SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol) W latach 1973-78 Agencja DARPA i Stanford University opracowały dwa wzajemnie uzupełniające się protokoły: połączeniowy TCP i bezpołączeniowy IP. Protokoły te służą do łączenia oddzielnych fizycznie sieci w jedną sieć logiczną. Wykorzystywane są w systemach UNIXowych, sieciach lokalnych i rozległych. Najistotniejsze zalety protokołów TCP/IP: otwartość i niezależność od specyfikacji sprzętowo-programowej systemów komputerowych, możliwość integracji wielu różnych rodzajów sieci komputerowych, wspólny schemat adresacji pozwalający na jednoznaczne zaadresowanie każdego użytkownika, istnienie standardowych protokołów warstw wyższych . Współcześnie protokoły TCP/IP to zestaw wielu protokołów przeznaczonych m.in. do: transferu danych: IP, TCP, UDP (User Datagram Protocol), kontroli poprawności połączeń: ICMP (Internet Control Message Protocol), zarządzania siecią: SNMP (Simple Network Management Protocol), zdalnego włączania się do sieci: TELNET, usług aplikacyjnych, np. przesyłanie plików: FTP (File Transfer Protocol), Architektura protokołów TCP/IP jest czterowarstwowa (w odróżnieniu od siedmiowarstwowej architektury ISO/OSI). Wyróżniamy w niej następujące warstwy: 1. aplikacji, 2. transportową, 3. Internet, 4. dostępu do sieci 1 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP Jak w każdym modelu warstwowym, dane generowane przez programy aplikacyjne są przekazywane w dół stosu, kiedy mają być wysłane przez sieć i w górę stosu przy odbiorze. Każda warstwa stosu dodaje do danych przekazywanych z warstwy wyższej informacje sterujące w postaci nagłówków. Nagłówek dodany w warstwie wyższej jest traktowany jako dane w warstwie niższej. Nazewnictwo struktur danych w zależności od wykorzystywanego protokołu transportowego przedstawia poniższy schemat TCP UDP warstwa aplikacji strumień (ang. stream) wiadomość (ang. message) warstwa transportowa segment pakiet warstwa Internet datagram datagram warstwa dostępu do sieci ramka (ang. frame) ramka (ang. frame) FUNKCJE POSZCZEGÓLNYCH WARSTW: warstwa dostępu do sieci - najniższa w hierarchii architektury protokołów TCP/IP. Jej funkcje odpowiadają w przybliżeniu funkcjom trzech najniższych warstw modelu ISO/OSI. Do komunikacji w sieciach rozległych lub przez łącza szeregowe wykorzystuje m.in. takie protokoły jak: X.25 (w sieciach pakietowych), PPP (Point-to-Point Protocol) lub SLIP (Serial Line IP). warstwa Internet - podstawowym protokołem tej warstwy jest IP, który jest odpowiedzialny za przesyłanie pakietów zwanych datagramami między użytkownikami sieci. Jest to protokół bezpołączeniowy, tzn., że datagramy są przesyłane przez sieć bez kontroli poprawności ich dostarczenia. W efekcie datagram może zostać zgubiony w sieci, przekłamany lub zniekształcony. Protokół IP jest przeznaczony do sieci o bardzo dobrej jakości i niezawodności łączy transmisyjnych. Drugim protokołem tej warstwy jest ICMP ściśle związany z IP. Służy on do przesyłania komunikatów o nieprawidłowościach w pracy sieci. Protokół pozwala na przesyłanie wiadomości sterujących między węzłami sieci. Wiadomości te dotyczą sterowania przepływem, testowania połączeń, wskazania alternatywnych połączeń i wykrywania niedostępnych użytkowników. 2 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP warstwa transportowa - zapewnia bezpośrednie połączenie między końcowymi użytkownikami (systemami) wymieniającymi informacje. Najważniejsze protokoły tej warstwy to TCP oraz UDP. Protokół TCP jest protokołem połączeniowym umożliwiającym wykrywanie błędów na obu końcach połączenia. Ma on możliwość ustanowienia i utrzymania połączenia wirtualnego między dwoma użytkownikami w celu przesyłania danych, sterowania przepływem, przesyłania potwierdzeń oraz kontroli i korekcji błędów. Protokół UDP jest protokołem bezpołączeniowym, nie posiada mechanizmów sprawdzania poprawności dostarczenia danych do miejsca przeznaczenia. Segmenty TCP jak i pakiety UDP w celu ich dalszego przesłania są umieszczane wewnątrz datagramu IP. warstwa aplikacji - protokoły tej warstwy dostarczają użytkownikom różnych usług wykorzystując jako protokołów transportowych TCP lub UDP. Najbardziej znane protokoły warstwy aplikacji korzystające z TCP to: TELNET – umożliwia zdalne łączenie z systemem, FTP - przesyłanie plików przez sieć, SMTP (Simple Mail Transfer Protocol) dla wymiany poczty elektronicznej, Natomiast do bardziej znanych protokołów warstwy aplikacji korzystających z protokołu UDP należą: DNS (Domain Name Service) – odpowiada za zamianę adresów IP na tzw. adresy domenowe, RIP (Routing Information Protocol) - wymiana informacji związanych z aktualizacją reguły doboru tras w węzłach sieci (routing), NFS (Network File System) - współdzielenie plików przez wiele komputerów dołączonych do sieci. ROUTERY, HOSTY, GNIAZDA Protokoły TCP/IP wyróżniają dwa typy urządzeń sieciowych: routery (lub gatewaye) oraz hosty (czyli komputery). Routery służą do przesyłania pakietów między sieciami, a na hostach instalowane jest oprogramowanie aplikacyjne użytkowników. 3 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP host A warstwa aplikacji warstwa transportowa warstwa Internet warstwa dostępu do sieci host B Router lub Gateway FTP SMTP NFS DNS IP (ICMP) IP (ICMP) IP (ICMP) interfejs A (np. PPP) interfejs A interfejs B (np. PPP) (np. PPP) interfejs A (np. PPP) FTP SMTP NFS DNS TCP UDP sieć A TCP UDP sieć B Każda aplikacja korzystająca z protokołów TCP/IP jest identyfikowana za pomocą numeru portu. (W systemach UNIX numery portów dla odpowiednich aplikacji zapisane są w pliku /etc/services). Z kolei protokoły transportowe są określone za pomocą numerów protokołów. (W UNIXie numery protokołów zapisane są w pliku /etc/protocols). Wykorzystanie numerów portów i numerów protokołów pozwala łączyć dane generowane przez różne aplikacje z kilkoma protokołami transportowymi i dalej te protokoły z protokołem IP. Podejście takie daje możliwość tzw. multipleksacji danych, czyli np. umożliwia równoczesną komunikację wielu aplikacji z TCP. W Internecie niektóre numery portów są zarezerwowane i wstępnie przypisane do tzw. dobrze znanych usług (mogą przyjmować numery od 0 do 255). Dobrze znane usługi to np. takie protokoły sieciowe jak FTP: porty 20 i 21, TELNET: 23, SMTP: 25, POP3: 110. Protokoły TCP/IP używają również pojęcia gniazdo. Gniazdo to kombinacja adresu IP i numeru portu. W związku z tym gniazdo jednoznacznie określa proces w Internecie, czy zakończenie logicznego łącza komunikacyjnego między dwiema aplikacjami. Jeśli aplikacje realizowane są na dwóch różnych komputerach, to para odpowiadających im gniazd definiuje połączenie w protokole połączeniowym TCP. PROTOKÓŁ IP Protokół bezpołączeniowy, co oznacza, że nie sprawdza on poprawności dostarczenia datagramów do miejsc przeznaczenia. Podstawowe funkcji protokołu IP: a) określenie struktury datagramu, b) określenie schematu adresacji, c) kierowanie ruchem datagramów w sieci, d) dokonywanie fragmentacji datagramu i odtwarzanie z fragmentów oryginalnego datagramu. 4 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP Adresy IP v.4 W sieciach wykorzystujących protokoły TCP/IP wykorzystywane są, zdefiniowane w IP v.4, 4-bajtowe adresy jednoznacznie określające sieć oraz komputer dołączony do tej sieci. Istnieje 5 podstawowych klas adresów zdefiniowanych przez IP v. 4: A, B, C, D, E. Struktura binarna adresów w tych klasach przedstawiona jest na rysunku poniżej. Dla rozszerzenia zakresów adresów zdefiniowano protokół IP v.6, w którym adresy są 16-bajtowe . A: B: C: A. 0 B 1 0 C 1 1 0 D 1 1 1 0 E 1 1 1 1 0 1.0.0.0 – 127.0.0.0 - numer sieci w I-ym bajcie - 1 sieć- ok. 1,6 mln hostów 128.0.0.0 – 191.255.0.0 - numer sieci w 2 pierwszych bajtach - 16320 sieci o 65024 hostach w każdej 192.0.0.0 – 223.255.255.0 - numer sieci w 3 pierwszych bajtach - ok. 2 mln sieci po 254 hosty D, E, F: 224.0.0.0 – 254.0.0.0 - adresy eksperymentalne, zarezerwowane do zastosowań specjalnych, nie określają żadnej sieci; - przykład wykorzystania: transmisja grupowa IP (ang. IP multicasting) – usługa pozwalająca na przesłanie danych do wielu miejsc w Internecie jednocześnie. Adresy IP umożliwiają tworzenie sieci logicznych w jednej dużej sieci fizycznej posiadającej jeden adres IP. Można tego dokonać korzystając z bitów części identyfikującej komputer w adresie IP oraz 32-bitowej maski podsieci. 5 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP PODSIECI – MASKA SIECI 1. Podział jest już widoczny w wyodrębnieniu w adresach IP części sieciowej i części hosta. Domyślnie sieć przeznaczenia jest uzyskiwana z części sieciowej adresu IP ⇒ hosty o identycznych numerach sieci IP powinny znajdować się w tej samej sieci 2. Wewnątrz sieci można zastosować podobny schemat wyodrębnić mniejsze sieci ⇒ podział na podsieci. Podsieć: jest rozszerzeniem pojęcia podziału pól bitowych, jak w klasach A, B i C, część sieciowa jest rozszerzana tak, by zawierała niektóre bity z części hosta, liczba bitów, interpretowana jako numer podsieci, jest określona przez tzw. maskę podsieci lub maskę sieci, - maska podsieci = 32-bitowa liczba określająca maskę bitową dla części sieciowej adresu IP, jeśli bit w masce jest jedynką, to odpowiadający mu bit w adresie IP jest interpretowany jako bit adresu sieci, jeżeli bit maski wynosi zero, oznacza, że należy do części adresu określającej komputer, odpowiada za dostarczanie datagramów do pewnego zakresu adresów IP, podsieci są generowane przez administratora, określają wewnętrzny podział sieci (administracyjny, lokalizacyjny, itp.) – nie są widoczne z zewnątrz. Przykład zastosowania podsieci: Sieć klasy B: 149.76.0.0 Maska dla tej sieci: 255.255.0.0 Możliwy podział na 254 podsieci: 149.76.1.0 Maska dla podsieci: 255.255.255.0 6 - 149.76.254.0 SIECI KOMPUTEROWE STOS PROTOKOŁÓW TCP/IP. ADRESACJA IP Klasa B: część sieciowa 149 część hosta 76 12 4 Klasa B z podsiecią: część sieciowa 149 podsieć 76 12 część hosta 4 W związku z nieustanną redukcją puli adresów IP v.4 wprowadzono IP v.6 oraz wykorzystuje się tzw. adresy nierutowalne. Zakresy adresów IP zarezerwowanych dla sieci prywatnych, wewnętrznych: A: 10.0.0.0 - 10.255.255.255 B: 172.16.0.0 - 172.31.0.0 C: 192.168.0.0 - 192.168.255.0 7