JMODEM — это протокол передачи файлов, разработанный Ричардом Джонсоном в 1988 году. Он во многом похож на основополагающий XMODEM , но использует пакет переменного размера для более эффективного использования доступной полосы пропускания высокоскоростных модемов .
JMODEM использует записи переменной длины, называемые блоками. Эти блоки начинаются с 512 байт данных и увеличиваются в длине до максимум 8192 байт на блок. С каждым блоком связаны 6-байтовые накладные расходы, поэтому процент накладных расходов начинается с довольно высокого значения 1,1 процента и уменьшается до очень низкого значения 0,07 процента по мере передачи. Длина блока будет увеличиваться с шагом в 512 байт до тех пор, пока не возникнут ошибки, требующие повторной передачи. В случае возникновения ошибки размер блока сокращается вдвое. Это продолжается до тех пор, пока размер блока не станет всего 64 байта.
JMODEM также включал базовую систему сжатия данных RLE , которая заменяет строки повторяющихся символов счетчиком. Если найдена строка из множества похожих символов, JMODEM отправляет «байт-сигнализатор» (шестнадцатеричное 0xBB), за которым следует двухбайтовое число, за которым следует байт, который нужно повторить. JMODEM применял RLE поблочно, а не ко всему файлу. Поскольку многие файлы уже были сжаты такими системами, как .zip , JMODEM использовал RLE только в блоках, где это фактически уменьшало размер блока.
JMODEM подробно описан в книге Джона Дворака «Руководство Дворака по компьютерным телекоммуникациям» . [1]