APRS iGaten ominaisuudet

Radioamatööriwikistä
Versio hetkellä 1. joulukuuta 2007 kello 23.26 – tehnyt >Oh2mqk (formatoinnin säätöä)
Siirry navigaatioon Siirry hakuun

APRS igate on sovellus, joka kuuntelee radion kuulemia APRS paketteja ja välittää niitä internettiin APRS-IS verkkoon. Sovelluksen on myös mahdollista välittää paikkatietoja APRS-IS verkosta radiolle tietyin rajoituksin.

APRS igate ei yleensä ole Digipeater, vaan siihen on eri sovellus. igate kuitenkin tyypillisesti ottaa paketteja vastaan myös samassa laitteessa toimivalta Digipeaterilta.

APRS-IS yhteys

APRS-IS:ään yhteys muodostetaan johonkin seuraavista palvelimista:

  • finland.aprs2.net
  • rotate.aprs.net

Molemmissa tapauksissa jokaisella kerralla kun yhteyttä muodostetaan, nimi pitää resolvoida IP numeroksi, eikä sitä tulosta saa laittaa pysyvään käyttömuistiin, sillä näiden nimien takana on useita koneita ja kuormaa jakaakseen niihin yhteyden ottamisten pitäisi antaa jakautua "satunnaisesti". Jos nimi antaa useita IP numeroita, nämä kannattaa uudelleenjärjestellä satunnaiseen järjestykseen, koska jotkin systeemikirjastot ja resolverit haluavat järjestää saamansa osoitteet jollakin kriteerillä.

Suositeltava porttinumero kummassakin tapauksessa on: 14580, joka mahdollistaa käyttäjän määritellä suotimen, jolla valikoidaan APRS-IS:stä igate:lle tulevia paketteja.

Kirjautuminen APRS-IS:ään tcp-yhteyden muodostumisen jälkeen: vähintään:

call <igaten kutsu> pass <kutsun passcode>

softaversion kanssa:

call <igaten kutsu> pass <kutsun passcode> vers <ohjelman_nimi ja versio>

suotimen kanssa (suodinta ei rx-igatessa käytännössä tarvita, koska igate välittää liikennettä vain yhteen suuntaan):

call <igaten kutsu> pass <kutsun passcode> vers <ohjelman_nimi ja versio> filter <suodinteksti>

esimerkiksi:

call OH9XYZ-13 pass 12944 vers munsofta 0.0.1 filter a/72/16/58/34 p/OF/OG/OH/OI/OJ

Vastaanotettaessa #-merkillä alkavat rivit ovat kommentteja ja APRS-IS-sovelluksen omaa kohinaa, jolla ei ole määrämuotoa. Ne voi siis jättää huomiotta.

Kerrallaan saa olla vain yksi TCP-yhteys APRS-IS-palvelimeen, mutta TCP-yhteyden hereilläoloa kannattaa tarkkailla ja tarpeen mukaan vaihtaa yhteys johonkin toiseen APRS-IS-palvelimeen.

Vaikka radioverkossa ei olisikaan paikallisia tapahtumia, yllä mainitut APRS-IS järjestelmät käyttävät javAPRSSrvr ohjelmistoa joka juttelee "sydämenlyöntiään" TCP yhteydelle noin kerran 20 sekunnissa. Jos valvoo että TCP-yhteydeltä ei ole tullut mitään luettavaa 120 sekuntiin ja silloin sulkee vanhan yhteyden, ynnä avaa uuden normaalin käynnistysmenettelyn mukaisesti, systeemin pitäisi tuolloin huomata verkon häiriöt ja toipua niistä automaattisesti ja riittävän ripeästi. Huomaa: Kaikki palvelinohjelmistot eivät anna tällaista "sydämenlyöntiä" yhteyksilleen! Vastaavan toiminnan jollain muulla voi saada aikaan käyttämällä suodintoimintoja ja pyytämällä jonkin laajemman alueen datavirtaa, jolloin on melko jatkuva liikenne APRS-IS:stä igate:lle — tällöin linjavalvonnan valvonta-ajastinta virkistetään tiheään, vaikka ei olisi tarkoituskaan välittää mitään verkosta radiolle. (Kohtuus siinä datavirrassakin!)

Jos yhteyden muodostus epäonnistuu, ei kannata heti yrittää uudestaan, vaan odottaa 15-30 sekuntia ennen kuin aloittaa uuden yhteyden muodostamisen yrittämisen. (Näin ohjelma ei pyöri villinä paikallaan.)

RX-igatelta vaadittavia ominaisuuksia

APRS-IS:n tekijöiden Gating criteria dokumentti kertoo oleellisimmat, tässä selostetaan hieman lisää.

APRS-IS verkkoon lähetettäessä kaikki paketit (= rivit) päätetään CR/LF-yhdistelmään. Jos paketissa itsessään on sisältönä CR tai LF merkkejä, katkaistaan paketti juuri ennen ensimmäistä tällaista merkkiä ja lisätään perään normaali CR/LF.

