PROTOKOŁY WARSTWY TRANSPORTOWEJ

Slides:



Advertisements
Podobne prezentacje
Protokoły sieciowe.
Advertisements

Programowanie wizualne PW – LAB5 Wojciech Pieprzyca.
Krótkie i amatorskie wprowadzenie. Coś musiałem napisać..
ZAPORY SIECIOWE Firewall – ściana fizycznie oddzielająca silnik od pasażerów w samochodzie Sposób zabezpieczenia komputera/sieci przed osobami niepowołanymi.
MODEL OSI.
Sieci komputerowe Usługi sieciowe Piotr Górczyński 27/09/2002.
Przegląd protokołów rodziny TCP/IP (1)
Budowa Sewera i Klienta opartego na protokole udp
Rozszerzalność systemów rozproszonych
Autor Roman Jędras Prowadzący: dr inż. Antoni Izworski Przedmiot:
Stream Control Transmission Protocol
Wykład 2: Metody komutacji w sieciach teleinformatycznych
Architektura Systemów Komputerowych
Poj ę cia Sieciowe. IMAP-to internetowy protokół pocztowy zaprojektowany IMAP-to internetowy protokół pocztowy zaprojektowany POP3-to protokół internetowy.
Pojęcia sieciowe.
Urządzenia sieciowe Topologie sieci Standardy sieci Koniec.
SSL - protokół bezpiecznych transmisji internetowych
Obsługa serwera zdalnego przez klienta FTP
Połączenia za pomocą TCP
Model ISO / OSI Model TCP /IP
Monitoring Sieci Narzędzia Sieciowe.
Komunikaty sterujące zestawu protokołów TCP/IP
INTERNET.
Internet Usługi internetowe.
12. GNIAZDA BSD Biblioteka funkcji związanych z gniazdami jest interfejsem programisty do obsługi protokołów komunikacyjnych. Została utworzona dla Unixa.
MODELE TEORETYCZNE ZWIĄZANE Z KOMUNIKACJĄ SIECIOWĄ
USŁUGI INTERNETOWE TCP/IP WWW FTP USENET.
Protokoły sieciowe.
USŁUGA FTP 1. Definicja FTP. FTP (File Transfer Protocol, ang. protokół transmisji plików) jest protokołem typu klient-serwer, który umożliwia przesyłanie.
Protokoły komunikacyjne
PRotokoły Sieciowe IP (Internet Protocol) DNS (Domain Name System)
Protokół Komunikacyjny
MODEL WARSTWOWY PROTOKOŁY TCP/IP
Adresy komputerów w sieci
RODZAJE TRANSMISJI PRZESYŁANIE INFORMACJI W MODELU WARSTWOWYM
Systemy Kancelaryjne ..
Prezentacja Adrian Pyza 4i.
Informatyka 1 Sieć.
Sieci komputerowe.
Wymiana informacji w sieciach komputerowych Opracowanie: Maria Wąsik.
Model OSI Model OSI (Open Systems Interconnection Reference Model) został wprowadzony w celu ujednolicenia regół komunikacji sieciowej. Obejmuje on cały.
Wykład IV Protokoły BOOTP oraz DHCP.
Temat 10: Komunikacja w sieci
SYSTEMY OPERACYJNE Adresowanie IP cz3.
Laboratorium systemów operacyjnych
Sieci komputerowe.
Aplikacje TCP i UDP. Łukasz Zieliński
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Systemy operacyjne i sieci komputerowe
Sieci komputerowe.
Temat 11: Modele warstwowe sieci
Protokół Sterowania Transferem
Systemy operacyjne i sieci komputerowe
Architektura protokołów TCP/IP
Andrzej Majkowski 1 informatyka +. 2 Bezpieczeństwo protokołu HTTP Paweł Perekietka.
Model OSI.
PODSTAWY SIECI KOMPUTEROWYCH - MODEL ISO/OSI. Modele warstwowe a sieci komputerowe Modele sieciowe to schematy funkcjonowania, które ułatwią zrozumienie.
Model warstwowy ISO-OSI
Wykład 7 i 8 Na podstawie CCNA Exploration Moduł 5 i 6 – streszczenie
4) Warstwa transportowa Ataki w tej warstwie mają podobny charakter, jak w warstwie międzysieciowej i również mogą być przeprowadzane zarówno jako wewnętrzne.
 Wi-Fi  światłowody  skrętka Protokół komunikacyjny to zbiór ścisłych reguł i kroków postępowania, które są automatycznie wykonywane przez urządzenia.
Protokoły używane w sieciach LAN Funkcje sieciowego systemu komputerowego Wykład 5.
Model TCP/IP Wykład 6.
materiały dla uczestników
Wydział Matematyki, Informatyki i Architektury Krajobrazu
Podstawy sieci komputerowych
Sieci komputerowe Usługi sieciowe 27/09/2002.
Zapis prezentacji:

