TCP/IP w pigułce

Protokół TCP/IP to podstawa współczesnych technologii sieciowych, a przede wszystkim Internetu. Nawet pobieżne zapoznanie się z nim ułatwi rozwiązywanie problemów związanych z tymi zagadnieniami.

Protokół TCP/IP to podstawa współczesnych technologii sieciowych, a przede wszystkim Internetu. Nawet pobieżne zapoznanie się z nim ułatwi rozwiązywanie problemów związanych z tymi zagadnieniami.

Czy zastanawiałeś się kiedyś, jak działa Internet? Jak to się dzieje, że wpisując w przeglądarce WWW adres w ciągu kilku chwil otrzymujesz informacje z drugiego końca globu? To wszystko zasługa technologii, która powstała ponad 30 lat temu! Mowa o protokole sieciowym TCP/IP (Transmission Control Protocol/Internet Protocol), umożliwiającym łączenie różnych komputerów, systemów operacyjnych i programów w jedną, uniwersalną sieć. Nie ma przy tym znaczenia rodzaj stosowanego systemu operacyjnego czy sprzęt. TCP/IP powstał pod koniec lat 60. XX wieku jako badawczy projekt finansowany przez Departament Obrony Stanów Zjednoczonych. Celem było zbudowanie takiej sieci komputerowej, która działałaby nieprzerwanie nawet mimo zniszczenia części jej fizycznej infrastruktury. Przez wiele lat protokół był wykorzystywany wyłącznie w celach badawczych, wojskowych i naukowych. Dopiero w połowie lat 80. przybrał postać taką, jaką zastosowano we współczesnych systemach operacyjnych. Ale dopiero spopularyzowanie Internetu zapoczątkowało wielką karierę TCP/IP.

Obecnie dzięki TCP/IP miliony komputerów połączone są w jedną, ogólnoświatową Sieć - dostępną niemal dla każdego i z dowolnego punktu świata. Jednym ze źródeł sukcesu jest otwarty charakter tego protokołu - każdy może poznać sposób jego funkcjonowania i wykorzystać go w swoich programach, a żadna firma nie jest właścicielem praw autorskich. Niestety, funkcjonowanie protokołów TCP/IP jest skomplikowane i najprostszy nawet opis nie uchroni się przed technicznymi szczegółami. Jeśli chciałbyś bliżej poznać funkcjonowanie TCP/IP, możesz szukać informacji w dokumentach RFC (Requests for Comments) - są to dokumenty techniczne, propozycje dotyczące protokołów i standardy protokołów wykorzystywanych w Internecie. Specyfikacje RFC można pobrać ze stron WWW (www.rfc-editor.org).

Przekładaniec

Analizator ruchu sieciowego Ethereal wyświetla zawartość przechwyconego pakietu DNS.

Analizator ruchu sieciowego Ethereal wyświetla zawartość przechwyconego pakietu DNS.

Jak działa komunikacja przy użyciu TCP/IP? Otóż podstawowym pojęciem w sieci Internet jest pakiet. Najłatwiej wyobrazić go sobie jako pudełko zawierające fragment danych. Każdy pakiet podróżuje niezależnie od innych. Dociera do miejsca przeznaczenia dzięki temu, że do każdego "pudełka" dołączona jest informacja o tym, skąd pakiet pochodzi, dla kogo jest przeznaczony i jakiego rodzaju dane przenosi. Istotna jest również informacja na temat tzw. czasu życia pakietu. Dzięki konstrukcji TCP/IP pakiety zawsze są przesyłane najbardziej optymalną drogą. Pakiety, które za długo krążą, szukając adresata, są "uśmiercane", gdy upłynie ich czas ważności.

W dużym uproszczeniu komunikacja między dwoma komputerami w Internecie wygląda następująco. Komputer, który wysyła informacje - np. serwer WWW - dzieli strumień danych (tekst, obrazy, dźwięki) na kawałki, które są zamykane w pakietach-pudełkach. Pakiety przesyłane są przez sieć do adresata na podstawie zapisu zawartego w samym pakiecie. Komputer docelowy odbierający pakiety wyciąga z nich dane i skleja je w strumień informacji zrozumiały dla programu, który ich oczekuje (Internet Explorer czy Outlook Express). Po drodze pakiety mogą być zatrzymane przez firewalle lub routery, jeśli nie odpowiadają warunkom, które zdefiniował administrator zdalnej sieci. Oczywiście komunikacja w Internecie nie mogłaby działać bez spójnego mechanizmu adresowania, opartego na adresach IP i serwerach DNS.

