4.2. ZASADY DZIAŁANIA


  Grupa protokółów TCP/IP jest podzielona na warstwy, podobnie jak w przypadku modelu komunikacyjnego ISO. Mimo opracowania jej niezależnie od wspomnianego modelu możliwe jest łatwe przyporządkowanie poszczególnych protokółów odpowiednim warstwom ISO lub ich grupom (rysunek 4.1). Organizacja warstwowa oznacza, że poszczególne warstwy (usługi, moduły programów) wyższe komunikują się z warstwami podległymi, przekazując rozkazy i odbierając dane, a każda z warstw odpowiedzialna jest za pewien zespół zadań, jak przekodowywanie i grupowanie danych, wybór trasy połączenia, transmisja danych w łączu fizycznym lub kontrola jej poprawności. Każda z warstw, to jest każdy z protokółów otrzymuje od warstwy niższej informacje we właściwym dla niej formacie i porządku, a wszelkie akcje podejmowane przez warstwy niższe są dla niej niewidoczne (ukryte). Umożliwia to wymienność protokółów w ramach systemu i udoskonalanie ich działania.

    [rys. 4_01]

    W przypadku sieci TCP/IP dane transmitowane są w postaci datagramów, czyli bloków zawierających oprócz informacji użytecznej także wiadomości służbowe pozwalające na prawidłową transmisję bloku przez sieć do adresata i ponowne złożenie ich w całość. W zależności od sposobu transmisji datagramy mogą być dzielone na mniejsze jednostki - pakiety AX.25 lub ETHERNET i uzupełniane o dodatkowe informacje niezbędne dla ich prawidłowego przekazania. Informacje te, zawarte w nagłówkach pakietów, są następnie usuwane po stronie odbiorczej a pakiety składane w datagramy. Informacje użytkowe i administracyjne przekazane przez warstwy wyższe nie ulegają zmianom i są dostępne dla odpowiednich warstw po stronie przeciwnej.
    Transmitowany strumień danych - stanowiący zawartość wybranego zbioru lub dokumentu - dzielony jest przez protokół TCP na datagramy o określonej długości (np. 500 oktetów; często stosowane są długości 1500, 1000 lub 576 oktetów, długość ta może być również negocjowana w momencie nawiązania połączenia), przy czym każdy z datagramów zaopatrywany jest w nagłówek zawierający numer kanału logicznego nadawcy i adresata, numer kolejny oktetu (ośmiobitowej grupy danych), numer potwierdzenia i sumę kontrolną. Długość nagłówka wynosi dwadzieścia oktetów. Jednostką używaną tu jest oktet mający długość ośmiu bitów podobnie jak bajt, jednak dla uniknięcia nieporozumień we współpracy komputerów o różnej szerokości słowa i podkreślenia uniwersalności systemu unika się stosowania terminu bajt. Datagramy odebrane prawidłowo są kwitowane przez odbiorcę (a raczej protokół TCP po jego stronie), odebrane błędnie lub nieodebrane (niepokwitowane) są powtarzane po pewnym czasie. Dla przyspieszenia transmisji dopuszczalne jest nadawanie dalszych datagramów jeszcze przed otrzymaniem pokwitowania, pod warunkiem nieprzekroczenia dopuszczalnej liczby nie pokwitowanych datagramów. Liczba ta nie jest stała, lecz zależna od pojemności i zapełnienia bufora po stronie odbiorczej i jest każdorazowo sygnalizowana nadawcy. W protokóle AX.25 wartość ta jest stała i określona za pomocą parametru MAXFRAME. Wybór długości datagramu wpływa na efektywną szybkość transmisji, ponieważ krótsze datagramy zawierają procentowo więcej danych administracyjnych i wymagają częstszych pokwitowań, jednocześnie dłuższe datagramy są bardziej narażone na przekłamanie w wyniku zakłóceń.
    Tak utworzone datagramy protokół TCP przekazuje warstwie trzeciej - protokółowi IP z podaniem adresu numerycznego stacji docelowej. Adresy te będą omówione dalej. Zadaniem protokółu IP jest wybór odpowiedniej trasy transmisji i nie musi on analizować treści otrzymanego datagramu. Protokół IP umieszcza na początku każdego datagramu swój własny nagłówek zawierający adresy internetowe nadawcy i adresata, informację o protokółe warstwy wyższej (jak wynika ze spisu protokółów nie musi to być protokół TCP) oraz własną sumę kontrolną dla kontroli poprawności odebranego nagłówka. Nagłówek IP zawiera między innymi pole określające maksymalną liczbę retransmisji datagramu w sieci i zmniejszaną o jeden po każdej retransnisji. Zapobiega to nieograniczonemu krążeniu datagramu w przypadku zapętlenia się tras łączności, czego w bardziej rozbudowanych sieciach nie można uniknąć. Pole to nazwane jest TTL (ang. Time To Live). Datagramy o stanie licznika TTL są usuwane z sieci - tzn. nie są dalej retransmitowane.
    Wybór tras retransmisji dokonywany jest na bieżąco, tzn. każda ze stacji węzłowych na trasie rozstrzyga po otrzymaniu datagramu i przeanalizowaniu adresu docelowego o tym , do której ze stacji sąsiednich należy go skierować. Decyzja podejmowana jest częściowo w oparciu o dane tras wprowadzone przez jej operatora a częściowo w oparciu o wymieniane automatycznie informacje o jakości i obciążeniu połączeń. Oznacza to, że trasa połączenia może ulegać wielokrotnym i niewidzialnym dla użytkownika zmianom w trakcie trwania sesji łączności. Jedną z konsekwencji tego faktu jest przemieszanie kolejności datagramów u odbiorcy (np. datagramy nadane później docierają korzystniejszą trasą przed niektórymi z nadanych wcześniej). Uporządkowanie kolejności datagramów należy do zadań protokółu TCP.
    Warstwa IP przekazuje datagramy uzupełnione o swoje nagłówki warstwie drugiej. W zależności od stosowanego w sieci sposobu transmisji warstwa druga odpowiada protokółowi ETHERNET, X.25 lub AX.25. Warstwa ta stosuje własny system adresów różny od adresów internetowych. W przypadku sieci ETHERNET są to adresy numeryczne, znormalizowane w skali światowej, w protokółe AX.25 są to znaki wywoławcze stacji amatorskich, również jednoznaczne w skali światowej. Adresy ETHERNET mają długość 48 bitów, a ich przydział podlega również światowej koordynacji. Protokół warstwy drugiej uzupełnia nadawane datagramy o swój własny nagłówek zawierający specyficzne adresy sprzętowe (np. znaki wywoławcze stacji) i kod warstwy wyższej oznaczający używany przez nią protokół oraz ewentualnie typ pakietu. Na końcu pakietu dołączana jest suma kontrolna, przeważnie CRC. W zależności od wybranych parametrów datagramy dzielone są na pakiety o mniejszej długości po stronie nadawczej i składane z pakietów u adresata. Pakiety AX.25 zawierają też obszary synchronizacyjne. Struktura złożonego pakietu przedstawiona jest na rysunku 4.2a. Do transmisji datagramów TCP/IP w sieci pakiet radio mogą być używane w ramach połączenia wirtualnego pakiety informacyjne typu I lub też pakiety nienumerowane UI w trybie bezpołączeniowym. Przeważnie korzystniejsze jest stosowanie trybu bezpołączeniowego ponieważ unika się w tym przypadku dublowania mechanizmów zabezpieczających warstw 2 i 4 (AX.25 i TCP).

    [rys. 4_02]

    Po stronie adresata pakiety, a następnie złożone z ich zawartości datagramy są przekazywane kolejnym warstwom wyższym, przy czym każda z warstw analizuje swój nagłówek w celu stwierdzenia ewentualnych przekłamań, a następnie usuwa go. Każda z warstw otrzymuje więc datagram w postaci identycznej z nadaną przez odpowiednią warstwę nadawczą.
    Warstwa druga przekazuje pakiety do transmisji przez łącze radiowe lub kablowe korzystając z protokółu SLIP (ang. Serial Line Interface Protocol), PPP lub KISS (ang. Keep It Simply Stupid). Protokół SLIP współpracuje z modemani i łączami kablowymi i jest szczególnie rozpowszechniony w systemie UNIX; opisany dalej pokrewny mu protokół KISS pozwala na współpracę z kontrolerami TNC. Kontroler TNC musi również zawierać oprogramowanie KISS. Kontrolery TNC kompatybilne do wzorca TNC2 (TAPR) powinny być wyposażone w wersję 1.1.6 oprogramowania lub nowszą, kontrolery wielofunkcyjne j.np. PK-232 (SP-232) oraz kontrolery TNC3 zawierają standardowo protokół KISS. To samo dotyczy kontrolerów TNC2 wyposażonych w aktualne oprogramowanie TF. Kontrolery TNC3 wyposażone są też w protokół SLIP.
    Grupa protokółów TCP/IP pozwala na jednoczesne nawiązanie kontaktu w większej liczbie kanałów logicznych (np. jednoczesną transmisję zbiorów za pomocą protokółu FTP i konwersację - TTYLINK lub transmisję poczty elektronicznej). Każdy z tych protokołów jest nadrzędny w stosunku do wspomnianego protokółu TCP, w ogólności więc odpowiada warstwom 5 - 7 ISO. Jednoznaczne przyporządkowanie datagramów do poszczególnych zadań (usług) wymaga zaopatrzenia ich w logiczny numer wykorzystywanego kanału. Niektóre z numerów są znormalizowane i przypisane na stałe do określonych typów zadań, są więc ogólnie znane (w dokumentach RFC stosowany jest angielski termin well known socket). Numeracja kanałów po stronie nadawczej i odbiorczej jest różna, każde z połączeń logicznych musi podawać więc oba numery, dla stacji terminalowej (użytkownika) znaczenie ma jedynie numer kanału u adresata, numer używany przez nadawcę może być przypadkowy. Przykładowo numer 21 przypisany jest standardowo protokółowi FTP dla kanału transmisji danych, oddzielny numer przypisany jest kanałowi transmisji rozkazów, a oba kanały otwierane są automatycznie przy wywołaniu protokółu FTP, numer 25 należy do kanału odbiorczego poczty elektronicznej a numer 87 do dialogu TTYLINK. Numerację kanałów logicznych zawiera dokument RFC 814. Dla uproszczenia rezygnuję tu z przytoczenia pełnej listy.

