Binkp

Binkp
binkp
Уровень (по модели OSI):

Прикладной

Семейство:

TCP/IP

Создан в:

1996 г.

Порт/ID:

24554/TCP

Назначение протокола:

Передача файлов в FTN-сетях

Спецификация:

FTS-1026

Основные реализации (клиенты):

binkd, argus, bforce

Расширяемость:

Доп. команды и опции

Основные расширения:

шифрование, сжатие данных, nodupe mode, MD5-аутентификация

Binkpсетевой протокол прикладного уровня, разработанный для передачи файлов в Фидонете или в других FTN-сетях, происходящей поверх TCP-соединения. Как правило, для связи по данному протоколу используют TCP-порт 24554, так как этот номер зарезервирован под binkp в каталоге IANA (Internet Assigned Numbers Authority).

Существуют две версии протокола binkp: оригинальная (1.0) и дополненная (1.1). Кроме того, разработано несколько расширений протокола. Протокол и бо́льшая часть его расширений оформлены стандартами и предложениями FTSC.

Уровень разрешает приложениям пользователя иметь доступ к сетевым службам, таким как обработчик запросов к базам данных, доступ к файлам, пересылке электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Пример: HTTP, POP3, SMTP.

Содержание

История создания

После того, как Интернет стал все более распространён и доступен, возникла потребность использовать его для междугородних линков в Фидонет вместо обычных телефонных сетей и сети Искра-2. Реализации виртуальных модемов (rlfossil, vmodem) решали задачу недостаточно эффективно. В мейлере ifcico была реализована возможность прямой связи между фидошными мейлерами по TCP, но по-прежнему использовались протоколы, предназначенные для не дающего гарантии доставки транспорта (EMSI, zmodem), а потому неэффективные для применения поверх TCP.

В такой ситуации в 1996 г. Дмитрий Малов разработал специализированный протокол binkp и поддерживающий его мейлер binkd. Этот протокол и мейлер могли работать только поверх TCP, они не предназначены для работы по обычным телефонным линиям. В этом было их преимущество перед остальными протоколами, и binkp достаточно быстро потеснил остальные варианты fido over inet: к концу 1998 года, если судить по флагам в нодлисте, binkp уже был наиболее распространённым из протоколов fido over ip. Кроме того, протокол binkp был изначально документирован, а его реализация (binkd) — свободная кроссплатформенная программа, что тоже являлось существенным преимуществом binkp и binkd перед другими протоколами этого применения. Впоследствии появились реализации протокола binkp и в других мейлерах (Argus, bforce).

Номер порта (24554), по-видимому, был выбран, как число 59999, у которого поменяны местами старший и младший байты (т. е. в сетевом пакете записаны так, как они хранятся в компьютерах intel-архитектуры).

Структура протокола

Взаимодействие происходит в одной TCP-сессии (благодаря чему протокол работает через IP NAT). Стороны обмениваются между собой кадрами ограниченного размера (не более 32K, по умолчанию 4K). В каждом кадре могут передаваться либо данные, либо управляющая команда. За счёт этого достигается двунаправленность протокола: во время отправки файла одна из сторон может вклинить в поток данных кадр с командой подтверждения приёма файла, таким образом приём и передача происходят практически независимо друг от друга одновременно в одной tcp-сессии.

Кроме того, изначально было введено понятие потока. То есть, отправляющая сторона не ожидает подтверждения приёма предыдущего файла для отправки следующего. Это существенно повышает эффективность протокола по сравнению с другими аналогичными. Также в протокол были заложены возможности его последующего развития — добавления новых опциональных возможностей, либо изменение версии протокола (поддерживаемые версии и набор опциональных расширений стороны объявляют друг другу в начале сеанса связи).

Binkp работает через двунаправленный символьный канал, не допускающий ошибок при передаче даннных. Любые данные, записываемые каждой из сторон в канал, имеют следующий общий формат:

binkp кадр:

   +---------------------- 0=блок данных, 1=сообщение(команда)
   |                +---- размер блока данных / размер аргументов
   |                |
   7 6543210 76543210
  +-+-------+--------+--- ..... ---+
  | |   HI      LO   |             | -- блок данных / аргументы
  +-+-------+--------+--- ..... ---+
  |<-    2 байта   ->|<- 32K max ->|

