SMODEM

Fil som överförs åt båda håll samtidigt medan du chattar med SModem v1.0.

Smodem hänvisar till ett dubbelriktat protokoll för filöverföring som används mellan modem och DOS -programmet där protokollet är implementerat, som båda har utvecklats av ett finskt företag vid namn Arisoft . Det användes främst i anslagstavlasystem eftersom det kunde överföra filer åt båda håll samtidigt och tillät användare att chatta med varandra med AriSofts GroupChat- mjukvara. Andra populära dubbelriktade protokoll som BiModem , HS/Link och HydraCom erbjöd också en chattmöjlighet med operatören, men inte med systemets andra användare.

Smodem protokoll översikt

Till skillnad från ZMODEM och andra äldre protokoll har SMODEM ett separat multiplexerat överföringslager på låg nivå (MSLP) och ett filöverföringslager på hög nivå. Detta förenklar protokolldesignen och ger en mycket hög effektivitet på 99,5 %. Multiplexeringen gör det möjligt att skicka en eller flera filer i en kontinuerlig ström utan några pauser mellan filerna, vilket ökar genomströmningen dramatiskt vid överföring av flera filer.

Multiplexeringen gjorde det också möjligt [ förtydligande behövs ] att lägga till en ANSI-terminalemulator i helskärm med en lokal fullfjädrad linjeredigerare och färgad rullningsbuffert med "obegränsad" storlek. Den lokalt buffrade terminalemuleringen gjorde det möjligt för användare att chatta under dubbelriktade filöverföringar i full hastighet.

Protokollet är symmetriskt och kan anslutas till sig självt i loop-back- läge. Filer kan sändas och tas emot samtidigt utan märkbar prestandaförlust.

SMODEM upptäcker DESQview och DPMI ( Windows , OS/2 ) och släpper all oanvänd processorkapacitet till värdsystemet. Den är skriven på C-språket och kompilerad med Microsoft Visual C++ v1.0- kompilator, optimerad för en 80286 -processor. Den behöver minst 200 kB ledigt minne för att fungera korrekt och mer för att tillåta beskjutning från programmet. Filer kan inte överföras medan skalet används.

Multiplexed Serial Link Protocol (MSLP)

MSLP har förmågan att samtidigt hantera 32 oberoende kanaler. Varje enskild kanal använder ett traditionellt tvåfas ACK/NAK- underprotokoll. Maximal effektivitet uppnås genom att samtidigt använda flera parallella kanaler för att hålla sändaren upptagen.

Den maximala paketstorleken flyter mellan 16 och 1024 byte. Överföringsfel minskar paketstorleken beroende på felfrekvensen. Sändarens fönsterstorlek (den totala storleken på överförda paket i väntan på bekräftelse) kan begränsas för att få ett snabbare svar.

Paketramen innehåller en byte för kanalnumret och två byte för en 16-bitars CCITT(ITU)-CRC, med användning av samma algoritm som i felkorrigerande modem. Bekräftelserna och förfrågningarna ingår i paketramen vid behov.

Paketseparatorerna innehåller två byte, vilka om de hittas i överförda data, en extra byte infogas för inkapsling av styrdata. Sannolikheten för att paketseparatorsekvensen uppträder i slumpmässiga data är så liten att den inte påverkar protokolleffektiviteten som gamla enbyte-separatorer gör.

Den maximala effektiviteten vid felfria överföringar i en riktning är:

Om paketstorleken är begränsad till 256 byte är effektiviteten 98,1 %, vilket fortfarande är bättre än original Zmodem .

Om datalänken inte kan överföra vissa specialtecken, kan det traditionella teckeninkapslingsläget aktiveras. I detta läge är de valda teckenkoderna inkapslade, vilket minskar prestandan med cirka 0,4 % + ytterligare 0,4 % för varje vald teckenkod.

Om datalänken är begränsad till sju databitar kan ett speciellt bitinsamlingsläge aktiveras. De högsta bitarna för var sjunde byte samlas till en byte (vilket är åtta bitar under normala förhållanden). Denna samling minskar prestandan med cirka 12,4 % och fördubblar karaktärinkapslingskapaciteten.

Det maximala överföringslinjekorrigeringsläget för MSLP använder fem tecken för att överföra fyra tecken som endast använder utskrivbara 7-bitars ASCII-koder ( Ascii85 ). Detta läge bör fungera på nästan varje icke-transparent transmissionsledning. Det maximala korrigeringsläget minskar prestandan med 20 %. Den bör endast användas för teständamål om standardinställningarna inte fungerar eller om begränsningarna för överföringslinjen är okända eller för komplicerade att hantera med separata justeringar.

externa länkar