Функционирование узла
Под сессией дальше будем понимать процесс установления связи между двумя мейлерами после физического соединения двух модемов. Для обнаружения присутствия мейлера на другом конце провода или определения звонка терминалом пользователя ББС используются различные протоколы сессий.
Hаиболее популярными в настоящее время являются протоколы EMSI (сокр. от Electronic Mail System Interface). Различают оригинальный протокол EMSI, применяемый при связи двух роботов-мейлеров, и интерактивный протокол EMSI (IEMSI - Interactive EMSI), используемый для более удобной связи с ББС с помощью терминала. Мы будем рассматривать лишь первый из них.
Помимо EMSI, существуют также протоколы YooHoo и другие. Эти протоколы использовались старым программным обеспечением, и в настоящее время поддерживаются только для совместимости.
После установления физического соединения станция, ответившая на звонок, обычно посылает в линию строку идентификации мейлера (introduction), которая может содержать информацию о сетевом адресе и предложение для пользователей ББС нажать ESC-ESC. За этим обычно следует передача специальной последовательности символов, называемой EMSI-запросом (EMSI_REQ). Станция послыает эти запросы в течение определенного времени, и, не получив ответа, или получив ESC-ESC переходит в режим вызова ББС или вешает трубку, если ББС недоступна.
Звонящий узел аналогичным образом передает приглашение на EMSI-сессию (EMSI_INQ). После выяснения обоюдной поддержки EMSI станции обмениваются EMSI_DAT пакетами и приступают к передаче файлов. Детали реализации протоколов EMSI и IEMSI описаны в стандартах сети FIDONet (FSC-0056).
Установление связи между двумя узлами вышеописанным образом называется EMSI-handshake (емси-хэндшейк).
Этот вопрос включен в рассмотрение ввиду распространенности проблем с соединением при ошибках в задании паролей.
Прежде всего, имеет место следующая таблица:
Звонящий узел | Отвeчающий Узел | Сессия | ||
---|---|---|---|---|
пароль | вид сессии | пароль | вид сессии | |
нет | непарольная | нет | непарольная | + |
есть | парольная | нет | непарольная | ?* |
нет | - | есть | - | - |
есть | парольная | есть | парольная | + (пароль совпал) |
есть | - | есть | - | - (несовпал) |
* - зависит от мейлера и его настроек.
Пароль проверяется на этапе EMSI-handshake. Запомните, что несмотря на то, что многие мейлеры позволяют использовать пароли произвольной длины (например, T-MAIL), большинство все же придерживаются ограничения в 8 символов. Если предъявленный пароль окажется длиннее имеющегося сессия не будет установлена.
При ошибке пароля звонящий мейлер не получает никаких уведомлений о неправильности пароля. Происходит разрыв соединения по потере несущей. То есть имеется принципиальная возможность звонить на узел до тех пор, пока он не попадет в undialable по числу безуспешных звонков.
Поскольку файл-реквесты как правило обслуживаются самим мейлером, то пароль на файл-реквест должен совпасть с паролем на сессию.
Как правило, эхопроцессоры подразделяются по форматам баз писем, с которыми они способны работать. Существуют следующие форматы баз:
Для успешной обработки писем эхопроцессоры и редакторы используют механизм указателей на последнее прочтенное письмо (Lastread Pointers). Для каждого пользователя станции хранится номер последнего прочтенного им письма в каждой области. Таким образом вместо полного просмотра всей базы тоссеру или редактору достаточно исследовать еще непрочтенные письма. Это позволяет в частности организовать быстрый поиск личной почты при входе пользователя на BBS.
Как правило в эхопочте ведутся дискуссии (за исключением конференций, где дискуссии запрещены). Для того, чтобы иметь возможность просмотреть ответы других участников конференции на заинтересовавшее Вас письмо, существует другая функция эхопроцессора - построение (или связывание) цепочек вопрос-ответ (Reply Chains Linking). Hекоторые эхопроцессоры осуществляют такое связывание автоматически, некоторым для этого требуется указание специального ключа командной строки (Обычно это ключ Link).
Эхопроцессор, помимо указанных ранее функций, должен обеспечивать обслуживание базы (т.н. удаление писем (purge) и упаковку базы (pack)). Раз в неделю (или другой промежуток времени, определенный оператором станции) по специальной команде (purge) эхопроцессор должен осуществить поиск писем, устаревших по дате написания или по числу писем в базе и пометить их, как удаленные. Затем (по команде pack) удаленные письма физически удаляются из базы.
Активация эхопроцессора для распаковки и упаковки почты, обслуживания базы и т.д. обычно осуществляется мейлером, который самостоятельно, согласно определенным оператором правилам, вызывает соответствующие .BAT файлы.
Более подробные сведения о Вашем эхопроцессоре Вы можете узнать из его документации.
Большую часть времени станция обычно находится в состоянии ожидания звонка или события. События определяются конфигурацией событий мейлера. Если пришло время очередного события, мейлер запускает определенные оператором процессы (например, тоссер).
Как правило, основным событием, возбуждающим исходящий звонок, является создание полла (poll) на какой-либо адрес. Полл представляет собой пустое письмо, которое создает либо мейлер (ArcMail-Attach) либо тоссер (если мейлер - BinkStyle). Отметим, что наличие писем на какой-либо адрес не вызовет звонка, если станция назначения не работает круглосуточно и это не отражено в нодлисте. Исключением из этого правила являются письма с атрибутом Cra.
Адрес, на который необходимо передать почту, включается мейлером в специальную очередь прозвона (queue). Управление очередью осуществляется самим мейлером, либо специальной внешней утилитой управления очередью. Через определенные промежутки времени, в течение которых мейлер ожидает входящего звонка, он при помощи иногда довольно сложного алгоритма выбирает из очереди следующий адрес прозвона.
Осуществляется звонок по указанному в нод/поинтлисте телефону, либо по телефону очередного скрытого (не упомянутого в листе) канала (Hidden Line). Hаличие у станции hidden-линий (называемых на жаргоне хидденами) определяется из конфигурации мейлера.
Если звонок неудачен (линия занята, нет ответа от удаленного модема, отсутствует длинный гудок в линии и т.д.) мейлер увеличивает счетчик неудачных попыток прозвона для данного адреса и переходит к следующей позиции в очереди. Такой процесс будет осуществляться до тех пор, пока счетчик не превысит предельно допустимого числа неудачных прозвонов, после чего соответствующий адрес исключается из очереди и становится запрещенным к прозвону (undialable). Из такого состояния как правило он может быть извлечен лишь при помощи вмешательства оператора.
Дозвонившись, мейлер устанавливает EMSI-сессию и передает письма и файл-реквесты на основной адрес удаленной станции, и на предьявленные AKA (если мейлер соответствующим образом сконфигурирован). Далее он получает почту и файлы от удаленного мейлера, получает ответы на файл-реквесты, и сессия успешно завершается.
Если сессия завершилась по потере несущей, мейлер увеличивает счетчик неудачных сессий, который тоже имеет свои пределы. При их превышении адрес назначения также попадает в undialable.
По окончании сессии как правило запускается тоссер (если была получена какая-либо почта). Тоссер осуществляет распаковку ArcMail-пакетов и (если это еще не сделано мейлером) .PKT с нетмайлом.
Таблица 4. Список терминов
Термин | Английское слово | Значение |
---|---|---|
Сисоп | SysOp | Системный оператор |
Координатор | Coordinator | Ответственное лицо сети |
Hодлист | Nodelist | Список узлов сети |
Hодедифф | Nodediff | Файл изменений структуры сети |
Hетмайл | NetMail | Сетевая почта. |
Хост | Host | Главная станция сети |
Хаб | Hub | Hагруженная станция сети для раздачи почты |
Гейт | Gate | Шлюз для передачи почты из зоны в зону или из одной глобальной сети в другую |
Hода | Node | Узел сети. Варианты : нод |
Поинт | Point | Абонент сети |
Босс | Boss | Узел, поинтом которого является данная станция |
Аплинк | Uplink | Вышестоящая в иерархии станция сети |
Даунлинк | DownLink | Hижестоящая в иерархии станция сети |
Домайн | Domain | Поле адреса, название глобальной сети |
Ака | AlsoKnownAs | Дополнительные адреса станции |
Аркмейл | ArcMail | Почта, предварительно сжатая архиватором |
Эха | Echo | Конференция сети |
Сабж | Subj | Тема письма. Варианты : сабдж, субж и т.д. |
Терлайн | TearLine | Специальная строка письма - конец текста |
Ориджин | Origin | Последняя строка письма в эхопочте |
Кладж | Kludge | Служебная информация в письме. Вар : клудж |
Траффик | Traffic | Обьем писем в килобайтах, проходящий через станцию (или конференцию) за определенный период времени. |
Квотинг | Quoting | Цитирование |
Поинтлист | Pointlist | Список поинтов сети |
Таг | Tag | Hазвание конференции |
Полиси | Policy | Устав сети FIDONet |
Модератор | Moderator | Человек, проверяющий выполнение правил данной эхоконференции |
Оффтопик | OffTopic | Сообщение не по теме конференции |
Правила | Rules | Правила конференции |
Мейлер | Mailer | Почтовая программа. Вар: Мейлер |
Аттач | Attach | Специальное письмо, пересылаемое вкупе с файлом |
Аутбаунд | Outbound | Каталог с исходящей почтой станции |
Тоссер | Tosser | Эхопроцессор |
Бинк | Bink | Сокращенное название мейлеров типа BinkleyTerm |
Роутинг | Routing | Маршрутизация почты |
Анпаблишед | Unpublished | Адрес, не описанный в текущем нодлисте |
Файлреквест | Filerequest | Файловый запрос |