Dacă dezvoltați software care interacționează cu Link 16, mai devreme sau mai târziu încetați să vorbiți despre forme de undă și începeți să vorbiți despre mesaje. Forma de undă vă oferă un interval de timp; seria J este ceea ce puneți în el. Catalogul de mesaje J este partea din Link 16 pe care o echipă de inginerie chiar o implementează, testează și depanează la trei dimineața, când un track nu apare în imagine. Acesta este un ghid practic pentru acel catalog: structura unui cuvânt J, seriile care contează și tiparele de codec care împiedică protocolul să otrăvească modelul de domeniu.

1. ce este seria J

Seria J este catalogul de mesaje binare cu format fix al Link 16, definit în MIL-STD-6016 și reflectat în NATO de STANAG 5516. „TADIL-J" este vechea denumire americană pentru același lucru — Tactical Digital Information Link, seria J — și încă o veți vedea în specificațiile de interfață mai vechi și în documentația de program. Când cineva spune că o platformă este „compatibilă cu J", înseamnă că poate codifica și decodifica acest catalog.

Catalogul este organizat în serii numerotate de la J2 la J31, fiecare grupând mesajele după funcție: localizare, supraveghere, gestionarea informațiilor, armament, control, stare și text liber. Fiecare mesaj are o dispunere fixă de biți — fără prefixe de lungime, fără etichete de câmp, fără autodescriere. Atât encoderul, cât și decoderul dețin harta câmpurilor MIL-STD-6016 în cod, iar biții de pe fir nu înseamnă nimic fără ea. Această rigiditate este intenția: elimină supraîncărcarea per mesaj, ceea ce contează când bugetul de transport este o fracțiune dintr-un interval TDMA. Dacă sunteți nou în privința purtătorului de sub catalog, explicația noastră despre legăturile de date tactice Link 16 acoperă forma de undă, sincronizarea TDMA și arhitectura de rețea pe care călătorește seria J.

2. structura cuvântului

Unitatea atomică a seriei J este cuvântul de 70 de biți. Fiecare cuvânt transportă 70 de biți de conținut de mesaj plus paritate și biții pe care terminalul îi adaugă pentru interval — dar la nivelul de mesaj, raționați în cuvinte de 70 de biți. Un mesaj J este o secvență a acestor cuvinte într-o ordine definită: un cuvânt inițial, zero sau mai multe cuvinte de extensie și zero sau mai multe cuvinte de continuare.

Cuvântul inițial transportă eticheta mesajului — perechea de câmpuri care identifică mesajul ca fiind, de exemplu, J3.2 — plus primul bloc de payload. Primii cinci biți ai cuvântului inițial reprezintă formatul cuvântului și structura etichetei; eticheta (o Etichetă de 5 biți și o Sub-Etichetă de 3 biți) îi spune decoderului ce serie și ce mesaj citește și, prin urmare, cum să interpreteze fiecare bit care urmează. Cuvintele de extensie transportă câmpuri suplimentare obligatorii care nu au încăput în cuvântul inițial. Cuvintele de continuare transportă câmpuri opționale, fiecare etichetat cu un Continuation Word Format Number, astfel încât decoderul să știe ce bloc opțional analizează.

Cuvintele sunt împachetate în intervale TDMA în funcție de structura de împachetare utilizată — Standard Double Pulse, Packed-2 sau Packed-4 — care fac un compromis între rezistența la bruiaj și capacitate, încadrând respectiv 3, 6 sau 12 cuvinte per interval. Biții de rezervă sunt frecvenți: acolo unde MIL-STD-6016 rezervă un câmp pentru utilizare viitoare, acesta trebuie transmis ca zero și ignorat la recepție. Gestionarea greșită a valorilor de rezervă și „no statement" este una dintre cele mai frecvente surse de decodări false.

3. seria J2

Seria J2 este PPLI — Precise Participant Location and Identification — și este bătaia de inimă a unei rețele Link 16. Fiecare participant activ își difuzează propriul PPLI în mod recurent, astfel încât toți ceilalți să știe unde se află, cine este și ce poate face. PPLI este modul în care rețeaua se autoorganizează: navigarea relativă, identificarea și gestionarea rețelei se sprijină toate pe el.

