VERON A63
Friese Wouden
____________





Up
Bijeenkomst
100 maal CQ
COM poorten
Lowe
Packet

 

VERON afdeling Friese Wouden
Afdelingsblad 'CQ Friese Wouden'

Packet

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:

Computer Networks Andrew S. Tanenbaum Prentice Hall / Academic service
Packet Radio Wolf-Dieter Roth De Muiderkring
Datacomm sheets A.W. Habermann Schoolmateriaal van de HogeSchool Haarlem.
Control Systems Engineering Norman S. Nise (Engels) The Benjamin/Cummings publishing company, Inc.

Verder werden er talrijke experimenten gedaan, waardoor menig lokale amateur verdwaasd naar heeft zitten kijken (hi). Bij deze experimenten werden twee typen modems gebruikt, namelijk het BayCom modem, en de TNC2- NL. De software die gebruikt werd om met deze modems te communiceren varieerde van een simpel terminal programma tot Eskay Packet 9.00.

73, Rolf - PE1PTP

(bewerking PAoKDV)