Jak wspomniano we wcześniejszej wiadomości, komunikacja w sieci Internet oparta jest o protokół TCP/IP. Przed rozpoczęciem omawiania istoty protokołu TCP/IP należy wyjaśnić co w języku komputerowym oznacza słowo protokół.

Czym jest protokół TCP/IP?

Protokół komunikacyjny zasadniczo rozumiany jest jako zbiór konwencji, które określają sposób przesyłania danych między różnymi programami, a co za tym idzie, protokoły określają jak wiadomości mają być przesyłane w sieci oraz w jaki sposób mają być obsługiwane błędy, które mogą się przydarzyć w czasie transmisji danych. Standardy te są niezależne od używanego sprzętu i systemu operacyjnego.

Jakie jest zadanie protokołu TCP/IP?

Celem protokołu jest umożliwienie na tyle bezbłędnego połączenia i przesyłania informacji między komputerami, na ile jest to możliwe. Najpopularniejszymi protokołami komunikacyjnymi są: model OSI (ang. Open System Interconnection) oraz spokrewnione z nim protokoły TCP/IP, SNA (ang. System Network Architecture) firmy IBM i AppleTalk firmy Apple. Warto zauważyć, że podstawowym protokołem jest model OSI stanowiący koncepcyjny model opisujący sposób komunikacji między urządzeniami komputerowymi podłączonymi do sieci. Na model ten składa się siedem warstw protokołów i to w oparciu o niego powstawały kolejne protokoły komunikacyjne.

Definicja protokołu TCP/IP

Spośród kilku książkowych definicji protokołu TCP/IP na największą uwagę zasługuje ta zaproponowana przez Williama Richarda Stevensa, który TCP/IP definiuje jako zestaw protokołów pozwalający na komunikację różnej wielkości komputerów, pochodzących od różnych producentów i pracujących pod kontrolą różnych systemów operacyjnych. Podobną definicją posługuje się polski autor, Wojciech Zamojski, który TCP/IP określa jako zestaw protokołów TCP oraz IP, które wbudowane są w system operacyjny UNIX stanowiąc standard komunikacji w sieciach komputerowych, a zwłaszcza w Internecie. Podsumowując: należy uznać, że protokół TCP/IP nie jest pojedynczym produktem, a uogólnioną nazwą całej rodziny protokołów udostępniających szereg usług sieciowych, na których opiera się działanie sieci Internet.

Budowa protokołu TCP/IP

Znając definicję protokołu TCP/IP warto zastanowić się nad jego budową. Wiadomym jest już, że TCP/IP składa się z wielu pojedynczych protokołów, które dzielą się na warstwy. W przypadku tego protokołu wyróżniane są cztery warstwy, które przedstawione są w tabeli. Tabela ta  przedstawia równocześnie warstwy protokołów występujących w modelu OSI.

Tabela. Warstwy protokołów w modelu OSI i TCP/IP

Model OSI

Pakiet protokołów TCP/IP

Warstwa aplikacji

Warstwa aplikacji

Warstwa prezentacji

Warstwa sesji

Warstwa transportowa

Warstwa transportowa

Warstwa sieciowa

Warstwa internetowa

Warstwa łącza danych

Warstwa fizyczna

Warstwa interfejsu sieciowego

Warto zauważyć, że TCP/IP opiera się o model OSI, jednak nie odwzorowuje go w całości. Dzieje się tak ze względu na to, że TCP/IP nie jest pojedynczym protokołem, a ich pakietem. Modele te nie odpowiadają więc sobie w stosunku jeden do jednego, natomiast każda warstwa protokołu TCP/IP odwzorowana jest na jedną lub więcej warstw modelu OSI. Zgodnie z powyższą tabelą stwierdzić można, że w protokole TCP/IP warstwa aplikacji stanowi odpowiednik trzech warstw modelu OSI – warstwy aplikacji, warstwy prezentacji i warstwy sesji, warstwy transportowe się pokrywają, fizyczna zaś odpowiada warstwie interfejsu sieciowego, natomiast warstwa internetowa protokołu TCP/IP odpowiada warstwom: sieciowej i łącza danych modelu OSI. Każda z kolejnych warstw protokołu TCP/IP składa się z osobnych protokołów i odpowiedzialna jest za pełnienie wielorakich funkcji.

Warstwa aplikacji

Warstwa aplikacji odpowiedzialna jest za obsługę funkcji związanych z aplikacją, która korzysta z sieci. Stanowi ona najbardziej ogólny poziom obsługi sieci zapewniający interfejs pomiędzy aplikacjami użytkowymi, a usługami sieciowymi. Warstwa ta wykorzystywana jest przez wszelkiego rodzaju programy użytkowe, takie jak: przeglądarki WWW, programy pocztowe lub komunikatory internetowe. Najpopularniejszymi aplikacjami dostępnymi w tej warstwie są: Telnet – pozwala na zdalne zalogowanie się do systemu, FTP (ang. File Transfer Protocol) – protokół odpowiedzialny za transmisję plików, SMTP (ang. Simple Mail Transfer Protocol) – protokół odpowiedzialny za obsługę poczty elektronicznej, SBNO (ang. Simple Network Management Protocol) – protokół odpowiedzialny za zarządzanie siecią.

Warstwa transportowa

Warstwa transportowa odpowiada za obsługę strumienia danych między dwoma różnymi maszynami podpiętymi do sieci. W jej skład wchodzą protokoły TCP i UDP (ang. User Datagram Protocol). TCP odpowiedzialny jest za niezawodny przepływ danych między maszynami, co możliwe jest dzięki zastosowaniu mechanizmu trójstronnego potwierdzenia, który zapewnia dostarczenie pakietów bez błędów, we właściwej kolejności i bez utraty lub powielenia danych. Zgodnie z zasadami tego mechanizmu komputer odbierający dany pakiet danych wysyła informację zwrotną do nadawcy, potwierdzając tym samym jego odbiór. Jeśli komputer nadający nie otrzyma potwierdzenia, wysyła dany pakiet ponownie. Protokół UDP spełnia tę samą funkcję co TCP, nie gwarantuje on jednak, że wysłane dane dotrą do odbiorcy. Protokół UDP jest o wiele szybszy od protokołu TCP, nie dorównuje mu jednak niezawodnością.

Warstwa internetowa

Warstwa internetowa, często nazywana warstwą sieciową, stanowi najważniejszą warstwę protokołu TCP/IP. Odpowiedzialna jest ona za ruch pakietów w sieci, jej zadaniem jest adresowanie, trasowanie i fragmentacja pakietów. W skład warstwy internetowej wchodzi wiele protokołów, z których najpopularniejszymi są: IP – protokół zapewniający adresowanie i fragmentację oraz wybór trasy transferu pakietów, ICMP (ang. Internet Control Message Protocol) – protokół służący do rozwiązywania problemów
z połączeniami, ARP (ang. Addres Resoution Protocol) – protokół odpowiedzialny za odnalezienie sprzętowego adresu MAC na podstawie wcześniej podanego adresu IP, IGMP (ang. Internet Group Management Protocol) – protokół służący do zarządzania przesyłem pakietów grupowych wysyłanych do kilku komputerów, używany najczęściej podczas grupowych rozmów lub wideokonferencji.

Warstwa interfejsu sieciowego

Warstwa interfejsu sieciowego często nazywana jest warstwą fizyczną lub warstwą łącza. Odpowiada ona za realizację dostępu do sieci oraz przyjmowanie danych z warstwy internetowej. W jej skład wchodzą programy obsługi urządzeń i odpowiadające im karty interfejsów sieciowych komputera.

Łączenie się ze sobą komputerów w sieci Internet nie byłoby możliwe bez stosowanego przez protokół TCP/IP mechanizmu adresowania urządzeń w Sieci. Unikatowy adres przydzielany każdemu urządzeniu sieciowemu pracującemu w Internecie nazywany jest adresem IP. Adres IP jest 32-bitową liczbą zapisaną w postaci czterech cyfr dziesiętnych, które oddzielone od siebie są kropkami. Każda z tych czterech liczb stanowi jeden bajt informacji. Każdy adres IP składa się z trzech elementów: określających klasę adresu, identyfikujących sieć lokalną oraz identyfikujących konkretny komputer. Adresy IP zostały podzielone na pięć klas, które przedstawione są w tabeli.

Tabela. Zakresy numerów dla różnych klas adresów IP

Klasa

Zakres adresowania

Klasa A

od 0.0.0.0 do 127.255.255.255

Klasa B

od 128.0.0.0 do 191.255.255.255

Klasa C

od 192.0.0.0 do 223.255.255.255

Klasa D

od 224.0.0.0 do 239.255.255.255

Klasa E

od 240.0.0.0 do 247.255.255.255

Zgodnie z danymi zamieszczonymi w tabeli można stwierdzić, że na świecie sieci klasy A jest mniej niż 128, ale każda z nich może składać się z milionów komputerów, odnoszą się więc one do dużych sieci. Klasa B odpowiada sieciom o średniej wielkości, może ich być tysiące i każda z nich może zawierać tysiące adresów.

Klasa C odpowiada małym sieciom, których są miliony, a każda z nich liczy mniej niż 254 komputery. Klasa D zarezerwowana jest dla tzw. adresów grupowych, niepowiązanych z żadną siecią, wykorzystywana jest ona przy jednoczesnej transmisji danych do grupy różnych  komputerów. Klasa E stworzona została do celów eksperymentalnych i w zasadzie nie jest wykorzystywana.

Przedstawiona wyżej budowa adresów IP uświadamia, że ich zapamiętywanie nie jest rzeczą prostą. Dlatego też uruchomiona została usługa DNS (ang. Domain Name System), której zadaniem jest odczytanie domenowego adresu strony internetowej podanej przez użytkownika oraz przekierowanie go do numerycznego adresu IP, pod którym znajduje się poszukiwana strona.