Popis protokolu AX.25 Předmluva Tento materiál popisuje protokol AX.25 vrstvu 2 verze 2 pro amatérské vysílání [1]. Protokol je soubor pravidel, které zajišťují spolehlivý přenos dat mezi dvěma stanicemi. Označení AX.25 znamená AMATEUR X.25, t.j., že protokol je založen na CCITT X.25 [2] a byl pro oblast radioamatérského vysílání upraven a rozšířen. 1. Pokyny pro vrstvu 1 - fyzický přenos dat pomocí rádia. Obvykle se používá NRZI modulace. Nulový bit znamená změnu stavu, zatímco jedničkový bit ponechává stav nezměněn. Proto nemá smysl hovořit o značce a mezeře, protože relace může začít jak 'značkou', tak 'mezerou'. 1.1 Kmitočty nad 144 MHz. Na těchto kmitočtech se téměř výhradně používají FM stanice (s kanálovou roztečí 25 kHz). Data se přenáší v pásmu 144 MHz při modulaci F2B obvykle rychlostí 1200 Bd, kmitočty tónů AFSK odpovídají normě Bell-202 a to 1200 Hz a 2200 Hz. Na vyšších pásmech se pak užívají i rychlosti až 56, 72 kBd) a jiné druhy modulace F1B (FSK, BPSK, QPSK). 1.2 Kmitočty pod 30 MHz. Na krátkých vlnách se pro spojení používá modulace F1B s kmitočtovým zdvihem 200 Hz (1070/ 1270 Hz) a rychlost 300 Bd. Pro zvýšení spolehlivosti se doporučuje nepoužívat informační pole delší než 64 bytů. 2. Specifikace protokolu AX.25 vrstvy 2. 2.1 Rámec a okruh použití. AX.25 Link-Layer byl navržen pro spolehlivý přenos dat mezi dvěma vysílacími stanicemi nezávisle na druhu modulace (vrstva 1). Podle definice může být tento protokol provozován v polo- i plně duplexním spojení, mezi dvěma amatérskými stanicemi i mezi stanicí a převáděčem. Mnohé linkové protokoly umožňují, aby jeden primární přístroj (DCE, data circuit-terminating equipment) byl spojen s více sekundárními přístroji (DTE, data terminating equipment). Tento druh provozu je pro amatérské vysílání nevhodný a proto se v AX.25 zdůrazňuje, že oba konce spojení jsou srovnatelné. V tomto popise bude používán termín DXE (zařízení pro výměnu dat - data switching equipment). 2.2 Výstavba datových bloků. Všechny přenosy se uskutečňují pomocí bloků dat (frames). Každý blok se skládá z více menších podskupin, které nazýváme pole. Následující obrázky ukazují výstavbu tří základních typů bloků: ++++++++++++++++++++++++++++++++++++++++++++ + flag + adresa + ctrl + FCS + flag + ++++++++++++++++++++++++++++++++++++++++++++ + 7Eh + 112..560 b. + 8 b. + 16 b. + 7Eh + ++++++++++++++++++++++++++++++++++++++++++++ obr. 1A. výstavba U- a S-bloků ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + flag + adresa + ctrl + PID + info + FCS + flag + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + 7Eh + 112..560 b. + 8 b. + 8 b. + N*8 bitů + 16 b. + 7Eh + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ obr. 1B. výstavba I-bloků V materiálech [1] i [2] jsou skupiny osmi bitů označeny jako oktet (octet), aby se zdůraznilo, že HDLC není závislé na bytové struktuře. V tomto smyslu bylo uvedeno označení 'byt', protože AX.25 je určen především k přenosů bytů dat. V podstatě je však i u AX.25 možné, aby byla přenášena data, která nejsou osmibitová. V tomto případě se přepis dat do I-bloků děje bez ohledu na hranice bytů a jsou doplněna na osmi dělitelný počet bitů. Každé pole se tedy skládá z celého počtu bytů a plní funkce popsané v následujících odstavcích. 2.2.1 Hranice bloku - flag. Hranice bloku (flag) je jeden byte dlouhé a objevuje se na začátku a na konci každého bloku. Jednotlivý flag může současně označovat konec předcházejícího a začátek následujícího bloku. Flag se skládá z nuly následované šesti jedničkami a další nulou (01111110 = 7Eh). Aby se tato sekvence nemohla vyskytnout uprostřed bloku, používá se tzv. bit-stuffing (viz 2.2.6). 2.2.2 Adresní pole. Adresní pole se používá pro označení odesílatele i příjemce bloku. Obsahuje rovněž příkazové a odpovídací informace a další pokyny pro provoz digipeatrů vrstvy 2. Kódování je popsáno v odst. 2.2.13. 2.2.3 Kontrolní (řídící) pole (označeno ctrl). Je použito ke zjišťování typu právě přenášeného bloku a ke kontrole spojení ve vrstvě 2. Je jeden byte dlouhé a je popsánov v odst. 2.3.2.1. 2.2.4 PID-pole. Identifikace protokolu (PID) se vyskytuje pouze v I- a v UI-blocích a určuje, který typ protokolu vrstvy 3 je užit. PID-pole není připočítáváno k délce info-pole. Je kódováno následovně: +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + MSB LSB PID + význam + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + **01**** + AX.25 vrstva 3 je implementována + + **10**** + (* značí libovolnou hodnotu, 0 nebo 1) + + 11001100 CC hex. + Internal protokol datagramm + + 11001101 CD hex. + Address resolution protokol + + 11110000 F0 hex. + vrstva 3 není implementována + + 11111111 FF hex. + únikový znak - další byte obsahuje další + + + informace + +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Poznámka: Ne všechny zmíněné tvary **00**** a **11**** jsou rezervovány pro další protokoly vrstvy 3. Přiřazení těchto kódů je věcí dohody radioamatérů. Doporučuje se, aby se ten, kdo se zabývá vývojem protokolu vrstvy 3, zkontaktoval s ARRL Ad Hoc Comitee on Digital Communications. 2.2.5 Info-pole. Je určeno pro přenos vlastních dat a je přípustné pouze u tří typů bloků: I-, UI- a FRMR-. Info-pole může být maximálně 256 bytů dlouhé a musí obsahovat celý počet bytů. Toto omezení platí, dokud nejsou v čl. 2.2.6 zavedeny nulové bity. Info-pole jsou přenášena po celé trase beze změny s výjimkou nulových bitů zamezujících výskytu flagů. Info-pole I- a UI-bloků obsahuje data určená k přenosu. Mohou to být texty nebo jiné informace určené k řízení vyšších vrstev protokolu. 2.2.6 Bit-stuffing. K zamezení výskytu flagů musí odesílatel po každých pěti jedničkových bitech vyslat jeden nulový bit a příjemce musí pak tyto bity z dat odstranit. 2.2.7 FCS Frame-Check Sequence, kontrolní součet. FCS je 16 bitů dlouhé číslo, které je po přenosu od odesílatele k příjemci znovu přepočítáno. Jeho úkolem je zjistit, zda nebyl přijatý blok zkreslen. Výpočet FCS je v souladu s doporučením ISO 3309 (HDLC). 2.2.8 Sled přenášených bitů. U všech polí AX.25 je první v řadě vysílán nejméně významný bit (LSB). Výjimku tvoří FCS-pole, u něhož je první vysílán nejvíce významný bit (MSB). 2.2.9 Neplatný blok. Každý blok, který se skládá z méně než 136 bitů (včetně flagů na začátku a na konci bloku), nebo blok skládající se z necelého počtu bytů je označen jako neplatný, viz 2.4.4.4. 2.2.10 Zničení bloku. Jestliže má být vysílaný blok předčasně zrušen, zruší se vysláním patnácti za sebou jdoucími jedničkovými bity, které nejsou přerušeny nulovými bity. 2.2.11 Znaky vyplňující místo mezi bloky. Je-li pro DXE nutné, aby stanice zůstala zapnutá, aniž by vysílala nějaký blok, musí být volný prostor vyplněn flagy, například v čase mezi zapnutím PTT a vysláním prvního bloku nutném pro ustálení vysílače i přijímače. 2.2.12 Plně- a poloduplexní spojení, simplexní spojení. V amatérské praxi se používá simplexní spojení a poloduplexní spojení s vícenásobným využitím kanálu. 2.2.13 Kódování adresního pole. V adresním poli se musí vyskytovat volací značky odesílatele a příjemce. S výjimkou SSID (Secondary Station IDentifier - rozšiřující identifikace stanice) se může adresní pole skládat pouze z velkých písmen a číslic kódu ASCII. To platí i při použití digipeatrů vrstvy 2. Adresní pole musí opět obsahovat i odesílatelovy a příjemcovy volací značky. AX.25 používá rozšířené adresní pole podle DIN 66221. Díky tomuto může být adresní pole libovolně dlouhé, počet bytů není omezen. Nejnižší bit každého adresního bytu je používán jako rozšiřovací bit. Je-li tento bit nula, následuje další adresní byte, je-li tento jedna, jedná se o poslední adresní byte v adresním poli. Pro vymezení místa pro tento rozšiřovací bit, byte volací značky posunut o jeden bit doleva. V AX.25 je počet adresních bytů vždy dělitelný sedmi - nejkratší pole se skládá ze 14 bytů = odesílatelovy a příjemcovy volací značky, nejdelší pole ze 70 bytů = navíc maximálně 8 volacích značek digipeatrů. 2.2.13.1 Kódování adresního pole bez digipeatru. Příjemcova adresa obsahuje volací značku stanice, jíž jsou informace směrovány, odesílatelova adresa volací značku odesílatele. Obě volací značky definují pouze oba konce spojení vrstvy 2. ++++++++++++++++++++++++++++++++++++++++++++++++++++ + Adresní pole bloku + ++++++++++++++++++++++++++++++++++++++++++++++++++++ + Příjemcova adresa + Odesílatelova adresa + ++++++++++++++++++++++++++++++++++++++++++++++++++++ + A1 A2 A3 A4 A5 A6 A7 + A8 A9 A10 A11 A12 A13 A14 + ++++++++++++++++++++++++++++++++++++++++++++++++++++ obr. 2. Kódování adresního pole bez digipeatru Adresní pole má 14 bytů A1 až A14. Přijemcovo adresní subpole je 7 bytů dlouhé a je vysláno jako první. Sled adres dává příjemci možnost vyzkoušet si své adresní subpole během příjmu zbytku bloku. Odesílatelovo adresní pole je přeneseno v bytech A8 až A14. Toto pořadí odpovídá i běžné radioamatérské praxi, kdy se volací značka příjemce říká jako první. Obě subpole jsou kódována stejným způsobem, jen v posledním bytu odesílatelovy adresy je rozšiřovací bit HDLC nastaven na jedničku. +++++++++++++++++++++++++++++++++ + byte + ASCII + binárně + hex + +++++++++++++++++++++++++++++++++ + A1 + O + 10011110 + 9E + + A2 + K + 10010110 + 96 + + A3 + 2 + 01100100 + 64 + + A4 + U + 10101010 + AA + + A5 + C + 10000110 + 86 + + A6 + X + 10110000 + B0 + + A7 + SSID + CRRSSID0 + + +++++++++++++++++++++++++++++++++ obr. 3. kódování příjemcova adresního subpole Legenda: 1.) Jako první je vysílán byte A1. 2.) Bit 0 každého bytu je rozšiřovací bit adresy. Je nulový ve všech bytech adresy s výjimkou posledního, kde je převeden na jedničku. 3.) Volací značka se může skládat jen z velkých písmen a číslic ASCII kódu, ale musí být posunuty o jeden bit vlevo, pro získání místa na rozšiřovací bit. Je-li volací značka kratší než 6 znaků, je doplněna mezerami. 4.) Byte A7 obsahuje SSID, který umožňuje jedné stanici spojení s více stanicemi pod jednou volací značkou rozlišenou jen SSID. Standartní SSID je 0000. 5.) Bity označené 'R' jsou rezervovány pro budoucí rozšíření. Mohou se využívat v individuálních sítích na základě dohody. Nejsou-li využívány, musí být převedeny na jedničku. 6.) Bit označený 'C' je používán jako příkazový a hlásící bit bloku AX.25 (viz 2.4.2.1) Odesílatelovo subpole je kódováno stejným způsobem jako příjemcovo a je vysláno v adresních bytech A8 až A14. Nepoužívá-li se digipeatr, je bit 0 v SSID bytu (A14) převeden na jedničku. +++++++++++++++++++++++++++++++++ + byte + ASCII + binárně + hex + +++++++++++++++++++++++++++++++++ + A8 + O + 10011110 + 9E + + A9 + K + 10010110 + 96 + + A10 + 2 + 01100100 + 64 + + A11 + U + 10101010 + AA + + A12 + U + 10101010 + AA + + A13 + C + 10000110 + 86 + + A14 + SSID + CRRSSID1 + + +++++++++++++++++++++++++++++++++ obr. 3A. kódování odesílatelova adresního subpole 2.2.13.2 Kódování adresy digipeatru. Při kódování se užívá doplňkové adresní subpole A15 až A21. Bit 0 bytu A14 je převeden na nulu, neboť následuje další adresní subpole a v bytu A21 je převedeno na jedničku, protože adresní pole končí. Subpole digipeatru je kódováno stejně jako subpole příjemce s tou výjimkou, že nejvyšší bit v posledním bytu je označen 'H' a znamená, že blok je připraven k přenosu digipeatrem. Na cestě do digipeatru musí být nulový, digipeatr jej převede na jedničku ještě před vysláním bloku. +++++++++++++++++++++++++++++++++ + byte + ASCII + binárně + hex + +++++++++++++++++++++++++++++++++ + A15 + O + 10011110 + 9E + + A16 + K + 10010110 + 96 + + A17 + 0 + 01100000 + 60 + + A18 + P + 10100000 + A0 + + A19 + A + 10000010 + 82 + + A20 + C + 10000110 + 86 + + A21 + SSID + HRRSSID1 + + +++++++++++++++++++++++++++++++++ obr. 4. kódování adresního subpole digipeatru 2.2.13.3 Provoz přes více digipeatrů. Protokol AX.25 dovolouje provoz přes více než jeden digipeatr a vytváří tak možnost jednoduchého mechanismu přenosu bloku. V adresním poli může existovat až osm subpolí digipeatrů. První subpole digipeatru následující po příjemcově adrese a adrese odesílatele je také adresou prvního digipeatru, přes který je blok přenášen. Digipeatry nastavují H-bit ve vlastním adresním subpoli, aby prokázaly, že byl uskutečněn přenos bloku. Kromě nutného přepočítání FCS se blok nesmí měnit. Příjemce si také podle informací adresního pole může zjistit, jakou cestou se k němu blok dostal. Počet subpolí digipeatrů je proměnný. Jen bit 0 SSID posledního digipeatru je nastaven na jedničku, neboť zde končí adresní pole. V ostatních bytech je bit 0 nastaven na nulu. Velikosti časových odezev musí částečně odpovídat počtu digipeatrů, protože cestou, kudy je blok přenášen, se vrací i potvrzení správnosti. V budoucnu se počítá se zrušením provozu přes více digipeatrů v souvislosti se zavedením protokolu vrstvy 3. Dále jsou popsány jednotlivé reakce po příjmu bloku. Skládají se z povelů a hlášení zprostředkovaných ve formě U-, S- a I-bloků. Druh povelu nebo hlášení vyplývá z kontrolního pole bloku. Kontrolní pole hlásí typ přenášeného bloku a používá se k výměně povelů a hlášení mezi konečnými body spojení, přičemž kontroluje také samotné spojení. Protokol AX.25 užívá kontrolní pole CCITT X.25 pro provoz rovnocenných stanic (balanced operation, LABP) s doplňkovým kontrolním pole vyňatého z ADCCP, aby byl umožněn provoz a relace bez vytvořeného spojení s více stanicemi. Obecně existují tři typy bloků AX.25: - informační blok (I-block) - řídící blok s pořadovým číslem (S-block, supervisor-block) - řídící blok bez pořadového čísla (U-block, unnumbered-block). +++++++++++++++++++++++++++++++++++++++++ + Typ bloku + bity kontrolního pole + + + 7 6 5 + 4 + 3 2 1 0 + +++++++++++++++++++++++++++++++++++++++++ + I-blok + N(R) + P + N(S) + 0 + +++++++++++++++++++++++++++++++++++++++++ + S-blok + N(R) + P/F + S S + 0 1 + +++++++++++++++++++++++++++++++++++++++++ + U-blok + M M M + P/F + M M + 1 1 + +++++++++++++++++++++++++++++++++++++++++ obr. 5. formát kontrolního pole Legenda: 1.) Bit 0 je prvním, bit 7 posledním vyslaným bitem kontrolního pole. 2.) N(S) je pořadové číslo vyslaného bloku (bit 1 je nejméně významný). 3.) N(R) je pořadové číslo přijatého bloku (bit 5 je nejméně významný). 4.) 'S'-bity specifikují určitou funkci S-bloku. Kódování viz 2.3.4.2. 5.) 'M'-bity specifikují určitou funkci U-bloku. Kódování viz 2.3.4.3. 6.) Bit Poll/Final (P/F-bit) rozlišuje příkaz a hlášení. O jeho funkci blíže v 2.3.3, použití popisuje odst. 2.4.2. Rozdíl mezi výzvou k relaci a odpovědí neboli příkazem a hlášením je stanoven v pravidlech adresování v odst. 2.4.1.2. I-bloky se používají na přenos souborů dat (text nebo soubory vyšších vrstev protokolu). V I-bloku je bit 0 kontrolního pole převeden na nulu, N(S) je pořadové číslo tohoto bloku, N(R) je pořadové číslo posledního správně přijatého bloku a může sloužit k potvrzení dosud nepotvrzeného I-bloku v opačném směru. Pořadová čísla popisuje blíže čl. 2.3.4.2.6 S-bloky se používají ke kontrolním řídícím funkcím jako jsou potrvzení bloku dat, výzva k opakování bloku dat nebo dočasné pozastavení přenosu dat. V S-bloku je bit 0 převeden na jedničku, bit 1 na nulu. S-bloky nemají info-pole. U-bloky se používají pro další řídící funkce, jako jsou např. navázání a zrušení spojení. Také dovolují přenos informací mimo běžnou kontrolu toku informací. V U-bloku jsou bity 0 i 1 nastaveny na jedničku. Některé typy U-bloků mohou obsahovat info- i PID-pole. V následujícím odstavci jsou popsány různé typy kontrolních polí. Každý I-blok je průběžně číslován, přičemž toto číslo musí probíhat modulo 8, tedy od 0 do 7. Při spojení ve vrstvě 2 může proto existovat maximálně sedm nepotvrzených bloků. Počítadlo pořadového čísla vysílaných bloků V(S) je vnitřní proměnná DXE. Obsahuje pořadové číslo vyslaného bloku a je zvětšováno s každým vysláním nového bloku. Je obsaženo v kontrolním poli každého I-bloku. Počítadlo pořadového čísla přijímaných bloků V(R) je také vnitřní proměnná DXE. Obsahuje pořadové číslo očekávaného I-bloku a je zvýšeno po každém příjmu správného I-bloku. Pořadové číslo přijatého bloku je obsaženo v kontrolním poli I- a S-bloků. DXE vysílající N(R) přijalo správně všechny I-bloky s pořadovými čísly do N(R)-1 včetně. P/F-bit je používán u všech typů bloků. Na příkaz (Poll) následuje okamžitá odpověď na blok. Odpovědí na tento příkaz je vyslání bitu Final. V každém směru spojení je možná pouze jedna taková situace. Návod k užití P/F-bitů viz čl. 2.4.2. Následující příkazy a hlášení prováděné kontrolním polem: I-bloky přenáší data pod průběžnou kontrolou. Přenos dat v I-bloku je považován za příkaz, jež je charakterizován písmenem P v poli pro P/F-bit. Příkaz nebo hlášení 'připraven k příjmu' se přenáší v RR-bloku. Jako hlášení se používá v následujících situacích: 1.) aby se zjistilo, zda je odesílatel RR-bloku schopen přijímat další bloky, 2.) aby byl potvrzen příjem správně přijatého I-bloku až po číslo N(R)-1, 3.) aby byl zrušen eventuálně dříve existující stav 'nepřipraven k příjmu'. Na stav protilehlého konce spojení je možné se zeptat vysláním tohoto RR-bloku, jež má stejnou platnost jako příkaz s P-bitem. RNR-bloky vysílá DXE při nepřipravenosti přijímat další bloky. Přijaté I-bloky až k číslu N(R)-1 platí jako potvrzené. Všechny I-bloky s číslem N(R) a výše, které byly přijaty během změny stavu, nejsou potvrzeny. Případ 'nepřipraven k příjmu' může být zrušen vysláním UA-, RR-, REJ- nebo SABM-bloku. REJ-blok vysílá DXE, přeje-li si opakování I-bloků počínaje číslem N(R). Všechny I-bloky do pořadového čísla N(R)-1 jsou potvrzeny. Mají-li být přenášeny nové I-bloky, mohou být vyslány v souvislosti s opakováním. V každém směru spojení je možný pouze jeden případ 'výzvy k opakování', tento případ může být zrušen pouze bezchybným příjmem I-bloku, který zavinil tento stav. RNR- i REJ-bloky mohou být vysílány stejně jako RR-blok při dotazu protilehlé DXE na její stav s nastaveným bitem P jako příkaz. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + příkaz nebo hlášení + bity kontrolního pole + + + 7 6 5 + 4 + 3 2 1 + 0 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + přenos informací I + N(R) + P + N(S) + 0 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + připraven k příjmu RR + N(R) + P/F + 0 0 + 0 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + nepřipraven k příjmu RNR + N(R) + P/F + 0 1 + 0 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + výzva k opakování bloku REJ + N(R) + P/F + 1 0 + 0 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + výzva ke spojení SABM + 0 0 1 + P + 1 1 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + zrušení spojení DISC + 0 1 0 + P + 0 0 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + rozpojený mód DM + 0 0 0 + F + 1 1 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + nečíslované potvrzení UA + 0 1 1 + F + 0 0 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + formátování spojení FRMR + 1 0 0 + F + 0 1 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + nečíslovaná informace UI + 0 0 0 + P/F + 0 0 + 1 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ obr. 6. kódování kontrolního pole 2.3.4.3 Nečíslované bloky. Příkaz SABM je používán ke spojení dvou DXE do tzv. asynchronního rovnocenného provozu (Asynchronous Balanced Mode). Tento případ provozu je znám pod označením LAPB (Link Access Procedure Balanced), při kterém jsou obě stanice rovnocenné. SABM-blok neobsahuje info-pole. Dříve vyslané a dosud nepotvrzené I-bloky zůstávají nepotvrzené. DXE potvrzuje příjem příkazu SABM vysláním hlášení UA v co možná nejkratším čase; nemůže-li DXE příkaz příjmout, vyšle DM-blok. Příkaz DISC je používán ke zrušení spojení mezi dvěma stanicemi. DISC-blok nesmí obsahovat I-pole. Dříve než příjemce zpracuje DISC-blok, potvrdí jeho příjem vysláním hlášení UA v co možná nejkratším okamžiku. DXE, která vyslala DISC-příkaz, zruší spojení po příjmu UA-hlášení. Dříve vyslané nebo ještě nepotvrzené I-bloky zůstávají nepotvrzené. FRMR-blok je vyslán, aby potvrdil, že přijatý blok není potvrzen a chyba nemůže být odstraněna opakováním přenosu. Běžným způsobem vzniká tato situace, je-li přijat blok s bezchybným FCS-polem a platí jedna z následujících podmínek: 1.) Příjem neplatného nebo neimplementovaného bloku příkazů nebo hlášení - tzn. že blok má neznámé kontrolní pole. 2.) Příjem bloku, jehož info-pole překračuje max. povolenou délku. 3.) Příjem bloku s neplatným N(R), tzn. že N(R) potvrzuje I-blok, který ještě nebyl vyslán. 4.) Příjem bloku s info-polem, není-li info-pole v tomto typu bloku povoleno. V tomto případě musí být v info-poli FRMR-bloku nastaveny bity W a Y na jedničku. 5.) Příjem S-bloku s F-bitem, nenásleduje-li jako odpověď na blok s P-bitem. V info-poli FRMR-bloku musí být nastaven W-bit. 6.) Příjem neočekávaného UA- nebo DM-bloku. V info-poli musí být nastaven W-bit. 7.) Příjem I-bloku s neplatným N(S), tzn. že N(S) je větší než N(S) naposledy potvrzeného bloku plus maximální přípustný počet nepotvrzených I-bloků. FRMR-bloky obsahují 3 byte dlouhé info-pole, které obsahuje doplňující informace o výskytu chyby. +++++++++++++++++++++++++++++++++++++++++++++++++++ + bity info-pole + + 2 2 2 2 1 1 1 1 1 1 1 1 1 1 + + 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 + +++++++++++++++++++++++++++++++++++++++++++++++++++ + 0 0 0 0+Z+Y+X+W+V(R) +C+V(S) +0+kontrolní pole + + + + + + + +R+ + +neplatného bloku+ +++++++++++++++++++++++++++++++++++++++++++++++++++ obr. 7. info-pole FRMR-bloku Legenda: 1.) Bity 0 až 7 info-pole obsahují kontrolní pole bloku, které vyvolalo formátování. 2.) V(S) je počítadlo pořadového čísla vysílaných bloků DXE, které vysílá FRMR-blok. 3.) CR-bit je nula, jestliže neplatný blok byl příkaz, jednička, byl-li hlášení. 4.) V(R) je počítadlo pořadového čísla přijatých bloků DXE, které vysílá FRMR-blok. 5.) Bit W je nastaven, je-li přijaté kontrolní pole neplatné nebo neimplementované. 6.) Bit X je nastaven, je-li v přijatém bloku info-pole, které není v tomto typu bloku povoleno. Doplňkově je k X-bitu přidán i W-bit. 7.) Bit Y je nastaven, je-li info-pole přijatého I-bloku delší než max. povolená délka. 8.) Bit Z je nastaven, je-li přijat blok s neplatným N(R). 9.) Bity 8, 20 až 23 jsou nulové. 2.3.4.3.4 Hlášení 'nečíslované potvrzení' (UA, unnumbered acknowledge). UA-hlášení je používáno pro potvrzování příjmu příkazů SABM nebo DISC. Přijatý příkaz je nejprve vyhodnocen a pak je vysláno UA-hlášení. UA-bloky nemohou obsahovat info-pole. 2.3.4.3.5 Hlášení 'rozpojený mód' (DM, disconnected mode). DXE vysílá DM-hlášení tehdy, obdrží-li od nějaké stanice, se kterou není ve spojení, blok, který není ani SABM či UI. V tomto případě se F-bit v DM-bloku převede na jedničku. DM-hlášení se vysílá jako odpověď na SABM-blok, jestliže není DXE schopna vytvořit spojení. (Toto je případ, kdy např. DXE vytvořila maximální počet spojení, je tedy obsazena.) DM-blok neobsahuje info-pole. 2.3.4.3.6 Příkaz nebo hlášení 'nečíslovaná informace' (UI, unnumbered information). UI-bloky mohou být vysílány jako příkazy i jako hlášení. UI-bloky obsahují PID-pole a info-pole a jsou používány k přenosu informací podél spojení bez průběžné kontroly. Jeji ztráta nemůže být indikována ani napravena. Přijatý UI-blok s P-bitem musí být potvrzen. Odpovědí na něj je DM-blok a není-li DXE spojena s další stanicí, pak odpovídá RR- či RNR-blokem. 2.3.5.2 Chyby ve vysílaných pořadových číslech. Pokud nesouhlasí pořadové číslo N(S) přijatého I-bloku s počítadlem pořadových čísel příjmaných bloků bez chyby v FCS pak je chyba ve vyslaném pořadovém čísle a info-pole není schváleno. Příjemce takového bloku nepotvrdí tento ani následující, dokud jejich pořadové číslo nebude souhlasit s počítadlem pořadových čísel přijímaných bloků. Kontrolní pole každého I-bloku je přesto vyhodnoceno a použito k řízení spojení. Například může potvrdit přijaté pořadové číslo v protisměru vyslaných I-bloků. 2.3.5.3 Opakování po REJ-bloku. DXE používá hlášení REJ k vyzvání protistanice o opakování I-bloků poté, co nalezla chybu ve vyslaném pořadovém čísle. Dnes je povolena pouze jedna výzva k opakování v každém směru. Příjemce napraví chybu tím, že zopakuje všechny nepotvrzené I-bloky počínajíc těmi, které jsou REJ-blokem vyžadovány (max. tolik, kolik dovoluje počet nepotvrzených bloků). 2.3.5.4 Znovuobnovení po přetečení časovače. 2.3.5.4.1 Znovuobnovení po přetečení časovače T1. Pokud DXE během přenosu kvůli chybě nepříjme I-blok nebo poslední I-blok řady, pak nezjistí chybu v pořadovém čísle vysílaných bloků a nemusí vysílat REJ-blok. Protější DXE, která vyslala nepotvrzený I-blok, musí po přetečení časovače T1 začít opakování viz čl. 2.4.4.9. Tento stav lze odstranit příjmem potvrzení vyslaných I-bloků nebo zpětným obnovením spojení viz čl. 2.4.6. 2.3.5.4.2 Znovuobnovení po přetečení časovače T3. Úkolem časovače je zjistit, zda spojení stále ještě existuje, pokud delší dobu nebyly přenášeny informace. Vždy když neběží časovač T1 (neexistují nepotvrzené I-bloky), používá se časovač T3, aby se DXE mohla v pravidelných intervalech ptát na existenci spojení. Přeteče-li časovač T3, je vyslán RR- nebo RNR-blok jako příkaz s P-bitem. Čeká se pak na potvrzení viz odst. 2.4.4.9. 2.3.5.5 Chyby v kontrolním součtu FCS (Frame-Check Sequence). Blok s chybou v kontrolním součtu je znehodnocen, aniž by se vyvolávala další reakce. 2.3.5.6 Případ formátování spojení (FRMR). Tento stav nastává po bezchybném přijetí bloku, který splňuje jednu z podmínek uvedených v odst. 2.3.4.3. Až do odstranění chyby nejsou přijímány další I-bloky (s výjimkou věnování pozornosti P/F bitům). O chybě se příjemcova stanice dozví vysláním FRMR-bloku - viz odst. 2.4.5. 2.4 Popis zprostředkovávacích předpisů. V následujících odstavcích jsou popsány předpisy (procedury) pro výstavbu, používání a zrušení spojení mezi dvěma rovnoprávnými DXE. 2.4.1 Předpisy pro adresování. 2.4.1.1 Adresní informace. Všechny vyslané bloky musí obsahovat adresní pole - viz odst. 2.2.1.3. Všechny bloky musí obsahovat jak adresu příjemce, tak i adresu odesílatele. Proto je také možné, aby na stejném kanále existovalo více spojení. Příjemcovou adresou může být i název skupiny nebo volací znak klubu, je-li povoleno vysílání pro více stanic. Práce s příjemcovými adresami, které nejsou platnými amatérskými volacími znaky, je podrobněji popsána dále. 2.4.1.2 Rozdíl mezi příkazem a hlášením. Verze 2.0 protokolu AX.25 vyměřuje rozdíl mezi příkazem a hlášením v adresním poli. Aby byla zachována kompatibilita vůči starším verzím protokolu, je tato informace zabudována do dvou bitů obsažených v sedmém bitu SSID-bytů příjemcovy a odesílatelovy adresy. Jsou-li oba C-bity převedeny na nulu, používá stanice starší protokol. V novějších verzích je právě jeden bit převeden na jedničku, podle toho zda se jedná o příkaz nebo o hlášení. ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + typ bloku + příj. SSID C-bit + odes. SSID C-bit + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ + starší verze + 0 + 0 + + příkaz (verze 2.0) + 1 + 0 + + hlášení (verze 2.0)+ 0 + 1 + + starší verze + 1 + 1 + ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ obr. 8. kódování příkazů a hlášení Všechny bloky jsou považovány buď za příkaz nebo hlášení, protože ve verzi 2.0 protokolu je vždy právě jeden z C-bitů převeden na jedničku. Doplňující příkazové a hlásící informace umožňují existenci příkazových a hlásících S-bloků. Toto pomáhá při udržování správnosti kontroly spojení během přenosu dat. Pokud nejsou delší dobu vysílány I-bloky, musí se DXE po přetečení časovače T3 ptát na existenci spojení vysláním RR- nebo RNR-bloku s P-bitem, které jsou považovány za příkaz. Odpovědí na tento příkaz musí být RR- nebo RNR-blok s F-bitem, jež je považován za hlášení. Správná fuknce této operace však může být zajištěna je tehdy, mohou-li obě stanice rozeznat mezi příkazem a hlášením u RR- a RNR-bloků (viz také 2.3.5.4.2 a 2.4.4.9). 2.4.2. Předpisy pro P/F-bit. DXE musí odpovědět na SABM- nebo DISC-blok s P-bitem (příkaz), který je nastaven na jedničku, odpovídajícím UA- nebo DM-blokem s F-bitem nastaveným na jedničku. Pozn. P- a F-bity stojí v kontrolním poli na stejném místě. V příkazovém bloku je tento bit interpretován jako P-bit, v hlásícím jako F-bit. DXE musí odpovědět na příkazový I- nebo S-blok s P-bitem převedeným na jedničku RR-, RNR- nebo REJ- hlásícím blokem, kde je F-bit nastaven na jedničku, pochází-li I- nebo S-blok od stanice, se kterou je DXE spojena. Pochází-li tyto bloky od jiné stanice, odpoví na ně DXE DM-blokem s F-bitem nastaveným na jedničku. P-bit bývá používán v souvislosti se znovuobnovením spojení po uplynutí časovače T3 - viz odst. 2.3.5.4. Nejsou-li P/F bity používány, musí být převedeny na nulu. 2.4.3 Předpisy pro navázání a zrušení spojení. 2.4.3.1 Výstavba spojení LABP. Chce-li DXE vytvořit spojení s jinou DXE, vyšle příkazový SABM-blok a spustí časovač T1. Pokud druhá DXE příjme tento blok a může vytvořit spojení, odpoví UA-blokem a obě pořadová čísla V(S) a V(R) nastaví na nulu. Přijem UA-bloku znamená pro DXE, která chtěla vytvořit spojení, zastavení časovače T1 a nastavení pořadových čísel na nulu. Pokud druhá DXE neodpoví před přetečením T1, pak je nutné znovu vyslat SABM-blok a spustit časovač T1. DXE se pokusí o vytvoření spojení N2 krát. (N2 je definováno v odst. 2.4.7.2). Pokud se druhá DXE po příjmu SABM-bloku rozhodne nevytvářet spojení, musí vyslat DM-blok - viz odst. 2.3.4.3.5. DXE, která po vyslání SABM-bloku a spuštění časovače T1, obdržela jako odpověď DM-blok, je povinna zastavit časovač T1 a dále se nepokoušet vytvořit spojení. DXE, která se pokusila spojit se s druhou DXE, nesmí brát ohledy na přijaté bloky s výjimkou SABM-, DISC- a DM-bloků, které vyslala druhá DXE. 2.4.3.2 Fáze přenosu dat. Poté, co bylo navázáno spojení, dostává se DXE do stavu 'fáze přenosu dat'. V tomto stavu se DXE chová podle předpisu popsaného v odst. 2.4.4 a přijímá i vysílá I- a S-bloky. Pokud DXE během této fáze přijme od stanice, se kterou je spojena, SABM-blok, pak respektuje předpisy popsané v odst. 2.4.6. 2.4.3.3 Zrušení spojení. Během výše zmíněné fáze může DXE zrušit spojení, vyšle-li DISC-blok a spustí časovač T1. Druhá DXE po příjmu DISC-bloku odpoví UA-blokem a přejde do stavu 'volno'. Stanice, která DISC-blok vyslala, musí po obdržení UA-bloku zastavit časovač T1 a přejít také do stavu 'volno'. Pokud stanice neobdržela odpověď ve formě UA-bloku a přetekl-li časovač T1, pak znovu vyšle DISC-blok a znovu spustí časovač T1. Proběhne-li toto N2 krát, musí DXE přejít do stavu 'volno'. 2.4.3.4 Stav 'volno'. Ve stavu 'volno' musí stanice sledovat všechny přijaté příkazy a na příkaz SABM reagovat podle odst. 2.4.3.1. Odpovědí na DISC-blok je DM-blok. Ve stavu 'volno' může DXE začít s vytvářením nového spojení - viz 2.4.3.1. Odpovědí na příkazový blok s P-bitem kromě SABM- nebo UI-bloků je DM-blok s nastaveným F-bitem. Přijatému bloku se nevěnuje další pozornost. Přejde-li DXE po chybě nebo na základě vnitřních chyb do stavu 'volno', musí to doložit vysláním hlásícího DM-bloku namísto DISC-bloku a musí provést proceduru zrušení spojení (viz blíže odst. 2.4.3.3). Potom může DXE znovu vytvořit spojení podle odst. 2.4.3.1. 2.4.3.5 Obnova spojení po kolizích. 2.4.3.5.1 Kolize v poloduplexním prostředí. Kolize bloků v poloduplexním prostředí jsou zachycovány pomocí časovače T1 a opakováním. Další opatření nejsou nutná. 2.4.3.5.2 Kolize nečíslovaných příkazů. Setkají-li se dva SABM- nebo DISC-příkazy, obě DXE musí v co možná nejkratší době vyslat UA-blok a přijmout ohlášený stav. Setká-li se SABM- a DISC-příkaz, obě DXE musí přejít do stavu 'volno' a vyslat okamžitě DM-blok. 2.4.3.5.3 Kolize DM-bloku se SABM- nebo DISC-blokem. Je-li vyslán nevyžádaný DM-blok, může dojít ke kolizi se SABM- nebo DISC-blokem. Aby se zabránilo chybné interpretaci DM-bloku, musí být vyslány všechny nepožadované DM-bloky s F-bitem převedeným na nulu a všechny SABM- a DISC-bloky s P-bitem převedeným na jedničku. Odpovědí na takový SABM- nebo DISC-blok může pak být jen DM-blok (nebo UA-blok) s F-bitem převedeným na jedničku, jako odpověď na příkaz SABM nebo DISC. 2.4.3.6 Provoz bez průběžné kontroly. V amatérském vysílání existuje doplňkový druh provozu, který nelze realizoval spojením ve vrstvě 2. Jedná se o kolo rozhovorů, kterého se účastní více radioamatérů. Tento druh provozu není uveden v X.25, ale používá typy struktur bloků, jež popisuje AX.25. Pro tento druh provozu používá speciální typ bloku nazývaný nečíslovaný informační blok (unnumbered info blok = UI-blok). V subpoli příjemcovy adresy musí být uvedeno heslo, s jehož pomocí lze vybrat jen ty bloky, které patří do daného kola rozhovor na společném kanále. Volací znak odesílatele je obsažen v subpoli odesílatele, aby bylo možné určit původce příspěvku do rozhovoru. Tento druh provozu pracuje bez průběžné kontroly (UI-bloky nejsou číslovány), neexistují výzvy k opakování ztracených nebo chybných bloků. Mohou se vyskytovat i kolize s tím nebezpečím, že dojde ke ztrátě bloku dat. 2.4.4 Předpisy pro přenos dat. Je-li sestaveno spojení, pak mohou obě stanice přijímat I-, S- a U-bloky. 2.4.4.1 Vysílání I-bloků. Pokaždé, když chce DXE vyslat blok, je pořadové číslo vysílaného bloku N(S) I-bloku převedeno do počítadla vyslaného pořadového čísla V(S). Poté, co je vyslán I-blok, zvýší DXE počítadlo vyslaného pořadového čísla o jedničku. Neběží-li časovač T1, musí byt spuštěn, běží-li musí být spuštěn znovu. DXE nesmí vysílat žádné I-bloky, pokud je hodnota počítadla vyslaného pořadového čísla stejná jako poslední přijaté pořadové číslo N(R) + 7 od volané stanice. Další vyslaný blok by měl stejné pořadové číslo jako poslední potvrzený blok a mohl by být s tímto zaměněn. Je-li DXE ve stavu 'nepřipraven k příjmu', může i přesto vyslat další I-bloky, pokud volaná stanice je k příjmu připravena. Ve stavu 'formátování spojení' nesmí DXE vysílat další I-bloky. 2.4.4.2 Příjem I-bloků. 2.4.4.2.1 Stav 'připraven k příjmu'. Příjme-li DXE platný I-blok (se správným FCS a vyslaným pořadovým číslem, které odpovídá příjemcovu počítadlu pořadového čísla přijatých bloků) a je připravena k příjmu, příjme I-blok, zvýší počítadlo pořadového čísla přijatých bloků a provede následující kroky: 1. Má-li DXE vyslat I-blok, převede pořadové číslo přijatých bloků N(R) do počítadla pořadového čísla přijatých bloků V(R) a vyšle I-blok. Tím potrvdí přijatý I-blok. Jinou možností je vyslat RR-blok, kde je N(R) = V(R), načež vyšle I-blok. 2. Nemá-li DXE vysílat I-bloky, potvrdí příjem RR-blokem, kde N(R) = V(R). DXE může chvíli počkat, aby se ujistila, že nejsou přenášeny další bloky. 2.4.4.2.2 Stav 'nepřipraven k příjmu'. Pokud se DXE nachází ve stavu 'nepřipraven k příjmu', může ignorovat všechny přijaté I-bloky, ale RNR-blokem oznámí svůj stav. Pokud DXE obdrží od protistanice hlášení 'nepřipraven k příjmu', musí se jí pravidelně ptát, kdy bude znovu připravena k příjmu. Vysílá RR- nebo RNR-bloky s P-bitem nastaveným na jedničku. 2.4.4.3 Příjem bloků s chybným vyslaným pořadovým číslem N(S). Je-li přijat blok se správným FCS, ale jeho N(S) nesouhlasí s hodnotou počítadla pořadového čísla přijatých bloků, musí být blok zničen. Vyšle se REJ-blok s pořadovým číslem přijatých bloků o jedničku vyšším než N(S) posledního správně přijatého I-bloku. Dříve než bude I-blok zničen, musí DXE vyhodnotit pořadové číslo přijatého bloku a P-bit. 2.4.4.4 Příjem chybných bloků. Všechny bloky s chybným FCS, neplatné bloky nebo bloky s chybnou adresou nejsou brány na zřetel. 2.4.4.5 Potrvzení příjmu. Vždy po správném přijetí I- nebo S-bloku, i v případě, že DXE není připravena k příjmu, musí být vyhodnoceno N(R) bloku, aby bylo patrné, zda se tímto blokem potvrzují dosud nepotrvzené bloky. V tomto případě musí být zastaven časovač T1. Je-li zastaven a jsou-li ještě nějaké bloky nepotrvzeny, musí být časovač T1 znovu spuštěn. Přeteče-li časovač T1 ještě před potrvzením, musí stanice vyslat I-bloky znovu - viz 2.4.4.9. 2.4.4.6 Příjem výzvy k opakování. Příjme-li DXE REJ-blok, převede počítadlo pořadového čísla vyslaných bloků na přijatou hodnotu N(R) z REJ-bloku. DXE pak co možná nejdříve znovu vyšle všechny nepotvrzené bloky: 1. Nevysílá-li DXE právě a kanál je volný, může bezprostředně začít s opakováním. 2. Pracuje-li DXE v plně duplexním provozu a právě vysílá UI- nebo S-blok, nezruší právě vysílaný blok a připojí bloky určené k opakování. 3. Pracuje-li DXE v plně duplexním provozu a právě vysílá jiný I-blok pro protistanici, může jej zrušit a začít okamžitě s opakováním. 4. V souvislosti s opakováním může DXE, pokud existují další I-bloky určené k přenosu, je okamžitě vyslat, nepřesahuje-li jejich počet maximální počet nepotvrzených bloků - viz 2.4.7.4. Příjme-li DXE REJ-blok s P-bitem, musí (dříve než začne opakování I-bloků) vyslat RR- nebo RNR-blok s F-bitem. 2.4.4.7 Příjem hlášení 'nepřipraven k příjmu'. Příjme-li DXE RNR-blok, nesmí vysílat další I-bloky do doby, kdy bude protistanice schopna přijímat. Přeteče-li časovač T1 od doby, kdy byl přijat RNR-blok, musí DXE reagovat podle odst. 2.4.4.9. Protistanice musí být periodicky tázána na svůj stav - je-li připravena k příjmu - viz 2.4.4.2.2. 2.4.4.8 Vyslání hlášení 'nepřipraven k příjmu'. Je-li DXE ve stavu, kdy na přechodnou dobu není schopna přijímat další I-bloky, informuje o tom protistanici vysláním RNR-bloku. DXE nepřipravená k příjmu může, je-li to možné, přijímat a zpracovávat S-bloky, příjme-li S-blok s P-bitem, musí odpovědět RNR-blokem s F-bitem. Je-li DXE připravena k příjmu, vyšle RR- nebo REJ-blok, podle toho, zda poslední přijatý I-blok měl správné pořadové číslo přijatého bloku - viz odst. 2.4.4.2 a 2.4.4.3. 2.4.4.9 Čekání na potrvzení. Přeteče-li časovač T1, během doby, kdy DXE čeká na potvrzení přijetí vyslaných I-bloků, vyšle odpovídající S-blok (RR- nebo RNR-blok) s P-bitem a spustí časovač T1. Příjme-li DXE S-blok s F-bitem, spustí časovač T1 znovu a převede své V(R) na hodnotu N(R) v tomto S-bloku. V souvislosti s tím vyšle I-bloky nebo zopakuje nepotvrzené I-bloky. Obdrží-li DXE přesto S-blok bez F-bitu, příkazový S-blok nebo I-blok, nechá spuštěný časovač T1, ale bude používat přijaté N(R) jako potvrzení pro I-bloky až do hodnoty N(R)-1. Přeteče-li časovač T1, aniž by byl přijat S-blok s F-bitem, DXE znovu vyšle S-blok s P-bitem. Pokusí se o to N2-krát a nepříjme-li od protistanice S-blok s F-bitem, zruší spojení podle odst. 2.4.6. 2.4.5 Formátování spojení. DXE musí začít s procedurou formátování spojení, obdrží-li během fáze přenosu dat se správným FCS, který odpovídá požadavkům dle odst. 2.3.4.3.3. DXE vyšle FRMR-blok a přejde do stavu formátování spojení. Tento stav je zrušen příjmem SABM- nebo DISC-bloku nebo hlášení DM. Všechny ostatní příkazy, které během tohoto stavu DXE obdrží, způsobí vyslání dalšího FRMR-bloku se stejným I-polem jako u prvního FRMR-bloku. Ve stavu formátování nevysílá DXE žádné další I-bloky a ani přijaté I- a S-bloky nejsou vyhodnocovány. DXE, která vyslala FRMR-blok, spustí časovač T1. Neobdrží-li do jeho přetečení SABM-, DISC- nebo DM-blok, vyšle FRMR-blok znovu a spustí opět časovač T1. Provede-li toto N2 krát, postupuje podle odst. 2.4.6. 2.4.6 Znovuobnovení spojení. Procedura znovuobnovení spojení slouží k iniciaci přenosu dat v obou směrech poté, co se objevila neodstranitelná chyba. Toto znovuobnovení spojení je prováděno během fáze přenosu dat při spojení AX.25. DXE musí zavést znovuobnovení spojení, obdrží-li nepožadovaný blok hlášení s F-bitem nebo neočekávaný UA-blok. Může rezervovat spojení, obdrží-li FRMR-blok. Alternativou je vyslání DISC-bloku, čímž se spojení zruší. DXE rezervuje spojení, během čehož vyšle SABM-blok a spustí časovač T1. Protistanice musí po příjmu SABM-bloku co možná nejdříve odpovědět UA-blokem, svá počítadla V(S) a V(R) převést na nulu a zastavit časovač T1, nevyslala-li sama SABM- nebo DISC-blok. Příjme-li první DXE správně UA-blok, převede svá V(S) i V(R) na nulu, zastaví časovač T1 a ukončí stav 'rezervace spojení'. Obdrží-li DXE jako odpověď DM-blok, přejde do stavu 'volno' a zastaví časovač T1. Přeteče-li časovač T1 dříve než DXE obdrží UA- nebo DM-blok, vyšle znovu SABM-blok a spustí časovač T1. Nastane-li toto N2 krát, přejde do stavu 'volno'. Dokud je spojení rezervováno, DXE ingnoruje ostatní příkazy a hlášení. 2.4.7 Specifikace parametrů. 2.4.7.1 Časování. Aby byla zachvána integrita spojení AX.25 ve vrstvě 2, doporučuje se používat následující časování. 2.4.7.1.1 Časovač T1 - acknowledgement timer. Časovač T1 zajišťuje, aby stanice nečekala nekonečně dlouhou na potvrzení příjmu bloků, které sama vyslala. Délka tohoto intervalu musí být minimálně tak dlouhá, jak dlouho trvá přenos bloků maximální délky a přenos potvrzení. Proto také poskytuje protistanici dostatek času na vyhodnocení bloku. Používají-li se ke spojení digipeatry vrstvy 2, interval musí být prodloužen úměrně počtu digipeatrů. 2.4.7.1.2 Časovač T2 - response delay timer. Časovač T2 se používá k čekání mezi příjmem posledního I-bloku a vysláním potvrzení. V tomto intervalu DXE očekává případné další I-bloku, aby je mohla společně potrvdit, místo potvrzování každého bloku zvlášť. Tímto se také zvyšuje efektivita přenosu dat kanálem. Při plně duplexním spojení se nemá potrvzení zpožďovat více než o k/2 bloků pro udržení maximální průchodnosti kanálu. Parametr k je definován v odst. 2.4.7.4. 2.4.7.1.3 Časovač T3 - inactive link timer. Časovač T3 se vuyžívá k udržení integrity spojení, neběží-li časovač T1. Doporučuje se, aby se vždy, když nejsou delší dobu přenášeny I-bloky nebo bloky s P-bitem (během fáze přenosu dat), DXE tázala své protistanice na její stav RR- nebo RNR-blokem s P-bitem v intervalu časovače T3. Nejvhodnější délka intervalu T3 silně závisí na kvalitě spojení ve vrstvě 1. T3 musí být delší než T1 a bývá velmi dlouhé na kanálech s velkou integritou. 2.4.7.2 Maximální počet opakování N2. Maximální počet opakování souvisí s časovačem T1. Je-li kvalita přenosu na kanále velmi špatná, může je spojení zrušeno po N2 neúspěšných pokusech. 2.4.7.3 Maximální počet bytů v I-poli N1. Maximální počet bytů v I-poli je stanoven ve verzi 2 AX.25 na 256. Verze 1 měla omezení 128 bytů. Při provozu na silně rušených kanálech (KV) se doporučuje volit N1 mnohem menší než maximální hodnotu (např. 64), aby se zvýšila pravděpodobnost správného přenosu bloku. 2.4.7.4 Maximální počet nepotvrzených bloků k. Maximální počet nepotvrzených bloků je 7. Pokud to kvalita kanálu vyžaduje, je možné volit tuto hodnotu nižší a nevysílat více než např. 2 I-bloky současně. Literatura: [1] AX.25, Amateur Packet-Radio Link Layer Protocol Version 2.0. [2] CCITT Reccomendation X.25, Interface between Data Terminal Equipment (DTE) and Data-Circuit Terminating Equipment (DCE) for Terminal Operating in the Packet Mode on Public Data Networks. [3] ANSI X3.66, Advanced Data Comunication Control Procedure (ADCCP). [4] ISO 3309, Data communication - High-level data link control procedures. [5] ISO 7776, Information Processing Systems, Description of the 1984 X.25 LAPB - Compatible DTE Data Link Procedures. Obsah: Předmluva......................................................1 1. Pokyny pro vrstvu 1 - fyzický přenos dat pomocí rádia.......1 1.1 Kmitočty nad 144 MHz.......................................1 1.2 Kmitočty pod 30 MHz........................................1 2. Specifikace protokolu AX.25 vrstvy 2........................1 2.1 Rámec a okruh použití......................................2 2.2 Výstavba datových bloků....................................2 2.2.1 Hranice bloku - flag.....................................2 2.2.2 Adresní pole.............................................3 2.2.3 Kontrolní (řídící) pole..................................3 2.2.4 PID-pole.................................................3 2.2.5 Info-pole................................................3 2.2.6 Bit-stuffing.............................................4 2.2.7 FCS Frame-Check Sequence, kontrolní součet...............4 2.2.8 Sled přenášených bitů....................................4 2.2.9 Neplatný blok............................................4 2.2.10 Zničení bloku...........................................4 2.2.11 Znaky vyplňující místo mezi bloky.......................4 2.2.12 Plně- a poloduplexní spojení, simplexní spojení.........4 2.2.13 Kódování adresního pole.................................5 2.2.13.1 Kódování adresního pole bez digipeatru................5 2.2.13.2 Kódování adresy digipeatru............................7 2.2.13.3 Provoz přes více digipeatrů...........................7 2.3.4.3 Nečíslované bloky.....................................11 2.3.4.3.4 Hlášení 'nečíslované potvrzení' (UA)................12 2.3.4.3.5 Hlášení 'rozpojený mód' (DM)........................12 2.3.4.3.6 Příkaz nebo hlášení 'nečíslovaná informace' (UI)....13 2.3.5.2 Chyby ve vysílaných pořadových číslech................13 2.3.5.3 Opakování po REJ-bloku................................13 2.3.5.4 Znovuobnovení po přetečení časovače...................13 2.3.5.4.1 Znovuobnovení po přetečení časovače T1..............13 2.3.5.4.2 Znovuobnovení po přetečení časovače T3..............14 2.3.5.5 Chyby v kontrolním součtu FCS (Frame-Check Sequence)..14 2.3.5.6 Případ formátování spojení (FRMR).....................14 2.4 Popis zprostředkovávacích předpisů........................14 2.4.1 Předpisy pro adresování.................................14 2.4.1.1 Adresní informace.....................................14 2.4.1.2 Rozdíl mezi příkazem a hlášením.......................15 2.4.2. Předpisy pro P/F-bit...................................16 2.4.3 Předpisy pro navázání a zrušení spojení.................16 2.4.3.1 Výstavba spojení LABP.................................16 2.4.3.2 Fáze přenosu dat......................................17 2.4.3.3 Zrušení spojení.......................................17 2.4.3.4 Stav 'volno'..........................................17 2.4.3.5 Obnova spojení po kolizích............................17 2.4.3.5.1 Kolize v poloduplexním prostředí....................17 2.4.3.5.2 Kolize nečíslovaných příkazů........................18 2.4.3.5.3 Kolize DM-bloku se SABM- nebo DISC-blokem...........18 2.4.3.6 Provoz bez průběžné kontroly..........................18 2.4.4 Předpisy pro přenos dat.................................18 2.4.4.1 Vysílání I-bloků......................................19 2.4.4.2 Příjem I-bloků........................................19 2.4.4.2.1 Stav 'připraven k příjmu'...........................19 2.4.4.2.2 Stav 'nepřipraven k příjmu'.........................19 2.4.4.3 Příjem bloků s chybným vyslaným pořadovým číslem N(S).20 2.4.4.4 Příjem chybných bloků.................................20 2.4.4.5 Potrvzení příjmu......................................20 2.4.4.6 Příjem výzvy k opakování..............................20 2.4.4.7 Příjem hlášení 'nepřipraven k příjmu'.................21 2.4.4.8 Vyslání hlášení 'nepřipraven k příjmu'................21 2.4.4.9 Čekání na potrvzení...................................21 2.4.5 Formátování spojení.....................................21 2.4.6 Znovuobnovení spojení...................................22 2.4.7 Specifikace parametrů...................................22 2.4.7.1 Časování..............................................22 2.4.7.1.1 Časovač T1 - acknowledgement timer..................22 2.4.7.1.2 Časovač T2 - response delay timer...................23 2.4.7.1.3 Časovač T3 - inactive link timer....................23 2.4.7.2 Maximální počet opakování N2..........................23 2.4.7.3 Maximální počet bytů v I-poli N1......................23 2.4.7.4 Maximální počet nepotvrzených bloků k.................23 Literatura....................................................24 Obsah.........................................................25