4.2.1. ADRESY INTERNETOWE (IP)

    Do jednoznacznej identyfikacji systemów komputerowych w sieci służy specjalny adres numeryczny tzw. adres internetowy. Ma on długość 32 bitów i zapisywany jest w postaci czterech liczb dziesiętnych oddzielonych kropkami (do użytku wewnętrznego w programach stosowana jest oczywiście reprezentacja dwójkowa). Początkowe człony adresu stanowią identyfikację sieci, dalsze - sieci lokalnych, a ostatnie - systemu w sieci. Zależnie od wielkości sieci przypisane są do klas A, B lub C. Sieci klasy A otrzymują adresy zawierające w pierwszym oktecie liczby od 1 do 126, pozostałe 24 bity pozwalają na adresowanie poszczególnych systemów komputerowych. Są to więc sieci o dużej lub b. dużej liczbie uczestników. Do klasy tej należy m.in amatorska sieć AMPRNET o adresach zaczynających się od 44. W sieci AMPRNET drugi oktet pozwala na identyfikację kraju. Np. dla Austrii jest to numer 143, dla Polski - 165, tak więc stacje amatorskie SP otrzymują adresy 44.165.xx.xx, a stacje OE - adresy 44.143.xx.xx. Trzecie oktety przypisane są przeważnie poszczególnym okręgom kraju. Sieci klasy B otrzymują adresy 128.1 do 191.254, a numeracja poszczególnych systemów w sieci zajmuje pozostałych 16 bitów. Jest to więc klasa sieci o średniej liczbie uczestników. Klasa C adresowana jest za pomocą trzech oktetów od 192.1.1 do 223.254.254, dla numeracji systemów składowych pozostaje tu osiem bitów. Adresy powyżej 223 zarezerwowane są dla przyszłych klas D i E, które nie są jeszcze zdefiniowane. Adresy zawierające oktety 0 i 255 oraz adresy zaczynające się od numeru 127 (np. 127.xx.xx.xx) przewidziane są do celów specjalnych i nie są przyznawane. Zera używane są przez systemy nie mające przypisanego konkretnego adresu, numer 255 pozwala na adresowanie wszystkich systemów w sieci np. w celu spytania systemu o znanej nazwie (znaku wywoławczym) lub adresie ETHERNET o jego adres numeryczny internetu lub odwrotnie. Uzyskanie tego typu informacji jest zadaniem kolejnego wchodzącego w skład grupy protokołu ARP (ang. Address Resolution Protocol, RFC 826). Mowiąc najprościej protokół ARP jest odpowiedzialny za znalezienie powiązania między adresem internetowym IP i adresem sprzętowym - w sieci amatorskiej znakiem wywoławczym stacji. Dane znanych a zwłaszcza sąsiadujących stacji i węzłów zawarte są w tabeli ARP, zapytania te nadawane są do stacji nowych lub dotąd nie znanych. W sieci amatorskiej AMPRNET adresy 44.127.xx.xx nie są rejestrowane i mogą być wykorzystane w okresie prób przed otrzymaniem definitywnego znaku.
    Adresy numeryczne są niezbyt praktyczne do zapamiętania dlatego też w rzeczywistości w sieciach TCP/IP stosowane są adresy symboliczne. Adresy te składają się również z kilku członów oddzielonych za pomocą kropek. Przykładem adresu spotykanego w sieci amatorskiej jest: oe1kda.ampr.org. Adres ten składa się z trzech członów, z których pierwszy jest częścią indywidualną - ze względów praktycznych znakiem wywoławczym stacji - natomiast pozostałe opisują grupę adresową czyli tzw. domenę. Amatorska sieć nosi oznaczenie AMPR. Jest to skrót od angielskiej nazwy "AMateur Packet Radio". Następny człon oznaczenia domeny informuje o charakterze sieci lub instytucji do której ona należy. Pierwotnie w USA przyjęte były np. oznaczenia GOV dla instytucji państwowych, MIL - dla wojskowych, ORG dla instytucji użyteczności publicznej, EDU dla uczelni i COM dla jednostek prowadzących działalność komercyjną. Po rozpowszechnieniu się Internetu na świecie oznaczenia te uległy częściowym zmianom - dodany został człon informujący o geograficznym położeniu systemu, najczęściej jest to oznaczenie kraju. Dla Polski jest więc skrót PL, dla Austrii AT itd. Skróty oznaczające charakter jednostki lub sieci uległy częściowemui skróceniu - spotykane są więc oznaczenia GV oprócz GOV, CO oprócz COM albo AC oprócz EDU. Przykładem takiego złożonego adresu jest ikp.atm.com.pl. Dla systemów dostępnych w protokóle HTTP (stanowiących część tzw. "światowej pajęczyny") przyjęło się dodawanie na początku nazwy liter www lub oznaczenia w3, np. www.inforus.com.pl, nie jest to jednak obowiązkowe. Podobnie czasami w nazwach systemów (stacji) oferujących głównie usługi FTP spotykane jest oznaczenie FTP, np. ftp.microsoft.com. Oznaczenia krajów nie są jak dotąd stosowane w sieci amatorskiej.
    Oprogramowanie TCP/IP posługuje się oczywiście w dalszym ciągu wewnętrznie adresami numerycznymi dlatego też konieczne jest powiązanie ich w jakiś sposób z adresami symbolicznymi. W najprostszym przypadku małej ew. odizolowanej grupy stacji amatorskich wystarczy umieszczenie na każdym z komputerów tablicy przyporządkowania i jej aktualizacja w miarę rozwoju sieci. W dużych sieciach jest to jednak zbyt pracochłonne albo nawet niemożliwe ze względu na dużą ilość danych i częstotliwość zmian. Praktyczniejsze jest więc umieszczenie tablic na jedynie niektórych dobrze dostępnych systemach komputerowych. Powstająca w ten sposób adresowa baza danych oznaczana jest skrótem DNS (ang. Domain Name Server). Stacja pragnąca nawiązać połączenie wysyła do bazy danych zapytanie zawierające adres symboliczny korespondenta a w odpowiedzi otrzymuje jego adres numeryczny.
    Krótkiego wyjaśnienia wymagają także adresy dla poczty elektronicznej. Składają się one z oznaczenia systemu i symbolu adresata (jednego z użytkowników systemu) odzielonych za pomocą "ślimaczka". Przykładami mogą być: oe1kda@oe1xir.ampr.org albo oe1kda@oe1kda.ampr.org.

4.2.1.1. LISTA ADRESÓW IP

    Poniższa lista zawiera adresy internetowe sieci AMPR (44.xx.xx.xx) przyznane niektórym krajom. W miarę możliwości podane są także znaki wywoławcze i adresy krajowych koordynatorów TCP/IP. Poszczególnym krajom przypisane są wartości zawarte w drugim oktecie adresu. Oktet trzeci związany jest z podziałem kraju na rejony, czwarty identyfikuje stacje amatorskie.

Tablica 1. Lista krajowych adresów IP
_____________________________________________________________________
seria adresów                   kraj         koordynator
_____________________________________________________________________
44.001.xx.xx do 44.126.xx.xx.   USA
44.130.xx.xx                    Niemcy       DL4TA, Ralf Kloth
44.131.xx.xx                    W. Brytania  G6PWY, Chris Baron
44.133.xx.xx                    Hiszpania    EA4DQX, Jose Garcia
44.134.xx.xx                    Włochy       I2KFX
44.137.xx.xx                    Holandia     PA0GRI, Gerard van der
                                                     Grinten
44.139.xx.xx                    Finlandia    OH1MQK, Matti Aarnio
44.140.xx.xx                    Szwecja      SM0IES
44.141.xx.xx                    Norwegia     LA4JL, Per Eotang
44.142.xx.xx                    Szwajcaria   HB9CAT, Marco Zollinger
44.143.xx.xx                    Austria      OE1KDA, K. Dąbrowski
                                             [44.143.16.144]
44.144.xx.xx                    Belgia       ON7LE
44.145.xx.xx                    Dania        OZ6QI
44.151.xx.xx                    Francja      FC1BQP, Pierre Monet
44.154.xx.xx                    Grecja       SV1IW

44.155.xx.xx                    Irlandia     EI9GL, Paul Healy
44.156.xx.xx                    Węgry        HA5DI, Markus Bela
44.158.xx.xx                    Portugalia   CT1DIA, Artur Gomes
44.161.xx.xx                    Luxemburg    LX1YZ, Erny Tontlinger
44.162.xx.xx                    Cypr         5B4TX, C.Costis
44.165.xx.xx                    Polska       SP1LOP, Janusz Przybylski
_____________________________________________________________________

Tablica 2. Podział Polski na okręgi 
_____________________________________________________________________
seria adresów                   okręg
_____________________________________________________________________
44.165.16.xx do 44.165.31.xx    SP1
44.165.32.xx do 44.165.47.xx    SP2
44.165.48.xx do 44.165.63.xx    SP3
44.165.64.xx do 44.165.79.xx    SP4
44.165.80.xx do 44.165.95.xx    SP5
44.165.96.xx do 44.165.111.xx   SP6
44.165.112.xx do 44.165.127.xx  SP7
44.165.128.xx do 44.165.143.xx  SP8
44.165.144.xx do 44.165.159.xx  SP9
_____________________________________________________________________

Tablica 3. Podział Austrii na okręgi 
_____________________________________________________________________
seria adresów                   okręg
_____________________________________________________________________
44.143.16.xx do 44.143.31.xx    OE1 Wiedeń
44.143.32.xx do 44.143.47.xx    OE2 Salzburg
44.143.48.xx do 44.143.79.xx    OE3 Dolna Austria
44.143.80.xx do 44.143.95.xx    OE4 Burgenland
44.143.96.xx do 44.143.127.xx   OE5 Górna Austria
44.143.144.xx do 44.143.159.xx  OE6 Styria
44.143.160.xx do 44.143.207.xx  OE7 Tyrol i Wsch. Tyrol
44.143.208.xx do 44.143.223.xx  OE8 Karyntia
44.143.224.xx do 44.143.239.xx  OE9 Vorarlberg
pozostałe serie                 rezerwa
_____________________________________________________________________




Wydanie z dn. 20.03.1999.

© Prawa autorskie Krzysztof Dąbrowski, OE1KDA.