PROTOKOŁY WARSTWY TRANSPORTOWEJ Na bazie protokołu internetowego (IP) zbudowane są dwa protokoły warstwy transportowej: UDP (User Datagram Protocol) - protokół bezpołączeniowy, zawodny; TCP (Transmission Control Protocol) - protokół połączeniowy, niezawodny. Protokoły warstwy transportowej zapewniają łączność pomiędzy procesami wykonywanymi na dwóch różnych komputerach (a w szczególnym przypadku też na jednym i tym samym komputerze), nie ingerując w wybór trasy przesyłu informacji (to jest zadaniem podrzędnego względem nich protokołu IP). Ponieważ na jednym komputerze może być wykonywanych wiele procesów jednocześnie, muszą one korzystać z różnych „punktów kontaktowych”, aby sobie wzajemnie nie przeszkadzały. Takie logiczne obiekty służące jako „skrzynki nadawczo-odbiorcze” dla poszczególnych procesów nazywane są portami. Porty numerowane są liczbami dwubajtowymi dla każdego protokołu warstwy transportowej oddzielnie. Uwaga Nie należy mylić powyższych portów z fizyczną przestrzenią portów danego komputera.

Aby dwa procesy mogły się skomunikować, należy określić elementy następującej piątki uporządkowanej: ( protokół, adres1, port1, adres2, port2 ). Piątka taka nazywana jest asocjacją (skojarzeniem) (association). Trójkę związaną z jednym tylko procesem: ( protokół, adres, port ) nazywamy półasocjacją (half-association), adresem transportowym (transport address) lub (co pochodzi z terminologii związanej z Unixem BSD) gniazdem (socket). Konsekwentnie asocjacja bywa też nazywana parą gniazd (socket pair), bo protokół jest wspólny dla obu półasocjacji.

Uwaga Protokół IP pełni rolę „poczty zewnętrznej” dostarczając całość korespondencji od hosta do hosta (multipleksując / demultipleksując przesyłki otrzymane od protokołów transportowych). Protokoły transportowe obsługują „pocztę wewnętrzną” zbierając / rozdzielając przesyłki od / do poszczególnych procesów („pracowników”) posiadających przyporządkowane porty („skrzynki na indywidualną korespondencję”). W praktyce z portów korzystają protokoły warstwy zastosowań (górne warstwy modelu OSI są na ogół złączone w jeden moduł oprogramowania). Ponieważ praktycznie zawsze realizują one model klient - serwer (pewna usługa jest udostępniana i czeka na zgłoszenia klientów), procesy klientów muszą „wiedzieć”, do którego portu po stronie serwera należy się zgłosić, aby uzyskać określoną usługę. W związku z tym istnieje zbiór ogólnie znanych portów (well-known port), które są przypo- rządkowane standardowym, powszechnie używanym usługom - przykładowo serwer FTP (File Transfer Protocol) przyjmuje zawsze zgłoszenia w porcie 21, serwer Telnet (usługi zdalnego terminala) w porcie 23, a serwer HTTP (HyperText Transfer Protocol) - w porcie 80.

Numery portów są dwubajtowe, należą więc do przedziału 0 - 65535 Numery portów są dwubajtowe, należą więc do przedziału 0 - 65535. Jako numery ogólnie znane zostały zarezerwowane liczby 0 - 1023 (ich przyporządkowywaniem i administracją zajmuje się organizacja IANA (Internet Assigned Numbers Authority)). Numery 1024 - 49151 mogą być numerami portów zarejestrowanych (registered port) - IANA nie sprawuje nad nimi nadzoru, ale na życzenie użytkowników rejestruje je i umieszcza w swoich wykazach. Numery powyżej 49151 mogą być dowolnie wykorzystywane - zwykle z tego zakresu wyznaczane są porty do „doraźnego użytku” przez programy klienckie, jako tzw. porty efemeryczne (ephemeral port). Klienci nie muszą mieć numerów portów przyporządkowanych na stałe i zazwyczaj po ich doraźny przydział zgłaszają się do swojego systemu operacyjnego. Uwaga Niektóre usługi mogą być zrealizowane zarówno w oparciu o protokół TCP, jak i UDP - zwyczajowo dla standardowych usług rezerwowane są te same numery portów zarówno TCP, jak i UDP, choćby był wykorzystywany tylko jeden z nich.

Długość jest łączną długością nagłówka i danych. Protokół UDP jest prostym protokołem bezpołączeniowym, operującym na jednostkach informacji nazywanych datagramami UDP lub komunikatami (message). Struktura komunikatu: 1 bajt 2 bajt 3 bajt 4 bajt port źródłowy port docelowy nagłówek długość suma kontrolna D A N E (zmienna długość) Numer portu źródłowego może być nieużywany (pole jest wtedy wyzerowane). Długość jest łączną długością nagłówka i danych. Suma kontrolna - w pewnym stopniu umożliwia sprawdzenie poprawności przesyłu komunikatu.

Obsługa komunikatu polega tylko na opakowaniu go przez protokół IP (dodaniu nagłówka IP) i przekazaniu go warstwie łącza. Zawodność protokołu UDP jest taka, jaka jest zawodność protokołu IP na danej ścieżce w sieci. Protokół UDP jest dość szybki ze względu na swoją prostotę. Jest stosowany głównie tam, gdzie przesyłane porcje informacji są nieduże, gdzie występuje pojedyncza wymiana informacji („pytanie - odpowiedź”), jak również w sieciach lokalnych (w których transmisja charakteryzuje się dużo większą niezawodnością, niż w skali całego Internetu). Przy niedużych ilościach przesyłanej informacji może bardziej się opłacać zapewniać niezawodność na poziomie programu użytkowego, niż korzystać z wbudowanych mechanizmów protokołu TCP (uznawanego obecnie za dość powolny).

Schemat komunikacji bezpołączeniowej pomiędzy klientem a serwerem przy użyciu UDP socket ( ); klient socket ( ); bind ( ); bind ( ); recvfrom ( ); oczekiwanie na dane dane sendto ( ); przetwarzanie danych recvfrom ( ); oczekiwanie na wyniki wyniki sendto ( );

w postaci datagramów IP. Struktura segmentu: Protokół TCP jest protokołem połączeniowym (udostępniającym protokołom nadrzędnym łącze logiczne przenoszące nieprzerwany ciąg bajtów o nieograniczonej długości), zapewniającym niezawodność transmisji poprzez stosowanie numeracji porcji informacji i potwierdzeń ich odebrania. Strumień bajtów otrzymany przez TCP od protokołu nadrzędnego jest dzielony na porcje nazywane segmentami, których wielkość umożliwia opakowanie ich przez protokół IP i wysłanie w postaci datagramów IP. Struktura segmentu: 1 bajt 2 bajt 3 bajt 4 bajt port źródłowy port docelowy numer sekwencji numer potwierdzenia nagłówek długość nagłówka niewykorz. flagi okno suma kontrolna priorytet opcje niewykorzystane D A N E (zmienna długość)

Port źródłowy i docelowy - jak w protokole UDP (ale źródłowy musi być określony). Numer sekwencji - liczba, od której protokół zaczyna odliczać wysyłane bajty. Numer potwierdzenia - powiadamia drugą stronę, jaki numer sekwencji protokół spodziewa się otrzymać w następnym segmencie (czyli stanowi potwierdzenie liczby otrzymanych wcześniej bajtów). Długość nagłówka - długość nagłówka TCP (w słowach 4-bajtowych) Flagi - mogą informować, czy dany segment jest segmentem organizacyjnym (i jakiego rodzaju). Okno - określa, ile bajtów protokół jest w stanie w danej chwili przyjąć do swojego bufora (żeby nie powstało spiętrzenie). Suma kontrolna - jak w protokole UDP. Opcje - mogą na przykład określać maksymalny rozmiar segmentu, jaki protokół jest w stanie obsłużyć.

Schemat komunikacji połączeniowej pomiędzy klientem a serwerem przy użyciu TCP socket ( ); bind ( ); klient socket ( ); listen ( ); connect ( ); accept ( ); oczekiwanie na uzys- kanie połączenia oczekiwanie na uzyskanie połączenia dane write ( ); read ( ); przetwarzanie danych oczekiwanie na wyniki wyniki write ( ); read ( );

Serwer jako pierwszy przygotowuje się do przyjęcia połączenia, wykonując funkcje socket, bind i listen - jest to tzw. otwarcie bierne (passive open). Klient po pewnym czasie wywołuje funkcje socket i connect, wykonując otwarcie czynne (active open). W odpowiedzi na to serwer wykonuje funkcję accept. Naprzemienne wykonanie powyższych funkcji związane jest z utworzeniem stałego połączenia poprzez uzgadnianie trójfazowe (three-way handshake). Segmenty organizacyjne, które są w jego trakcie przesyłane, oznaczane są SYN (synchronization) i ACK (acknowledgement). Klient, wykonując connect, wysyła SYN zawierający jego początkowy numer sekwencji (arbitralnie wybrany przez protokół) i zawiesza swój proces, czekając na reakcję serwera. Serwer, wykonując accept, wysyła (w jednym segmencie) swoje SYN (ze swoim początkowym numerem sekwencji) oraz ACK (potwierdzające odbiór SYN klienta), a następnie zawiesza swój proces, czekając na reakcję klienta. Klient następnie, wysyłając pierwszy segment z danymi, ustawia w nim flagę ACK i potwierdza numer otrzymany od serwera. serwer klient SYN SYN + ACK ACK + dane

Scenariusz zakończenia połączenia wygląda dość podobnie do scenariusza otwarcia. Zazwyczaj klient jako pierwszy wywołuje funkcję close, wykonując zamknięcie czynne (active close), a serwer jako drugi wykonując zamknięcie bierne (passive close). Jednym z wyjątków od tej reguły jest protokół HTTP. Wymiana segmentów organizacyjnych: serwer klient FIN ACK Uwaga W niektórych scenariuszach, aby zmniejszyć liczbę transmisji, ACK i FIN od serwera wysyłane są w jednym segmencie. Ponadto FIN może być wysłany razem z ostatnią porcją danych.