Janus (protokol) - Janus (protocol)
Komunikační protokol | |
Účel | protokol přenosu souborů |
---|---|
Vývojáři | Rick Huebner |
Představený | Prosince 1987 |
Na základě | ZMODEM |
Hardware | modemy |
Janus je protokol přenosu souborů pro použití na systémy BBS (BBS). Má relativně vzácnou vlastnost, že je plně obousměrný, což umožňuje protokolu nahrávat a stahovat soubory současně. To bylo napsáno Rickem Huebnerem v roce 1987; Huebner předtím napsal a ZMODEM modul pro Opus-CBBS Systém.[1]
Pomocí systému Janus by systémy Opus BBS mohly ušetřit čas při výměně souborů FidoNet pakety zpráv v obou směrech současně, což Huebner popsal jako zasílání kratšího souboru zdarma. Ve většině případů by daný systém v síti Fido stáhl více zpráv, než kolik poslal zpět, takže v praxi to vedlo k tomu, že stream odpovědí byl bez nákladů.
Janus byl užitečný v nastaveních, kde upstream i downstream spoje měly podobný výkon, což platilo v polovině 80. let, kdy většina vysokorychlostních modemů fungovala obousměrně na 2 400 bps. Protokol však byl zaveden téměř současně s rychlou popularizací USRobotika Standard HST se stahováním 9 600 b / s a nahráváním pouze 300 b / s, kde Janus nabízel malou nebo žádnou výhodu. Když se objevily obousměrné modemy s vyšší rychlostí, jako v.32bis Janus už z velké části zmizel.
Detaily
Janus je paketově orientovaný protokol XMODEM a podobné systémy. V těchto protokolech je soubor přenášen v „paketech“ nebo „blocích“, malých částech souboru jako celku. Jakmile je každý paket přijat, je zkontrolován, zda neobsahuje chyby, a pokud je nalezena chyba, odešle se odesílateli chybová zpráva. Odesílatel poté odešle paket znovu, dokud nebude úspěšný nebo nebude přenos po určitém počtu chyb zrušen.[2]
Janus je typický pro protokoly z konce 80. let, které se pokoušejí lépe využívat zvyšování modem rychlosti. XMODEM přenesl pouze 128 bajtů dat na paket a před odesláním dalšího paketu čekal na odpověď od přijímače. Vzhledem k latenci telefonní sítě představoval minimální možný čas pro přijetí tohoto potvrzení významné procento času potřebného k odeslání dalšího paketu, což vedlo k relativně nízkému využití kanálu na rychlejších modemech.[2]
Řešením tohoto problému použitého v Janus bylo umožnit změnu velikosti paketu od 0 do 2052 bajtů na paket. U větších paketů představuje latence sítě mnohem menší zlomek času potřebného k odeslání paketu. Janus se navíc nezastavil a nečekal, až přijímač potvrdí příjem paketu, jednoduše předpokládal, že byl přijat správně, a okamžitě začal odesílat další paket. Pokud došlo k chybě, přijímač by to signalizoval zpět odesílateli a špatný paket by byl poté znovu odeslán, jakmile bude aktuální paket kompletní.[2]
Základní struktura paketu Janus sestávala z následujícího vzoru:
PKTSTRT, data, PKTYPE, PKTEND, CRC
PKTSTRT a PKTEND byly jedinečné znakové sekvence, které protokolu umožňovaly identifikovat začátek a konec datové sekce. Datová část obsahovala 0 až 2052 bajtů dat, v závislosti na typu PKTYPE. CRC byl 16bitový kontrola cyklické redundance, to samé platí pro XMODEM-CRC (a jeho varianty). Existovalo několik různých PKTYPE, které představovaly datové pakety, acks, naks a další podrobnosti přenosu, stejně jako FNAMEPKT, který odesílal metadata souboru (název, velikost atd.), Které ostatní protokoly zpracovávaly v „paketu nula“. Na rozdíl od většiny ostatních protokolů Janus použil 32bitový offset v souboru k identifikaci paketů, na rozdíl od protokolů odvozených z XMODEM, které používaly interní číslo paketu, které bylo obvykle monotónně rostoucí celé číslo.[2]
Chyba v systému Janus by způsobila, že přijímač odešle paket BADPKT s posunem souboru, který bude odeslán zpět, což systému umožní kdykoli odeslat jakýkoli paket mimo pořadí. Velké množství chyb bylo možné vyřešit zasláním paketu RPOSPKT, který „převinul“ přenos na danou 32bitovou adresu. Na rozdíl od jiných protokolů Janus neměl předdefinovaná omezení počtu selhání, která by způsobila selhání přenosu, přenosy skončily pouze tehdy, když jedna nebo druhá strana výslovně odeslala HALTPKT.[2]
Velikost paketu v aplikaci Janus byla vybrána dynamicky na základě počtu chyb přenosu a doby odeslání paketu. Jednalo se o stejný algoritmus, který Huebner vyvinul pro svou verzi ZMODEM použitou v systému Opus BBS. Tento algoritmus byl později zpětně přenesen do standardu ZMODEM Chuckem Foresbergem.[2]
Reference
Citace
- ^ „ZMODEM.ZIP“.
- ^ A b C d E F Huebner 1987.
Bibliografie
- Huebner, Rick (16. prosince 1987). Úvod do plně duplexního protokolu pro přenos souborů Opus Janus (Technická zpráva).CS1 maint: ref = harv (odkaz)