Radiolta paketteja vastaanotettaessa päätetään paketti ensimmäiseen vastaanotettuun CR:ään tai LF:ään.

Kaikkien bandilta kuultujen pakettien sisältö välitetään sellaisenaan (huomioi myös nollatavujen mahdollisuus pakettien sisällössä - vaikkakin C-koodit eivät niitä käytännössä tue!) APRS-IS:ään seuraavin poikkeuksin:

  • Kaikkien pakettien headerit tarvittaessa muutetaan ns. TNC2-muotoon (mm. KISS-paketit ja PK232-formaattiset), eli LAHDE-4>KOHDE-5,POLKU*,POLKU2:paketin datasisältö. Jos polkuosa on tyhjä, lyhenee paketti muotoon LAHDE-4>KOHDE-5:paketin datasisältö. Jos SSID on nolla, jätetään SSID ja sitä edeltävä väliviiva pois. Huomioi myös alempana mainittu igaten "signeeraus".
  • Dataosaltaan '}'-merkillä (ASCII koodi 125) alkavia paketteja (ns. 3rd party) ei välitetä APRS-IS:ään, koska ne on jo kertaalleen Internet→RF suunnassa välitetty, jolloin voisi aiheutua looppi
  • Dataosaltaan '?'-merkillä alkavia (ns. generic query) ei välitetä APRS-IS:ään.
  • Ei välitetä radiolle paketteja, joiden polussa esiintyy TCPIP, TCPXX, koska tällaisen paketin voi olettaa tulleen väärin toimineesta igate:sta.
  • Jos paketin polussa missä kohdassa tahansa on merkkijono RFONLY tai NOGATE, ei pakettia välitetä. Lisäämällä tämän pakettinsa polkuun käyttäjä voi halutessaan kieltää paketin välittämisen APRS-IS:ään
    • igate:n operaattori voi kuitenkin halutessaan valita välittää tällaisetkin paketit APRS-IS:ään. Pääsääntöisesti se on kuitenkin kiellettyä.
  • CR/LF-käsittely kuten yllä on kuvattu, eli paketti päätetään ensimmäiseen CR:ään tai LF:ään.
  • Hienompi sovellus voi lisäksi pitää kirjaa äskettäin sekä bandilta että internetistä "kuulluista" paketeista ja olla välittämättä jo kuultuja paketteja. Mahdollinen duplikaattipakettien tunnistusmekanismi kuvataan alla.

Duplikaattipakettien tunnistus tarkistussummalaskennalla

Jotta igate ei tarpeettomasti toistelisi nettiin tai varsinkaan radiolle paketteja jotka se on saanut jo aiemmin jommasta kummasta suunnasta, paketista voidaan laskea tiiviste (hash, tarkistussumma) ja pitää niistä kirjaa muistissa.

Tämän voi tehdä esimerkiksi niin, että ylläpitää tarkistussummakantaa, johon lasketaan jokaisen paketin "sisimmästä" AX.25 lähdeosoitteesta (call-ssid), kohdeosoitteesta (call, mutta ei ssid eikä myöskään polku) ja datakentän sisällöstä, mahdollisesti lopussa olevat välilyönnit poistaen tarkistussumma, sekä aikaleima.

Jos esimerkiksi viimeisen 60 sekunnin aikana kuullaan sama paketti uudestaan, ei sitä tarvitse turhaan välittää. Muista myös tyhjentää tarkistussummakannasta vanhentuneet tarkistussummat.

Paketin lopun välilyönnit jätetään tarkistussummalaskennassa huomiotta siksi, että jotkut igate-ohjelmat lisäävät tai poistavat välilyöntejä pakettien lopuista, jolloin välilyöntien määrän vaihdellessa tarkistussumma voisi muuttua. Paketti kuitenkin välitetään aina alkuperäisen määrän välilyöntejä sisältävänä.

Esimerkiksi seuraavassa paketissa tarkistussummalaskentaan otetaan mukaan "OH2XYZ-11", "APZYXW" ja ">pakettia":

"OH2XYZ-11>APZYXW-4,RELAY,WIDE:>pakettia  "

samoin seuraavasta kertaalleen välitetystä paketista otetaan mukaan vain "OH2XYZ-11", "APZYXW" ja ">pakettia", jotta eri asemien välittäessä saman paketin ne tuottavat saman tarkistussumman:

"OH1YYY>APRS,WIDE:}OH2XYZ-11>APZYXW-4,TCPIP,OH1YYY*:>pakettia  "

lopuksi kaikkiin APRS-IS:ään välitettyihin paketteihin lisätään polkuosan loppuun "qAR," ja igaten kutsu, esimerkiksi

"qAR,OH1YYY-3"

Eli bandilla kuultu paketti

"OH2XYZ-11>APZYXW-4,RELAY*,WIDE:>pakettia  "

välitettäisiin APRS-IS:ään muodossa

"OH2XYZ-11>APZYXW-4,RELAY*,WIDE,qAR,OH1YYY-3:>pakettia  "

