Komputery

Protokół TCP/IP

Do czego służy protokół TCP/IP?
Protokół TCP/IP jest nazwą dwóch najważniejszych protokołów, wchodzących w jego skład: Transmission Control Protocol(TCP) oraz Internet Protocol (IP). Zasadniczym celem TCP/IP jest łączenie sieci,dostarczjących uniwersalnej usługi komunikacyjnej – internetwork, zwanego w skrócie internetem. Każda z tych sieci ma własny zależny od protokołu warstwy fizycznej komunikacyjny interface sieciowy. Ten programowy interface spelnia podstawowe funkcje komunikacyjne. Usługi komunikacyjne dostarczane są przez software, który funkcjonuje pomiedzy rzeczywistą siecią a aplikacjami użytkownika oraz który dostarcza powszechnego interface´u dla tych aplikacji. Drugą funkcją protokołu TCP/IP jest łączenie mniejszych sieci, które formują większą sieć użytkowników. Takie połączenie sieci nazywane jest internetwork lub po prostu, internetem. Aby móc połączyć dwie sieci, potrzebujemy komputera, który złączony jest z obydwoma sieciami może przesyłać pakiety z jednej do drugiej. Taka maszyna nazywana jest ruterem. Termin IP ruter jest również używany, ponieważ funkcja rutowania jest częścią warstwy IP warstwy protokołu TCP/IP.
Dwoma podstawowymi funkcjami ruteru są:
1.Z punktu widzenia sieci, rut er jest zwykłym komputerem podłączonym do sieci (hostem).
2.Z punktu widzenia użytkownika, ruter jest niewidzialny. Użytkownik widzi tylko duży “internetwork”. Istnieje adres IP, który pozwala zidentyfikować hosta w internetwork. Każdy komputer podłączony do sieci ma swój własny przypisany adres IP. W przypadku, kiedy komputer ma więcej niż jeden sieciowy interface, każdy z nich ma oddzielny adres IP. Składa się on z dwóch części: ADRES IP = {numer sieci}{numer komputera} Numer sieci w adresie IP jest centralnie przydzielany i jest unikalny w całym internecie. Przydzielanie części numerów komputerów odbywa się przez lokalnego administratora lokalnej sieci.

