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 →