Заголовок кадра -- два байта, определяющие тип и длину (в байтах) данных, следующих за заголовком. Если старший бит заголовка сброшен, то все данные поступившие с кадром следует дописать к текущему принимаемому файлу. (Если такой файл уже открыт, иначе -- отбросить) В противном случае, данные следует разобрать как команду, меняющую состояние протокола. Первый байт данных, поступивших с кадром -- номер команды. Оставшиеся -- аргумент. Аргументы команд -- произвольный набор символов, не обязательно ограниченный '\0'. Команда без аругментов (например, M_OK) может выглядеть примерно так:

   7 6543210 76543210 76543210
  +-+-------+--------+--------+
  |1|      0        1|       4|
  +-+-------+--------+--------+
    |                |        +----- номер команды (аргументов нет)
   |                 +-------- длина кадра без заголовка -- 1 байт
   +- это команда

Основные расширения

По мере развития протокола в него были добавлены многие новые возможности. Вот основные из них:

  • Возможность дополнения очереди на отправку без обрыва соединения (это основное отличие binkp 1.1 от 1.0), в частности, возможность отработки файловых запросов
  • Возможность безопасной передачи пароля по открытым каналам связи с использованием хеша MD5
  • Возможность шифрования всего трафика
  • Возможность компрессии трафика
  • Защита от повторной передачи файла в случае обрыва связи при подтверждении приёма (ND-mode)

См. также

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Нужно решить контрольную?

Полезное


Смотреть что такое "Binkp" в других словарях:

  • Binkp — is a protocol for transferring FidoNet mail over reliable connections.Application of the ProtocolHistorically, Fidonet traffic was transferred mainly over serial (RS 232) modem connections which might not have error correction layer. These dial… …   Wikipedia

  • Binkd — Тип FTN мейлер Написана на C Операционная система UNIX‐подобные, Microsoft Windows (3.x и 4.x), OS/2 Лицензия GNU GPLv2 Binkd  это программа, разработанная для передачи почты и фай …   Википедия

  • Фидонет — Запрос «Фидо» перенаправляется сюда; см. также другие значения. Фидонет (от англ. FidoNet, /ˈfaɪdəʊnɛt/; коротко Фидо) международная любительская компьютерная сеть, построенная по технологии «из точки в точку».[1] Изначально программное… …   Википедия

  • FidoNet — This article is about the BBS network. For the UK ISP, see Fido.net. Netmail redirects here. For the ISP grade E mail package, see Novell NetMail. / /|oo ( | / ) @/ | | | (*) | )) | U | / // / FIDO //|| / ( ) ( /( |( / Old FidoNet logo …   Wikipedia

  • DNS Distributed Nodelist — (DDN) это способ распространения нодлистовой информации средствами DNS. Содержание 1 Определения 2 Принципы и краткое описание DDN 3 Примечания …   Википедия

  • Мейлер (Фидонет) — У этого термина существуют и другие значения, см. Мейлер (значения). Очередь в интерактивном интерфейсе для мейлера qico …   Википедия

  • Mailer — qico qcc 0.57.1xe Der Mailer ist ein im FidoNet übliches Programm zum automatisierten Versenden und Empfangen von Nachrichten und anderen Dateien. Der Mailer wartet die meiste Zeit auf einen Anruf sei es per Modem, per ISDN, oder via Internet… …   Deutsch Wikipedia

  • FidoNet — es una red de computadores a nivel mundial que es usada para la comunicación entre BBS Bulletin Board System. En los años 90 fue el más popular, hasta que llegó Internet (de acceso más sencillo y fácil). La red continúa funcionando aunque se ha… …   Wikipedia Español

  • FTN — (от FidoNet Technology Network) технология организации офлайновой сети, использующаяся в Фидо и левонетах. FTN является технологией, возникшей вместе с сетью Фидо в 1984 г., и развитие технологии было обусловлено потребностями быстро растущего… …   Википедия

  • Протоколы передачи данных — Протоколы передачи данных  это набор соглашений, который определяет обмен данных между различными программами. Протоколы задают способы передачи сообщений и обработки ошибок в сети, а также позволяют разрабатывать стандарты, не привязанные к …   Википедия


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»