Co umożliwia protokół TCP/IP?
Zasadniczą możliwością, jaką dysponuje jest realizacja funkcji związanych z następującymi zagadnieniami:
1. adresowanie lokalne- karta sieciowa ma jeden unikalny adres fizyczny. Adres fizyczny to liczba nadana karcie w fabryce. Karta sieciowa w każdym komputerze sieci prowadzi nasłuch, aby określić, czy komunikat jest przesyłany pod jej adres. Sieci dzielone są często przez administratorów za pomocą, routerów. Aby komunikat znalazł miejsce przeznaczenia sieć musi zostać podzielona na podsieci, a także musi zawierać strukturę hierarchiczną. TCP/IP zapewnia możliwość tworzenia podsieci dzięki adresowi logicznemu, jakim jest adres IP. Adres logiczny przekształcany jest w adres fizyczny za pomocą protokołów: ARP(Address Revolution Protocol) lub RARP (Reverse Address Resolution Protocol).
2.Routing (kierowanie) – router jest specjalnym urządzeniem, które czyta informację o adresie logicznym i kieruje dane to właściwego miejsca sieci. Dane adresowane do podsieci lokalnej nie przechodzą przez router i tym samym nie blokują potrzeby łączy dużych sieci. Jeśli dane przeznaczone są do komputera poza podsiecią, to router kieruje je w odpowiednie miejsce. TCP/IP obejmuje protokoły, które określają sposób, w jaki routery znajdują ścieżkę w sieci.
3.Obsługa nazw – adres fizyczny możliwy jest do wykorzystywania tylko przez komputery, a nie przez ludzi. TCP/IP zapewnia równoległą strukturę adresów tekstowych, łatwiejszych do zapamiętania, które określa się mianem nazwy domen DNS. Adresy komputerowe stosowane w poczcie elektronicznej i sieci WWW są wyrażane w postaci nazw DNS : np. www.microsoft.com.pl System obsługi TCP/IP tworzy odpowiednią hierarchię nazw omen i adresów IP dla komputerów zarejestrowanych w DNS.
4.Sprawdzanie błędów oraz kontrola przepływu – Zestaw protokołów TCP/IP ma funkcje zapewniające dostarczanie danych w sieci. Funkcje te obejmują sprawdzanie danych pod względem błędów transmisji oraz potwierdzanie otrzymania wiadomości. Warstwa transportowa określa wiele funkcji sprawdzania błędów, kontroli przepływu informacji oraz potwierdzania potrzebnych w pracy protokołu TCP. Jednak także protokoły niższego poziomu odgrywają rolę w systemie sprawdzania błędów.
5.Obsługa aplikacji – zestaw protokołów musi zapewnić interfejs dla aplikacji, aby miały one dostęp do oprogramowana protokołów i sieci. W TCP/IP interface pomiędzy siecią a aplikacjami działającymi w komputerze ma postać kanałów logicznych, zwanych portami. Każdy port ma swój numer używany do identyfikacji. Podsumowując, więc protokołów TCP/IP musi: – dzielić komunikaty na porcje danych, które można efektywnie przesyłać przez nośnik transmisji. – zapewniać, interface dla adapterów sieciowych. – adresować – komputer wysyłający musi mieć możliwość skierowania ich do komputera docelowego, a komputer odbierający rozpoznania komunikatu, który ma otrzymać. – realizować routing – kierowanie. System musi mieć możliwość kierowania danych do podsieci, w której komputer docelowy, nawet, jeśli podsieć źródłowa i docelowa mają różne cechy fizyczne. – dokonywać kontroli poprawności, kontroli przepływu i realizować potwierdzenie – istnieje potrzeba, aby komputery nadawczy i odbiorczy mogły zidentyfikować poprawić błędy transmisji., kontrolując przesyłanie danych.

Protokoły TCP/IP
TCP/IP – Transmission Control Protocol/Internet Protocol.
Informacje wstępne.
Protokoły TCP/IP są ze sobą ściśle powiązane. Umożliwiają wymianę danych w najbardziej znanej sieci – Internet. Teraz także rozległe sieci korporacyjne coraz częściej opierają się na tych właśnie protokołach.
Co to takiego jest protokół? Jest to zbiór reguł porządkujący komunikację pomiędzy komputerami. Komunikacja odbywa się jednocześni za pośrednictwem jednego medium, jakim w najprostszym przypadku może być przewód koncentryczny biegnący od jednego komputera do drugiego.
Protokoły TCP/IP zostały opracowane dla umożliwienia komunikacji pomiędzy różnymi systemami, pochodzącymi od różnych dostawców. Amerykańskiemu Departamentowi Obrony chodziło o stworzenie sieci komputerowej, potrafiącej automatycznie rozpoznawać uszkodzone łącza i wybierać zastępczą drogę dla przesyłanych danych. Poza tym zniszczenie pojedynczych węzłów sieci nie doprowadziłoby do unieruchomienia całego systemu. Tak, więc powstała rozległa sieć APRANET. W 1983 roku protokoły TCP/IP stały się oficjalnie obowiązującymi protokołami tej sieci Departamentu Obrony USA. Po powstaniu globalnego systemu wielu połączonych ze sobą sieci, określonych dzisiaj mianem Internet, TCP/IP zostają i tutaj wykorzystane.
TCP jest protokołem sekwencyjnym, pracującym w trybie połączeniowym. Połączeniowe sesje komunikacyjne TCP umożliwiają:
– sterowanie przepływem – co pozwala obu stronom aktywnie uczestniczyć w transmisji pakietów, chroniąc przed ich zagubieniem
– potwierdzenie odbioru pakietów – daje nadawcy pewność, że pakiety dotarły do odbiorcy
– zachowanie kolejności przesyłanych pakietów – daje pewność, że pakiety dotarły do miejsca przeznaczenia w takiej samej kolejności, w jakiej zostały wysłane przez nadawcę. Odbiorca nie musi ich, zatem porządkować
– sprawdzenie sumy kontrolnej – pozwala upewnić się, że integralność pakietów nie została naruszona
– powtórne przesłanie – dotyczy pakietów uszkodzonych lub zagubionych, realizowane szybko i efektywnie
Natomiast IP jest protokołem efektywnym, pracującym w trybie bezpołączeniowym. Dla wyjaśnienia trybów komunikacji posłużę się analogią. Przykładem usługi połączeniowej jest telefon. Po wybraniu numeru i dopiero po zrealizowaniu połączenia rozmowę można rozpocząć. Natomiast do komunikacji bezpołączeniowej można przyrównać pocztę. Paczki są grupowane i przesyłane najbardziej dogodną drogą. Droga ta nie jest ważna dla odbiorcy, czy nadawcy, a liczy się to, aby została bezpiecznie i szybko dostarczona.
Ważnym problemem jest tutaj bezpieczeństwo komunikacji. Chodzi tu nie tylko o zabezpieczenie przed podsłuchaniem danych, ale również o zapewnienie ciągłości połączenia. Zależnie od tego, w jaki sposób realizowana jest polityka bezpieczeństwa, rozróżniamy dwa rodzaje komunikacji, którym odpowiadają podstawowe usługi komunikacyjne: TCP i UDP. Różnice między tymi protokołami będą przedstawione przy omawianiu warstwy usługowej TCP/IP.
Jak już wspomniałam protokoły TCP/IP służą do wymiany danych. Dane do konkretnego komputera z serwera są dostarczane za pośrednictwem karty sieciowej lub modemu. Potrzebny jest też odpowiedni kanał komunikacyjny. Protokół TCP zestawia obustronne połączenie pomiędzy dwoma systemami, posługując się interfejsem określanym mianem gniazd (sockets). Gniazdo jest jednym z końców łącza komunikacyjnego, reprezentowanym przez adres komputera i port w tym komputerze, wykorzystywany do celów komunikacji przez realizowaną aplikację.
Trasę transmisji danych planują routery. Jeśli komputer węzłowy stwierdza, że dalsza droga jest zablokowana, wówczas próbuje dostarczyć dane do innego komputera węzłowego z nadzieją, że ten będzie w stanie ominąć przeszkodę. Routery obu komputerów wymieniają się wzajemnie informacjami o stanie połączeń. W ten sposób Internet konfiguruje się samoczynnie. Nie jesteśmy w stanie przewidzieć, którędy pakiet dotrze do adresata. Nawet pakiety należące do tej samej wiadomości mogą być dostarczone innymi trasami. Zadaniem odbiorcy jest posortowanie pakietów i ułożenie ich we właściwej kolejności, w przypadku, gdy dotrą w kolejności innej niż były nadane.
Nieraz okazuje się, że następny komputer nie jest w stanie odebrać pełnego strumienia informacji. Wówczas komputer węzłowy może zadecydować o przesłaniu jedynie części pakietu. Dzieli pakiet na mniejsze, łatwiejsze do transmisji kawałki, które są wysyłane dalej.

