4. PROTOKÓŁY TCP/IP



4.1. INFORMACJE OGÓLNE

  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ń.



Wydanie z dn. 20.03.1999.

© Prawa autorskie Krzysztof Dąbrowski, OE1KDA.