Mesajele J2 sunt împărțite în funcție de domeniul platformei. J2.0 este PPLI cu interfață indirectă utilizat de unitățile retransmise în rețea; J2.2 este PPLI aerian; J2.3 este PPLI de suprafață (maritim); J2.5 este PPLI terestru. Fiecare transportă poziția, viteza, identitatea și câmpurile de capabilitate ale participantului, adecvate domeniului său. Motivul pentru care fiecare unitate își difuzează propriul PPLI în loc să fie urmărită de altele este integritatea: un participant este sursa autoritară pentru propria poziție și identitate, ceea ce elimină o întreagă clasă de ambiguitate de corelare. Când o unitate dispare din imagine, primul lucru pe care îl verifică un operator este dacă PPLI-ul său mai sosește.

4. seria J3

Seria J3 transportă supravegherea — track-urile care alcătuiesc imaginea tactică a lucrurilor care nu își raportează propriul PPLI. Acolo unde J2 înseamnă „iată-mă", J3 înseamnă „iată ceva ce văd". Seria este împărțită în funcție de domeniul de track: J3.2 este track-uri aeriene, J3.3 este track-uri de suprafață (maritime), J3.5 este punct terestru și track terestru. Există de asemenea J3.0 (punct de referință), J3.1 (punct de urgență), J3.4 (subacvatic), J3.6 (track spațial) și J3.7 (produs de război electronic).

Fiecare mesaj de supraveghere transportă un număr de track, poziție, curs și viteză, precum și câmpurile de identitate și de calitate a track-ului care ghidează deciziile operatorului. Track Quality este un întreg mic care rezumă încrederea pozițională; câmpurile de identitate codifică taxonomia standard — Pending, Unknown, Assumed Friend, Friend, Neutral, Suspect, Hostile — alături de codurile de platformă și activitate. Subtilitatea de decodare aici este responsabilitatea de raportare: două unități pot raporta același obiect fizic cu numere de track diferite, iar logica de corelare și de-conflictualizare a rețelei, nu mesajul J3 în sine, decide care raport câștigă.

Idee cheie: Seria J nu are conceptul de „fără valoare" dincolo de codurile explicite „no statement" încorporate în fiecare câmp. Un câmp de latitudine nu poate fi nul — este întotdeauna 25 de biți de ceva. Dacă codecul dvs. mapează un curs „no statement" sau un câmp de rezervă complet zero într-un 0.0 real în modelul dvs. de domeniu, veți desena un track aflat la ecuator mergând cu zero noduri. Tratați codificarea „no statement" a fiecărui câmp ca un caz de primă clasă, nu ca o reflecție ulterioară.

5. seriile J7/J9

Odată ce aveți poziția (J2) și supravegherea (J3), rețeaua trebuie să gestioneze acea informație: aceasta este seria J7. J7.0 este mesajul de pointer / corelare — permite unei unități să indice altei unități un anumit track sau să afirme că două numere de track se referă la același obiect. J7.1 este gestionarea IFF/SIF, J7.2 este o predare de gestionare a track-ului, iar J7.3 este o directivă de corelare/de-corelare. Seria J7 este ceea ce transformă o grămadă de rapoarte independente într-o imagine partajată coerentă și de-conflictualizată.

Seria J9 este coordonarea de comandă și armament. J9.0 este mesajul de comandă — mecanismul formal prin care o unitate de control emite o directivă către o unitate controlată. Aici Link 16 încetează să fie un bus de difuzare pasiv și devine un canal de comandă: atribuirea, direcția de angajare și coordonarea de susținere circulă prin J9 în concert cu seria de control J12. Echipele de inginerie care tratează Link 16 ca pe o telemetrie doar pentru citire sunt mereu surprinse prima dată când trebuie să inițieze un J9.0.

6. J10/J12/J13

Seria J10 este coordonarea și gestionarea armamentului. Transportă starea de angajare, asocierea armelor cu țintele, predarea unei angajări între unități și raportarea în zbor de care are nevoie o rețea de apărare aeriană pentru a deconflictua trăgătorii. J10.2 (starea de angajare) și J10.5 (directiva de armă) sunt caii de povară; greșirea lor nu înseamnă o pictogramă lipsă, înseamnă două unități angajând aceeași amenințare sau niciuna angajând-o.

