Ymodem

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

Ymodem är ett filöverföringsprotokoll som används för att överföra filer mellan två datorer över en seriell anslutning. Det är en förbättring av det äldre Xmodem-protokollet och erbjuder ökad effektivitet och funktionalitet. Här är en teknisk beskrivning av Ymodem-protokollet:

Blockbaserat protokoll

Ymodem är ett blockbaserat protokoll, vilket innebär att det överför data i fasta block av data istället för att skicka byte för byte. Varje block har en fast storlek, vanligtvis 1024 byte, och innehåller data, ett blocknummer och en 16-bitars CRC (Cyclic Redundancy Check) för att kontrollera dataintegriteten.

Blockstrukturen: En typisk Ymodem-blockstruktur består av följande fält:

   - Blockbeteckning (SOH för 128-byte block eller STX för 1024-byte block).

   - Blocknummer (1-255, cirklar från 255 till 0).

   - Komplementet av blocknumret (för att kontrollera fel i blocknumret).

   - Data (128 eller 1024 byte, beroende på blocktyp).

   - CRC-kontrollsumma (för att kontrollera datans integritet).

Startsekvens

Ymodem-överföringen inleds med en startsekvens där sändaren (vanligtvis en dator) skickar en C (ibland ett annat tecken) för att begära en filöverföring. Mottagaren (en annan dator eller terminal) svarar med en ACK för att bekräfta begäran.

Dataöverföring

Efter startsekvensen överförs data i block till mottagaren. Mottagaren verifierar dataintegriteten genom att använda CRC-kontrollsumman och svarar med ACK om blocket är korrekt eller NAK om det är felaktigt.

Filspecifikation

Ymodem stöder överföring av flera filer samtidigt. Sändaren skickar filens namn och storlek i filblocket, så att mottagaren vet hur mycket data som ska förväntas.

Filöverföringsmetod

Ymodem kan användas på två huvudsakliga sätt:

   - Batch-överföring (Ymodem-Batch): Flera filer kan överföras i en enda session utan avbrott. Filnamn och storlek överförs för varje fil i början av överföringen.

   - Filsändning med ackommande (Ymodem-G): Varje fil överförs separat, och mottagaren skickar en ACK efter varje mottagen fil. Detta möjliggör enklare överföring av enskilda filer.

Felhantering

Om ett block inte bekräftas som korrekt av mottagaren efter ett visst antal försök, avbryts överföringen. Sändaren kan då försöka överföra blocket igen.

Binär och textläge

Ymodem kan fungera i både binärt och textläge. I textläget konverteras speciella tecken, som ny rad och bilde, för att undvika problem med olika teckenuppsättningar mellan system.

Användning

Ymodem används främst i samband med seriell kommunikation mellan datorer och terminaler samt mellan datorer via modemanslutningar. Det har varit användbart för att överföra filer när nätverksanslutningar inte var tillgängliga eller inte var praktiska.

Sammanfattningsvis är Ymodem ett blockbaserat filöverföringsprotokoll som erbjuder en ökad överföringseffektivitet jämfört med äldre protokoll som Xmodem. Det används främst för seriell kommunikation och filöverföringar mellan datorer och terminaler.