Jos rakennat ohjelmistoa, joka koskettaa Link 16:ta, lakkaat ennemmin tai myöhemmin puhumasta aaltomuodoista ja alat puhua sanomista. Aaltomuoto hankkii sinulle aikavälin; J-sarja on se, minkä laitat siihen. J-sanomakatalogi on se osa Link 16:ta, jonka insinööritiimi tosiasiassa toteuttaa, testaa ja jäljittää aamukolmelta, kun jälki ei ilmesty tilannekuvaan. Tämä on kenttäopas tuohon katalogiin: J-sanan rakenne, merkitykselliset sarjat ja koodekkimallit, jotka estävät protokollaa myrkyttämästä toimialamalliasi.
1. mikä J-sarja on
J-sarja on Link 16:n kiinteämuotoinen binäärinen sanomakatalogi, joka on määritelty standardissa MIL-STD-6016 ja peilattu Natossa STANAG 5516:een. "TADIL-J" on vanhempi yhdysvaltalainen nimitys samalle asialle — Tactical Digital Information Link, J-series — ja näet sen edelleen vanhemmissa rajapintamäärittelyissä ja ohjelmadokumentaatiossa. Kun ihmiset sanovat alustan olevan "J-kykyinen", he tarkoittavat, että se osaa koodata ja purkaa tämän katalogin.
Katalogi on järjestetty sarjoiksi, jotka on numeroitu J2:sta J31:een, kukin ryhmittäen sanomat toiminnon mukaan: sijainti, valvonta, tiedonhallinta, aseet, ohjaus, tila ja vapaa teksti. Jokainen sanoma on kiinteä bittiasettelu — ei pituusetuliitteitä, ei kenttätunnisteita, ei itsekuvausta. Sekä kooderi että dekooderi pitävät MIL-STD-6016:n kenttäkartan koodissa, eivätkä siirtotien bitit merkitse mitään ilman sitä. Tuo jäykkyys on koko pointti: se poistaa sanomakohtaisen yleisrasitteen, mikä on merkityksellistä, kun siirtobudjettisi on murto-osa TDMA-aikavälistä. Jos katalogin alla oleva kantoaalto on sinulle uusi, selityksemme aiheesta Link 16 taktiset datalinkit käsittelee aaltomuodon, TDMA-ajoituksen ja verkkoarkkitehtuurin, joilla J-sarja kulkee.
2. sanan rakenne
J-sarjan atomiyksikkö on 70-bittinen sana. Jokainen sana kuljettaa 70 bittiä sanoman sisältöä sekä pariteetin ja bitit, jotka päätelaite lisää aikavälille — mutta sanomatasolla päättelet 70-bittisin sanoin. J-sanoma on näiden sanojen jono määritellyssä järjestyksessä: alkusana, nolla tai useampi laajennussana ja nolla tai useampi jatkosana.
Alkusana kuljettaa sanoman tunnisteen — kenttäparin, joka yksilöi sanoman vaikkapa J3.2:ksi — sekä ensimmäisen hyötykuormalohkon. Alkusanan viisi ensimmäistä bittiä ovat sanan formaatti ja tunnisterakenne; tunniste (5-bittinen Label ja 3-bittinen Sub-Label) kertoo dekooderille, mitä sarjaa ja sanomaa se lukee, ja siten miten tulkita jokainen sitä seuraava bitti. Laajennussanat kuljettavat pakollisia lisäkenttiä, jotka eivät mahtuneet alkusanaan. Jatkosanat kuljettavat valinnaisia kenttiä, joista kukin on merkitty jatkosanan formaattinumerolla (Continuation Word Format Number), jotta dekooderi tietää, mitä valinnaista lohkoa se jäsentää.
Sanat pakataan TDMA-aikaväleihin käytössä olevan pakkausrakenteen mukaisesti — Standard Double Pulse, Packed-2 tai Packed-4 — jotka vaihtavat häirinnänkestoa kapasiteettiin sovittamalla vastaavasti 3, 6 tai 12 sanaa aikaväliin. Varabitit ovat yleisiä: kun MIL-STD-6016 varaa kentän tulevaa käyttöä varten, se on lähetettävä nollana ja jätettävä huomiotta vastaanotettaessa. Varakenttien ja "ei ilmoitusta" -arvojen virheellinen käsittely on yksi yleisimmistä virheellisten purkujen lähteistä.
3. J2-sarja
J2-sarja on PPLI — Precise Participant Location and Identification — ja se on Link 16 -verkon sydämenlyönti. Jokainen aktiivinen osallistuja lähettää oman PPLI:nsä toistuvasti, jotta kaikki muut tietävät, missä se on, kuka se on ja mihin se kykenee. PPLI on tapa, jolla verkko järjestää itsensä: suhteellinen navigointi, tunnistus ja verkonhallinta nojaavat kaikki siihen.
J2-sanomat on jaettu alustan toimialueen mukaan. J2.0 on epäsuoran rajapinnan PPLI, jota käyttävät verkkoon välitetyt yksiköt; J2.2 on ilma-PPLI; J2.3 on pinta- (meri-) PPLI; J2.5 on maa-PPLI. Kukin kuljettaa osallistujan sijainti-, nopeus-, tunnistus- ja kykykentät, jotka soveltuvat sen toimialueeseen. Syy siihen, miksi jokainen yksikkö lähettää oman PPLI:nsä sen sijaan, että muut seuraisivat sitä, on eheys: osallistuja on oman sijaintinsa ja tunnisteensa arvovaltainen lähde, mikä poistaa kokonaisen luokan korrelaation moniselitteisyyttä. Kun yksikkö katoaa tilannekuvasta, ensimmäinen asia, jonka operaattori tarkistaa, on saapuuko sen PPLI yhä.
4. J3-sarja
J3-sarja kuljettaa valvontaa — jäljet, jotka muodostavat taktisen tilannekuvan asioista, jotka eivät ilmoita omaa PPLI:tään. Missä J2 on "tässä olen minä", J3 on "tässä on jotain, jonka näen". Sarja on jaettu jäljen toimialueen mukaan: J3.2 on ilmajäljet, J3.3 on pinta- (meri-) jäljet, J3.5 on maapiste ja maajälki. Lisäksi on J3.0 (vertailupiste), J3.1 (hätäpiste), J3.4 (vedenalainen), J3.6 (avaruusjälki) ja J3.7 (elektronisen sodankäynnin tuote).
Jokainen valvontasanoma kuljettaa jälkinumeron, sijainnin, suunnan ja nopeuden sekä tunnistus- ja jäljen laatu -kentät, jotka ohjaavat operaattorin päätöksiä. Jäljen laatu (Track Quality) on pieni kokonaisluku, joka tiivistää sijainnin luotettavuuden; tunnistuskentät koodaavat vakiotaksonomian — Pending, Unknown, Assumed Friend, Friend, Neutral, Suspect, Hostile — alusta- ja toimintakoodien ohella. Purkamisen hienovaraisuus tässä on raportointivastuu: kaksi yksikköä voi raportoida saman fyysisen kohteen eri jälkinumeroilla, ja verkon korrelaatio- ja ristiriidanratkaisulogiikka, ei itse J3-sanoma, päättää, kumpi raportti voittaa.
Keskeinen oivallus: J-sarjalla ei ole käsitettä "ei arvoa" muutoin kuin nimenomaisina "ei ilmoitusta" -koodeina, jotka on leivottu jokaiseen kenttään. Leveysastekenttä ei ole nollattavissa — se on aina 25 bittiä jotakin. Jos koodekkisi mappaa "ei ilmoitusta" -suunnan tai pelkkiä nollia sisältävän varakentän todelliseksi arvoksi 0.0 toimialamallissasi, piirrät jäljen, joka istuu päiväntasaajalla nollasolmun nopeudella. Käsittele jokaisen kentän "ei ilmoitusta" -koodaus ensiluokkaisena tapauksena, ei jälkiajatuksena.
5. J7/J9-sarja
Kun sinulla on sijainti (J2) ja valvonta (J3), verkon on hallittava tuota tietoa: se on J7-sarja. J7.0 on osoitin- / korrelaatiosanoma — se antaa yhden yksikön osoittaa toista yksikköä tiettyyn jälkeen tai vahvistaa, että kaksi jälkinumeroa viittaavat samaan kohteeseen. J7.1 on IFF/SIF-hallinta, J7.2 on jäljenhallinnan luovutus ja J7.3 on korrelaatio-/dekorrelaatiodirektiivi. J7-sarja on se, mikä muuttaa kasan itsenäisiä raportteja johdonmukaiseksi, ristiriidoista puhdistetuksi yhteiseksi tilannekuvaksi.
J9-sarja on johtaminen ja aseiden koordinointi. J9.0 on käskysanoma — virallinen mekanismi, jolla johtava yksikkö antaa direktiivin johdetulle yksikölle. Tässä Link 16 lakkaa olemasta passiivinen lähetysväylä ja muuttuu käskykanavaksi: osoitus, sitoutumisohjaus ja tukeva koordinointi kulkevat J9:n läpi yhdessä J12-ohjaussarjan kanssa. Insinööritiimit, jotka kohtelevat Link 16:ta vain luettavana telemetriana, yllättyvät aina ensimmäisen kerran, kun heidän on luotava J9.0.
6. J10/J12/J13
J10-sarja on aseiden koordinointi ja hallinta. Se kuljettaa sitoutumistilaa, aseiden ja maalien parituksen, sitoutumisen luovutuksen yksiköiden välillä sekä lennonaikaisen raportoinnin, jota ilmapuolustusverkko tarvitsee ampujien ristiriitojen ratkaisemiseen. J10.2 (sitoutumistila) ja J10.5 (asedirektiivi) ovat työjuhdat; niiden virheellisyys ei tarkoita puuttuvaa kuvaketta, vaan sitä, että kaksi yksikköä sitoutuu samaan uhkaan tai kumpikaan ei sitoudu siihen.
J12-sarja on ohjausta: opastus, tehtävän osoitus ja maalien lajittelu. J12.0 on tehtävänosoitussanoma, joka antaa johdetulle ilma-alukselle sen tehtävän; J12.6 on maalien lajittelusanoma. J12 on se sarja, joka tekee Link 16:sta hävittäjänohjausvälineen pelkän tilannetietosyötteen sijaan. J13-sarja on alustan ja järjestelmän tila — J13.2 ilma-alusta, J13.3 pinta-alusta, J13.4 vedenalainen, J13.5 maa-alusta — raportoiden polttoaineen, asevaraston ja järjestelmävalmiuden, jotta ohjaaja tietää paitsi missä yksikkö on, myös mihin se yhä kykenee.
7. vapaa teksti ja pisin tolppa
J28-sarja on vapaa teksti ja siihen liittyvät sanomat — J28.0 on tekstisanoma, joka kuljettaa ihmisen luettavissa olevia merkkijonoja, kun mikään rakenteinen sanoma ei sovi. Se on varauloskäynti, ja kuten jokainen varauloskäynti, sitä ylikäytetään; verkko, joka nojaa J28-vapaatekstiin asioissa, joiden pitäisi olla rakenteisia J-sanomia, on verkko, jonka automaatio on luovuttanut. J31 on hallintasarja — J31.0 kattaa lennonaikaisen uudelleenavainnuksen ja aikavälien uudelleenjaon huoltotoimet, jotka pitävät salausverkon terveenä.
Pisin tolppa missä tahansa J-sarjan toteutuksessa eivät ole yleiset sanomat — J2 ja J3 ovat hyvin tallattuja. Se ovat sudenkuopat. Bittien tavujärjestys sanan sisällä kompastuttaa lähes jokaisen ensimmäisen toteutuksen: MIL-STD-6016 numeroi bitit tietyssä järjestyksessä, ja kentän lukeminen merkitsevin bitti ensin, kun standardi pakkaa sen vähiten merkitsevä bitti ensin, tuottaa uskottavan näköistä roskaa. Käytöstä poistetut ja varatut kentät ovat toinen ansa: standardit kehittyvät, kentät poistuvat käytöstä, ja vanha lähetin saattaa asettaa bittejä, jotka tiukka uusi dekooderi hylkää. Rakenna sietokyky varatuille biteille ja tarkkuus varabiteille.
8. J-sarjan koodekin rakentaminen
Arkkitehtuuri, joka selviää kosketuksesta, on kaksipinoinen sovitinmalli. Taistelujärjestelmäsi tai C2-sovelluksesi ylläpitää taktista tilannekuvaansa sisäisessä toimialamallissa — jäljet, osallistujat, sitoutumiset — joka ei tiedä mitään Link 16:sta. Protokollasovitinkerros sijaitsee tuon mallin ja päätelaitteen välissä, kääntäen toimialamallia J-sarjan sanoiksi siirtotiellä ja takaisin. Pääsääntö: älä koskaan anna protokollan vuotaa toimialamalliin. Jälki ytimessäsi ei saa kantaa "J3.2 sana 2 bitti 14" -kenttää; sen tulee kantaa sijaintia ja tunnistetta, ja sovitin omistaa mappauksen. Sama kuri pätee jokaiseen sillattavaan protokollaan, mikä on käytännön Nato-yhteentoimivuuden ydin — VMF, Link 22 ja JREAP-tunneloitu J-sarja muuttuvat kaikki sovittimiksi yhtä kanonista mallia vasten.
Testaa koodekkia vektoreita vasten, ei elävää verkkoa vasten. MIL-STD-6016 ja sen testipaketit tarjoavat vertailubittikuviot jokaiselle sanomalle; koodaa tunnettu toimialaobjekti, vertaa tavuja vektoriin, pura sitten vektori takaisin ja vertaa objektia. Kierrätä edestakaisin jokainen tukemasi sanoma ja varmista, että "ei ilmoitusta" -kentät selviävät matkasta "ei ilmoitusta" -arvoina romahtamatta nollaksi. Kun lisäät tuen uudelle J-sanomalle, lisäät sovittimen ja sen vektorit — et koske toimialamalliin etkä muuhun pinoon. Tuo eristys on se, mikä antaa sinun imeä Link 16 -lohkopäivityksen vaihtamalla yhden sovittimen sen sijaan, että regressiotestaisit koko taistelujärjestelmän.