VERON afdeling Friese Wouden
Afdelingsblad 'CQ Friese Wouden'
Rolf - PE1PTP,
bew. PAoKDV
Inleiding
Dit is de vertaalde versie van de al eerder aan DOC@WW
verstuurde "packet radio analyzed". Het is vertaald door Rolf - PE1PTP
en verspreid in het Nederlandse Packetnetwerk (BBS). PE1PTP: "De Engelse
versie zorgde voor veel positieve reacties uit alle windstreken. Van diverse
Nederlandse amateurs kreeg ik het verzoek een vertaling te maken. Na enige tijd
is het er dan toch van gekomen. Ik hoop dat iedereen dit met plezier zal lezen."
Het verhaal bevat een leuke uitleg hoe Packet Radio nu eigenlijk werkt en waar U
zoal op moet letten.
73, Kor - PAoKDV
Indeling van het artikel
1. Introductie
2. Aloha
2.1 Packet en CSMA
2.1.1. 1 persist CSMA
2.1.2. non-persit CSMA
2.1.3 p-persitent CSMA
2.2 DAMA, de oplossing?
3. Laagverzadiging
3.1 Botsing ?
4. Let op het monitorscherm.
4.1. Ongenummerde frames
4.1.1 SABM
4.1.2 DISC
4.13 FRMR
4.1.4 UA
4.1.5 UI
4.2. Genummerder frames
4.2.1 RR
4.2.2. RNR
4.2.3. REJ
5. Parameters.
5.1 12 Users: Theoretisch voorbeeld.
5.1.1 Persistance
5.1.2 Frack timer
5.1.3 MaxFrames
5.1.4 PacLen
5.1.5 Acknowledge Timer T2
5.1.6 Slottime
6. Referenties.
1. Introductie
Toen packet nog in de kinderschoenen stond, experimenteerden
radio amateurs met methoden om digitale data te versturen tussen twee
transceivers. Tijdens deze experimenten ontwikkelden zendamateurs het AX.25
protocol, dat was gebaseerd op X.25, een protocol dat al langer in gebruik was
in (grotere) computer netwerken via kabels. Het AX.25 protocol beschrijft een
systeem, om data gegarandeerd foutloos de andere kant te laten bereiken over een
half-duplex verbinding. In het algemeen betekent dat, dat er geen data verloren
gaat zonder dat de gebruiker het in de gaten heeft. Packet Radio ging als een
lopend vuurtje over de hele wereld, en in een tijd van enkele jaren groeide het
uit tot het radio-amateur post-netwerk.
Met het groeien van het aantal gebruikers steeg ook de vraag
naar snelheid. Radio-amateurs zijn erg sociale mensen tijdens z.g voice QSO's,
maar op de packet kanalen wil niemand op een ander wachten. Natuurlijk kan het
aantal gebruikers op een packet-frequentie makkelijk tien maal zo groot zijn als
het gemiddelde aantal stations in een voice 'rondje', wat waarschijnlijk hier de
oorzaak van is. Veel amateurs denken dat dit probleem wordt opgelost door de
baudrate van het packetmodem te verhogen. Dat is dus een misvatting. Natuurlijk
zal het in het begin allemaal een beetje sneller gaan, maar hoge baudrates
brengen nog meer problemen met zich mee, zoals het niet kunnen maken van lange-
afstands verbindingen.
Kort geleden las ik een artikel over DAMA, geschreven door de
NORD groep, wat bijna onmiddellijk mijn aandacht trok. Ik besprak dit nieuwe
concept met veel vrienden en leraren, waarvan verschillende beroepsmatig
betrokken zijn bij packet radio-achtige netwerken. Op deze manier verzamelde ik
aardig wat informatie over packet en andere netwerk typen. Ik besloot deze info
in een artikel te vatten, want toen ik zelf met packet begon, wist ik ook niet
hoe, waar, wat, wanneer en waarom, hi. Ik zag dat sommige amateurs nog steeds
met dit 'probleem' zitten. Dat concludeerde ik tenminste uit het voorbijgaan van
frames op mijn monitor scherm, schattend wat de instellingen waren, die amateurs
gebruiken, als ze hun packet modem gebruiken.
Door dit artikel te schrijven, hoop ik mensen aan het denken
te zetten over waar ze mee bezig zijn, als ze packetten. Dit artikel is verre
van perfect, dus als je vragen, antwoorden, correcties of interessante
aanvullingen hebt op dit artikel, laat het mij even weten. Veel plezier bij het
lezen van dit (nogal grote) artikel.
2. Aloha
Het eerste computersysteem, waar een radio verbinding tussen
twee punten werd gebruikt, was het ALOHA systeem van de Universiteit van Hawaii
en werd voltooid in 1971. Dit systeem is de vader van alle pakket-versturende
systemen, die we vandaag de dag kennen.
Het ALOHA systeem was gemaakt om een verbinding te leggen
tussen de mensen van de Universiteit, die was verspreid over 7 gebouwen op 4
eilanden. Ook werd het aangesloten op de hoofdcomputer op Oahu, zonder daarbij
gebruik te maken van telefoonlijnen, welke duur en onbetrouwbaar waren. Kleine
FM transceivers werden gebruikt met een voldoende groot bereik om het computer-systeem
op Oahu te connecten. Later werd een repeater ingezet om de theoretisch haalbare
verbindings-lengte te vergroten tot 500 km.
In het begin werden twee frequenties gebruikt, een z.g.
'uplink' en 'downlink' frequentie, gezien vanaf de centrale computer. Deze
frequenties waren resp. 407.350 MHz en 413.475 MHz. De centrale computer regelde
de communicatie. Het aantal bits per seconde was 9600. Na een paar jaar
ervaringen te hebben opgedaan met dit systeem, concludeerden de onderzoekers,
dat 1 frequentie effectiever was geweest. Als een systeem data heeft om
verstuurd te worden, word de zender onmiddellijk ingeschakeld en start de
uitzending. Dit is ALOHA in zijn puurste vorm. Als de centrale computer een
correct frame ontvangt, bevestigt deze het. Als een frame niet binnen een
bepaalde tijd word bevestigd, wordt het opnieuw uitgezonden.
Verschillende herhalings-tijden werden geprobeerd (tussen 200
en 1500 ms), maar de gebruikers concludeerden, dat tijdens piek-gebruik, het
systeem te veel 'pakket- botsingen' had, wat resulteerde in verzadiging van het
netwerk (congestion). De mensen op de afdeling research bedachten, dat dit
probleem omzeild kon worden, door het station te laten luisteren naar de
frequentie, waarop het een pakket wil versturen, zodat het kan wachten, tot de
frequentie vrij is. Dit resulteerde in CSMA.
2.1 Packet en CSMA
Het meest algemene probleem van alle typen netwerken is de
beslissing, wanneer, en hoe een gebruiker zijn data zou moeten versturen. In
Packet- Radio gebruiken we CSMA, wat Carrier Sense Multiple Acces betekent. Er
zijn verschillende vormen.
2.1.1 1 persistent CSMA
Bij dit protocol begint de gebruiker meteen met versturing van
data, zodra de frequentie niet in gebruik is. Het nadeel van dit systeem is het
grote aantal botsingen, door de vertraging tussen de beslissing om te zenden en
het daadwerkelijke zenden (modem latency). De frequentie kan hierdoor makkelijk
verzadigd raken.
2.1.2 non persistent CSMA
Hierbij begint het modem niet meteen met de uitzending. Het
wacht een tijdje met het versturen van data, zodat andere modems ook een kans
krijgen om hun frames te versturen. Dit protocol reageert op een retry als ware
het een botsing, maar dat is bij AX.25 geen groot probleem. Voordelen van dit
systeem zijn een groter aantal gebruikers op een frequentie, en een betere
doorvoer (throughput).
2.1.3 p persistent CSMA
Dit is de soort CSMA die we op dit moment in gebruik hebben.
Bij dit protocol kun je de kans be‹nvloeden waarmee jouw modem een uitzending
doet binnen een 'time slot', door een parameter die 'persistance' wordt genoemd.
Het voordeel van dit systeem is, dat de persistance van de modems kan worden
aangepast aan het aantal gebruikers op het kanaal. (Helaas doet niemand dit.)
Bij veel gebruikers wil je je modem minder agressief zetten, om botsingen te
voorkomen, en op die manier de doorvoer te vergroten. De meest ideale situatie
ontstaat wanneer iedere gebruiker op een kanaal zijn persistance als volgt
instelt: p=1/users+1. In deze formule is een extra gebruiker opgeteld omdat de
theoretische doorvoer van een frequentie hoger is dan de echte doorvoer.
Opmerking: in moderne TNC's en TFPCX drivers moet de p in
de formule worden vermenigvuldigd met 255.
Zoals je kunt zien, werkt p persistent CSMA bijna perfect op
een kabel netwerk, waar iedere gebruiker alle andere gebruikers kan horen.
Helaas kunnen amateurs op een packet-radio-frequentie elkaar niet altijd horen.
Dit resulteert in ALHOA-achtige botsingen, omdat modems kunnen beslissen te gaan
zenden, omdat de frequentie ongebruikt is, terwijl er eigenlijk een ander modem
een frame aan het uitzenden is. Dit probleem wordt versterkt door het gedrag van
de amateur, die denkt dat als hij een station niet hoort, dat station hem ook
niet hoort. Door zijn squelch 'in te regelen' (zo ver mogelijk naar rechts
draaien), veroorzaakt hij meer botsingen, welke nu juist de reden waren om de
squelch op te draaien. En dan zijn er nog de amateurs die werken met beams. Als
je frames wilt laten botsen, is dit *de* oplossing. Met een beam kun je de
stations links, rechts, en achter je niet horen, en die stations horen jou ook
niet, omdat de uitzending in een andere richting gericht is. Resultaat:
botsingen en verkeersopstoppingen waar je maar kijkt.

