XMODEM

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök

Xmodem är ett äldre filöverföringsprotokoll som används för att skicka datafiler över seriella anslutningar, främst mellan datorer eller mellan en dator och en terminal. Det är en textbaserad protokollsvit och användes ofta förr när seriell kommunikation var vanligt förekommande. Här är en teknisk beskrivning av Xmodem-protokollet:

Start och stoppbitar

Xmodem överför data över seriella anslutningar med hjälp av start- och stoppbitar för att indikera när dataöverföringen börjar och slutar. Detta innebär att en byte av data har två extra bitar, en för start och en för stopp, vilket innebär att det överförs åtta data bitar plus en start- och en stoppbit.

Blockbaserat

Xmodem överför data blockvis. Ett block består av en fast storlek av data (vanligtvis 128 byte), en blocknummer och en 16-bitars CRC (Cyclic Redundancy Check)-kontrollsumma. CRC används för att kontrollera att data är korrekt överfört och inte har blivit korrumperad under överföringen.

Startsekvens

Xmodem-överföringen inleds med en startsekvens där mottagaren (vanligtvis datorn eller terminalen) skickar en "C" (eller ibland ett annat tecken) till sändaren för att begära en filöverföring.

Dataöverföring

Efter startsekvensen skickar sändaren data blockvis till mottagaren. Efter att mottagaren har mottagit ett block verifieras det med hjälp av CRC-kontrollsumman. Om blocket är korrekt, skickar mottagaren en ACK (Acknowledgment) till sändaren för att bekräfta att blocket har mottagits korrekt. Om blocket är felaktigt, skickar mottagaren en NAK (Negative Acknowledgment) och begär att blocket skickas igen.

Blocknummer och sekvenskontroll

Varje block är numrerat så att både sändaren och mottagaren kan hålla koll på vilket block som överförs. Blocknumret används för att identifiera ordningen på blocken och för att se till att inga block saknas.

Slutsekvens

När hela filen har överförts, avslutar sändaren överföringen med en slutsekvens. Mottagaren skickar en ACK för att bekräfta att hela filen har mottagits korrekt.

Felhantering

Xmodem har vissa mekanismer för felhantering, som att skicka block igen om de inte bekräftas som korrekta (genom att mottagaren skickar NAK) och ett begränsat antal försök att överföra blocket igen om det misslyckas flera gånger.

Binär och textläge

Xmodem har både binärt och textläge. I textläget omvandlas speciella styrtecken, som ny rad och bilde, innan överföring för att undvika problem med teckenuppsättningar som inte är kompatibla mellan olika system.

Xmodem är ett robust protokoll som användes flitigt i äldre dator- och kommunikationssystem. Det är dock inte särskilt effektivt när det gäller överföringshastighet och har begränsad förmåga att hantera stora filer. Därför har moderna filöverföringsprotokoll som Ymodem, Zmodem, Kermit och FTP ersatt Xmodem i många sammanhang där högre prestanda och pålitlighet krävs.