protokół tcp
Transkrypt
protokół tcp
METODY WYMIANY INFORMACJI W SIECIACH PAKIETOWYCH Unicast – jeden nadawca i jeden odbiorca Broadcast – jeden nadawca przesyła do wszystkich Multicast – jeden nadawca i wielu (podzbiór wszystkich) odbiorców TRANSMISJA MULTICASTINGOWA Adres multicastingowy nie identyfikuje ani konkretnej maszyny, ani też konkretnej podsieci i nie ma bezpośredniego związku z adresami IP innych klas identyfikujących dany komputer. Pula adresów IP dla multicastingu: 224.0.0.0 do 239.255.255.255 Uwaga: B adres 224.0.0.0.0 jest zabroniony adres 224.0.0.1 określa grupę wszystkich maszyn korzystających z multicastingu w Internecie (ang. all host group). D C F R 2 A R 1 E G D a ta g r a m m u ltic a s tin g o w y A d r e s IP = 1 1 1 0 + g r u p a m u ltic a s tin g u GRUPY MULTICASTOWE grupę tworzą węzły posiadające identyczny tzw. adres grupowy IP (ang. IP multicast address) węzły tworzące grupę mogą znajdować się w różnych sieciach IP (tzn. mieć adresy unicastw różnych sieciach IP) Uwaga – nadawca pakietu multicast nie musi być członkiem grupy ADRESY KLASY D 1110 adres grupy multicast Zestaw hostów nasłuchujących nadejścia datagramu, wysyłanego pod danym adresem grupy multicast, nazywany jest grupą hostów. Grupa hostów może obejmować wiele sieci. Członkowie tej grupy są przydzielani dynamicznie – host może przyłączyć się do grupy i ją opuścić, kiedy zechce. Nie ma żadnych ograniczeń liczby hostów w grupie, a hosty nie musza wysyłać komunikatów do grupy, aby do niej należeć. Niektóre grupy adresów multicast zatwierdzone są jako dobrze znane adresy i są nazywane stałymi grupami hostów. Obowiązuje przy tym zasada, że stały jest adres grupy multicast a nie jej członkowie, którzy mogą się dynamicznie zmieniać. MULTICAST LOKALNY v RUTOWALNY Multicast lokalny (ang.link local multicast) – gdy wszystkie węzły są w jednej sieci lokalnej Multicast rutowany(ang.routed multicast) – gdy węzły tworzące grupę znajdują się w różnych sieciach lokalnych ADRESY MULTICAST IP ORAZ MAC by warstwa 2 mogła rozpoznać ramki z pakietami multicast, muszą istnieć adresy grupowe MAC warstwa 2 automatycznie generuje adres grupowy MAC na podstawie adresu grupowego IP przełączniki przekazują ramki z adresami grupowymi MAC na wiele portów (mniej zaawansowane przełączniki rozgłaszają) stały prefiks 01-00-5E w adresie MAC oznacza adres grupowy bit 24 adresu MAC jest zawsze równy 0 pozostałe 23 bity są kopiowane z mniej znaczącej części adresu IP ADRESY MULTICAST IP ORAZ MAC - CD Przekształcenie gubi informację o pięciu bitach adresu IP (XXXXXna rysunku) Przykład bez utraty informacji: IP 224.20.8.6 => MAC 01-00-5E-14-08-06 Przykład z utratą informacji: adresy z zakresu 224.0.0.1, 225.0.0.1, 226.0.0.1, ..., 239.0.0.1 wszystkie odwzorowane są do adresu MAC 01-00-5E-00-00-01 Wniosek: dopiero warstwa 3 potrafi ostatecznie stwierdzić, czy pakiet trafił pod właściwy adres PRÓG TTL - CD interfejsowi rutera przypisywana jest stała wartość, którą ruter porównuje z wartością TTL w pakiecie;wartość ta nosi nazwę progu TTL (ang. TTLthreshold) pakiet zostanie przeniesiony przez wejściowy interfejs rutera, jeśli TTL w pakiecie jest większy niż próg TTL tego interfejsu mechanizm ten ogranicza zasięg pakietów multicast przy wyjściu z rutera parametr TTL w pakiecie multicast jest zmniejszany o 1, jak w każdym pakiecie IP PRÓG TTL Standardowe wartości TTL: 0 – ograniczenie do maszyny; pakiet nie zostanie wysłany przez żaden interfejs 1 – ograniczenie do sieci LAN; pakiet nie zostanie przeniesiony przezruter < 32 – ograniczenie do jednej organizacji < 128 – ograniczenie do jednego kontynentu < 255 – zasięg nieograniczony, globalny PROTOKÓŁ IGMP Protokół IGMP (ang. Internet Group Managment Protocol) przesyła swoje komunikaty za pośrednictwem oddzielnych datagramów IP (podobnie jak ICMP) datagram IP 20 bajtów nagłówek IP 8 bajtów Komunikat IGMP PROTOKÓŁ IGMP - CD Format komunikatu IGMP Słowo 32 bitowe 4 bity 4 bity bajt Słowo 16 bitowe Wersja typ nieużywany suma kontrolna adres 32 bitowy klasy D Wartość 1 gdy dotyczą zapytania przez router multicast Wartość 2 gdy dotyczy odpowiedzi przesyłanej przez host Group Address - zawiera adres grupy będący dla hosta potwierdzeniem jego członkostwa w tej grupie. GNIAZDA WARSTWY IV - CZ.I Użytkownik połączenia TCP/UDP jest identyfikowany za pośrednictwem numeru, zwanego adresem portu (ang port address) Adres portu jest łączony z adresem internetowym IP hostu, tworząc gniazdo (ang. Socket) Para socketów identyfikuje oba końce każdego połączenia TCP/UDP SOCKET NADAJĄCY=ADRES IP NADFAWCY + ADRES PORTU ŹRÓDŁOWEGO SOCKET ODBIERAJĄCY=ADRES IP ODBIORCY + ADRES PORTU DOCELOWEGO Konkretne usługi sieciowe są przypisane na stałe do pewnych numerów portów. UWAGA: Możliwe jest teoretycznie przypisanie dla TCP numeru portu do jednej usługi, a dla UDP przypisanie tego samego numeru do zupełnie innej usługi, jednak w celu uniknięcia nieporozumień, nigdy się tego nie robi. GNIAZDA WARSTWY IV - CZ.II ftp-data 20/tcp ftp 21/tcp telnet 23/tcp Smtp 25/tcp time 37/tcp time 37/udp rlp 39/udp name 42/udp whois 43/tcp domain 53/tcp domain 53/udp mtp 57/tcp bootps 67/udp bootpc 68/udp tftp 69/udp gopher 70/tcp rje 77/tcp finger 79/tcp http 80/tcp Przykładowy plik /etc/services w systemie LINUX mail timserver timserver resource nameserver nickname #deprecated # bootp server # bootp cl ient # gopher server ROLA GNIAZD PRZY POŁACZENIU HOST A 1 HOST B HOST C 2 Port źródłowy =401 Port docelowy =25 (SMTP)+IP 3 Port źródłowy =400 Port docelowy =25 (SMTP)+IP Port źródłowy =400 Port docelowy =25 (SMTP)+IP Rozróżnieniepołączeń za posrednictwemadresów IP UWAGA: identyczne adresy portów źródłowych mogą być rozróżniane poprzez sprawdzenie dołączonych do nich adresów IP => wielu użytkowników może korzystać usług i sieciowej oferowanej za pośrednictwem tego samego portu TCP ( np. SMTP ) PROTOKÓŁ UDP W zestawie protokołów TCP/IP protokół datagramów użytkownika UDP (ang. User Datagram Protocol), zapewnia porty protokołów używane do rozróżniania programów wykonywanych na pojedynczej maszynie. Do przesyłania komunikatów między maszynami UDP używa podstawowego protokołu IP i ma tę samą niepewną, bezpołączeniową semantykę dostarczania datagramów co IP - nie używa potwierdzeń w celu upewnienia się, o dotarciu komunikatów i nie zapewnia kontroli szybkości przesyłania danych między maszynami. Program użytkowy korzystający z UDP musi na siebie wziąć odpowiedzialność za rozwiązanie problemów niezawodności. KOMUNIKAT UDP Pola port nadawcy i port odbiorcy (ang Source & Destination Port) zawierają 16-bitowe numery portów UDP używane do odnajdywania procesów oczekujących na dany datagram. Pole port nadawcy jest opcjonalne. Pole suma kontrolna jest opcjonalne. Ponieważ jednak IP nie wylicza sum kontrolnych dla danych, suma kontrolna UDP jest jedyną gwarancją, że dane nie zostały uszkodzone. Pole długość (ang. Length) zawiera wartość odpowiadającą liczbie bajtów datagramu UDP wliczając nagłówek i dane. Minimalna więc wartość tego pola wynosi więc 8, czyli jest długością samego nagłówka. PROTOKÓŁ TCP - CZ.I Podstawowe usługi oferowane przez TCP (ang. Transmision Control Protocol) to : kontrola poprawności transmisji kontrola przepływu danych sekwencjonowanie Główne usługi TCP: Zarządzanie danymi przesyłanymi za pośrednictwem sieci w oparciu o wcześniej zestawione połączenia (ang. Connection-oriented data managment). Podczas każdej transmisji TCP obsługuje transmisje danych w obie strony i kontroluje, czy całość przesyłanej informacji dotarła do punktów docelowych. PROTOKÓŁ TCP - CZ.II Gwarantowanie poprawności przesyłanych informacji (ang. Reliable data transfer) Moduł TCP otrzymujący nadchodzące dane wykorzystuje mechanizm sum kontrolnych do sprawdzenia poprawności tych danych. Dodatkowo TCP używa liczników czasu do określenia, czy nie został przekroczony czas przewidziany na nadesłanie danych lub nadejścia potwierdzenia odbioru. Jednocześnie, podczas odbierania przychodzących danych moduł TCP sprawdza występowanie tzw. duplikatów. Kontrola przepływu danych (ang. Flow control - sliding windows) Moduł otrzymujący dane może wpływać na ilość danych wysyłanych przez moduł nadsyłający. Wykorzystywane jest w tym celu pojęcie tzw. rozmiaru „okna”, który jest przesyłany od odbiorcę do nadawcy. Nadawca jest uprawniony do wysłania określonej ilości bajtów w ramach danego okna. Przesyłanie danych w oparciu o koncepcję strumieni (ang. Steam-oriented data transfer). TCP otrzymuje dane z warstw wyższych w postaci strumienia bajtów, a nie jakichkolwiek pakietów, ramek czy segmentów. Dopiero wewnątrz modułu TCP dane są grupowane w tzw. segmenty TCP PROTOKÓŁ TCP – CZ. III Sprawdzenie poprawności działania mechanizmu ponownego łączenia segmentów w strumień (ang. Resequencing) Celem zapewnienia prawidłowego odtworzenia strumienia danych z nadchodzących segmentów, TCP nadaje numery poszczególnym segmentom. Jednoczesna obsługa wielu sesji transmisyjnych (ang. Multiplexing) Pełna transmisja dwukanałowa (ang. Full duplex transmission) Zamykanie połączeń logicznych po sprawdzeniu, czy całość transmitowanych danych została przesłana prawidłowo (Graceful close). Mechanizm ten zapewnia, że w normalnych warunkach ( jeżeli połączenie nie zostało przerwane fizycznie) TCP dopilnuje, aby całość wysłanych danych dotarła do miejsca przeznaczenia przed zamknięciem połączenia. Obsługa poziomów bezpieczeństwa oraz priorytetów danych (ang. Precedence and security)