Protokół TCP/IP jest programowym protokołem komunikacji sieciowej. Termin TCP/IP oznacza znacznie
więcej niż tylko prostą kombinację protokołów TCP (Transmission Control Protocol) i IP (Internet Protocol).
Oznacza on rozbudowany zestaw oprogramowania udostępniającego różnorodne usługi sieciowe. Protokół
TCP/IP udostępnia metody przesyłania informacji pomiędzy poszczególnymi maszynami w sieci,
zapewniając wiarygodne przesyłanie danych, obsługując pojawiające się błędy czy generując związane z
transmisją informacje dodatkowe.
Protokół TCP/IP umożliwia rozpatrywanie zagadnień dotyczących komunikacji niezależnie od sprzętu
sieciowego.
TCP/IP ma również strukturę warstwową i ma do niego zastosowanie większość filozofii modelu OSI.
Jednak podstawowe założenia są na tyle różne, że warto rozróżnić te dwa przypadki.
Model TCP/IP
kl. 3d
Warstwy modelu TCP/IP
Seweryn Jagiełło
kl. 3d
Protokoły
Protokoły internetowe to podzbiór protokołów komunikacyjnych, mający zastosowanie w środowisku
internetu. Protokoły internetowe to zbiór ścisłych reguł i kroków postępowania, które są automatycznie
wykonywane przez urządzenia w celu nawiązania łączności i wymiany danych.
Każdy protokół sieciowy można przyporządkować do określonej warstwy modelu TCP/IP. Pewną szczególną
cechą rodziny protokołów TCP/IP używanej w internecie jest podział protokołów z warstwy aplikacyjnej i
połączeniowej. Niektóre protokoły z warstwy aplikacji wykorzystują tylko pewne protokoły z warstwy
transportowej.
Protokoły DNS, NTP wykorzystują tylko protokół UDP z warstwy transportowej. Protokoły FTP, SMTP, POP3,
SSH, IRC posługują się tylko TCP. Natomiast SMB używa obu protokołów.
Protokół SSL ma szczególną rolę. Może zostać umieszczony pomiędzy każdym połączeniowym protokołem
warstwy aplikacji, a TCP. Dzięki jego wykorzystaniu dane przesyłane przez aplikacje mogą zostać
zaszyfrowane.
Protokoły TCP i IP cechują się dobrą odtwarzalnością po awarii, możliwością dodawania nowych sieci bez
przerywania pracy istniejących, wysokim współczynnikiem korekcji błędów, niezależnością od platformy,
małym stopniem obciążenia danych własnymi strukturami oraz dużą wydajnością.
Protokoły TCP i IP łącznie zarządzają przepływem większości danych przez sieć. IP odpowiada za przesyłanie
dowolnych danych z punktu do punktu i zawiera w sobie na przykład TCP lub UDP.
Para TCP+IP jest stosowana do tzw. transmisji połączeniowej, gdzie zagwarantowany jest przepływ danych
dowolnej długości w obydwie strony, lub zwrotne poinformowanie nadawcy o nieusuwalnym błędzie. Para
protokołów UDP+IP jest najczęściej używanym standardem do tzw. transmisji bezpołączeniowej, czyli
przesyłania w jedną stronę, bez potwierdzania odbioru, niewielkich paczek danych zwanych datagramami.
Seweryn Jagiełło
kl. 3d
IP – protokół komunikacyjny używany powszechnie w Internecie i sieciach lokalnych. Dane w sieciach IP są
wysyłane w formie bloków określanych mianem pakietów. W przypadku protokołu IP, przed rozpoczęciem
transmisji nie jest zestawiana wirtualna sesja komunikacyjna pomiędzy dwoma hostami, które nie
komunikowały się ze sobą wcześniej. Protokół IP jest protokołem zawodnym – nie gwarantuje, że pakiety dotrą
do adresata, nie zostaną pofragmentowane, czy też zdublowane, a ponadto mogą dotrzeć do odbiorcy w innej
kolejności niż zostały nadane. Niezawodność transmisji danych jest zapewniana przez protokoły warstw
wyższych (np. TCP), znajdujących się w hierarchii powyżej warstwy sieciowej.
TCP (ang. Transmission Control Protocol – protokół kontroli transmisji) – strumieniowy protokół komunikacji
między dwoma komputerami. TCP jest protokołem działającym w trybie klient-serwer. Serwer oczekuje na
nawiązanie połączenia na określonym porcie. Klient inicjuje połączenie do serwera. W przeciwieństwie do UDP,
TCP gwarantuje wyższym warstwom komunikacyjnym dostarczenie wszystkich pakietów w całości, z
zachowaniem kolejności i bez duplikatów. Zapewnia to wiarygodne połączenie kosztem większego narzutu w
postaci nagłówka i większej liczby przesyłanych pakietów. Chociaż protokół definiuje pakiet TCP, to z punktu
widzenia wyższej warstwy oprogramowania, dane płynące połączeniem TCP należy traktować jako ciąg oktetów.
W szczególności – jednemu wywołaniu funkcji API nie musi odpowiadać wysłanie jednego pakietu. Dane z
jednego wywołania mogą zostać podzielone na kilka pakietów lub odwrotnie – dane z kilku wywołań mogą
zostać połączone i wysłane jako jeden pakiet. Również funkcje odbierające dane w praktyce odbierają nie
konkretne pakiety, ale zawartość bufora stosu TCP/IP, wypełnianego sukcesywnie danymi z przychodzących
pakietów. W celu weryfikacji wysyłki i odbioru TCP wykorzystuje sumy kontrolne i numery sekwencyjne
pakietów. Odbiorca potwierdza otrzymanie pakietów o określonych numerach sekwencyjnych ustawiając flagę
ACK. Brakujące pakiety są retransmitowane. Host odbierający pakiety TCP defragmentuje je i porządkuje je
według numerów sekwencyjnych tak, by przekazać wyższym warstwom modelu OSI pełen złożony segment.
UDP (ang. User Datagram Protocol – Datagramowy Protokół Użytkownika) – jeden z podstawowych protokołów
internetowych. Umieszcza się go w warstwie czwartej (transportu) modelu OSI.
Jest to protokół bezpołączeniowy, więc nie ma narzutu na nawiązywanie połączenia i śledzenie sesji (w
przeciwieństwie do TCP). Nie ma też mechanizmów kontroli przepływu i retransmisji. Korzyścią płynącą z
takiego uproszczenia budowy jest większa szybkość transmisji danych i brak dodatkowych zadań, którymi musi
zajmować się host posługujący się tym protokołem. Z tych względów UDP jest często używany w takich
zastosowaniach jak wideokonferencje, strumienie dźwięku w Internecie i gry sieciowe, gdzie dane muszą być
przesyłane możliwie szybko, a poprawianiem błędów zajmują się inne warstwy modelu OSI. Przykładem może
być VoIP lub protokół DNS.
UDP udostępnia mechanizm identyfikacji różnych punktów końcowych (np. pracujących aplikacji, usług czy
serwisów) na jednym hoście dzięki portom. UDP zajmuje się dostarczaniem pojedynczych pakietów,
udostępnionych przez IP, na którym się opiera. Kolejną cechą odróżniającą UDP od TCP jest możliwość transmisji
do kilku adresów docelowych na raz (tzw. multicast).
Seweryn Jagiełło
kl. 3d
DNS to system serwerów, protokół komunikacyjny oraz usługa zapewniające zamianę adresów znanych
użytkownikom Internetu na adresy zrozumiałe dla urządzeń tworzących sieć komputerową. Dzięki wykorzystaniu
DNS nazwa mnemoniczna, np. pl.wikipedia.org, może zostać zamieniona na odpowiadający jej adres IP, czyli
91.198.174.2 Usługa DNS warstwy aplikacji modelu TCP/IP, jest związana z portem 53 TCP/UDP.
NTP to protokół umożliwiający precyzyjną synchronizację czasu pomiędzy komputerami. Wzorcowy czas UTC
może pochodzić bezpośrednio z zegarów atomowych lub pośrednio ze specjalizowanych serwerów czasu (ang.
Time Server NTP). Protokół NTP jest coraz powszechniej uznawany za światowy standard synchronizacji czasu w
urządzeniach teleinformatycznych i telekomunikacyjnych. Ma swoją implementację dla większości
współczesnych systemów operacyjnych, z Microsoft Windows NT/2K/XP/2003/VISTA/7 włącznie.
FTP to protokół typu klient-serwer, który umożliwia przesyłanie plików z serwera i na serwer poprzez sieć
TCP/IP. FTP jest protokołem 8-bitowym, dlatego nie wymaga specjalnego kodowania danych na postać 7-bitową,
tak jak ma to miejsce w przypadku poczty elektronicznej. Do komunikacji wykorzystywane są dwa połączenia
TCP. Jedno z nich jest połączeniem kontrolnym za pomocą którego przesyłane są np. polecenia do serwera,
drugie natomiast służy do transmisji danych m.in. plików. FTP działa w dwóch trybach: aktywnym i pasywnym,
w zależności od tego, w jakim jest trybie, używa innych portów do komunikacji.
SMTP to protokół komunikacyjny opisujący sposób przekazywania poczty elektronicznej w Internecie. SMTP to
względnie prosty, tekstowy protokół, w którym określa się co najmniej jednego odbiorcę wiadomości (w
większości przypadków weryfikowane jest jego istnienie), a następnie przekazuje treść wiadomości. Demon
SMTP działa najczęściej na porcie 25. SMTP nie pozwala na pobieranie wiadomości ze zdalnego serwera. Do
tego celu służą POP3 lub IMAP.
POP3 to protokół internetowy z warstwy aplikacji pozwalający na odbiór poczty elektronicznej ze zdalnego
serwera do lokalnego komputera poprzez połączenie TCP/IP. Ogromna większość współczesnych internautów
korzysta z POP3 do odbioru poczty. Wcześniejsze wersje protokołu POP, czyli POP, POP2 zostały całkowicie
zastąpione przez POP3.
IMAP to internetowy protokół pocztowy zaprojektowany jako następca POP3. W przeciwieństwie do POP3, który
umożliwia jedynie pobieranie i kasowanie poczty, IMAP pozwala na zarządzanie wieloma folderami pocztowymi
oraz pobieranie i operowanie na listach znajdujących się na zdalnym serwerze. IMAP pozwala na ściągnięcie
nagłówków wiadomości i wybranie, które z wiadomości chcemy ściągnąć na komputer lokalny. Pozwala na
wykonywanie wielu operacji, zarządzanie folderami i wiadomościami.
IRC to jedna ze starszych usług sieciowych umożliwiająca rozmowę na tematycznych lub towarzyskich kanałach
komunikacyjnych, jak również prywatną z inną podłączoną aktualnie osobą. Usługa ta funkcjonuje w
architekturze klient-serwer, tj. fizycznie składa się z grupy połączonych ze sobą na stałe serwerów oraz
programów-klientów.
Seweryn Jagiełło
kl. 3d