Fido over IP: FidoNet и Internet

Фидо через IP-протокол: Фидонет и Интернет


"Я английский бы выучил только за то, что на нем разговаривал Дженнингс!"
-- фольклор FidoNet

[...]

FidoNet росла как придорожный куст -- сама собой. Никто не вкладывал в нее больших денег, не создавал как единый проект. И тем не менее к началу 90-х годов оформилось то, что называют FTN-технологией. Это стандарты и рекомендации, написанные участниками сети на основании их личного опыта и прошедшие что-то вроде экспертной оценки в специальном комитете, работающем на общественных началах. Большинство их использовано при написании реальных программ. Часть документов имеет статус действующих стандартов и обязательна к исполнению разработчиками программного обеспечения -- эти документы называются FTS (FidoNet Technical Standarts). Другие (их большинство) существуют в виде рекомендаций.

Простые участники сети редко имеют дело со стандартами. Стандарты описывают формат письма, правила маршрутизации почты между узлами и многие другие важные вещи- но рядовому члену сети знать все это не обязательно. Он в первую очередь сталкивается с набором программ, которые нужно сконфигурировать для совместной работы. Однако уникальная система адресации -- то, что непременно и в первую очередь вынужден изучать каждый желающий подключиться к сети.

FidoNet имеет свою систему адресации, не совпадающую ни с какой другой. Например, адрес в Fido выглядит как:

     2:5049/12.0@fidonet 
Это так называемая 5-D запись -- в ней пять полей, разделенных спец. символами. Первое поле, цифра два, определяет номер зоны; всего их в FidoNet шесть, по числу материков. Цифра два означает принадлежность к европейской зоне FidoNet.

Второе поле, отделенное от первого двоеточием и содержащее число 5049, дает нам номер сети. Сеть 5049 -- это наша сеть, TartarNet, Fido в Республике Татарстан.

Третье поле, отделенное наклонной чертой и содержащее цифру 12 -- это номер узла, то есть личный адрес Системного Оператора. Отделенный точкой ноль означает что адрес узловой. Ненулевое значение в этом поле означало бы что это адрес Пойнт-системы, формально участником Fido не являющейся и включенной в сеть через узловой адрес, приведенный в предыдущем поле.

Пойнт -- это начальная стадия подключения к FidoNet, все начинают с получения пойнтового адреса у какого-нибудь из узлов. Как правило, если речь идет об адресе узла и значение этого поля равно нулю, его просто опускают, то есть записывают адрес в виде 2:5049/12@fidonet. Последнее поле означает организационную принадлежность к адресному пространству сети Fidonet -- есть и другие сети, работающие на FTN-технологии, и используется это поле при маршрутизации почты между FTN-сетями. Поэтому при использовании адреса внутри FidoNet последнее поле также часто опускают. Все эти формы записи -- 2:5049/12.0@fidonet, 2:5049/12@fidonet и 2:5049/12 -- эквивалентны.

Адреса FidoNet используются при написании двух основных типов писем. Личная почта (netmail) и письма в телеконференции (echomail), составляют ту среду общения, ради которой существует FidoNet. Для того, чтобы понять, как может использоваться Internet в FTN-сетях, нужно иметь хотя бы самое общее представление о функционировании Fido-системы.

После написания письма системным оператором в программе-редакторе фидо-почты оно попадает либо в базу личных писем (netmail message base), либо в базу эхо-почты, если это письмо в эхо-конференцию.

Затем письмо подготавливается к отправке либо упаковщиком личной почты (netmail packer), либо эхопроцессором в случае обработки эхо-почты. После этого в дело вступает центральная программа FTN -- почтовая программа или Fido Mailer (попросту мейлер на привычном фидо-жаргоне).

Это наиболее сложная программа во всем наборе FTN-программ, мы не будем останавливаться подробно на ее устройстве и функционировании, отметим только что она взаимодействует с коммуникационным портом компьютера (и через него -- с модемом) через отдельную программу, коммуникационный драйвер FOSSIL. Посредством этого драйвера устанавливается соединение с другой аналогичной fido-системой, через него проходит весь поток передаваемой информации. Наименование FOSSIL является аббревиатурой и составлено из начальных букв некогда популярных FTN-программ.

Счастливая мысль избавить авторов FTN-мейлеров от написания интерфейса взаимодействия с модемом оказалась плодотворной, и именно она подсказала несколько лет назад автору популярного FОSSIL-драйвера идею замены FOSSIL 'a интерфейсным модулем взаимодействия с другим FTN-мейлером через Internet.

