Кіріспе

SEAlink – XMODEM протоколымен кері үйлесімді, бірақ өнімділікті арттыру үшін жылжымалы терезе жүйесіне ие файлдарды жіберу протоколы. SEAlink 1986 жылы атақты ARC бағдарламасын жасаған System Enhancement Associates компаниясы жазған SEAdog FidoNet пошталық бағдарламасының бір бөлігі ретінде құрылды. Ол қарапайым "авторлық құқығын сақтау" шартымен лицензияланды, бірақ FidoNet пошталық бағдарламаларынан басқа кеңінен қолданылмады. SEAlink және XMODEM-нің көптеген басқа да жетілдірілген нұсқалары ZMODEM пайда болғаннан кейін тез арада қолданудан шығарылды.

Сипаттама

XMODEM жіберуге тиіс файлды 128 байттан тұратын, нөмірленген пакеттер сериясына бөледі. Пакеттер бір-бірлеп алушыға жіберіледі, ол дұрыс қабылдауды ACK символын жіберіп растайды немесе NAK символын жіберіп қайта жіберуді сұрайды. Содан кейін тағы бір пакет жіберіледі. ACK немесе NAK жіберуге кеткен уақыт дерлік нөлге жуық болғанымен, телефон желісінің таралу кешігуі кешігу тудырады. 0,1 секундтық кешігу мүлдем сирек емес, ал халықаралық байланыстарда одан да ұзақ болуы мүмкін. Бұл XMODEM-нің максималды жылдамдығы модемдердің жылдамдығынан гөрі телефон желісіне байланысты дегенді білдіреді. 300 бит/с жылдамдықпен бұл үлкен мәселе емес, себебі пакетті жіберуге шамамен 3,5 секунд уақыт кетеді, ал 0,1 секундтық кешігу елеусіз. Дегенмен, 9600 бит/с жылдамдықпен пакетті жіберуге шамамен 0,1 секунд уақыт кетеді, яғни жіберуші ACK немесе NAK күтіп тұрғанда әлеуетті өткізу қабілетінің кем дегенде жартысы жоғалады. SEAlink бұл мәселені «сырғымалы терезе» арқылы шешеді. Бұл жағдайда жіберуші ACK немесе NAK күтпейді, керісінше пакеттерді үздіксіз ағынмен жібереді. Алушы әлі де пакеттерді ACK немесе NAK арқылы растауы керек, бірақ әрқайсысына пакет нөмірін қосады, бұл жіберушіге қай пакеттер жұмыс істегенін немесе сәтсіз аяқталғанын анықтауға мүмкіндік береді. «Терезе» – ACK немесе NAK талап етілместен бұрын жіберілетін пакеттердің саны. SEAlink жағдайында терезе алты пакеттен тұрды, бұл бір уақытта 768 байт дерек жіберуге мүмкіндік берді. SEAlink қазіргі XMODEM нұсқаларымен толық үйлесімді болу үшін жасалған. Алушы тарапында, қабылдаушыдан тек пакет нөмірін (барлық XMODEM пакеттерінде бар) әдеттегі ACK немесе NAK символымен бірге қайтару талап етіледі. Бірінші ACK немесе NAK алғаннан кейін SEAlink жіберушісі пакет нөмірін «байқайды» және терезелерді пайдалануды жалғастырады. Егер пакет нөмірі болмаса, ол SEAlink емес, стандартты XMODEM-ге пакет жіберіп отыр деп есептейді және терезенің мөлшерін бірге орнатады.

Басқа ерекшеліктері

SEAlink басқа XMODEM туындыларында кездесетін бірнеше мүмкіндіктерді де қамтыды. Атап айтқанда, файл туралы ақпаратты жіберу және бірнеше файлды беруді қолдау мақсатында FidoNet-ке қатысты TeLink протоколында енгізілген "нөлдік пакетті" пайдалану ерекше болды. SEAlink осы "стандартқа" шағын өзгеріс енгізді, пакеттің 40-шы байтына "овердрайвты" пайдалану керек пе, керек пе емес екенін көрсететін байт қосты. Оны қосу үшін, 40-шы байтқа нөлден өзге кез келген санды енгізу арқылы қабылдаушы енді ACK хабарламаларын күтпейді, тек NAK хабарламаларын күтеді. Бұл қабылдаушыдан жіберушіге қажетті өткізу қабілетін азайтуға бағытталған, бұл көптеген жоғары жылдамдықты модемдер үшін маңызды мәселе болды, себебі олардың кері арнасы өте баяу болды (мысалы, Telebit модемдерінде 75 бит/с). Кейіннен "RESYNC" мүмкіндігі қосылды, ол файлдарды тоқтатылған жерден қайта бастауға мүмкіндік берді. RESYNC нөлдік пакетке тағы бір индикаторды, 42-ші байтты қосты, бұл жіберуші аталған мүмкіндікті қолдайтынын көрсету үшін. Мұндай жағдайда қабылдаушы әрқашан сол файл атауы жергілікті түрде бар-жоғын тексереді, егер бар болса, әдеттегі ACK немесе NAK орнына SYN символын жібереді. SYN символынан кейін қайта іске қосу үшін пакет нөмірі көрсетіледі.