Warstwy TCP/IP w odniesieniu do modelu OSI/ISO.
Struktura transportu danych opisana jest przez warstwowy model OSI/ISO. Jest to opisanie komunikacji sieciowej w sposób niezależny od stosowanego sprzętu i oprogramowania przy pomocy siedmiu warstw. Jeśli chodzi o TCP/IP to tradycyjnie mówi się o czterech warstwach.
Opiszę teraz krótko, co kryje się pod poszczególnymi czterema warstwami TCP/IP.
Zestawienie warstw TCP/IP
I Warstwa sieciowa
Zadanie tej warstwy, czyli fizyczną wymianę bitów, w sieci lokalnej najczęściej realizuje karta Ethernet. W modelu OSI/ISO karta wykonuje zadania warstwy 2; warstwę 1 stanowi kabel lub inne medium transmisyjne.
Działanie Ethernetu opisuje standard IEEE 802.3. Połączenie ma postać magistrali, do której przyłącza się poszczególne komputery. Każda karta Ethernetu posiada 48-bitowy adres (zapisany na stałe przez producenta). Transmisja odbywa się z prędkością 10 megabitów na sekundę. Ethernet może wykorzystywać różne media transmisyjne, takie jak skrętka (maksymalna długość magistrali ethernetowej około 100 metrów),kabel koncentryczny cienki (około 185 metrów), kabel koncentryczny gruby (500 metrów), światłowód pozwalający realizować tylko połączenie typu punkt-punkt (bez rozwidleń) do 2 kilometrów. W przypadku dłuższych połączeń stosuje się dodatkowe urządzenia wzmacniające sygnał, które są włączane w pewnym punkcie magistrali. Najprostszym takim urządzeniem jest repeater dokonujący czysto elektronicznej regeneracji sygnału (działanie mieszczące się w warstwie 1). Poza tym bridge (most), który rozpoznaje adresy ethernetowe i przesyła dalej tylko te ramki, których adresaci znajdują się po drugiej stronie mostka. Mostek musi znać adresy komputerów po obu stronach (działanie mieszczące się w warstwie 1 i 2).
Do magistrali Ethernetu może być podłączonych wiele komputerów. Oczywiście mogą się pojawić konflikty podczas dostępu do niej. Rozwiązywaniem konfliktów zajmuje się karta ethernetowa, sprawdza stan magistrali, a gdy ta nie jest zajęta to rozpoczyna transmisję danych.
II Warstwa Internetu
Warstwa ta odpowiada warstwie 3 w modelu OSI/ISO. Jej zadaniem jest wymienianie pakietów danych między odpowiednimi komputerami; zamiana ciągu bitów w kanał komunikacyjny. Każdy komputer podłączony do Internetu ma przydzielony 32-bitowy adres IP, zapisywany jako cztery cyfry oddzielone kropkami. W obrębie adresu wyróżnia się identyfikator sieciowy i identyfikator maszyny (hosta). Istnieją różne klasy adresów, dla których różne są proporcje długości obydwu składników (klasa A to adresy o 8-bitowym identyfikatorze sieciowym i 24-bitowym identyfikatorze maszyny; klasa B – 16/16, klasa C – 24/8). Dla każdej klasy można dokonać podziału na podsieci, a każda z podsieci może składać się z 255 komputerów. Natomiast, gdy komunikacja wykracza poza sieć lokalną (np. wewnętrzną danej firmy) to muszą być podawane adresy bramek (gateways). Niezależnie od powyższych adresów liczbowych, istnieją adresy domenowe, znacznie łatwiejsze do przyswojenia przez człowieka. Mają one postać napisów także oddzielonych kropkami. Poszczególne człony wyznaczają drzewiastą hierarchię domen.
Ważną kwestią jest odnalezienie adresu liczbowego dla danego adresu domenowego. Każdy internetowy pakiet danych, podróżując przez sieć, musi zawierać adres w formie liczbowej. Dlatego już u nadawcy musi nastąpić przetłumaczenie adresu na taką postać. Informacji o adresie liczbowym dla każdego poziomu hierarchii domenowej udziela maszyna DNS – Domain Name Servers. Pojedynczy DNS przechowuje tabelę adresów tylko dla jednego szczebla hierarchii. Jeśli trafia do niego zapytanie o adres, to albo odpowiada sam, albo przekazuje je następnemu DNS w hierarchii.
III Warstwa usługowa
Warstwę tę tworzą procedury, które można określić jako sieciowo-niezależne mechanizmy komunikacji między programami. Procedury są niezależne w tym sensie, że ich użytkownik nie musi wnikać w szczegóły łączności sieciowej. Nadawca podając adres nie interesuje się, w jaki sposób połączenie zostanie zrealizowane. Warstwa ta troszczy się o bezpieczeństwo i pewność wymiany danych. W warstwie tej funkcjonują dwa zasadnicze protokoły: TCP i UDP (User Data Protocol). Protokoły te określają sposób opakowania danych w kolejną “kopertę”. Koperta od nich pochodząca precyzuje m.in. port maszyny docelowej, z którym chcemy nawiązać kontakt.
TCP zapewnia większe bezpieczeństwo transmisji danych pomiędzy punktami A i B, a w przypadku wystąpienia błędu wysyła do wyższych warstw odpowiedni komunikat. Stąd jest najczęściej stosowany do przesyłania danych przez sieć rozległą. TCP musi sprawdzić czy wszystkie wysłane pakiety dotarły do adresata, a jeżeli tak to wysyła potwierdzenie do nadawcy. W przypadku braku potwierdzenia odbioru protokół żąda ponownego wysłania aż do chwili nadejścia potwierdzenia. Wyższe warstwy operują na kanale transmisyjnym, nad którego bezpieczeństwem czuwa TCP. Wadą jest to, że mechanizmy kontrolujące przepływ danych znacznie obniżają wydajność całego systemu.
Natomiast UDP jest stosowany w sieciach lokalnych i jego atutem wobec TCP jest większa szybkość transmisji. Wykorzystywanie UDP dopuszczalne jest tylko wtedy, gdy przesyłane dane nie są szczególnie ważne lub, kiedy aplikacja użytkowa sama sprawdza poprawność transmisji – w tym przypadku zastosowanie TCP oznaczałoby dublowanie funkcji kontrolnych. UDP jako usługa bezpołączeniowa, nie realizująca kontroli przepływu, jest nieskomplikowana i dzięki temu szybko.
Podstawowe informacje zawarte w ramce-kopercie UDP to port źródłowy, port docelowy, długość danych i suma kontrolna. Ramka TCP zawiera dodatkowo informacje pozwalające określić m.in. czas propagacji pakietu (informacje tego typu służą do celów kontrolnych, umożliwiając np. optymalne grupowanie pakietów wysyłanych jednorazowo przed otrzymaniem potwierdzenia odbioru).
IV Warstwa aplikacji
Warstwa ta to wszystkie programy użytkowe, wykonujące rozmaite usługi sieciowe. Obejmuje ona trzy pozostałe warstwy modelu OSI/ISO. Potrzebny jest tutaj usługobiorca i usługodawca. Usługodawca to działający przez cały czas program, oczekujący zleceń od usługobiorców. Dla usługodawcy stosuje się potocznie nazwę “demon”. Demony dla różnych usług sieciowych są zazwyczaj uruchamiane przy starcie systemu operacyjnego; każdy z nich jest przyłączany do portu o ustalonym numerze, po czym oczekuje nadchodzących przez sieć zgłoszeń.

Trzy podstawowe usługi na najwyższym poziomie TCP to:
1. SMTP – Simple mail transfer protocol – wysyła tylko wiadomości tekstowe. Oznacza to, że jakiekolwiek bardziej skomplikowane dane (np. zapis cyfrowy głosu, grafika) przed transmisją muszą być zakodowane w postaci tekstu. Każda przesyłka jest po prostu plikiem danych tekstowych, włączając w to informacje adresowe, jak i samą wiadomość.
2. FTP – File transfer protocol – służy przesyłaniu plików między komputerami i obsługuje wiele rodzajów danych (zarówno binarnych jak i tekstowych). W FTP można zlecić wykonanie operacji na później (np. na noc, kiedy koszty transmisji są niższe).
3. Telnet – dane ekranowe ze zdalnie uruchamianego programu na jednym komputerze są wyświetlane na drugim, a dane wystukiwane na drugim są przesyłane do programu na pierwszym. Dzięki Telnetowi pracuje się z danymi na zdalnym komputerze, a sieć używana jest do kontroli dostępu i przesyłania wyłącznie rezultatów. Nawiązywanie “rozmowy” między komputerami – IP.
Począwszy od warstwy drugiej TCP/IP (Internetowej) wymiana danych odbywa się za pomocą protokołu IP. Aby rozmowa była możliwa, musi być podane, od kogo dane pochodzą, dokąd powinny być dostarczone oraz w jaki sposób pakiety powinny być traktowane. Ciąg bitów przesyłanych pomiędzy komputerami układany jest w pakiety (datagramy). Każdy pakiet rozpoczyna się od tzw. nagłówka, który niesie szczegółową informację o stosowanym protokole. Bezpośrednio po nim występują właściwe dane użytkowe. Poniżej przedstawiona została struktura nagłówka IP (poszczególne pola z rozróżnieniem na ilość bitów – od 1 do 32)

