Открыть сервис

RFC 977

RFC 977 — это документ, опубликованный в феврале 1986 года, который определяет протокол NNTP (Network News Transfer Protocol) версии 1.0. Данный протокол предназначен для распространения, запроса, получения и публикации новостных статей в системе Usenet — одной из старейших глобальных сетевых конференций. RFC 977, разработанный Брайаном Кантором и Филом Лапсли, стал первым стандартизированным описанием работы серверов и клиентов новостных групп, заложив основу для децентрализованного обмена текстовыми сообщениями в интернете.

История создания

Предпосылки появления

Система Usenet возникла в 1979 году как средство обмена сообщениями между университетами и исследовательскими центрами. Первоначально она использовала протокол UUCP (Unix-to-Unix Copy), который позволял передавать данные по коммутируемым линиям связи. Однако с ростом популярности Usenet и увеличением числа узлов возникла потребность в более эффективном и масштабируемом протоколе, способном работать в режиме реального времени.

Разработка стандарта

К середине 1980-х годов существовало несколько несовместимых реализаций протоколов для работы с Usenet, что затрудняло взаимодействие между разными серверами. В 1985 году Брайан Кантор из Калифорнийского университета в Беркли и Фил Лапсли из Университета Южной Калифорнии начали работу над унификацией протокола. Результатом их труда стал RFC 977, опубликованный в феврале 1986 года. Документ описывал базовые команды для чтения и публикации новостей, а также механизмы синхронизации между серверами.

Принятие и влияние

RFC 977 быстро стал стандартом де-факто для работы с Usenet. На его основе были разработаны многочисленные реализации серверов (например, INN — InterNetNews) и клиентов (rn, nn, trn). Протокол оставался основным для Usenet до появления более поздних расширений, таких как RFC 2980 (2000 год), который добавил новые команды, и RFC 3977 (2006 год), который представил NNTP версии 2.0.

Основные характеристики протокола

Архитектура

NNTP — это протокол прикладного уровня, работающий поверх TCP. По умолчанию используется порт 119 для незащищённого соединения и порт 563 для защищённого (NNTPS). Протокол основан на модели «клиент-сервер» и «сервер-сервер», что позволяет строить иерархические сети новостных серверов.

Формат сообщений

Сообщения в NNTP следуют стандарту RFC 850 (позже заменён RFC 1036), который определяет заголовки и тело статьи. Основные поля заголовка включают:

  • From — адрес отправителя;
  • Newsgroupsсписок новостных групп, в которые публикуется статья;
  • Subject — тема сообщения;
  • Date — дата и время публикации;
  • Message-IDуникальный идентификатор статьи.

Команды и ответы

NNTP использует текстовый протокол с командами и трёхзначными кодами ответов. Основные команды включают:

  • GROUP — выбор новостной группы;
  • ARTICLE — получение статьи по её идентификатору;
  • POST — публикация новой статьи;
  • LIST — получение списка доступных групп;
  • NEWGROUPS — запрос списка групп, созданных после определённой даты;
  • NEWNEWS — запрос списка новых статей в заданных группах.

Ответы сервера кодируются тремя цифрами (например, 100 — помощь, 200 — сервер готов, 400 — временная ошибка, 500 — синтаксическая ошибка).

Применение

Usenet

Основное применение RFC 977 — обеспечение работы Usenet. Система Usenet представляет собой децентрализованную сеть серверов, которые обмениваются статьями. Пользователи могут читать и публиковать сообщения в тысячах новостных групп, охватывающих практически любые темы — от научных дискуссий до развлекательных форумов.

Агрегаторы новостей

В 1990-х и начале 2000-х годов многие интернет-провайдеры и образовательные учреждения предоставляли доступ к Usenet через NNTP. Это позволяло пользователям с помощью специализированных клиентов (например, Outlook Express, Mozilla Thunderbird, Forté Agent) читать новости в офлайн-режиме.

Современное использование

Хотя популярность Usenet снизилась с распространением веб-форумов и социальных сетей, NNTP продолжает использоваться в некоторых нишевых сообществах (например, в научных и технических дискуссиях). Кроме того, протокол применяется в системах резервного копирования и распространения данных, где требуется надёжная и децентрализованная доставка сообщений.

Критика и ограничения

Отсутствие аутентификации

RFC 977 не предусматривал встроенных механизмов аутентификации и шифрования. Это делало протокол уязвимым для спама, подделки сообщений и несанкционированного доступа. Позднее эта проблема была частично решена в расширениях (RFC 2980, RFC 4643), которые добавили поддержку аутентификации.

Ограниченная поддержка бинарных данных

Изначально NNTP был ориентирован на текстовые сообщения. Передача бинарных файлов (например, изображений или архивов) требовала их кодирования в текстовый формат (например, Base64 или Uuencode), что увеличивало объём трафика и снижало эффективность. Современные реализации Usenet часто используют бинарные группы с поддержкой YEnc-кодирования.

Масштабируемость

Протокол не оптимизирован для работы с очень большими объёмами данных. При синхронизации серверов может возникать значительная задержка из-за необходимости передачи больших списков статей и заголовков.

Интересные факты

  • RFC 977 был опубликован в феврале 1986 года, всего через несколько месяцев после того, как в январе того же года был опубликован RFC 976 (протокол UUCP).
  • Название «NNTP» расшифровывается как Network News Transfer Protocol, что подчёркивает его основное назначение — передачу новостных статей.
  • В 2006 году был опубликован RFC 3977, который заменил RFC 977 и представил NNTP версии 2.0. Однако многие старые серверы и клиенты продолжают поддерживать только RFC 977.
  • Протокол NNTP использовался не только для Usenet, но и для некоторых других систем обмена сообщениями, например, в проекте Gopher.

Источники

  • RFC 977 — Network News Transfer Protocol (NNTP) (1986)
  • RFC 2980 — Common NNTP Extensions (2000)
  • RFC 3977 — Network News Transfer Protocol (NNTP) Version 2 (2006)
  • Kantor, B., Lapsley, P. — «A History of the Network News Transfer Protocol» (1986)
  • Usenet History: The Evolution of Network News (1998)

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →