Sieci komputerowe - Protokoły warstwy transportowej

Podobne dokumenty
DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

SEGMENT TCP CZ. II. Suma kontrolna (ang. Checksum) liczona dla danych jak i nagłówka, weryfikowana po stronie odbiorczej

Sieci komputerowe. Protokoły warstwy transportowej. Wydział Inżynierii Metali i Informatyki Przemysłowej. dr inż. Andrzej Opaliński.

Sieci komputerowe Warstwa transportowa

Warstwa transportowa

Sieci komputerowe - warstwa transportowa

Warstwa transportowa. mgr inż. Krzysztof Szałajko

TCP/IP formaty ramek, datagramów, pakietów...

Protokoły sieciowe - TCP/IP

pasja-informatyki.pl

Sieci komputerowe. Wykład 5: Warstwa transportowa: TCP i UDP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Politechnika Łódzka. Instytut Systemów Inżynierii Elektrycznej

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Dr Michał Tanaś(

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Programowanie współbieżne i rozproszone

Sieci komputerowe - Wstęp do intersieci, protokół IPv4

Stos TCP/IP Warstwa transportowa Warstwa aplikacji cz.1

Przesyłania danych przez protokół TCP/IP

Transport. część 2: protokół TCP. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Protokół IP. III warstwa modelu OSI (sieciowa) Pakowanie i adresowanie przesyłanych danych RFC 791 Pakiet składa się z:

Sieci komputerowe w sterowaniu informacje ogólne, model TCP/IP, protokoły warstwy internetowej i sieciowej

Stos protokołów TCP/IP (ang. Transmission Control Protocol/Internet Protocol)

Sieci komputerowe. Zajęcia 3 c.d. Warstwa transportu, protokoły UDP, ICMP

PROTOKOŁY WARSTWY TRANSPORTOWEJ

MODEL WARSTWOWY PROTOKOŁY TCP/IP

Model sieci OSI, protokoły sieciowe, adresy IP

Zestaw ten opiera się na pakietach co oznacza, że dane podczas wysyłania są dzielone na niewielkie porcje. Wojciech Śleziak

Unicast jeden nadawca i jeden odbiorca Broadcast jeden nadawca przesyła do wszystkich Multicast jeden nadawca i wielu (podzbiór wszystkich) odbiorców

Adresy w sieciach komputerowych

Podstawowe protokoły transportowe stosowane w sieciach IP cz.1

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ

Programowanie sieciowe

Sieci Komputerowe Protokół TCP

Transport. część 1: niezawodny transport. Sieci komputerowe. Wykład 6. Marcin Bieńkowski

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Podstawy Transmisji Danych. Wykład IV. Protokół IPV4. Sieci WAN to połączenia pomiędzy sieciami LAN

ISO/OSI TCP/IP SIECI KOMPUTEROWE

Sieci komputerowe. Wykład dr inż. Łukasz Graczykowski

Transmisja bezpołączeniowa i połączeniowa

System operacyjny UNIX Internet. mgr Michał Popławski, WFAiIS

Podstawy sieci komputerowych

Bazy Danych i Usługi Sieciowe

Protokoły transportowe

Akademia Techniczno-Humanistyczna w Bielsku-Białej

Klient-Serwer Komunikacja przy pomocy gniazd

MODEL OSI A INTERNET

Sieci komputerowe. Wykład 7: Transport: protokół TCP. Marcin Bieńkowski. Instytut Informatyki Uniwersytet Wrocławski

Sieci komputerowe. Tadeusz Kobus, Maciej Kokociński Instytut Informatyki, Politechnika Poznańska

Model OSI. mgr inż. Krzysztof Szałajko

Laboratorium - Przechwytywanie i badanie datagramów DNS w programie Wireshark

Całkowita długość nagłówka zróżnicowane. Numer identyfikacyjny Flagi Przesunięcie

Architektura INTERNET

Sieci komputerowe Warstwa sieci i warstwa transportowa

Moduł 11.Warstwa transportowa i aplikacji Zadaniem warstwy transportowej TCP/IP jest, jak sugeruje jej nazwa, transport danych pomiędzy aplikacjami

Sieci Komputerowe. Wykład 1: TCP/IP i adresowanie w sieci Internet

Akademickie Centrum Informatyki PS. Wydział Informatyki PS

Protokoły wspomagające. Mikołaj Leszczuk

DR INŻ. ROBERT WÓJCIK DR INŻ. JERZY DOMŻAŁ ADRESACJA W SIECIACH IP. WSTĘP DO SIECI INTERNET Kraków, dn. 24 października 2016r.

Programowanie Sieciowe 1

Sieci komputerowe wykłady Protokoły TCP i UDP. Adresowanie komunikatów. Adresowanie komunikatów c.d. Porty protokołów. Porty protokołów c.d.

Zarządzanie ruchem w sieci IP. Komunikat ICMP. Internet Control Message Protocol DSRG DSRG. DSRG Warstwa sieciowa DSRG. Protokół sterujący

DNS - jest "klejem" łączącym adresy sieciowe z obiektami (komputerami / host'ami) z nazwami jakimi się posługują wszyscy użytkownicy.

Aby lepiej zrozumieć działanie adresów przedstawmy uproszczony schemat pakietów IP podróżujących w sieci.

Podstawowe protokoły transportowe stosowane w sieciach IP cz.2

Teoria sieci komputerowych

Charakterystyka grupy protokołów TCP/IP

Przecinanie kabla atak TCP Reset

Sieci Komputerowe i Technologie Internetowe (SKiTI)

Audyt bezpieczeństwa (skanowanie otoczenia sieciowego) Artur Sierszeń

Referencyjny model OSI. 3 listopada 2014 Mirosław Juszczak 37

Konfiguracja sieci, podstawy protokołów IP, TCP, UDP, rodzaje transmisji w sieciach teleinformatycznych

Wykład 4: Protokoły TCP/UDP i usługi sieciowe. A. Kisiel,Protokoły TCP/UDP i usługi sieciowe

1. Model klient-serwer

Model warstwowy Warstwa fizyczna Warstwa łacza danych Warstwa sieciowa Warstwa transportowa Warstwa aplikacj. Protokoły sieciowe

Wireshark

TCP/IP: Adresy, trasowanie, protokoły, gniazda

Programy typu klient serwer. Programowanie w środowisku rozproszonym. Wykład 5.

Warstwy i funkcje modelu ISO/OSI

ADRESY PRYWATNE W IPv4

IP Spoofing is still alive... Adam Zabrocki ( nie działa ;) ) pi3@itsec.pl (lub oficjalnie: adam@hispasec.com)

Adresy URL. Zaawansowane technologie Javy 2019

Sieci komputerowe: WYŻSZE WARSTWY MODELU OSI. Agata Półrola Katedra Informatyki Stosowanej UŁ

Uniwersalny Konwerter Protokołów

Rodzina protokołów TCP/IP

Plan wykładu. Warstwa sieci. Po co adresacja w warstwie sieci? Warstwa sieci

UDP vs TCP. Autor: Marcin Koczara IV FDS

POŁĄCZENIE STEROWNIKÓW ASTRAADA ONE MIĘDZY SOBĄ Z WYKORZYSTANIEM PROTOKOŁU UDP. Sterowniki Astraada One wymieniają między sobą dane po UDP

Zarządzanie infrastrukturą sieciową Modele funkcjonowania sieci

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

Połączenie logiczne Zestawienie połączenia Zerwanie połączenia Niezawodne Np. TCP

Protokoły internetowe

Sieci komputerowe Mechanizmy sterowania przebiegiem sesji TCP w Internecie

Sieci Komputerowe Modele warstwowe sieci

Protokół sieciowy Protokół

Enkapsulacja RARP DANE TYP PREAMBUŁA SFD ADRES DOCELOWY ADRES ŹRÓDŁOWY TYP SUMA KONTROLNA 2 B 2 B 1 B 1 B 2 B N B N B N B N B Typ: 0x0835 Ramka RARP T

Warstwy TCP/IP aplikacji - dostarcza protokoły zdalnego dostępu i współdzielenia zasobów. Aplikacje: FTP, SMTP, HTTP i wiele innych znajdują się i dzi

Katedra Inżynierii Komputerowej Politechnika Częstochowska. Zastosowania protokołu ICMP Laboratorium podstaw sieci komputerowych

Laboratorium Sieci Komputerowych - 2

Internet Control Message Protocol (ICMP) Łukasz Trzciałkowski

Transkrypt:

Piotr Kowalski KAiTI - Protokoły warstwy transportowej Plan i problematyka wykładu 1. Funkcje warstwy transportowej i wspólne cechy typowych protokołów tej warstwy 2. Protokół UDP Ogólna charakterystyka, format wiadomości, co UDP zapewnia, a czego nie gwarantuje (głównie to drugie) 3. Protokół TCP Ogólna charakterystyka Przesyłanie danych, inicjacja i kończenie połączenia Segment TCP charakterystyka i flagi Algorytm sliding-window w praktyce Funkcje warstwy transportowej Pakiety IP a aplikacje Protokół IP: - bezpołączeniowy (ang. connectionless) - zawodny (ang. unreliable) - brak potwierdzeń (ang. unacknowledged) Wymieniona powyżej lista cech protokołu IP to tak naprawdę jego braki. Braki te uzupełnia w pewnym stopniu wyższa warstwa intersieci warstwa transportowa. Dwa podstawowe protokoły tej warstwy to TCP (ang. Transmission Control Protocol) i UDP (ang. User Datagram Protocol). Pierwszy zawiera pełen zestaw funkcji (kosztem narzutu komunikacyjnego), drugi definiuje jedynie niezbędne minimum wymaganych funkcji. Porty jako metoda multipleksowania pakietów Gniazda i przypisanie usług do portów Adresowanie w warstwie transportowej jest osiągane przez porty. Każdy numer portu identyfikuje proces działający w ramach węzła o danym adresie IP. Połączenie numeru IP komputera i portu na którym odbywa się komunikacja nazywamy gniazdem (ang. socket). Dwa gniazda jednoznacznie definiujące w danej chwili transmisję w całym Internecie, można zapisać w następujący sposób: (212.51.219.50.23 : 212.51.219.4.6000) Numer portu jest liczbą 16 bitową, czyli może przyjmować wartości od 0 do 65535. Wprowadzono następujący podział przestrzeni portów: - zakres 0 do 1023 - zarezerwowany dla tzw. dobrze znanych portów (ang. well-known/privilleged ports) - zakres 1024 do 49151 zarezerwowany dla zarejestrowanych portów/portów użytkownika (ang. registered/user ports) - zakres 49152 do 65535 zarezerwowany dla prywatnych/dynamicznie alokowanych portów (ang. private/dynamic ports) 1

Zbiór dobrze znanych portów - przykłady UDP Port TCP/UDP Usługa 20 TCP FTP (dane) 21 TCP FTP (inf. kontrolne) 22 TCP SSH 25 TCP SMTP 53 TCP+UDP DNS 80 TCP HTTP 110 TCP POP3 143 TCP IMAP 161,162 UDP SNMP 179 UDP BGP 443 TCP HTTPS 520 UDP RIP-2 Więcej: /etc/services (Linux) Windows/System32/drivers/etc/services (Windows XP) UDP jest bardzo prostym protokołem warstwy transportowej opracowanym na początku lat 80. UDP implementuje: - Przesyłanie danych pomiędzy dwoma procesami odległych węzłów - i nic więcej! Czego UDP nie zapewnia: - połączenia (wiadomości są po prostu wypychane przez łącze) i wykrywania zagubionych komunikatów - potwierdzeń i gwarancji dostarczenia wiadomości - kontroli przepływności oraz właściwej kolejności dostarczenia wiadomości Wiadomość UDP Protokół TCP Protokół TCP jest powiązany wspólną historią z protokołem IP, początkowo stanowiły one jeden spójny protokół sieciowy Bity 0-15 Bity 0-15 Port źródłowy Port przeznaczenia Długość Suma kontrolna DANE Cechy: Zorientowany na połączenie obie strony je nawiązują i obie strony mogą przesyłać do siebie dane (dwukierunkowy) Obsługa wielu połączeń równocześnie Niezawodny sprawdza integralność danych, zapewnia ich retransmisję w przypadku błędu, definiuje potwierdzenia Strumieniowy pozwala na transmisję strumienia danych, sam dzieląc je na segmenty w zależności od potrzeb, zapewnia także kontrolę przepływności Segmenty TCP Przesyłanie danych w TCP Każdy segment zawiera numer sekwencji, TCP dla niezawodności transmisji implementuje schemat PAR (ang. positive acknowledgements with retransmission) - dla każdej sekwencji musi być wysłane potwierdzenie o odpowiadającym jej numerze (nadawca uruchamia też zegar w momencie wysyłania pakietu i wysyła ten pakiet ponownie, gdy minie odpowiedni czas, a potwierdzenie nie nadejdzie), a także zasygnalizowany już wcześniej mechanizm ruchomego okna (ang. sliding window) pracującego na przesyłanym strumieniu danych. Każdy bajt jest przypisany do jednej z 4 kategorii: 2

Okno transmisji szkic Połączenia w TCP flagi W TCP w celu efektywnego i niezawodnego przesyłania danych między węzłami nawiązywane są połączenia. Segment TCP zawiera specjalne pole definiujące flagi, określające typ komunikatu przez ten segment przenoszonego, flagi te będą opisane później, na razie ograniczmy się do scharakteryzowania następujących: Flaga SYN (ang. synchronize) używana do nawiązania połączenia, jedna z funkcji: synchronizacja numerów sekwencji Flaga FIN (ang. finish) używana do zakończenia połączenia Flaga ACK (ang. acknowledgement) używana do potwierdzenia odbioru wiadomości Diagram stanów nawiązanie połączenia Możliwe stany klienta/serwera TCP (1) Diagram stanów zakończenie połączenia Three-way handshake (nawiązanie połączenia TCP) CLOSED brak połączenia LISTEN nasłuchiwanie (serwer), gotowość do odbioru segmentu inicjalizującego (SYN), po jego odebraniu wysyła się SYN i ACK, i do stanu SYN-RECEIVED SYN-SENT klient po wysłaniu segmentu inicjalizującego (SYN), czeka na odpowiedź gdy jest to SYN do stanu SYN-RECEIVED, gdy SYN+ACK wyślij ACK i do stanu ESTABLISHED SYN-RECEIVED serwer po odebraniu SYN i wysłaniu swojego SYN, czeka na ACK, po odebraniu ESTABLISHED ESTABLISHED nawiązane połączenie, aby je skończyć wysyła się FIN i skok do FIN-WAIT-1 3

Równoczesne nawiązanie połączenia Możliwe stany klienta/serwera TCP (2) CLOSE-WAIT otrzymano FIN (prośbę o zakończenie połączenia), odsyła się FIN i przechodzi do LAST-ACK LAST-ACK czeka na ACK, po jego otrzymaniu przechodzi do CLOSED FIN-WAIT-1 po wysłaniu swojego FIN czeka się na odpowiedź. Gdy jest to też FIN, należy odesłać ACK i do CLOSING, gdy jest to ACK przejść do FIN-WAIT-2 FIN-WAIT-2 oczekiwanie na FIN, po jego odebraniu należy odesłać ACK i przejść do TIME-WAIT CLOSING oczekiwanie na ACK, po odebraniu TIMEWAIT TIME-WAIT po określonym czasie (2*maksymalny czas życia segmentu) przechodzi się do CLOSED Zakończenie połączenia Równoczesne zakończenie połączenia Segment TCP Pola segmentu TCP Numer sekwencji 4 bajtowy numer wskazujący położenie w strumieniu pierwszego bajtu danych segmentu. Przy nawiązywaniu transmisji (flaga SYN) zawiera ISN (ang. initial sequence number) nadawany przez nadawcę. Pierwszy bajt danych otrzymuje numer sekwencji ISN+1. Numer potwierdzenia jeśli jest ustawiona flaga ACK, pole to zawiera wartość następnego numeru sekwencji kolejnego segmentu, którą nadawca spodziewa się otrzymać. Przesunięcie danych liczba 32-bitowych słów w nagłówku TCP Okno określa rozmiar okna jakim wysyłający dysponuje dla odbierania danych (pozwala na sterowanie przepływem danych 0 oznacza wstrzymaj transmisję ) 4

Pole flag (bitów sterujących) URG segment priorytetowy (pole Urgent Pointer wskazuje koniec danych o priorytetowej wartości ) ACK segment potwierdzenia PSH dane powinny być natychmiast przekazane do wyższej warstwy RST funkcja resetująca połączenie ( delta mamy problem ) SYN segment synchronizacji numerów sekwencji FIN segment sygnalizujący chęć zakończenia połączenia Numer sekwencji i jego synchronizacja Inicjujący połączenie powinien wybrać na początku numer sekwencji - stosuje w tym celu licznik, zwiększający się co 4 mikrosekundy aż do INT_MAX (zatem dopiero po 4 godzinach numer sekwencji może się powtórzyć). Sliding window w TCP - nadawca SND.UNA odpowiada numerowi sekwencji wysyłanych danych Sliding window w TCP - odbiorca RCV.NXT odpowiada numerowi odsyłanemu w ACK Selective ACK (gdy zgubimy segment) DZIĘKUJĘ ZA UWAGĘ! NASTĘPNY WYKŁAD: IPV6 5