Opis pól nagłówka IP:
– wersja – określa numer wersji protokołu IP i pozwala na przejście z jednej wersji protokołu do innej;
– długość – określa długość nagłówka (do 4 bajtów);
– rodzaj usługi – stosowana do wskazania typu lub “jakości” usługi żądanej dla datagramu. Bardzo ważne pakiety można oznaczyć etykietą “wysoki priorytet”. Wtedy routery przesyłające datagram obsługują pakiet stosownie do wskazań. Pole służy do wskazania potrzeby minimalizacji opóźnienia, minimalizacji kosztów albo maksymalizacji przepustowości lub niezawodności;
– długość pakietu – określa całkowitą długość datagramu, z ilu bajtów składa się cały pakiet (włącznie z nagłówkiem). Ponieważ pole jest 16-bitowe to wielkość pakietu nie może przekroczyć 65 536 bajtów;
– identyfikator – parametr pozwalający nadawcy jednoznacznie rozróżnić wysyłane pakiety (są to kolejne liczby będące numerami pakietów); dostarczający informacji koniecznych do ponownego scalenia pakietów poddanych fragmentaryzacji;
– flagi – są to 2 bity, z których pierwszy DF (don´t fragment) informuje, że pakiet nie będzie poddany fragmentacji i musi być skierowany do sieci, która prześle go w całości, a gdy pakiet okaże się zbyt duży dla komputera docelowego zostanie po prostu skasowany. Natomiast drugi bit MF (more fragments) wskazuje, że datagram jest częścią pakietu podzielonego na fragmenty;
– przesunięcie pakietu – dla datagramów, będących fragmentami pakietu, pole to wskazuje miejsce danych w pakiecie (od którego bajtu pierwotnego danego pakietu rozpoczyna się fragment) i jest wykorzystywane podczas scalania pakietów;
– czas życia – TTL (time to live) – określa jak długo pakiet może być jeszcze przesyłany do kolejnych węzłów sieci. Po przejściu przez każdy węzeł wartość ta jest zmniejszana o 1 . Kiedy w końcu osiągnie 0, pakiet jest kasowany. Procedura ta stosowana jest po to, aby pakiety, których nie można dostarczyć, nie krążyły w sieci bez końca;
– transport – określa protokół, z którego pochodzi, datagram, co pozwala na współpracę z innymi protokołami;
– suma kontrolna nagłówka – zawiera sumę kontrolną pozwalającą sprawdzić integralność dostarczonego pakietu, czy nagłówek został przesłany bezbłędnie;
– adres nadawcy – adres komputera źródłowego zapisany w notacji 32-bitowej;
– adres odbiorcy – adres komputera docelowego;
– opcje – specjalne informacje wykorzystywane do zarządzania siecią, opcje pozwalające na zarejestrowanie ścieżki przebytej przez sieć lub jej zdefiniowanie (routing źródłowy);
– znak wypełnienia – wolne miejsce aż do ostatniego słowa 32-bitowego.

Opis pól nagłówka TCP
– port nadawcy – zawiera numer portu źródłowego procesów aplikacyjnych korzystających z usług TCP;
– port odbiorcy – zawiera numer portu docelowego;
– numer kolejny – spełnia taką samą rolę jak “identyfikator” w nagłówku IP, jest rodzajem licznika określającym stan bieżącej transmisji danych, zawiera informacje potrzebne odbiorcy do uporządkowania pakietów i sprawdzenia czy wszystkie dotarły na miejsce;
– numer potwierdzenia – informuje nadawcę o tym, co zostało odebrane, nadawca w razie potrzeby może powtórzyć transmisję zagubionych pakietów, dzięki temu nadawanie i potwierdzenie odbioru są zsynchronizowane;
– przesunięcie danych – pole określające długość nagłówka TCP;
– zarezerwowane – pole zawierające kody, które wskazują dane pilnie potrzebne lub że dany pakiet kończy dane;
– flagi;
– szerokość okna – pozwala odbiorcy poinformować nadawcę o tym ile bajtów jest w stanie odebrać w danej chwili, może się bronić przed zalewem zbyt dużej ilości informacji;
– suma kontrolna – zawiera sumę kontrolną, umożliwiającą sprawdzenie integralności dostarczonego pakietu, informuje, czy transmisja przebiegła bezbłędnie (obliczana dla całego pakietu, nie tylko samego nagłówka);
– wskaźnik priorytetu – poleca umieszczenie danych w miejscu przeznaczonym dla pilnych danych (ważne mogą być np. informacje o zakłóceniach w sieci);
– opcje;
– znak wypełnienia.

TCP/IP a model OSI
Protokół TCP/IP ma również strukturę warstwową i ma do niego zastosowanie większość filozofii modelu OSI. Warstwy TCP/IP różnią się jednak od warstw OSI, o czym się zaraz przekonamy.
Protokoły TCP i IP ustalają zasady komunikacji – opisują szczegóły formatu komunikatów, sposób odpowiadania na otrzymany komunikat, określają jak komputer ma obsługiwać pojawiające się błędy lub inne nienormalne sytuacje. Umożliwiają one rozpatrywanie zagadnień dotyczących komunikacji niezależnie od sprzętu sieciowego.
Zapewniają szereg popularnych usług dostępnych dla użytkowników:
– poczta elektroniczna
– przesyłanie plików
– praca zdalna

Zadania warstw w TCP/IP
Warstwa programów użytkowych – na najwyższym poziomie użytkownicy wywołują programy użytkowe, które mają dostęp do usług TCP/IP. Programy użytkowe współpracują z jednym z protokołów na poziomie warstwy transportowej i wysyłają lub odbierają dane w postaci pojedynczych komunikatów lub strumienia bajtów. Warstwa transportowa – jej podstawowym zadaniem jest zapewnienie komunikacji między jednym programem użytkownika a drugim. Warstwa ta może regulować przepływ informacji. Może też zapewnić pewność przesyłania. W tym celu organizuje wysyłanie przez odbiorcę potwierdzenia otrzymania oraz ponowne wysyłanie utraconych pakietów przez nadawcę.
Warstwa intersieci – odpowiada za obsługę komunikacji jednej maszyny z drugą. Przyjmuje ona pakiety z warstwy transportowej razem z informacjami identyfikującymi maszynę – odbiorcę, kapsułkuje pakiet w datagramie IP, wypełnia jego nagłówek, sprawdza czy wysłać datagram wprost do odbiorcy czy też do routera i przekazuje datagram do interfejsu sieciowego. Warstwa ta zajmuje się także datagramami przychodzącymi, sprawdzając ich poprawność i stwierdzając czy należy je przesłać dalej czy też przetwarzać na miejscu.
Warstwa interfejsu sieciowego – odbiera datagramy IP i przesyła je przez daną sieć.