Zbiór protokołów TCP/IP w podziale na cztery warstwy funkcjonalne.

Zbiór protokołów TCP/IP w podziale na cztery warstwy funkcjonalne.

Konstrukcja TCP/IP jest bardzo skomplikowana, bo to w rzeczywistości cała rodzina protokołów komunikacyjnych, z których każdy wykonuje ściśle określone zadanie. Budowa TCP/IP przypomina ciasto-przekładaniec - cały jest podzielony na tzw. warstwy, które realizują ściśle określone zadania na poszczególnych etapach tworzenia i przesyłania pakietów z danymi. Do naszych celów przyjmiemy w uproszczeniu, że w architekturze protokołu można wyróżnić cztery warstwy: fizyczną, Internet, transportu i aplikacji.

1. Warstwa fizyczna - dostępu do sieci

Jest to najbardziej podstawowa warstwa, jest związana ze sprzętem - odpowiada za przyjmowanie ciągów danych z warstwy Internet (patrz poniżej), łączenie danych i przesyłanie ich zawartości oraz samą transmisję strumienia bitów. Najprościej rzecz ujmując, warstwa fizyczna to karta sieciowa lub modem i odpowiedni sterownik zainstalowany w systemie operacyjnym. Najważniejsze zadania warstwy fizycznej to spakowanie pakietów IP tak, aby stały się ciągami bajtów (tzw. ramkami) przesyłanymi przez sieć. Drugie zadanie to zamiana adresów IP na fizyczne adresy interfejsu sieciowego.

2. Warstwa Internet

Jest to najważniejsza (choć dość prosta) warstwa protokołów TCP/IP, prawdziwy kościec Internetu. Wykonuje czarną robotę, polegającą na prostym przerzucaniu pakietów z danymi od maszyny źródłowej do maszyny docelowej, bez żadnej gwarancji, że dotrą do celu. Na warstwę Internet składają się trzy protokoły wchodzące w skład TCP/IP: IP (Internet Protocol), ICMP (Internet Control Message Protocol) i IGMP (Internet Group Management Protocol). IP służy do transportu pakietów, a ICMP i IGMP - do ustalania trasy między nadawcą i odbiorcą pakietów. Warstwa ta nie wykrywa i nie poprawia błędów.

3. Warstwa transportowa

Warstwa transportu obsługuje strumień danych między dwoma zdalnymi maszynami. To właśnie ona umieszcza każdy kawałek danych w pakiecie zawierający informacje o nadawcy, adresacie, rodzaj danych i kilka innych parametrów. W ramach tej warstwy wykorzystywane są dwa całkowicie odmienne protokoły wchodzące w skład TCP/IP: TCP (Transmission Control Protocol) i UDP (User Datagram Protocol). TCP zapewnia pewny i bezstratny przepływ danych między zdalnymi maszynami, ponieważ posługuje się mechanizmem potwierdzeń (acknowledgements) - komputer odbierający pakiet wysyła informację zwrotną do nadawcy potwierdzającą poprawny odbiór pakietu. Jeśli komputer-nadawca nie dostanie potwierdzenia (ponieważ pakiet zaginął lub został zniszczony) wysyła taki sam pakiet ponownie. Warstwa transportowa wykonuje największą część pracy podczas przesyłania danych, zwalniając programy od obsługi ruchu sieciowego. Dlatego ani Internet Explorer, ani inne przeglądarki nie muszą (i nie potrafią) w żaden sposób samodzielnie komunikować się z siecią - wykorzystują do tego warstwę transportową wbudowaną w obsługę TCP/IP, zawartą w systemie operacyjnym.

4. Warstwa aplikacji

Jest to najbardziej ogólny poziom obsługi sieci, zapewniający interfejs pomiędzy aplikacjami użytkowymi, a usługami sieciowymi. Działania w warstwie są widoczne dla użytkownika, ponieważ działają standardowe aplikacje TCP/IP, np.: telnet, HTTP, FTP, POP3, SMTP.

To warstwa aplikacji jest bezpośrednio wykorzystywana przez oprogramowanie użytkowe - przeglądarki WWW, programy pocztowe, instant messengers, chat itd.


Zobacz również