Figuur 1.
Amateur 1 hoort het BBS perfect, en Amateur 2 dito. Helaas
kunnen Amateur 1 en 2 elkaar niet horen, wat botsingen veroorzaakt. In deze
situatie kunnen we duidelijk zien, dat Amateur 1 heeft gekozen voor een beam,
vanwege de afstand tussen hem en het BBS. Deze tekening laat maar 1 veel
voorkomende situaties zien, in de werkelijkheid kunnen er wel 20 stations op 1
frequentie zitten met een dergelijke situatie, wat het probleem alleen maar
groter maakt.
2.2 DAMA, de oplossing?
Kort geleden werd een nieuw protocol gepubliceerd, genaamd
DAMA. DAMA staat voor Demand Assigned Multiple Acces. De gedachtengang achter
dit protocol is, dat er meestal minimaal 1 node, of zoals in bovenstaand
voorbeeld, 1 BBS, wordt geconnect door bijna alle gebruikers op die frequentie.
De oplossing is gebaseerd op het 'master-slave' principe. Het BBS, of node, is
altijd master op een frequentie in een gebied. Als een gebruiker connect,
gebeurt dit volgens de gewone CSMA methode. Dit zal botsingen veroorzaken, maar
omdat connecten een fractie is van de totale geconnecte tijd, is dit geen
probleem.
Als een node een connect-frame ontvangt, wordt de call van het
station in een lijst gezet, en de gebruiker krijgt een bevestiging (UA- ). Vanaf
dat moment, kan de gebruiker alleen zenden, als de node of BBS hem daar
toestemming voor geeft (een soort token-ring dus). De node pollt alle stations
in de lijst in die volgorde, en vraagt het station of het iets te versturen
heeft. Als een station geen I-frames heeft om te versturen, zal het alleen een
RR frame versturen, om aan te geven dat het nog steeds aan staat. Als een node
een RR frame ontvangt, wordt het station overgeslagen in de volgende ronde, om
onnodige overhead te voorkomen.
Omdat de node alle modems controleert, die met hem geconnect
zijn, wordt optimale prestatie gegarandeerd door de node. Gebruikers zenden
alleen als ze worden gepold, en dus zullen er nagenoeg geen botsingen voorkomen.
Op deze manier kunnen mensen met 1 Watt en een slechte antenne evenveel doorvoer
ervaren als iemand met 100 Watt en een beam die het BBS 'platschreeuwt'.
Met dit protocol kunnen 1200bps modems, die allemaal zijn
uitgerust met DAMA, een hogere doorvoer hebben, dan een evengrote groep
gebruikers met 9600bps modems en CSMA. Ook kunnen DX- verbindingen makkelijker
gemaakt worden, en zal je niet gedisconnect worden als er 'te veel' gebruikers
op een kanaal zitten. Bij gebruik van DAMA kan een kanaal nooit verzadigen,
omdat bijna alle frames die verstuurd worden, worden bevestigd worden door de
master.
3. Laag-verzadiging
Als het gezamenlijke aantal bytes, verstuurd door de stations
op een frequentie, de maximale doorvoer voor die frequentie overtreft, is het
kanaal verzadigd (congested). De prestatie van het kanaal stort drastisch in
elkaar en de stations gaan hun frames her-uitzenden omdat ze niet aangekomen
zijn, zodat de situatie alleen maar erger word. Normaliter versterkt een
verzadigings-situatie zichzelf in de meeste netwerk omgevingen, hoewel de
verzadiging dan meestal een gevolg is van RNR's, zoals bij een LAN. Bij AX.25 is
verzadiging bijna altijd het gevolg van een te groot aantal gebruikers op een
kanaal, die allemaal als eerste hun frames willen versturen. In de volgende
grafiek kunnen we zien wat er gebeurt als een kanaal verzadigd wordt. (In de
grafiek nemen we aan, dat een packet modem ideaal is, met een tx-delay van 0
etc.)

