СМОДЕ
В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
Smodem относится к двунаправленному протоколу для передачи файлов, используемому между модемами и программой DOS , в которой реализован этот протокол, оба из которых были разработаны финской компанией Arisoft . В основном он использовался в системах досок объявлений , поскольку мог передавать файлы в обоих направлениях одновременно и позволял пользователям общаться друг с другом с помощью программного обеспечения GroupChat от AriSoft . Другие популярные двунаправленные протоколы, такие как BiModem , HS/Link и HydraCom, также предлагали возможность чата с оператором, но не с другими пользователями системы.
Обзор протокола смодема
[ редактировать ]В отличие от ZMODEM и других старых протоколов, SMODEM имеет отдельный уровень мультиплексной передачи низкого уровня (MSLP) и уровень передачи файлов высокого уровня. Это упрощает разработку протокола и обеспечивает очень высокую эффективность — 99,5%. Мультиплексирование позволяет отправлять один или несколько файлов непрерывным потоком без перерывов между файлами, что значительно увеличивает пропускную способность при передаче нескольких файлов.
Мультиплексирование также сделало возможным [ нужны разъяснения ] добавить полноэкранный эмулятор терминала ANSI с локальным полнофункциональным редактором строк и цветным буфером обратной прокрутки «неограниченного» размера. Эмуляция терминала с локальной буферизацией позволяла пользователям общаться в чате во время двунаправленной передачи файлов на полной скорости.
Протокол симметричен и может соединяться сам с собой в режиме обратной связи . Файлы можно одновременно передавать и получать без заметной потери производительности.
SMODEM обнаруживает DESQview и DPMI ( Windows , OS/2 ) и освобождает всю неиспользуемую мощность процессора хост-системе. Он написан на языке C и скомпилирован с помощью компилятора Microsoft Visual C++ v1.0 , оптимизированного для процессора 80286 . Для правильной работы ему необходимо не менее 200 КБ свободной памяти и больше, чтобы можно было выполнять обстрел из программы. Файлы не могут быть переданы во время использования оболочки.
Протокол мультиплексированного последовательного канала (MSLP)
[ редактировать ]MSLP имеет возможность одновременно управлять 32 независимыми каналами. В каждом канале используется традиционная двухфазная схема. ACK/NAK Подпротокол типа . Максимальная эффективность достигается за счет одновременного использования нескольких параллельных каналов для поддержания занятости передатчика.
Максимальный размер пакета варьируется от 16 до 1024 байт. Ошибки передачи уменьшают размер пакета в зависимости от частоты ошибок. Размер окна передатчика (общий размер передаваемых пакетов, ожидающих подтверждения) может быть ограничен для получения более быстрого ответа.
Кадр пакета содержит один байт для номера канала и два байта для 16-битного CCITT(ITU)-CRC, используя тот же алгоритм, что и в модемах с коррекцией ошибок. Подтверждения и запросы при необходимости включаются в кадр пакета.
Разделители пакетов содержат два байта, при обнаружении которых в передаваемых данных добавляется один дополнительный байт для инкапсуляции управляющих данных. Вероятность появления последовательности разделителя пакетов в случайных данных настолько мала, что она не влияет на эффективность протокола, как это делают однобайтовые разделители старого стиля.
Максимальная эффективность при однонаправленной безошибочной передаче составит:
Если размер пакета ограничен 256 байтами, эффективность составляет 98,1%, что все равно лучше, чем у оригинального Zmodem .
Если канал передачи данных не может передавать некоторые специальные символы, можно активировать традиционный режим инкапсуляции символов. В этом режиме выбранные коды символов инкапсулируются, что снижает производительность примерно на 0,4% + дополнительно 0,4% для каждого выбранного кода символа.
Если канал передачи данных ограничен семью битами данных, можно активировать специальный режим сбора битов. Старшие биты каждых семи байтов собираются в один байт (что в нормальных условиях составляет восемь битов). Эта коллекция снижает производительность примерно на 12,4% и удваивает возможности инкапсуляции символов.
Режим максимальной коррекции линии передачи MSLP использует пять символов для передачи четырех символов, которые используют только печатаемые 7-битные коды ASCII ( Ascii85 ). Этот режим должен работать практически на каждой непрозрачной линии передачи. Режим максимальной коррекции снижает производительность на 20%. Его следует использовать только в целях тестирования, если настройки по умолчанию не работают или если ограничения линии передачи неизвестны или слишком сложны, чтобы их можно было обработать с помощью отдельных настроек.