Технология FidoNet

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

Появлению FidoNet предшествовала эра BBS - Bulletin Board Systems, "электронных досок объявлений". В США еще в 70-х годах были весьма популярны комплекты из терминала и модема, которые использовались для связи с ЭВМ коллективного пользования; однажды кто-то придумал идею "электронной доски объявлений" из компьютера, модема и простой программы - CBCS (Computer Board Control System - система управления компьютерной доской); с которой можно было связаться через такой комплект, почитать электронные объявления или сообщения, написать свои, поболтать с оператором или, в случае многолинейной BBS - с другими пользователями. Базой для BBS становились как компьютеры коммерческих организаций, в нерабочее время переключаемые в режим BBS, так и домашние компьютеры энтузиастов этой идеи.

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

Вначале BBS рассматривались в основном как альтернативный способ общения - этакий электронный вариант переписки через газету. В 80-х стало появляться все больше домашних компьютеров, через которые уже можно было общаться с BBS более плодотворно - например, забросить на BBS одни файлы или стянуть с нее другие, что широко использовалось для обмена программами - как свободно распространяемыми, так и "ворованными". Появилась возможность пакетного обмена почтовыми сообщениями: если в интерактивном режиме пользователь был вынужден читать и писать письма, оставаясь подключенным к BBS, понапрасну занимая канал (который во многих странах еще и стоит денег) и рискуя потерять недописанное письмо при обрыве связи, то в пакетном режиме он быстро забирал почтовый пакет к себе на компьютер, отсоединялся от станции, просматривал и писал письма при помощи локального редактора, а затем вновь соединялся с BBS и так же быстро отправлял готовый пакет. Кстати, переписка могла быть как личной, "с глазу на глаз", так и тематической - в различных областях, наподобие телеконференций "больших" сетей.

Поскольку основной способ общения пользователя с BBS - текстовые команды и сообщения, необходимы специальные средства для передачи двоичных файлов. Развитие сети BBS породило несколько протоколов для передачи файлов по модему - XModem, YModem, ZModem и ряд других, из которых ZModem оказался самым удачным, популярным и долгоживущим. Он обеспечивает передачу файлов любого типа и объема, автоматическую передачу имени и атрибутов файла (многие другие протоколы требовали ручного набора этих данных на приемной стороне, передавая только само содержимое файла), докачку остатка файла в случае разрыва связи, контроль верности передачи при помощи 32-разрядных циклических кодов (CRC) и автоматический старт протокола на приемной стороне, и к тому же имеет очень низкие накладные расходы. Для современных терминальных программ считается обязательным наличие протокола ZModem.

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

Однако за все нужно платить, и потому даже от пользователей свободных BBS взамен на бесплатный сервис требовалось соблюдать определенные правила - вежливость, ненавязчивость, доброжелательность, готовность регулярно забрасывать на BBS что-либо новое и интересное для других, участвовать в дискуссиях и т.п. Тех, кто регулярно обзванивал все доступные доски с целью скачать побольше свежих файлов, часами занимая канал и ничего не давая взамен, пренебрежительно называли "file sucker" (высасыватель файлов) и всячески не любили. Для поощрения активных и наказания нерадивых была придумана система уровней доступа, когда наиболее интересные с точки зрения сисопа пользователи получали большие лимиты времени и информации, а бесполезным или вовсе вредным эти лимиты урезались до предела. Любопытно, кстати, что урезание прав было более действенной мерой, чем полное удаление, ибо большинство BBS использовали свободную регистрацию, и новый пользователь автоматически получал некий средний уровень прав в системе.

Общение при помощи BBS имело два основных недостатка: различные станции никак не были связаны между собой, отчего пользователи одной не могли получать доступа к ресурсам другой, а все операции по подключению и обмену информацией приходилось выполнять в ручном режиме, что в условиях преимущественно ночной работы (многие телефонные компании в ночное время снижали плату за разговор) было особенно неудобно. Находили применение программы для автоматизации работы с BBS, при помощи которых можно было организовать сценарий диалога и запрограммировать ответы на задаваемые вопросы, однако каждый такой сценарий мог работать только с определенным типом CBCS, а нередко - и только с одной конкретной доской, поскольку вид диалога во многом зависел и от сисопа. Единый же протокол обмена, ориентированный на автоматическое соединение компьютеров, поначалу отсутствовал.

Наконец, в 1984 году нескольким сисопам под предводительством "отца FidoNet" Тома Дженнингса пришла мысль объединить свои BBS в небольшую почтовую сеть, которая могла бы автоматически пересылать письма между своими узлами. Сеть была названа по имени собаки Дженнингса - Fido; это, кстати, одно из самых распространенных там собачьих имен, вроде нашего Трезора или Полкана. Первоначально структура сети была крайне простой - несколько отдельных узлов, которые для обмена письмами могли соединяться только непосредственно между собой, а письма были исключительно личными - адресованными только одному абоненту (так называемый Netmail). Зато дозвон, вхождение в связь и обмен файлами - почтовыми или любыми другими - выполнялся полностью автоматически, и сисопу оставалось только написать письмо или дать команду на отсылку файла - все остальное выполняла связная программа (Mailer). Грубо говоря, желающие переписываться друг с другом сисопы получили возможность по ночам спокойно спать вместо того, чтобы часами дозваниваться на доски друг к другу, однако для пользователей это еще оставалось печальной необходимостью.

По мере роста сети структура усложнилась - адреса стали иерархическими, разделяемыми по географическому признаку. Используемый сейчас формат адреса - зона:сеть/узел, где зона примерно обозначает континент или большой географический район, сеть - административную единицу (город, поселок), а узел - конкретного члена (сисопа) сети. Например, 2:5000/75 - зона 2 (Европа), сеть 5000 (Новосибирск), узел 75. Код сети обычно включает код региона (50 - Россия). Параметры каждого узла сети - страна, город, имя сисопа, служебные признаки - собраны в единый общемировой список узлов - NodeList, еженедельно обновляемая копия которого имеется на каждом узле. Знания о других узлах необходимы только для прямой связи между ними, поэтому на данном этапе, когда каждый узел связывается только с несколькими ближайшими, а остальная почта передается по цепочке, это уже представляется излишним.

Каждая зона, регион и сеть тайным голосованием по принципу "один человек - один голос" выбирают своего координатора - ZC, RC и NC. Координатор каждого уровня следит за прохождением почты, соблюдением подконтрольными ему узлами устава FidoNet, разбирает конфликтные ситуации, обеспечивает регулярное обновление своего сегмента NodeList, а координатор сети, помимо этого - рассматривает заявки на включение в сеть новых узлов. Совет ZC избирает международного координатора (IC), возглавляющего совет, а также отвечающего за издание полного NodeList.

Каждый узел должен иметь модем, отвечающий в течение хотя бы одного часа в сутки (так называемый зональный почтовый час - ZMH). В этот час узел обязан принимать входящие звонки от любых других узлов FidoNet, пожелавших связаться с ним напрямую; это гарантирует доставку срочных сообщений и проверку связи в случае разрыва цепочки. Работа узлов в остальное время суток регламентируется только договоренностью между ними. В том случае, когда узел не имеет возможности отвечать на звонки, сетевой координатор помечает его как "упавший" (Флаг Down в NodeList) с тем, чтобы другие узлы не звонили ему понапрасну; отсюда происходит забавное выражение "узел в дауне", вызывающее искреннее непонимание у врачей-генетиков.

FidoNet создавалась для дружеского общения, как принципиально любительская и некоммерческая сеть. Сисопы должны самостоятельно поддерживать работу своих узлов и обеспечивать корректное взаимодействие с другими узлами, которое построено на основе доверия и взаимной порядочности; работа сети регулируется Уставом (policy), регламентирующим основные отношения между сисопами и координаторами. Вся общественная работа в сети выполняется только добровольно и бесплатно; любое коммерческое использование сети запрещено. В отношениях между сисопами приветствуется доброжелательность и выдержка, а формализм, чрезмерная раздражительность или раздражающее поведение всемерно осуждаются - вплоть до исключения из сети (экскоммуникации).

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

Создание пойнтовой структуры было радостным событием для пользователей BBS, которые не могли или не хотели стать членами FidoNet, однако нуждались в доступе к почте. Многие из пользователей досок - узлов FidoNet сразу же стали пойнтами этих узлов, что было выгодно и той, и другой стороне: становясь пойнтом, пользователь получал возможность общаться с узлом не вручную через терминальную программу, а автоматически через связную программу-мейлер, экономя тем самым и свое время, затрачиваемое на дозвон и диалог с CBCS, и время занятия канала, так как общение мейлеров гораздо эффективнее ручного. Другими словами - став пойнтом, пользователь тоже получил возможность спокойно спать, пока мейлер отправляет его файлы и принимает чужие.

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