Действительно, пусть мейлер "думает" что он по-прежнему взаимодействует с модемом и телефонной линией, можно легко воспроизвести весь набор функций FOSSIL-драйвера, имитировать стандартные ответы модема на выдаваемые команды и ситуации, возникающие в процессе установления соединения. Например, при обрыве связи передавать мейлеру "NO CARRIER" -- стандартный ответ модема при обрыве соединения и "BUSY" ("занято") если от противоположной стороны приходит сигнал "перегрузка". На самом же деле мы будем устанавливать соединение по одному из распространенных Internet-протоколов, и самым удобным и простым для этой цели является известный протокол Telnet, образующий прозрачный символьный канал от одной системы до другой. Телнет использует в свою очередь протокол с устранением ошибок TCP и таким образом не требует дополнительной коррекции ошибок.

Так или приблизительно так рассуждал вероятно Рeймонд Гвин (Raymond Gwinn), создавая программу-драйвер, названную им Vmodem -- Virtual Modem Driver, надолго ставшую стандартом де-факто при передаче Fido-почты через Internet. Многие FidoNet-системы и BBS и до сих пор используют его, однако этот подход не лишен недостатков:

Поэтому бывает что Fido-мейлер отказывается устанавливать соединение через Vmodem, или установленное соединение неустойчиво, быстро разрывается. Если вы подключены к Internet через proxy-шлюз -- приготовьтесь, ваш fido-мейлер через Vmodem работать вернее всего не будет.

Поэтому, несмотря на широкую распространенность и известность в FidoNet, Vmodem так и не стал основой "Fido-over-IP".

Если у вас есть Internet on-line -- зайдите на сайт http://ifmail.sourceforge.net ... Евгений Черкашин, более известный в сети как Eugene Crosser, разработал и написал "с нуля" функционально полный комплект программного обеспечения FidoNet -- комплекс программ под общим названием ifmail.

От многих других программ FidoNet, продаваемых как shareware, эта программа отличается тем, что распространяется в соответствии со стандартной лицензией GNU -- бесплатно, вместе с исходными текстами.

Ifmail -- большая программа, около 50 тысяч строк исходного текста. Она включает в себя FTN-совместимый мейлер (ifcico), работающий с модемом, и эхо-процессор (ifgate), использующий при обработке эхо-конференций FidoNet известный протокол Internet, предназначенный для обработки телеконференций -- NNTP.

Последняя особенность позволяет применять ifmail как универсальный шлюз между сетью Fidonet и Internet. Почти все эхо-конференции региона 50 FidoNet, известные и популярные в Internet'e как иерархия Fido7, проходят через ifmail.

С самого зарождения сети FidoNet стояла задача передачи почты в сети, основанные на другой технологии, с другим форматом адреса -- прежде всего в Internet. Для обеспечения этого в сети установлены системы, называемые шлюзами (gateway), определены правила преобразования адресов FidoNet в символьные адреса Internet, и зарегистрирован специальный домен (выделенное адресное пространство) Internet -- fidonet.org.

Приведенный выше адрес 2:5049/12 однозначно преобразуется в символьный адрес Internet как f12.n5049.z2.fidonet.org. И если вы захотите написать письмо на мой Fido-адрес из Internet'a, можете смело отправлять письмо на адрес Amir.Shabashvili@ f12.n5049.z2.fidonet.org -- пройдя ряд межсетевых шлюзов, письмо дойдет до моего компьютера. И вернее всего, пройдет при этом через одну или две системы, на которых установлен ifmail.

Ifmail также позволяет устанавливать соединения с другой аналогичной программой через Internet, используя стандартный Internet-протокол TCP, решая таким образом задачу полноценного использования Internet для нужд Fido.

Последние версии ifmail могут производить соединение и с системами, использующими Vmodem.

Вы можете легко скачать в Intenet'e ifmail вместе с исходными текстами или получить его в составе расширенного дистрибутива бесплатной операционной системы Linux, но необходимо помнить, что эта прекрасная и действительно работоспособная почтовая система создана и оттестирована только для Unix.

Перенести (или, как говорят, "портировать") ifmail под другие операционные системы возможно -- для того и существует проект GNU, для этого (в частности) и распространяются программы в исходных текстах -- да только вот пока никто этого в полной мере не сделал. Есть попытки переноса ifcico под OS/2, но распространенного и широко используемого варианта -- нет.