Seria J12 este controlul: vectorizare, atribuirea misiunii și sortarea țintelor. J12.0 este mesajul de atribuire a misiunii care îi dă unei aeronave controlate sarcina sa; J12.6 este mesajul de sortare a țintelor. J12 este seria care face din Link 16 un mediu de control al avioanelor de vânătoare, mai degrabă decât o sursă de conștientizare situațională. Seria J13 este starea platformei și a sistemului — J13.2 platformă aeriană, J13.3 platformă de suprafață, J13.4 subacvatic, J13.5 platformă terestră — raportând combustibilul, inventarul de armament și pregătirea sistemului, astfel încât un controlor să știe nu doar unde se află o unitate, ci și ce mai poate face.

7. textul liber și veriga critică

Seria J28 este text liber și mesaje conexe — J28.0 este mesajul text care transportă șiruri lizibile pentru oameni atunci când niciun mesaj structurat nu se potrivește. Este portița de scăpare și, ca orice portiță de scăpare, este suprautilizată; o rețea care se sprijină pe textul liber J28 pentru lucruri care ar trebui să fie mesaje J structurate este o rețea a cărei automatizare a renunțat. J31 este seria de gestionare — J31.0 acoperă recriptarea prin aer și administrarea realocării intervalelor de timp care menține rețeaua criptografică sănătoasă.

Veriga critică în orice implementare a seriei J nu sunt mesajele comune — J2 și J3 sunt bine bătătorite. Sunt capcanele. Endianness-ul biților din interiorul unui cuvânt încurcă aproape fiecare primă implementare: MIL-STD-6016 numerotează biții într-o ordine specifică, iar citirea unui câmp cu bitul cel mai semnificativ primul, când standardul îl împachetează cu bitul cel mai puțin semnificativ primul, produce gunoi cu aspect plauzibil. Câmpurile abandonate și rezervate sunt a doua capcană: standardele evoluează, câmpurile devin depreciate, iar un emițător vechi poate seta biți pe care un decoder nou și strict îi respinge. Construiți toleranță pentru biții rezervați și rigoare pentru cei de rezervă.

8. construirea unui codec din seria J

Arhitectura care supraviețuiește contactului este tiparul de adaptor cu stivă dublă. Sistemul dvs. de luptă sau aplicația C2 își menține imaginea tactică într-un model intern de domeniu — track-uri, participanți, angajări — care nu știe nimic despre Link 16. Un strat de adaptor de protocol se află între acel model și terminal, traducând modelul de domeniu către și dinspre cuvintele seriei J de pe fir. Regula cardinală: nu lăsați niciodată protocolul să se infiltreze în modelul de domeniu. Un track din nucleul dvs. nu ar trebui să poarte un câmp „J3.2 cuvânt 2 bit 14"; ar trebui să poarte o poziție și o identitate, iar adaptorul deține maparea. Aceeași disciplină se aplică tuturor protocoalelor pe care le punteați, ceea ce este esența practică a interoperabilității NATO — VMF, Link 22, seria J tunelată prin JREAP devin toate adaptoare împotriva unui singur model canonic.

Testați codecul împotriva vectorilor, nu împotriva unei rețele live. MIL-STD-6016 și suitele sale de test oferă tipare de biți de referință pentru fiecare mesaj; codificați un obiect de domeniu cunoscut, comparați octeții cu vectorul, apoi decodificați vectorul înapoi și comparați obiectul. Faceți round-trip pentru fiecare mesaj pe care îl suportați și verificați că câmpurile „no statement" supraviețuiesc călătoriei ca „no statement", în loc să se prăbușească la zero. Când adăugați suport pentru un mesaj J nou, adăugați un adaptor și vectorii săi — nu atingeți modelul de domeniu sau restul stivei. Această izolare este ceea ce vă permite să absorbiți un upgrade de bloc Link 16 prin schimbarea unui singur adaptor, în loc să retestați la regresie un întreg sistem de luptă.