4. PROTOKÓŁY TCP/IP
Zestaw protokółów
znany pod nazwą TCP/IP opracowany na zlecenie amerykańskiego ministerstwa obrony zawiera
w rzeczywistości grupę protokółów umożliwiających łączność w sieciach komputerowach i
transmisję zbiorów danych. Pierwszą siecią stosującą protokóły TCP/IP była sieć ministerstwa
obrony Stanów Zjednoczonych AmprNet, najbardziej znaną jest sieć Internetu. Sieć AmprNet
powstała pod koniec lat 60-tych i miała zapewniać niezakłóconą łączność nawet w przypadku
jej częściowego zniszczenia np. w wyniku ataku atomowego. Oznaczało to, że struktura sieci
musiała być zdecentralizowana, a wchodzące w jej skład systemy komputerowe musiały na
bieżąco decydować o dalszych trasach transmisji danych. Z biegiem czasu sieć ulegała
rozbudowie, m.in. stosunkowo szybko podłączone zostały do niej uniwersytety i inne
placówki naukowo-badawcze. W dalszej kolejności rozpoczęła się komercjalizacja sieci
i tak powstał Internet w obecnym kształcie. Oprócz ogólnoświatowej sieci Internetu
istnieją także wewnętrzne sieci większych firm i instytucji stosujące protokóły TCP/IP
i znane pod nazwą Intranetu.
Protokóły grupy TCP/IP wykorzystywane są także przez krótkofalowców.
Amatorska sieć TCP/IP nosi nazwę AMPR. Otrzymała ona serię adresów klasy A rozpoczynającą się
od liczby 44 - zasada adresowania jest omówiona w p.2.1. Podstawę funkcjonowania sieci
stosujących protokóły TCP/IP stanowi standard zdefiniowany w grupie dokumentów znanych
pod nazwą RFC (ang. Request For Comments). Dokumenty te dostępne są m.in. w Internecie.
Czytelnikom zainteresowanym dalszymi szczegółami podaję odpowiednie numery podstawowych
dokumentów. Ich lektura nie jest oczywiście konieczna dla uruchomienia amatorskiej stacji
w sieci TCP/IP. Na standard ten składają się przede wszystkim protokóły TCP, IP oraz UDP,
a także korzystające z nich protokóły, które regulują zdalną obsługę systemów komputerowych
(ang. remote login), wymianę poczty elektronicznej (ang. e-mail), transmisję zbiorów danych
(ang. file transfer), prezentację danych w "Światowej Pajęczynie" (ang. World Wide Web)
oraz rozmaite funkcje administracyjne i informacyjne jak identyfikacja użytkowników
poszczególnych systemów. Rodzina protokółów jest zorganizowana hierarchicznie, tzn. w
jej skład wchodzą protokóły nadrzędne korzystające z usług protokółów warstw niższych.
Koniem roboczym rodziny jest sieciowy protokół IP (ang. Internet
Protocol), którego zadaniem jest zapewnienie transportu danych w sieci i wybór właściwych
tras transmisji. Definicja protokółu zawarta jest w dokumencie RFC 791. Protokół IP odpowiada
warstwie 3 modelu ISO analogicznie jak znane z sieci pakiet radio protokóły NET/ROM i
Flexnet. Jest on zresztą coraz szerzej stosowany w sieci pakiet radio.
Za podział danych na bloki, zwane datagramami, i zapewnienie ich
bezbłędnej transmisji odpowiedzialny jest protokół TCP (ang. Transmission Control Protocol.
Jego definicja zawarta jest w dokumencie RFC 793. Jak widać rola TCP jest w pewnym stopniu
podobna do roli protokółu amatorskiego AX.25. Z usług protokółu TCP korzystają wymienione
dalej protokóły wyższe. Protokół TCP odpowiada warstwie 4 modelu ISO. W sieciach pakiet
radio warstwa 4 i wyższe nie są narazie zdefiniowane. Oba protokóły tzn. TCP i IP świadczą
swoje usługi w sposób niewidoczny dla użytkownika, który korzysta bezpośrenio dopiero dalej
wymienionych usług. Usługi te leżą na poziomach warstw 5 - 7.
Transmisję zbiorów między systemami komputerowymi reguluje protokół
FTP (ang. File Transfer Protocol) zdefiniowany w dokumencie RFC 959. Pozwala on na przyznanie
odpowiednich uprawnień dostępu do danych dla poszczególnych użytkowników i dopasowanie do
siebie zbiorów znaków (alfabetów) stosowanych w różnych systemach komputerowych. Przydział
uprawnień dostępu oznacza mówiąc najprościej, że nie każdemu wszystko wolno. Niektórym
korespondentom wolno np. zapisywać lub kasować zbiory danych, inni mogą te dane tylko
odczytywać, a jeszcze inni mają wogóle wstęp wzbroniony. Dostęp do danych może być zresztą
ograniczony tylko do katalogów wybranych przez operatora systemu. Zasady te dobrze znane
użytkownikom systemów operacyjnych UNIX czy Windows NT są obce użytkownikom systemów DOS
i Windows 95/98.
Dodatkowo stosowany bywa czasami protokół TFTP (ang. Trivial File
Transfer Protocol) nie wyposażony w mechanizmy kontroli dostępu i w odróżnieniu od protokołu
FTP korzystający z usług protokółu bezpołączeniowego UDP, a nie z protokółu TCP. W systemie
operacyjnym Berkeley (BSD) UNIX występuje też protokół RCP (ang. Remote Copy Protocol).
Zdalna obsługa systemów komputerowych (ang. remote login) odbywa
się pod kontrolą protokółu TELNET, w niektórych zestawach TCP/IP występuje też protokół
RLOGIN (BSD UNIX). Po wywołaniu protokółu TELNET (RLOGIN) wszystkie dane i rozkazy
wprowadzane za pomocą klawiatury transmitowane są do podanego wcześniej w wywołaniu
komputera docelowego. Komputer własny (lokalny) zachowuje się jak zdalny terminal
podłączony do systemu docelowego. Program terminalowy stanowiący część oprogramowania
TELNET naśladuje jeden z kilku najpopularniejszych typów terminali (np. VT52, VT100,
IBM-3270 lub ANSI). Sytuacja ta jest dobrze znana użytkownikom komputerów pracującym w
systemie operacyjnym UNIX. Sam rodzaj sprzężenia komputera-terminalu (przez sieć kablową
lub radiową) jest w pierwszym przybliżeniu nieistotny. Specyfikację protokółu TELNET
zawierają dokumenty RFC854 i RFC855.
System wymiany poczty elektronicznej SMTP (ang. Simple Mail
Transfer Protocol) pozwala na przesyłanie informacji do poszczególnych zarejestrowanych
użytkowników systemu niezależnie od czasu ich rzeczywistej aktywności. Organizacja sieci
pozwala na retransmisję poczty do najbliższego użytkownikowi węzła i składowanie jej przez
ustalony okres czasu lub do jej odczytania. Możliwa jest też retransmisja poczty do stacji
komputerowej adresata, o ile jest ona czynna dostatecznie długo i regularnie. Odpowiednie
specyfikacje zawarte są w dokumentach RFC819, RFC821, RFC822 i RFC937. Zamiast, stosunkowo
mało komfortowego oprogramowania SMTP do przygotowania i odczytu poczty często
wykorzystywane są dodatkowe programy, np. ELM, PCELM, RMAIL, BM. W odróżnieniu od
amatorskiej sieci pakiet radio w sieci TCP/IP możliwy jest automatyczny odbiór poczty
elektronicznej. Zasady jego działania reguluje protokół POP, którego najczęściej
rozpowszechnionymi wersjami są obecnie POP2 i POP3. Oba te protokóły są zasadniczo
równoważne chociaż nie identyczne.
Usługą nie spotykaną w sieci pakiet radio jest możliwość sprawdzenia
"drożności" połączenia z dowolnym uczestnikiem sieci. Służy do tego omówione dalej polecenie
PING. Korzysta ono z usług protokółu ICMP (ang. Internet Control Message Protocol)
zdefiniowanego w dokumencie RFC 792.
Opisane wyżej możliwości spotykane są w szerszym lub węższym zakresie
także w innych systemach sieciowych jak sieć systemu UNIX - UUCP, Banyan lub w licznych
lokalnych sieciach mikrokomputerowych (LAN).
Nowością i najbardziej znanym, przynajmniej ze słyszenia, jest
protokół HTTP. Protokół ten opracowany w ośrodku badawczym CERN w Genewie (wśród jego
autorów byli również polscy specjaliści) służy do komfortowej prezentacji danych
rozproszonych w sieci Internetu. Dane te mogą mieć różnorodny charakter: dźwięku,
obrazów nieruchomych lub ruchomych - nie muszą to być wyłącznie dokumenty pisane albo
programy komputerowe. Protokół HTTP wchodzi rwnież powoli w użycie w amatorskiej sieci
pakiet radio. Oprogramowanie skrzynek elektronicznych BayCom-Box (BCM) począwszy od
wersji 1.39 pozwala na obsługę skrzynki w protokóle HTTP i na wymianę poczty w oparciu
o protokóły SMTP i POP przy wykorzystaniu standardowej przeglądarki internetowej i usług
TCP/IP zawartych w systemach operacyjnych Windows 95 i 98. W celu sprzężenia ich z
amatorską siecią AX.25 konieczne jest zainstalowanie programu Flexnet a zwłaszcza
wchodzącej w jego skład biblioteki FLEXIP95. Sprawa ta jest omówiona szczegółowo w
dalszej części rozdziału.
Współpraca różnych typów komputerów w ramach sieci i postępująca
specjalizacja zadań w obrębie sieci profesjonalnych spowodowała wytworzenie się nowego
modelu pracy w sieci. Pewna liczba systemów znanych pod angielską nazwą server
(proponowałbym zastąpienie jej polską nazwą subiekt oznaczającą sprzedawcę, nazwą obecnie
nie używaną w pierwotnym znaczeniu) udostępnia swoje możliwości (np. zbiory danych, dostęp
do drukarek, innych urządzeń specjalnych i łączy) stacjom użytkowników (klientów) w miarę
ich potrzeb. Taka obsługa klientów wymaga ściślejszego powiązania zbiorów danych
poszczególnych systemów niż to jest wymagane dla protokółu FTP. Sieciowy system zbiorów
NFS (ang. Network File System) daje użytkownikom wrażenie korzystania ze zdalnych stacji
dysków, drukarek, modemów i innego wyposażenia jak gdyby były one podłączone do lokalnego
komputera. Brzmi to wszystko bardzo prosto, w praktyce wymaga jednak rozwiązania szeregu
problemów jak uniknięcie konfliktów spowodowanych wielostronnym, równoległym dostępem do
tych samych zasobów, ustalenie priorytetów i kontrola kolejności dostępu. W niektórych
przypadkach konieczne jest zdalne wykonywanie określonych programów na innych komputerach
(o ile zasoby własne, jak wielkość pamięci nie wystarczają do wykonania zadania na miejscu),
na co pozwalają protokóły RSH (ang. Remote SHell) i REXEC (ang. Remote EXECute), centralne
przechowywanie informacji o użytkownikach sieci i trasach dostępu do poszczególnych systemów
(w dużych sieciach trudna byłaby aktualizacja tych danych w stacjach docelowych) i instalacja
stacji-koncentratorów obsługujących pewną liczbę terminali za pomocą protokółu TELNET lub
podobnych. Specyfikacja stacji-baz danych sieciowych zawarta jest w dokumentach RFC8 22 i
RFC 823, RSH i REXEC; stanowią m.in część systemów opartych na systemie operacyjnym
Berkeley-UNIX, a ogólnie wymienione możliwości spotykane są w sieciach firm Sun lub
Xerox. Nawet jeżeli wspomniane protokóły zostały opracowane przez inne firmy lub
organizacje, są one stosowane w sieciach Internet na równi z klasycznymi protokółami
grupy TCP/IP.
Oprócz przedstawionych wyżej protokółów TCP/IP w skład grupy
wchodzą także protokóły UDP i ICMP. UDP (ang. User Datagram Protocol, dokumenty RFC
882/RFC 883) stosowany jest w przypadku wymiany informacji krótkich nie przekraczających
długości datagramu i nie wymagających przez to zachowania kolejności datagramów lub przez
inne uproszczone protokoły. Protokół UDP zastępuje więc w takim przypadku protokół TCP, a
jego nagłówki wstawiane są w miejsce nagłówków protokołu TCP. Utworzone w ten sposób
datagramy UDP przekazywane są protokółowi IP. UDP wykorzystuje numery kanałów
logicznych (możliwe jest korzystanie z większej liczby połączeń równolegle) w podobny
sposób jak protokół TCP. Protokół UDP jest protokółem bezpołączeniowym w odróżnieniu od
protokółu TCP.
Informacje sterujące i meldunki błędów dla protokółu TCP transmitowane
są pod kontrolą przedstawionego już protokółu ICMP (ang. Internet Control Message Protocol,
RFC792). Protokół ICMP obsługuje transmisję meldunków o długości nie przekraczającej jednego
datagramu, jest jednak prostszy niż UDP i nie wykorzystuje numeracji kanałów logicznych,
ponieważ meldunki te wykorzystywane są wewnętrznie przez oprogramowanie sieciowe.
Głównymi zaletami grupy protokółów TCP/IP jest ujednolicenie
komunikacji między różnymi systemami komputerowymi, niezależnie od stosowanych systemów
operacyjnych, użycie systemu poszukiwania tras łączności i sposobu adresowania pozwalających
na wymianę informacji w skali światowej oraz zwiększenie komfortu w wymianie poczty (np.
odbiór automatyczny) i korzystaniu z dokumentów multimedialnych. Amatorska sieć TCP/IP
jest narazie niezbyt rozbudowana, wymiana informacji odbywa się zasadniczo przez sieć
pakiet radio a częściowo przez sieć kablową Internetu za pośrednictwem tzw. bramek
internetowych (ang. gateway). Mimo niedogodności takiego rozwiązania warto jest zapoznać
się z profesjonalnym standardem światowym chociażby tylko w celu zdobycia doświadczeń.