RX/TX-igatelta vaadittavia ominaisuuksia

Ensinnäkin: APRS-IS→RF igate:n ei ole tarkoitus olla rakentajansa egon pönkittäjä ja liikkuvien asemien käyttämän kanavan tukkija

APRS-IS:n tekijöiden Gating criteria dokumentti kertoo oleellisimmat, tässä selostetaan lisää.

Kanavan tukkimisen välttäminen on tärkeää ja siksi kaksisuuntaisen igate:n kanssa tarvitaan RX-igaten ominaisuuksien lisäksi seuraavia.

Kunnollinen suodatus internetistä bandille välitettävälle liikenteelle:

  • Ei välitetä bandille paketteja jotka on jo bandilla esim. viimeisen viiden minuutin sisään kuultu, joko suoraan tai jonkun toisen välittämänä (ks. tarkistussumma-algoritmi yllä). Ei välitetä bandille APRS-IS:stä saatuja paketteja jotka on jo kuultu bandilta tai jotka on lähetetty bandille viimeisen viiden minuutin sisään.
  • Välitetään ylipäätään vain paikkatietoa sisältäviä paketteja, ei telemetriaa tai muuta kohinaa joissa ei ole paikkatietoa. (Tämä estää "tsättäämisen" APRS-MSG paketeilla.. hyvä tai ei.)
  • Ei välitetä kovin kaukana igaten kohdealueesta olevia paketteja bandille yksinkertaisesti siksi, että ADSL-liittymänkin siirtonopeus on tyypillisesti vähintään tuhat kertaa suurempi kuin 1200 bps AX.25 APRS-kanavan. "Kaukopaketin" voi tunnistaa esimerkiksi sijaintipaketista lähettäjän sijainnin katsomalla ja laskemalla kuinka kaukana se on igaten sijainnista. Tätä sijaintitietoa voi sitten hyödyntää myös muiden ko. lähettäjän pakettien suodattamiseen (esim. statuspaketit, bulletiinit, yms).
  • Poikkeuksena kaukopakettien välittämiskieltoon voidaan pitää APRS-viestejä, silloin kun viestin vastaanottaja tunnetusti sijaitsee igaten lähistöllä (igate pitää kirjaa lähistöllään bandilla sijaitsevista asemista). APRS-viestin yhteydessä bandille voi välittää myös lähettävän aseman sijaintipaketin tai pari, jolloin viestin vastaanottaja näkee missä viestin lähettäjä sijaitsee.
  • Käytetään laajuudeltaan hyvin lyhyttä polkua välitetyille paketeille, esimerkiksi vain WIDE (alias WIDE1-1.) Vaikka välityspaikalla APRS-liikennettä olisi bandilla hyvin vähän, se ei tarkoita sitä, että parin hypyn päässä esimerkiksi isommassa amatöörikeskittymässä olisi yhtä hiljaista. Tällöin ulkopuolelta bandia pitkin "hyppivät" paketit voivat tukkia vilkkaamman alueen.
  • Ei välitetä radiolle paketteja, joiden polussa esiintyy TCPIP, TCPXX, NOGATE tai RFONLY
  • Kaikkien muiden suodattimien jälkeenkin rajoitetaan vielä bandille välitettävien pakettien maksimimäärä aikayksikössä esimerkiksi neljään pakettiin minuutissa. Tämän on tarkoitus toimia eräänlaisena failsafena, että koskaan ei tukittaisi kanavaa ja estettäisi bandilla olevien APRS-asemien toimintaa.
  • Vaihtoehtoisesti pidetään kirjaa kanavan käyttöasteesta. Jos se nousee yli 33% tason (omat lähetykset + kanavan signaalitason nousu FM-ilmaisimen ilmaisukynnyksen yli), rajoitetaan omaa lähettämistä pudottaen ensin pois netistä tulevat paketit, sitten omat RF-beaconit. Liukuvilla ikkunoilla 1 minuutin jaksossa sallitaan 60% käyttöaste, kunhan samanaikaisesti ei ylitetä liukuvassa 5 minuutin jaksossa 33% käyttöastetta.


Internetistä radiolle välitetyt paketit välitetään ns. 3rd party formaatissa, eli esimerkiksi igaten OH4ZZZ-5 saadessa internetistä paketin

"OH2XYZ-11>APZYXW-4,RELAY*,WIDE,qAR,OH1YYY-3:>pakettia  "

välitetään se bandille muodossa

"OH4ZZZ-5>APZ123,WIDE2-2:}OH2XYZ-11>APZYXW-4,TCPIP,OH4ZZZ-5*:>pakettia  "

jossa APZ123 on igate-ohjelmiston käyttämä/tunnistava kohdeosoite, WIDE2-2 igaten käyttämä polku ja OH4ZZZ-5 igaten kutsu, joka siis toistuu sekä AX.25 headerissa, että paketin sisällössä. TCPIP "sisemmän" paketin polussa kertoo että paketti tuli internetistä. Paketin alkuperäinen polku siis poistetaan kokonaan tilaa viemästä.