Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Протокол B, или CIS B, — это протокол передачи файлов, разработанный для CompuServe Information Service и реализованный в 1981 году. Позднее протокол был расширен в версии QuickB (являвшейся асинхронной версией стандартного протокола), а затем в улучшенной версии B Plus. Для своего времени это был довольно продвинутый протокол, поддерживающий эффективную передачу файлов, команд и других данных, а также возможность одновременной передачи данных в обоих направлениях в определенных режимах. Эти расширенные возможности не получили широкого распространения, но встречались в небольшом количестве клиентских программ. Поскольку протокол B был разработан исключительно для работы в CompuServe, большинство сторонних коммуникационных программ того времени с ним не были совместимы. Примечательными исключениями были Tera Term и ProComm Plus от Datastorm для ПК, которые позволяли прослушивать команды на активном коммуникационном порту, и ZTerm для Mac, поддерживавший автоматический запуск передачи данных. Это развитие стало частью более широкой тенденции использования внешних коммуникационных приложений совместно с онлайн-сервисами.
The B protocol, or CIS B, is a file transfer protocol developed for the CompuServe Information Service, and implemented in 1981. The protocol was later expanded in the QuickB version (which was an asynchronous version of the standard protocol) and later the enhanced B Plus version. It was a fairly advanced protocol for its era, supporting efficient transfers of files, commands and other data as well, and could be used in both directions at the same time in certain modes. These advanced features were not widely used, but could be found in a small number of client side packages. Since B protocol was designed only to work within the CompuServe, most third party communications clients of the day were not compatible with it. Notable exceptions were Tera Term and Datastorm's ProComm Plus on the PC which featured the ability to listen for the command on the active communications port, and ZTerm on the Mac which allowed auto starting transfers. This development was part of a wider trend of using external communications applications in conjunction with online services.
Описание
Первоначальная версия протокола B выросла из более раннего двунаправленного протокола, представленного в 1979 году, с добавлением возможностей включения стандартизированной командной структуры в поток данных. Этот протокол предназначался для использования в специализированном онлайн-терминале, разработанном Tandy, под названием "AgVision" или "VideoTex", но проект был прекращен после короткого периода продаж. Система AgVision, без модема, стала основой для TRS-80 Color Computer. Позже протокол был расширен в версии B Plus, хотя существовало два варианта этой версии. B Plus в основном ориентировал общую концепцию на поддержку загрузки данных с CompuServe, в отличие от передачи данных между пользователями. Следующее описание основано на документации B Plus и не относится явно к более раннему (и редкому) протоколу B.
The original version of the B Protocol was an outgrowth of an earlier bi directional protocol introduced in 1979, adding options for including a standardized command structure in the stream. This protocol was intended for use by a custom online terminal built by Tandy, the "AgVision" or "VideoTex", but this project was abandoned after being sold for only a brief period. The AgVision system, with the modem removed, became the basis of the TRS 80 Color Computer. The protocol was later expanded in the B Plus version, although there were two revisions of this version. B Plus focussed the overall concept primarily on supporting downloads from CompuServe, as opposed to user to user transfers. The following description is based on the B Plus documentation and does not explicitly refer to the earlier (and rare) B.
Транспортный слой
В дополнение к обычным типам пакетов, описанным выше, B Plus также включал отдельные типы для отправки команд в CIS через слой с коррекцией ошибок B Plus. Пакет M представлял собой один пакет данных, а пакет L также был пакетом данных, но указывал на завершение потока данных. Это требовалось, поскольку, в отличие от передачи файлов, объем передаваемых данных заранее не был известен. Содержимое этих пакетов было произвольным и не определялось в документации B Plus. Однако основная идея заключалась в том, что терминальная программа пользователя отвечала на последовательность запросов CIS (отправляемую при первом входе пользователя) началом передачи данных типа M. Этот поток использовался для отправки команд хосту CIS, который в ответ открывал другой поток транспортного уровня обратно в терминальную программу. Эти потоки не имели нумерации и считывались в порядке их поступления. Пакеты с ошибками или сбоями приводили к прерыванию обоих каналов. Вероятно, единственным пользователем транспортного уровня был собственный API Host Micro Interface (HMI) CompuServe. HMI определял набор команд для управления CIS, а также возможные ответы на них, обходя интерфейс командной строки. Благодаря использованию коррекции ошибок как побочного эффекта построения на основе B Plus, возможность неверной интерпретации команд или получения искаженных ответов была практически исключена. CIS расширил HMI, чтобы обеспечить управление большинством пакетных интерфейсов, включая функции электронной почты, конференций и передачи файлов. Потоки транспортного уровня не могли выполняться одновременно с передачей файлов, поэтому приложения, использующие транспортный уровень, в целом были достаточно модальными. Например, CIS Navigator для Mac, основанный на HMI, позволял пользователям просматривать CIS в автономном режиме, настраивая различные сообщения электронной почты и передачи файлов, которые затем выполнялись единой партией для сокращения времени подключения. Последним шагом в работе Navigator была загрузка файлов перед выходом из системы.
In addition to the normal packet types outlined above, B Plus also included separate types for sending commands to CIS via the B Plus error corrected layer. The M packet was a single data packet, while L was also a data packet but indicated that the stream of data was now complete. This had to be indicated in this fashion because, unlike a file transfer, the amount of data being sent would not be known in advance. The contents of these packets were free form and were not defined in the B Plus documentation itself. However the basic concept was that the user's terminal program would respond to CIS's Interrogation Sequence (sent when the user first logged in) by starting a transfer with the M type. This stream would be used to send commands to the CIS host, which would respond by opening another transport layer stream back to the terminal program. These streams were "sequenceless", and read out in the order they were received. Errors or Failure packets caused both channels to abort. Possibly the only user of the Transport Layer was CompuServe's own Host Micro Interface (HMI) API. HMI defined a number of commands that could be used to drive CIS, along with the possible responses to them, bypassing the command line interface. Since error correction was being used as a side effect of being built on B Plus, the possibility of incorrectly interpreting the commands or potentially garbled responses was basically eliminated. CIS expanded HMI to allow control of most of the batch oriented interface, including functions for e mail, conferences and file transfers. Transport Layer streams could not take place at the same time as file transfers, so in general terms the applications using the Transport Layer were fairly modal. For instance, CIS Navigator for the Mac, which was HMI based, allowed users to navigate CIS offline, setting up various e mail and file transfers which would then be carried out in a single batch in order to reduce online time. The last step of the Navigator "run" would be to download files before logging off.
Последовательность управления
Все протоколы используют "задний канал" для отправки информации о состоянии от "приемника" к "отправителю". B Plus формализовала эту систему, определив несколько "сообщений", которые могли быть отправлены вне структуры пакетов. Среди них – типичное подтверждение, за которым следовал порядковый номер для подтверждения правильного приема пакета. Для обозначения неправильно полученного пакета использовался сигнал об ошибке, на который отвечали сообщениями подтверждения; сигнал приостановки останавливал отправителя, а сигнал отмены прерывал поток. Контрольная последовательность "Запрос" представляется уникальной для B Plus. Состоящий из одного символа, "Запрос" использовался как для начала передачи, так и для возобновления после получения сигнала об ошибке. В обоих случаях "Запрос" приводил к сбросу приемником режима соединения до самых базовых настроек передачи и подготовке к передаче.
All protocols use the "backchannel" to send status information from the "receiver" back to the "sender". B Plus formalized this system, defining several "messages" that could be sent outside the packet structure. These included the typical followed by a sequence number in order to acknowledge the correct reception of a packet. was used to indicate an improperly received packet, which was responded to with acknowledge messages, paused the sender, while aborted the stream. The Enquire control sequence appears unique to B Plus. Consisting of a single , the Enquire was used both to start transfers as well as restart after receiving a In both cases the Enquire caused the receiver to reset its connection mode to the most basic possible transfer settings, and prepare for a transfer.