A rádióamatőr számítógéphálózat működése és lehetőségei
Az alábbiakban a packetrádió hálózat működési rejtelmeibe vezetünk
be, méghozzá a számítógéphálózatok tárgyalásánál megszokott elméleti
séma (OSI modell) alapján. Azonban mindenhol részletesen kitérünk a
gyakorlati lehetőségekre, hogy ez alapján képes legyen az olvasó egy
packetrádiós csomópont működésének megértésére.
A cikk véges terjedelme érdekében feltételezünk egy minimális TCP/IP
alapú számítógéphálózati ismeretet.
Az OSI elvi rétegei és megfeleltetésük a gyakorlatban
TCP/IP hálózat felett (axip tunnel, ipip tunnel, vtund tunnel)
vezetékes összeköttetés egy másik ott lévő berendezéssel (pl.
SLIP - soros vonali IP kapcsolat)
Modulációk:
AFSK (Audio Frekvency ShiftKeying),
amelynél a rádió mikrofonjába jutó jelét moduláljuk 1200 és 2200 Hz-es
vivővel.
FSK (Frekvency Shift Keying). Ennél a
modulációnál általában kis átalakítást kell végeznünk a rádión, mivel
itt közvetlenül moduláljuk a rádió frekvenciáját.
Egy OFDM-hez hasonló moduláció kifejlesztése (HG2ECZ), amely
sokkal nagyobb átviteli sebességre lesz alkalmas ugyanazon
sávszélességben ( Mindkét verziónál javulás várható: a.) a rádió
átalakítása nélkül; b.) célrádió felhasználásával; ) azonban
szükség esetén robusztusabb a jelenlegi modulációnál (OFDM, hibajavító
kódolás és adaptív technológiák felhasználásával)
A modem megvalósítása:
Rádió adó-vevőbe gyárilag beépítve (néhány drágább új típusban
AFSK-1200 és FSK-9600 helyet kapott).
Külső modem használata, amely a számítógépből kapja a bináris
bitfolyamot (pl. a soros vagy párhuzamos port vezérlővonalain
keresztül).
Intelligens kártya (pl. USCC) beépítése, amely a teljes csomagot
át tudja venni az operációs rendszertől és önállóan ki tudja sugározni.
Intelligens külső modul, amely RS232-n keresztül kapja a
kiküldendő csomagot.
Hangkártya végzi a hangfrekvenciás jel előállítását. Ennek a
megoldásnak a legszembetűnőbb előnye, hogy a meglévő rádiónkon és a
meglévő számítógépünkön kívül nem igényel jelentős beruházást, se
jelentős munkát. További előnye, hogy bármilyen bonyolultságú modulációt
képes ez a rendszer kisugározni (gyorsabb, megbízhatóbb modulációk: a
jövő várható útja)
2. Adatkapcsolati réteg
Amióta megjelent az AX.25 2.0-ás verziója (1984), azóta ez a
szabvány az alapja a rádióamatőr hálózat adatkapcsolati rétegének.
Az adatkapcsolati réteg feladata, hogy a modemből kieső bitfolyamot
csomagokká keretezze, ellenőrizze a helyességét, illetve alacsony szintű
kapcsolatfenntartásról (link controll) is gondoskodjon. Megvalósítás
terén ismét néhány érdekességgel találkozhatunk:
Első időkben TNC-ket (Terminal Node Controller)
építettek. Ez teljes egészében tartalmazta az AX.25 alapú
adatkapcsolati réteget és általában ebben a dobozban kapott helyet a
modem is. A legérdekesebb viszont az, hogy a megjelenítő vezérlésének
is sok elemét ide építették be (például hogy hány karakter után emeljen
sort). Később az egyre olcsóbbá váló személyi számítógépekre egyre több
mindent bíztunk.
A PC-kre az AX.25 implementációját portolták át a TNC-ből, így
már csak a modem illetve az összeállított csomag sorosító egysége (pl.
USCC kártya) kellett a packetrádiózáshoz. Utóbbit leginkább csak a
forgalmasabb node-okban használják. Otthon már csak a modemet
illesztették külső hardverként a PC-hez.
Itt jegyeznénk meg, hogy jelenleg már a modem is PC-ben van
implementálva. A jel kiadását a hangkártyán keresztül végezzük, ezáltal
csak a rádió adó-vevő van külső hardverként rácsatlakoztatva az új
fejlesztésű otthoni végpontoknál.
A továbbiakban a nyolc bit jelölésére a helyes terminológia oktett
szava helyett a bájtot fogom használni a köznyelvben való elterjedsége
miatt. Tehát a továbbiakban a bájt szó alatt nyolc bit értendő.
Az adatkapcsolati réteg működéséről dióhéjban:
Az adatkapcsolati réteg a csomag levételekor addig vár, amíg 6
egymást követő bitet nem talál a keretban. Tehát a csomag 0111 1110
fejléccel indul, és ezzel is záródik.
Ez rögtön feltételezi azt, hogy a keret belsejében semmiképp sem
fordulhat elő egymás után 6 darab 1-es bit. Ezt úgy érik el, hogy ha a
küldendő adatban 5 egymás után lévő 1-est találnak, akkor azonnal
beszúrnak utána egy 0-át, így a 111110 helyett 1111100, a 111111 helyett
1111101 lesz elküldve. Természetesen vételkor ha 5 db 1-es után 0 jön,
akkor azt a 0-át eldobják és így visszakapják az eredetit; ha az 5 db
1-es után egy 1-es majd egy 0-ás érkezik, akkor az keretvéget jelent,
egyébként kerethibát.
A keret bájtjaiból levétele során ellenőrző kódot (CRC 16)
generálnak, amit a csomag végén lévő utolsó 2 bájttal hasonlítanak
össze. Ha nem egyezik, akkor a hibás keretet eldobják.
Eldobott keret esetén, ha az I keret (nyugtázott információ
szállító keret) volt, akkor REJ (visszautasítás) nyugtacsomagot küld
vissza a vevő, ami keretismétlést fog kiváltani, egyébként meg RR
(vételkész) nyugtát küld.
Az AX.25 keretek felépítése
Az AX.25 protokoll szertint átvitt adatok I (informational) és U
(unnumbered) keretben továbbíthatók. Ezen kívül gondoskodni kell arról,
hogy a sorszámozott keretátvitelhet csatlakozni és lecsatlakozni
egyaránt tudjunk, továbbá a kapcsolatot fenn tudjuk tartani az adott
linken. Ezért alacsony szinten 3 féle AX.25 keretet különböztetnek meg:
U keret: sorszámozatlan keret, amely az I típusú kapcsolat
felépítését, kontrollálását és bontását végzi. Speciális U keret (UI
keret) nyugtázatlan információtovábbítására is alkalmas. Ilyen UI
keretben továbbítódnak az IPv4 csomagok és az APRS datagramja.
I keret: sorszámozott keret, információtovábbításra
S keret: alacsony szintű nyugtázásra szolgáló kerettípus
U (kivéve UI) és S keret felépítése
Flag
Address
Control
FCS
Flag
01111110
2*56...10*56 bit
8 bit
16 bit
01111110
I és UI típusú, információ szállító keret felépítése
Flag
Address
Control
PID
Info.
FCS
Flag
01111110
2*56...10*56 bit
8 bit
8 bit
N*8 bit
16 bit
01111110
Jelmagyarázat:
Flag mező értéke a 0111 1110, tehát a 0 után a 6 db 1-es
majd a 0. Erről ismerhető meg a csomagkezdet és a csomagvég.
Address mező tartalmazza a cél címet az esetleges
közbenső node-okkal együtt és a feladó címét, méghozzá 7-7
bájt-on. A cím első 6 bájtját a nagybetűvel írt hívójel foglalja el, ha
a hívójel rövidebb 6 karakternél, akkor szóköz van utánna. A hetedik
bájtban van többek közt egy 0-15-ig terjedő kapcsolat azonosító (SSID,
pl. HG2ECZ-5 esetén az 5). Aminek kétféle felhasználása lehetséges:
egyrészt néhányat statikusan kiosztva ugyanarra használhatjuk, mint a
TCP/IP-ben a portokat. Másrészt én így több kapcsolatot (session)
létesíthető ugyanazzal a szolgáltatással.
A 112-560 bites hossz attól függ, hogy használ-e közbenső node-ot az
átvitelhez vagy sem. Ugyanis az AX.25 maximálisan 8 közbenső node-ot
képes átjátszóként használni. Átjátszó használatakor a cél címmezője
után benne van az összes közbenső állomás hívójele.
Control: Adatkapcsolat vezérlésére alkalmas flagek. (Lásd:
Control táblázat).
PID: Protokoll azonosító, amely megadja, hogy milyen
típusú adat található az info mezőben (Lásd: PID táblázat).
Info: A felsőbb réteg adatai.
FCS: CRC-16 alapú ellenőrző összeg.
A PID mező értékei és jelentése az AX.25 csomagban (y =
tetszőleges értéket felvehet)
HEX
Bináris
Jelentése
0x01
00000001
ISO 8208/CCITT X.25 PLP
0x06
00000110
Compressed TCP/IP packet. Van Jacobson (RFC 1144)
0x07
00000111
Uncompressed TCP/IP packet. Van Jacobson (RFC 1144)
0x08
00001000
Segmentation fragment
**
yy01yyyy
AX.25 layer 3 implemented.
**
yy10yyyy
AX.25 layer 3 implemented.
0xC3
11000011
TEXNET datagram protocol
0xC4
11000100
Link Quality Protocol
0xCA
11001010
Appletalk
0xCB
11001011
Appletalk ARP
0xCC
11001100
ARPA Internet Protocol
0xCD
11001101
ARPA Address resolution
0xCE
11001110
FlexNet
0xCF
11001111
NET/ROM
0xF0
11110000
No layer 3 protocol implemented.
0xFF
11111111
Escape character. Next octet contains more Level 3 protocol
information.
Az alábbi táblázatban megismerkedhetünk a Control mező adatainak
jelentésével U, I és S keretek esetén.
Control mező adatai
Control mező
típusa
Control mező bitjei
7
6
5
4
3
2
1
0
I Frame
N(R)
P
N(S)
0
S Frame
N(R)
P/F
S
S
0
1
U Frame
M
M
M
P/F
M
M
1
1
Jelmagyarázat:
N(R): Vett keret sorszáma (0..7, tehát alacsony szinten
max 8 nyugtázatlan keret lehet kiküldve, utána kell mindenképp nyugta)
N(S): Adott keret sorszáma (0..7, tehát alacsony szinten
max 8 nyugtázatlan keret lehet kiküldve, utána kell mindenképp nyugta)
SS: AX.25 vezérlőparancs (link control)
00: RR = vételkész,
01: RNR = foglalt, teli az RX buffer,
10: REJ = CRC hiba, ..., tehát meg kell ismételni a küldést
P: Nyugtakérés (S és U keret parancsának nyugtakérésére)
F: Nyugta (S és U keret parancsának nyugtázására)
M: ezek a bitek az U keret típusát határozzák meg ( SABM /
DISC / DM / UA / FRMR / UI )
Bővebb információ és az adatkapcsolati réteg teljes specifikációja a http://www.tapr.org-on található.
3. Hálózati réteg
AX.25 hálózati rétege lehet: Egyrészt az AX.25 fölé tervezett NETROM
alapú, másrészt IPv4 alapú vagy kimaradhat. Az IPv4 alapú teljes
egészében megegyezik a normál IPv4 hálózatok hálózati rétegével, ezért
ezt a továbbiakban nem tárgyaljuk.
A netrom feladata, hogy automatikus útvonalválasztást biztosítson,
tehát, ha például az otthoni QTH-mról (HG2ECZ) be szeretnék jutni a
HA5KFU-ra, akkor vagy beírom azt, hogy
call 2m ha5kfu via hg2ptb hg5bdu
vagy netrom routingot használva
call nr1 ha5kfu
és a hálózatban el fogok jutni a ha5kfu-ra a topológia ismerete
nélkül is.
A netrom működése során megjegyzi, hogy mely állomás milyen
útvonalon keresztül jutott el hozzám, így olyan útvonalon kell
megpróbálnom nekem is visszaküldenem a válaszomat, illetve a
legközelebbi kérésemet. Ahhoz, hogy a netrom jól működjön, periodikusak
küldött QST csomagok szükségesek, ami által mindenki tudomásul veszi,
hogy kit és melyik irányból hall.
4. Szállítási réteg
A szállítási réteg is kettős az AX.25-ben. IPv4 esetén UDP, TCP, ICMP
csomagokat egyaránt képes továbbítani. Tehát ez megegyezik a közismert
TCP/IP-vel, így a részletes tárgyalásától itt szintén eltekintünk.
AX.25 klasszikus átvitele esetén UI és I üzeneteket különböztethetünk
itt meg. Az UI viselkedése hasonlít az UDP-re, az I meg a TCP-re. Az
alapvető különbség, hogy itt nincsenek portok definiálva, hanem csak az
SSID-kkel (pl. HG2ECZ-5, tehát az SSID itt az 5) operálhatunk, ha
több egyidejű kapcsolatot szeretnénk fenntartani. További korlát, hogy
az SSID csak 4 bites, tehát maximum 16 kapcsolatot lehetséges
egyidejűleg fenntartani ugyanazon kettő állomás között.
5. Viszonyréteg
Ahogy a TCP/IP-ben sincs, úgy itt sincs egyelőre jelentősége.
6. Megjelenítési réteg
Ahogy a TCP/IP-ben sincs, úgy itt sincs egyelőre jelentősége.
7. Alkalmazási réteg
Alkalmazás terén két jelentős irányzata van jelenleg: