NNTP

NNTP или Сетевой протокол передачи новостей (Network News Transfer Protocol)представляет собой протокол для рассылки, подписки, поиска и доставки новостей на основе надежного протокола поточного типа (например, [|TCP]) с использованием схемы клиент-сервер. NNTP сконструирован так, что статья, записанная в одном из серверов, становится доступной для всех подписчиков-клиентов. Он позволяет Вам посылать сообщение в группу новостей и производить скачивание необходимой информации, независимо от того, определяется ли закачка Американским стандартным кодом обмена информацией [|ASCII]или же является двоичной по своей сути.

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

Единицей хранения на сервере является статья. Статьи составляют содержательную часть пересылаемых сообщений. В NNTP предусмотрены команды, которые обеспечивают непосредственный обмен статьями между взаимодействующими узлами (более эффективно, чем это позволяет, например, [|UUCP]).

Традиционный метод рассылки новостей предполагает распространение статей от узла к узлу, так что каждый сервер пересылает другому все новости, которые имеет. При этом неизбежно дублирование, связанное с этим увеличение трафика и повышенный расход ресурсов ЭВМ. Но такая схема предельно проста и вполне оправдана, когда обмен новостями происходит один раз в сутки (дубликаты статей могут быть отфильтрованы позднее).

При использовании NNTP ЭВМ, обменивающиеся новостями, пользуются интерактивным механизмом в процессе принятия решения о том, какие статьи следует передать. При этом ЭВМ контактирует с одним или несколькими серверами новостей. Процедура начинается с запроса о формировании новых групп новостей, для чего выдается команда NEWGROUPS. Далее клиент делает запрос о наличии новых статей из групп, представляющих интерес (команда NEWNEWS). В ответ сервер высылает список статей, а клиент может запросить их присылку, если он их не имеет. В заключение клиент может сообщить серверу, какие новые статьи он получил в последнее время. Протокол передачи сетевых новостей (Network News Transfer Protocol, NNTP) предусматривает разные подходы к обмену новостей. Здесь поддерживается все: от пакетной технологии (аналог UUCP), до интерактивного обмена по сети. NNTP не просто пакет программ, это стандарт Internet, описанный в RFC-977. Он основан на поточных соединениях, обычно по TCP, между клиентами в сети и сервером новостей. Поточная схема позволяет клиентам и серверу гибко управлять передачей статей. Различные команды позволяют клиентам принимать, посылать и отправлять по почте статьи. Различие между посылкой и отправкой в том, что последняя может включать статьи с незавершенной информацией заголовка. Поиск статьи может использоваться клиентом передачи новостей также, как программами чтения (newsreaders). Это делает NNTP превосходным средством для обеспечения доступа к новостям клиентам в локальной сети без применения NFS. NNTP также обеспечивает активый и пассивный способы передачи новостей, которые называются "pushing" и "pulling". Выталкивание (pushing), в основном, представляет собой то же самое, что и C-News протокол ihave/sendme, который рассмотрен в главе 21). Клиент предлагает статью серверу через **IHAVE msgid**, а сервер возвращает код ответа, который указывает, имеет ли он уже эту статью, или она требуется. В последнем случае, клиент посылает статью, завершенную одиночной точкой в отдельной строке. Выталкивание новостей имеет один недостаток: оно вызывает значительную загрузку сервера, так как он должен искать в базе данных хронологий каждую конкретную статью. Полная проблема NNTP состоит в том, что он позволяет хорошо осведомленному специалисту вставлять статьи в поток новостей с ложной спецификацией отправителя. Это называется //news faking// или //spoofing//. Расширение NNTP позволяет требовать установления подлинности пользователя для некоторых команд. Имеется ряд доступных пакетов NNTP. Один из наиболее широко известных: NNTP daemon. Первоначально, он был написан Stan Barber и Phil Lapsley, чтобы проиллюстрировать подробности RFC-977. Вы можете найти его в большинстве дистрибутивов Linux, а также получить исходники и откомпилировать их. Пакет **nntpd** состоит из сервера и двух клиентов для перемещения и выталкивания новостей, соответственно, и свою версию программы **inews**. Они живут в среде B-news, но с небольшими дополнениями, они будут работать с C-news. Однако, если Вы планируете использовать NNTP больше, чем для доступа newsreaders к серверу новостей, эта реализация недостаточна. Мы обсудим только NNTP daemon, содержащийся в пакете **nntpd** и не будем останавливаться на клиентских программах. Если Вы желаете использовать большой сайт новостей, Вы должны рассмотреть пакет //InterNet News (INN)//, который был написан Rich Salz. Этот пакет обеспечивает NNTP и UUCP-доставку новостей, что определенно лучше, чем **nntpd**.

Источники: [|Протокол новостей NNTP] [|Описание NNTP]

[|Понимание протокола NNTP]
[|протокол NNTP]