Служба новостей

Up Доступ к файлам Электронная почта Служба новостей WWW Удаленные вызовы Форматы сообщений Управление

Форматы статей
Управляющие сообщ.
Модели передачи
NNTP
Сценарий работы
rfc850

Cлужба обмена новостями

Система UseNet

Internet-сообщество уже много лет пользуется системой тиражирования объявлений, рекламы, сообщений и другой информации. Всю подобным образом тиражируемую информацию называют новостями — "news". Новости делятся на группы новостей — "newsgroups". Группы новостей организованы в определенном порядке, основанном на распределении дискуссий по темам, например, отдых, спорт, новости, информация, религия и др. Внутри каждой из этих групп может быть до нескольких тысяч подгрупп, которые, в свою очередь, обладают такой же иерархической структурой. Принцип этой организации подобен структуре размещения каталогов и подкаталогов на жестком диске.

Всё множество групп UseNet разбито на несколько больших категорий. Вот основные, считающиеся "официальными":

Biz - бизнес;

Comp – вычислительная техника;

News - новости общего характера;

Rec - развлечения, хобби, отдых;

Sci - наука;

Soc – социальные темы;

Talk – с ориентацией на дискуссию;

Alt – альтернативные взгляды;

Misc – всё остальное.

К примеру, группа, обменивающаяся информацией об отдыхе (recreation), использует ключ гес для построения иерархии более низкого уровня, такой как rec.arts, rec.games, rec.pets, rec.sports, rec.travel и т. д. Каждая из подгрупп, например, rec.pets, может быть, в свою очередь, разделена на более мелкие подгруппы, например, rec.pets.dogs, rec.pets.cats и др. Так организованные группы новостей позволяют пользователям, имеющим общие интересы, обмениваться новостями, отправлять свои статьи и отвечать на заметки других пользователей, обмениваться иллюстрациями и программным обеспечением для просмотра статей этой группы и т. п.

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

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

Каждое ребро графа UseNet можно соотнести с идентификатором конференции, тогда отношение "подписки" топологически можно изобразить так:

хост А "подписан" на конференцию хоста В, если между А и В существует ребро графа, принадлежащее подсети данной конференции.

Примечание

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

Важной частью алгоритма передачи новостей системы UseNet является предотвращение зацикливаний. Например, если хост А отправил статью хосту В, то хост В может, в свою очередь, отправить эту же статью обратно хосту А и т. д., поскольку передача статей может происходить как в одну, так и в другую сторону.

Одним из решений этой проблемы является отслеживание истории прохождения хостов данной статьей. Так, каждый хост, при. прохождении через него статьи, фиксирует уникальный номер сообщения (Message-ID). Если сообщение с тем же номером приходит на хост еще раз, оно уже не принимается. Другой способ предотвращения петель состоит в фиксировании пути внутри самого сообщения. То есть сообщение никогда не будет отправлено на хост, зафиксированный в определенном поле заголовка статьи (Path).

Способы тиражирования сообщений

Широко используются два основных метода тиражирования сообщений:

  1. Отправка статей по электронной почте по спискам рассылки участников конференций.
  2. Использование распределенной базы данных и серверов новостей системы UseNet.
Тиражирование новостей по почте в соответствии со списками рассылки заключается в следующем. Определенные хосты, например, компьютеры пользователей или почтовые хосты, выполняющие сервис тиражирования, хранят у себя списки адресов подписчиков на определенные дискуссии. Эти списки используются для отправки каждому из подписчиков копии тиражируемой для него информации — статей групп дискуссий. Статьи передаются от хоста к хосту как обычная почта, и каждый из хостов должен переправить всю поступившую информацию конференций на хосты, которые зафиксированы в его списке рассылки. Эти хосты, в свою очередь, должны переправить полученную информацию следующим хостам и т. д.

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

Другой способ тиражирования информации заключается в работе с системой серверов новостей и распределенной базы данных для хранения информационных сообщений. Этот метод используется в системе UseNet и объединяет работу множества различных сетей с разнообразным аппаратным и программным обеспечением.

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

Серверы новостей

Программное обеспечение хоста, который предоставляет пользователям возможность работать с хранящимися на нем статьями и управляет доступом к новостям и обновлением статей, называется сервером новостей. Используя протокол NNTP, серверы новостей обмениваются между собой статьями новостей. Механизм NNTP позволяет серверам новостей выбирать, какие статьи читать и передавать на другие серверы.

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

Для небольшого количества пользователей идеальной схемой построения обмена новостями была бы структура, состоящая из одного News-сервера и пользователей, обращающихся к нему для отправки или получения новых статей. В системах с большим количеством клиентов, например, масштаба университета или крупного предприятия, необходимо использовать так называемые промежуточные серверы новостей — intermediate news server.

Такой промежуточный сервер работает к каждом домене сети организации и отвечает за обеспечение посреднических действий между своими клиентами и главным News-сервером. В его обязанности, например, входит кэширование новых статей для подписчиков на данные конференции внутри домена. Для работы с UseNet клиент такой сети сначала соединяется со "своим" промежуточным сервером и читает размещенные на нем статьи новостей. Если сервер оказывается неработоспособным или у него нет требуемых статей, программное обеспечение может обратиться на более высокий уровень иерархии сервера новостей.

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

Для обмена сообщениями между серверами, а также для доступа к серверам используется протокол NNTP.