Figuur 2.
Zoals we kunnen zien, kan een netwerk nooit zijn theoretisch
maximale doorvoer bereiken, maar het kan er erg dicht tegenaan zitten. Als er
twee gebruikers op 1 frequentie zitten, kunnen ze de 'gewenste doorvoer'
bereiken, zoals in de grafiek getekend. Bijna alle frames worden dan bevestigd.
Bij een verzadigings situatie stort de efficiency letterlijk in elkaar, omdat
het station constant zijn frame herhaalt, welke zelden bevestigd wordt door het
constant toenemende aantal botsingen. We kunnen zien, dat de verzadigde doorvoer
kan worden geschreven als:
S=G x e -G
Als G=1, is de maximale doorvoer bereikt (gemarkeerd met een *
in de grafiek). Als G, is de doorvoer minder, door het gebrek aan frames.
Tussen twee frames wordt het kanaal niet gebruikt, zodat de
theoretische efficiency daalt. Als G1, is het kanaal (erg) verzadigd, door een
lawine van botsingen.
3.1 Botsing?
Een botsing ontstaat wanneer twee (of meer) modems
tegelijkertijd een frame proberen uit te zenden, daarbij andere frames
beschadigend. Het heeft dus niets van doen met slecht rijden, maar met slechte
parameter instellingen, slechte antenne's etc.
4. Let op het monitor-scherm
Als je kijkt naar de frames, die langskomen in het monitor
scherm van je packet programma, kun je zien, dat er vaak een grote 'overhead'
is. Dat is informatie die niet door de gebruiker ingetypt werd, maar gebruikt
word om de verbinding in stand te houden. Hier volgt een korte beschrijving van
die frames:
4.1 Ongenummerde frames
4.1.1. SABM (Set Asynchronus Balanced Mode)
Dit frame wordt gebruikt om twee packet stations in dezelfde
modus te zetten. Bij X.25 zijn de stations inderdaad Asynchroon, maar bij AX.25
is dit onzin, en dus is Asynchroon geen onderdeel van het protocol. Een SABM
frame dient als een 'connect request'. Het ontvangende station zal een UA- frame
versturen als het de verbinding accepteert, en een DM- als het de verbinding
weigert.
4.1.2. DISC (DISConnect)
Dit frame wordt verstuurd als een verbinding wordt verbroken.
Het ontvangende station zal zo snel mogelijk een UA- versturen. Als dit frame is
ontvangen door de zender van de DISC, is de verbinding verbroken.
4.1.3. FRMR (FRaMe Reject)
Dit frame zou normaliter niet in een verbinding voor moeten
komen. Het betekent, dat een ontvangen frame niet kon worden gedecodeerd, en dat
de fout niet kan worden opgelost door het frame opnieuw te versturen. Het FRMR
frame bevat 3 bytes met een foutmelding. Deze frames zijn vaak het resultaat van
twee stations met hetzelfde SSID, die op dezelfde frequentie werken. Een FRMR
resulteert altijd in een disconnect.
4.1.4. UA (Unnumbered Acknowledge)
Het UA-frame wordt gebruikt om een SABM of DISC frame te
bevestigen. De 'connect' of 'disconnect' wordt alleen uitgevoerd na versturing
van dit frame.
4.1.5. UI (Unnumbered Information)
UI frames bevatten commando's en berichten, die gebruikt
worden om un-protocolled berichten te versturen, zoals een baken.
4.2 Genummerde frames
4.2.1. RR (Receiver Ready)
Dit frame wordt gebruikt om aan te geven, dat een station
klaar is om het volgende frame te ontvangen. Het wordt ook gebruikt om een I-
frame te bevestigen, wat wordt aangegeven door het nummer van het I- frame te
versturen wat het bevestigd. Bij Packet Radio kunnen we deze frames veelvuldig
zien. Ze worden gebruikt om het tegenstation te 'pollen', om te kijken of het
nog in de lucht is. Deze frames veroorzaken veel botsingen. Dit kan worden
voorkomen door juiste timer instellingen.
4.2.2 RNR (Receiver Not Ready)
Dit frame wordt gebruikt om aan te geven dat het ontvangende
station bezig is, en geen frames kan ontvangen op dit moment. Dit is ook wel
bekend als een 'choke' frame (als in verslikken), wat wordt verstuurd als b.v.
de buffer van de TNC vol is. Normaliter komt dit frame niet vaak voor, tenzij er
een upload wordt gedaan naar een langzaam systeem met een Floppy-disk-drive,
zodat het modem sneller is dan de drive.
4.2.3 REJ (REJect)
Een Reject frame wordt verstuurd, om het tegenstation aan te
geven, dat het zijn laatste I-frame opnieuw moet versturen. Met veel QRM op het
kanaal zijn deze frames vaak te zien. Om de kans te beperken op een incorrect
ontvangen frame, zou men de frame lengte tot een minimum moeten beperken, b.v.
64 bytes. De kans, dat een kort frame wordt verstoord is merkbaar kleiner, en
minder REJ frames zullen worden verstuurd. Op deze manier zal er minder overhead
ontstaan, en de doorvoer zal toenemen. Het zendende station zal ALLE frames
versturen vanaf het frame, dat fout ging, dus kun je je voorstellen dat maxframe=7
in dit geval de doorvoer geen goed zal doen.
5. Parameters
Zoals eerder besproken moet bij p persistent CSMA de
persistence ingesteld worden naar het aantal gebruikers op het kanaal (p formule
zie boven). Mensen denken meestal te simpel over parameters, en het effect, dat
ze hebben op de algehele kanaal prestaties. Misschien loopt jou verbinding
fantastisch, maar andere gebruikers kunnen vele botsingen hebben, en zelfs
disconnects na grote aantallen retries. Experimenteer daarom niet in je eentje,
maar communiceer met andere gebruikers op de frequentie!
5.1 12 Users
Theoretisch voorbeeld
In het volgende voorbeeld zullen we kijken naar een groep van
12 gebruikers op een frequentie. Alle gebruikers kunnen elkaar horen en
gebruikers zijn, willekeurig met elkaar geconnect, op zo'n manier, dat er
ongeveer 12 verbindingen zijn. We nemen even aan, dat dit een erg sociaal
voelende groep is, en allemaal dezelfde parameters hebben. Verschillende
theoretische en praktische experimenten werden gedaan om deze situatie te
bestuderen. Iedere situatie kan erg verschillen, dus experimenteer alsjeblieft
zoveel mogelijk met parameters. Er zijn miljarden combinaties, het is aan jou om
de juiste te vinden. Met ongeveer 12 gebruikers op een kanaal zouden de volgende
parameters moeten voldoen om de optimale situatie te bereiken. (Alleen de meest
belangrijke parameters worden hier besproken.)
5.1.1 Persistance
Dit is een makkelijke parameter. Uit P=1/users+1 kunnen we
simpelweg berekenen dat p=1/13. Vermenigvuldigen we dit met 255 voor de meeste
modems, komen we op een persistence van 20.
5.1.2 Frack timer
Deze timer beslist of er een 'time slot' voorbij is waarin een
kans is gemist om een frame te versturen. Een snelle timer resulteert in veel
botsingen, omdat na een aantal time-slots het modem geforceerd wordt, om zijn
frame te versturen. Bij 12 gebruikers kan deze timer op 4 gezet worden, en bij
minder gebruikers kan de timer gereduceerd worden tot zelfs 2. Wees hier echter
voorzichtig mee, want de effecten van deze timer op de prestaties van een kanaal
zijn erg complex. Het is te berekenen, maar ik ga je nu niet vervelen met een
saaie algebra‹sche vergelijking.
5.1.3 MaxFrames
Het maximum van uitstaande frames is afhankelijk van het
aantal botsingen en QRM op het kanaal. De beste manier om dit in de gaten te
houden, is het aantal REJ frames te tellen van het tegenstation. Hoe meer REJ
frames, hoe minder frames er uit mogen staan. In ons voorbeeld werd door
berekening aangetoond, dat de doorvoer 67.5% was, wat aan de hoge kant is, in
vergelijking met een alledaags packet kanaal. Bij berekening van hetzelfde
voorbeeld met het DAMA protocol, werd de doorvoer zelfs 75%, een flinke
verbetering. Het maximum aantal uitstaande frames kwam in ons voorbeeld uit op
4. (hierbij werd uitgegaan van een pakket lengte van 128 bytes)
5.1.4 PacLen
In ons voorbeeld namen we eerst aan, dat QRM 0 zou zijn, zodat
een PacLen van 256 werd voorgesteld. Dit zou echter geen realistische weergave
van de werkelijkheid geven. Statistisch gezien heeft een pakket van 128 bytes
gemiddeld een kans van 68.3% om de ontvanger zonder errors te bereiken. Dit is
acceptabel, omdat de overhead op dit punt minimaal is. Het verhogen van de
PacLen verhoogt het aantal REJ frames, en verlagen van de PacLen zou teveel PID
overhead creëren.
5.1.5 Acknowledge Timer @T2
Zodra een frame is ontvangen, wordt een bevestiging gestuurd
binnen de tijds-limiet van T2. Door T2 1.4 seconden te maken, werd de doorvoer
maximaal in ons voorbeeld. Daarom stelde ik voor, de timer op 2 seconden te
zetten in ons experiment.
5.1.6 Slottime
Als een modem beslist om zijn frame NIET uit te zenden, door
zijn eigen persistence of doordat een carrier van een ander modem werd
gedetecteerd, wacht het modem een tijdje, voordat het zijn beslissing herziet.
De tijd tussen deze beslissingen wordt slottime genoemd, en door deze tijd te
verkleinen, wordt het modem agressiever, omdat het aantal pogingen per
tijdseenheid groter wordt, is de kans op uitzending van een frame, ook geregeld
door 'p', groter. Dit resulteert in meer botsingen. Deze timer wordt ook
gebruikt, om de 'decision-latency' van een modem te compenseren. Dat is de tijd
tussen de beslissing om uit te gaan zenden, en het daadwerkelijk inschakelen van
de zender. De slottime wordt ook vaak 'wait' of 'dwait' genoemd. Een acceptabele
waarde is 3 in ons voorbeeld.
6. Referenties
De volgende boeken werden gebruikt om dit artikel te schrijven: