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