Итак, ifmail используется по всему миру немногочисленными энтузиастами, рискующими пускаться в плавание по могучей реке с названием Unix. Здесь ему конкурентов нет. Но не у всех хватает решимости на такое (по выражению Горького) "большое, важное, но никому не нужное дело", как изучение и использование Unix. Fidonet -- домашняя сеть. Дома удобно иметь что-нибудь поспокойнее Unix .

Почему-то считается что настоящие программисты работают в определенных местах нашей планеты. В Северной Америке, в Европе, в крайнем случае -- в Москве, Петербурге или Киеве. Но не в Магадане. Город северный, надо бороться за жизнь, жечь огонь.

Программист из Магадана Дмитрий Малов создал программу Binkd, всего за год после выпуска первой версии ставшая самой распространенной FTN-программой, используемой для проброса fido-прочты через Internet.
http://www.corbina.ru/~maloff/binkd
http://faqs.org.ru/softw/fidosoft/binkdfaq.htm

Binkd, как и ifmail, написан и распространяется вместе с исходными текстами под бесплатной лицензией GNU. Но в отличие от ifmail программа эта не является заменой всему набору FTN-софта, она берет на себя только почтовые функции. Как следствие, ее легче портировать под основные операционные системы (исходно Binkd, как и ifmail, создан для Unix'a). Существуют работоспособные варианты binkd для OS/2, Windows 95, Windows NT. Нет вариантов под DOS и Windows 3.11 -- что ж, рискните, попытайтесь перенести -- программа небольшая, всего 11 тысяч строк.

На binkd стоит остановиться подробнее, поскольку именна эта программа, возможно, станет той панацеей, которая спасет FidoNet от вымирания. Название программы -- binkd -- подчеркивает ее связь со старой, хорошо себя зарекомендовавшей программой -- мейлером Binkley Term, используемым в FidoNet более пяти лет.

От большинства остальных программ Binkley Term отличался тем, что распространялся он в исходных текстах и ввел новый стандарт на формат подготовленной к отправке информации -- binkley-style outbound.

С его появлением почтовые программы FidoNet разделились на AMA (arc-mail attach) и binkley-style мейлеры. Есть также мейлеры, поддерживающие оба режима -- например, известный в народе (и в Мин. Обороны) T-Mail, автором которого является Андрей Елкин из США/Петербурга.
http://t-mail.spb.ru

Итак, binkd рассчитан на работу в паре с binkley-совместимым мейлером, либо, если вам нужна только Internet-система, с binkley-style упаковщиком почты. Изображенная ниже схема показывает, как встраивается binkd в систему программного обеспечения узла FidoNet.

Обычный Fido-мейлер и binkd имеют один общий outbound-директорий. При появлении в нем почты для узла, описанного в конфигурационном файле binkd, последний немедленно выставляет флаг "занято" для этого узла, и делает попытку отправки почты через Internet. При отсутствии соединения через Internet почта отправляется как обычно.

Отличительной особенностью bind является использование собственного протокола установления соединения, названного автором binkp. Протокол binkp учитывает особенности cреды передачи Internet и устойчиво работает на любых скоростях передачи, в отличие от связки Fido Mailer-Vmodem.

Почтовая сессия binkd может тянуться сутками, если скорость соединения низка, и тем не менее завершаться успешно, или продолжаться пару секунд, если вы связываетесь с компьютером в одной сети ethernet.

Впечатляют и другие характеристики binkd. Например, размер программы. Мы привыкли к многомегабайтным текстовым редакторам, процессорам электронных таблиц -- так вот, версия binkd для OS/2, которой я пользуюсь (так называемая EMX-версия), имеет размер 35 килобайт! К ней нужен только крошечный конфигурационный файл с описаниями нескольких очевидных параметров и списком Internet-адресов систем, с которыми вы хотите установить соединение, -- и этого достаточно.

Binkd -- истинно Unix-программа. От привычных нам DOS/Windows монстров ее отличает и полное отсутствие интерфейса взаимодействия с пользователем. Единственное, что вы можете сделать после запуска программы -- так это нажать пару раз Control+Break для ее прерывания. Это программа из разряда тех, что в мире Unix называют "Демон" (Daemon) -- невидимый дух, молча делающий свою работу. Вся необходимая отчетная информация записывается в файл протокола, хотя при желании можно настроить binkd и на одновременный вывод текста отчета на экран, но как правило это не делается -- ни к чему.

Замечательной особенностью Binkd является его многопоточность. В конфигурационном файле определяется количество серверных ("вам звонят" и клиентских "звоните вы") соединений-нитей, и можно не заботиться как прежде о занятости вашего телефона -- binkd потянет столько сеансов связи, сколько вы описали.

Появление описанных выше способов проброса Fido-over-Internet поставило дополнительную задачу распознавания Internet-адреса компьютера по его Fido-адресу. Суть проблемы заключается в следующем. Вот как выглядит описание адреса одной из систем, с которыми я обмениваюсь почтой, в конфигурационном файле моего binkd:

    2:5049/64@fidonet 194.186.108.130 "пароль"  
В строке сначала идет Fido-адрес системы, затем ее цифровой или символьный Internet-адрес, далее пароль на почтовую сессию (последний может опускаться).

Неудобство этого описания заключается в том что вам неоткуда взять Internet-адреса своих корреспондентов, в отличие от FidoNet-адресов, список которых есть на каждом узле сети.

Единственный способ -- получить эту информацию непосредственно у системных операторов, что не слишком удобно. Кроме того, Internet-адреса иногда меняются, приходится стороной узнавать об этом и вносить исправления.

Для решения этой проблемы системными операторами Региона 50 FidoNet был зарегистрирован Internet-домен fidonet.net. Теперь все компьютеры, использующие технологию binkd для передачи почты Fido, регистрируются в домене fidonet.net стандартным образом, например мой компьютер -- как f12.n5049.z2.fidonet.net.

В последнюю версию binkd встроено распознавание адресов в домене fidonet.net, и строка, приведенная выше, упростилась:

    2:5049/64@fidonet "пароль"  
Теперь, когда binkd пытается отправить почту для узла 2:5049/64, он самостоятельно строит символьный интернет-адрес вида f12.n5049.z2.fidonet.net и получает через службу имен Internet (DNS) цифровой Internet-адрес, который и используется при установлении соединения. Появление binkd и протокола binkp вызвало желание разработчиков почтовых программ использовать эту новую технологию. Как минимум еще две почтовых shareware-программы (Argus и BBBS), используют протокол binkp.

Мы рассмотрели основные способы проброса FidoNet-почты через Internet. Они все достаточно удобны, широко используются членами сети, количество систем, подключенных через Internet, стремительно растет. Есть и участники сети, подключенные (в порядке эксперимента) только через Internet. Создан ряд эхо-конференций, в которых активно обсуждаются различные аспекты использования Internet в FidoNet.

Так, популярная международная эхо-конференция IP_CONNECT посвящена обсуждению проблемы включения Internet-систем в адресный список FidoNet -- nodelist. В конференциях SU.IP.SYSOP и RU.FIDO.NEXTGEN обсуждение ведется на русском языке.

Действующая редакция Полиси 4.07 принята в 1989 году. Восемь лет -- огромный срок, за это время многие положения Полиси устарели. Устарели даже в приложении к FidoNet без использования Internet-транспорта. Что же говорить о Fido-over-Internet -- в 1989 году об этом никто не думал.

Так, например, Полиси устанавливает в качестве стандартного протокола соединения, который необходимо должен поддерживаться любой FidoNet -- системой, так называемый протокол FTS-0001, основанный на древнем протоколе передачи файлов Xmodem. Xmodem не только старый, но и попросту плохой протокол. Он неважно работает на обычных телефонных линиях, а уж использовать его при соединении через Internet было бы верхом глупости.

И тем не менее дискуссия в IP_CONNECT то и дело возвращается к проблеме Internet-реализации FTS-0001. Вот оно -- желание "изменить, ничего не меняя" -- девиз, под которым пока происходит внедрение Internet-транспорта в жизнь FidoNet.

Есть и другие положения Полиси, полностью теряющие смысл в Fido-over-Internet. Пока эта проблема не будет решенa, Internet так и останется в Fido "теневым" транспортом. Рано или поздно придется назвать вещи своими именами. Либо FidoNet изменится формально, допустив преобразование основных положений своего основного закона -- Policy и разрешив полноправное подключение к сети системам, соединенных с сетью только через Internet, -- либо так и будет хиреть, вымирать, уподобляясь динозаврам -- былая мощь и сила, ныне архаика.

1997 - Amir Shabashvili