В процессе развития сети в ней появилась транзитная пересылка почты. Связь между узлами в FidoNet чаще всего осуществляется по древовидной топологии: каждая зона имеет один или несколько буферных узлов - хабов (Hub), которые рассылают почту первичным хабам регионов и сетей, а те, в свою очередь, конечным узлам - напрямую или через вторичных хабов. В обратном порядке - снизу вверх - производится сбор исходящей от узлов почты. Соответственно, вышележащие узлы дерева называются аплинками (Uplink), а нижележащие - даунлинками (Downlink). Пойнты, как правило, получают почту только через свой узел, хотя возможно наличие у одного пойнта нескольких босс-узлов, что чревато смешиванием почты.

Еще одно достижение - теле- (или эхо-) конференции (Echomail) для циркулярной рассылки писем и тематической переписки, называемые фамильярно "эхами". Каждое письмо, помещенное в конференцию, рассылалось между всеми подписчиками этой конференции - это потребовало создания системы рассылки, которая исключала бы повторное попадание письма на один и тот же узел разными путями. Выход был найден в виде снабжения каждого письма в эхоконференциях списком получивших его узлов (Seen-By), однако это спасает только в случае строгого (незамкнутого) дерева, а при наличии общих связей между ветвями (что, вообще говоря, не рекомендуется) приходится задействовать механизм обнаружения повторяющихся идентификаторов писем - в просторечии "дуполовку".

После "эх" появились и "файлэхи", по которым вместо писем циркулируют файлы - документация, программы и т.п. Это стало удобным путем централизованного распространения NodeList, служебных документов FidoNet, почтовых программ, новостей, а также любых других тематических файлов.

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

FidoNet основана на FTN√технологии, состоящей из набора технических стандартов FTS, регламентирующих протоколы установления связи, подтверждения подлинности и обмена сообщениями, форматы самих сообщений и способы их обработки. Чаще всего программное обеспечение узла состоит из трех независимых частей:

Помимо чисто почтовых программ, существует большое количество автоматических диспетчеров подписки на конференции, сборщиков статистики, FAQ√серверов, рассылающих по запросу списки ответов на часто задаваемые вопросы или другие материалы, и других вспомогательных программ.

Транспортный уровень FTN√технологии стал настолько популярен, что нередко используется в непочтовых (банковских или корпоративных) сетях для обмена информацией, как и транспорт UUCP; при этом FTN√мейлеры зачастую не в пример удобнее, надежнее и проще мейлеров транспорта UUCP - в частности, они позволяют очень гибко настраивать политику звонков и ответов на них с целью минимизации загрузки линий и счетов за переговоры. Чрезвычайно популярен и интерфейс FOSSIL (Fido/Opus/Seadog Standard Interface Layer), представляющий собой расширение функций BIOS для последовательного порта и видеоадаптера, и используемый для сопряжения связных программ (мейлеров и терминалов) с нестандартной аппаратурой и эффективной буферизации данных

Российский регион FidoNet (R50) был создан в 1990 году - Владимиром Лебедевым и Евгением Чуприяновым из Новосибирска (сеть 5000) и Юрием Потапюком из Челябинска (сеть 5010). Чуть позже появились московская (5020) и питерская (5030) сети, которые, понятное дело, быстро вышли вперед по количеству узлов (московская сеть сейчас насчитывает более полутора тысяч узлов и является крупнейшей сетью FidoNet в мире). Помимо самой по себе величины населения города и его насыщенности компьютерной техникой, столь быстрым ростом московская сеть обязана политике координаторов, всячески поощряющих выдачу узловых адресов. Новосибирские и многие другие сетевые координаторы занимают в этом вопросе гораздо более сдержанную позицию. А о том, как объем сети и другие ее свойства могут влиять на ее работу - в следующем номере.

Если вы хотите подключиться к FidoNet - прежде всего ответьте себе на вопрос: почему вы этого хотите. В FidoNet больше всего ценится общение и взаимная помощь, а любая рекламная или коммерческая деятельность запрещена почти повсеместно. Технически связаться с FidoNet несложно - достаточно подключиться к любой BBS, на которой есть узел FidoNet - например, круглосуточной Cardinal BBS (10-19-15). Там вы можете какое-то время почитать телеконференции FidoNet, оценить свой интерес к сети и ее - к вам, после чего познакомиться с сисопом одного из местных узлов и попросить дать вам пойнт-адрес. Чем более открыто и дружелюбно вы будете вести себя в сети - тем больше у вас шансов на взаимопонимание и плодотворное общение.

Евгений Музыченко, 2:5000/14@FidoNet, eugene@muzychenko.net
Специально для журнала Техно-Collection.