TCP/IP w pigułce
-
- Paweł Leszek,
- 01.06.2002
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.
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.
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.