Połączenia za pomocą TCP Wykład 6 Kielce 2006
Protokół, to oficjalny opis reguł i konwencji, rządzących poszczególnymi aspektami komunikacji urządzeń w sieci komputerowej.
Rodzina protokołów TCP/IP Rodzina protokołów TCP/IP powstała w wyniku prac badawczych przeprowadzonych przez agencję Defense Advanced Research Agency (DARPA). Początkowo jej zadaniem było zapewnienie komunikacji w obrębie agencji DARPA. Później TCP/IP został dołączony do systemu BSD UNIX. Obecnie TCP/IP jest niezaprzeczalnym standardem łączności sieciowej i służy jako protokół transportowy dla Internetu.
Rodzina protokołów TCP/IP a warstwa aplikacji Warstwa aplikacji protokołu TCP/IP łączy funkcjonalność właściwą dla warstw sesji, prezentacji oraz aplikacji modelu OSI. TCP/IP ma protokoły obsługujące transfer plików, pocztę elektroniczną, włączając poniższe:
Domain Name System (DNS) System używany w Internecie, który tłumaczy nazwy domen wraz z ich publicznie ogłoszonymi węzłami sieciowymi na adres IP. Takie działanie jest traktowane jako funkcja właściwa dla warstwy transportu, ponieważ dostarcza usługi warstwie znajdującej się wyżej (warstwie aplikacji) oraz odbiera usługi z warstwy niższej (warstwy sieci)
Windows Internet Naming Service (WINS) Opracowany przez firmę Microsoft standard, który w sposób automatyczny przypisuje nazwy domen internetowych stacjom roboczym
Post Office Protocol (POP3) Standard internetowy służący do przechowywania poczty elektronicznej na serwerze pocztowym do momentu pobrania jej na komputer użytkownika.
Simple Mail Transfer Protocol (SMTP) Zarządza transmisją poczty elektronicznej między sieciami komputerowymi
Simple Network Management Protocol (SNMP) Protokół, który udostępnia środki umożliwiające monitorowanie i kontrolę urządzeń sieciowych oraz zarządzanie konfiguracją, zbiorami statystyk, wydajnością i bezpieczeństwem.
File Transfer Protocol Niezawodna usługa połączeniowa wykorzystująca TCP do transferu plików między systemami obsługującymi FTP.
Hypertext Transfer Protocol (HTTP) Standard internetowy obsługujący wymianę informacji w sieci WWW, jak również w sieciach wewnętrznych.
Rodzina protokołów TCP/IP a warstwa transportu Warstwa transportu udostępnia dwa protokoły: TCP – Połączeniowy, niezawodny protokół umożliwiający kontrolę przepływu danych za pomocą okien przesuwanych. Jego niezawodność zapewnia sekwencja numerów i potwierdzeń. TCP odsyła wszystko co nie zostało potwierdzone. Tworzy wirtualny obwód między aplikacjami użytkowników końcowych. Zaletą TCP jest to, że gwarantuje dostarczenie danych.
UDP (User Datagram Protocol) – Bezpołączeniowy, „niepewny” protokół odpowiedzialny za transmisję komunikatów, ale nie dysponujący oprogramowaniem sprawdzającym dostarczenie segmentów. Zaletą UDP jest szybkość. Ponieważ UDP nie oferuje potwierdzenia dostarczenia wiadomości, ruch w sieci jest mniejszy, dzięki czemu transfer przebiega szybciej.
TCP jest protokołem połączeniowym TCP jest protokołem połączeniowym. Oznacza to, że końcowe stacje zawsze o sobie wiedzą i stale się komunikują między sobą, wymieniając informację na temat połączenia. Klasycznym przykładem nietechnicznej komunikacji połączeniowej jest rozmowa telefoniczna między dwiema osobami. Dobrym przykładem konwersacji niepołączeniowej są usługi tradycyjnej poczty.
Uzgadnianie trójstopniowe TCP to protokół połączeniowy. Zanim dojdzie do transmisji danych, komunikujące się ze sobą hosty przechodzą proces synchronizacji w celu ustanowienia wirtualnego połączenia. Ten proces synchronizacji zapewnia, że obie strony są gotowe do transmisji danych i pozwala urządzeniom określić początkowe numery sekwencyjne (ISN). Proces ten znany jest jako uzgadnianie trójstopniowe.
Okienkowanie i rozmiar okna W wielu przypadkach ilość danych, które mają być transmitowane, jest zbyt duża, aby je wysłać w pojedynczym segmencie danych. W takiej sytuacji dane trzeba podzielić na mniejsze części, aby umożliwić ich prawidłową transmisję. TCP jest odpowiedzialny za dzielenie danych na segmenty.
Po segmentowaniu danych są one transmitowane do urządzenia docelowego Po segmentowaniu danych są one transmitowane do urządzenia docelowego. Jedną z usług oferowanych przez TCP jest kontrola przepływu, która reguluje ile danych jest wysyłanych podczas danego okresu transmisji. Proces kontroli przepływu zwany jest okienkowaniem. Rozmiar okna określa ilość danych jaka może być jednocześnie transmitowana.
Numery sekwencyjne Wysyłane segmenty danych muszą zostać złożone w jedną całość po odebraniu wszystkich danych. Nie ma gwarancji, że dane dotrą do odbiorcy w kolejności, w jakiej zostały wysłane. TCP rozwiązuje ten problem używając numerów sekwencyjnych, dzięki czemu odbiorca wie jak złożyć dane we właściwej kolejności.
Przegląd portów warstwy transportu Porty warstwy transportu to numery stosowane do identyfikacji punktów końcowych połączeń po każdej stronie łączących się urządzeń. Dane połączenie sieciowe jest identyfikowane według czterostopniowej sekwencji (adres źródłowy, port źródłowym adres docelowy, port docelowy)
Hosty wykorzystujące TCP/IP wiążą porty na poziomie warstwy transportu z pewnymi aplikacjami. Numery portów są używane do śledzenia różnych konwersacji, które mają miejsce w sieci w tym samym czasie.
Porty dla usług Zostały zdefiniowane tzw. „dobrze znane porty” które określają na których portach działają poszczególne usługi. Na przykład: Serwer WWW domyślnie przyjmuje połączenia na porcie 80, serwer poczty wychodzącej (smtp) na porcie 25 itp.
Porty dla klientów Zawsze, gdy klient łączy się z usługą na serwerze, musi być określony port źródłowy i docelowy. Porty docelowe, czyli porty dla usług są zwykle zdefiniowane przy użyciu dobrze znanych portów. Porty źródłowe , te ustawiane przez klienta, są określane dynamicznie.
Generalnie klient określa port źródłowy, losowo przypisując mu numer wyższy niż 1023. Na przykład klient próbujący skomunikować się z serwerem sieci WWW określa port docelowy jako 80, a port źródłowy jako 1045. Serwer WWW odpowiada na żądanie klienta segmentem wykorzystującym port 80 jako port źródłowy i port 1045 jako port docelowy
Protokół IP Zadaniem IP jest umożliwienie komunikacji między sieciami. Projekt IP pozwala na adresowanie hostów i sieci. Ograniczeniem IP jest to, że nie ma mechanizmu gwarantującego dostarczanie danych w przypadku problemów w sieci. Dane mogą nie dotrzeć do punktu docelowego z wielu przyczyn np. awarii sprzętu, niewłaściwej konfiguracji itp.
ICMP (Internet Control Message Protocol) Do identyfikacji uszkodzeń IP używa ICMP. ICMP nie przezwycięża ograniczenia wynikającego z zawodności IP, powiadamia jedynie nadawcę o tym, że w procesie dostarczania danych wystąpił błąd
Sieci nieosiągalne Komunikacja sieciowa zależy od kilku podstawowych warunków: Rodzina protokołów TCP/IP musi być odpowiednio skonfigurowana na urządzeniach wysyłających i odbiorczych. Dotyczy to instalacji TCP/IP oraz prawidłowej konfiguracji adresu IP i maski podsieci. Jeśli dane mają wędrować poza lokalną sieć, należy również skonfigurować domyślną bramkę (router).
Jeśli warunki te nie zostaną spełnione sieć docelowa będzie nieosiągalna. Do komunikatów o punktach nieosiągalnych należą: Sieć nieosiągalna – ten komunikat zwykle wynika z niewłaściwości w routingu lub w adresowaniu Host nieosiągalny – ten komunikat zwykle wynika z błędów w dostarczeniu, np. nieprawidłowej maski sieci. Port nieosiągalny – ten komunikat wskazuje zwykle, że port TCP nie jest dostępny
Użycie polecenia ping w celu przetestowania osiągalności punktu Protokół ICMP można wykorzystać do przetestowania osiągalności konkretnego punktu docelowego. Używamy do tego celu polecenia ping.
PING Polecenie „ping” generuje pakiet „żądanie echa” (ICMP echo request) , które wysyła do urządzenia docelowego. Po odebraniu żądania echa, urządzenie docelowe formułuje komunikat odpowiedzi z echem wysyłany z powrotem do źródła (ICMP echo respown). Odebranie poprawnej odpowiedzi potwierdza że urządzenie docelowe jest osiągalne