NNTP: Что такое сетевой протокол передачи новостей?

Задолго до появления Всемирной паутины в начале 80-х годов появилась всемирная платформа для обмена информацией. Она называлась Usenet (первоначально UNIX User Network) и до сих пор сосуществует с вебом как независимый интернет-сервис. Однако группы новостей, как назывались отдельные темы Usenet, за последние десятилетия стали значительно менее важными. Это связано с появлением новых, цифровых средств обмена информацией, таких как форумы и социальные сети.

Однако историческая ценность иерархически структурированной Usenet, основанной на классическом клиент-серверном обмене сообщениями, не подлежит сомнению. Определенно стоит взглянуть на протокол NNTP (Network News Transfer Protocol), стоящий за этой информационной сетью, который незаменим в общении между отдельными серверами новостей и клиентами.

Что такое NNTP (Network News Transfer Protocol)?

Network News Transfer Protocol, сокращенно NNTP, по сути, является протоколом TCP/IP для передачи сообщений в группах новостей. Эти группы новостей в основном используются как часть Usenet, где они предлагают, как своего рода предшественники современных интернет-форумов, пространство для обмена неограниченным количеством текстовых сообщений на самые разные темы. Первая спецификация NNTP, записанная в RFC 977, датируется 1986 годом. С тех пор протокол несколько раз пересматривался — текущую версию можно найти в RFC 3977. Кроме того, с момента появления RFC 5536 в 2009 году существует запрос на комментарии, который также более точно определяет формат сообщений передачи NNTP.

Примечание

До разработки и выпуска NNTP обмен данными в Usenet происходил по телефонным линиям с помощью UUCP (копия с Unix на Unix).

Где используется NNTP?

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

Заметка

Восемь основных тематических категорий Usenet, которые также называют «Большой восьмеркой» или «Большой восьмеркой», следующие:

— комп: Компьютеры

— sci: Наука и техника

— soc: общество

— разговор: общие темы

— rec: темы, касающиеся отдыха, релаксации, искусства и культуры

— новости: информация и новости о самом Usenet

— misc: смешанный

— гуманитарные науки: гуманитарные науки, культура.

Как работает протокол передачи сетевых новостей?

NNTP является текстовым протоколом и позволяет попеременно обмениваться сообщениями между клиентом и сервером: Поэтому на каждый запрос NNTP ожидается ответ NNTP. Для этой связи IANA (Internet Assigned Numbers Authority) предоставила TCP-порт 119, который в данном случае зарезервирован исключительно для протокола передачи — сеть TCP/IP, такая как Интернет, в результате является основой информационной платформы. Сам NNTP имеет доступ к прикладному уровню и для этого полагается непосредственно на протокол TCP, преимущество которого заключается в обеспечении безопасной и надежной передачи данных.

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

Примечание

Как только сервер получает новое сообщение по протоколу Network News Transfer Protocol, он добавляет индивидуальный идентификатор сообщения к этому сообщению или статье. Он имеет формат «<порядковый номер@News-Server>» и способствует четкой маркировке, поиску и ссылкам в случае, если другие клиенты или пользователи захотят отреагировать или ответить своим собственным сообщением.

Чтобы распространить новые сообщения во всей сети Usenet, отдельные серверы также рассылают полученные сообщения всем другим известным им NNTP-серверам. Перед этим они добавляют свои собственные имена в заголовок spath сообщения NNTP, чтобы они не были получены повторно.

NNTP: пример обмена сообщениями

После объяснения основ протокола передачи сетевых новостей в предыдущем разделе, мы проиллюстрируем взаимодействие между клиентами и серверами на конкретном примере. Отправной точкой является Клиент 1, который передает сообщение или новую статью в Usenet:

Отдельные этапы обмена сообщениями, изображенные на этой диаграмме, могут быть обобщены следующим образом:

  1. Пользователь, стоящий за NNTP-клиентом 1, пишет новое сообщение (или новую статью) и отправляет эти данные на NNTP-сервер 1.
  2. NNTP-сервер 1 присваивает сообщению уникальный идентификатор сообщения и добавляет свое имя в заголовок. Он распознает NNTP Server 2 и NNTP Server 3 и пересылает сообщение обоим.
  3. NNTP Server 2 получает сообщение и вставляет свое имя в заголовок. NNTP Server 3 также получает сообщение, расширяет заголовок своим именем и пересылает сообщение на NNTP Server 4 (который он знает).
  4. Сообщение также принимается на NNTP-сервере 4 и обрабатывается: Заголовок расширяется вокруг его имени. Затем он связывается с NNTP Server 5, который он знает, и предоставляет ему данные.
  5. NNTP-сервер 5 добавляет свою идентификацию в заголовок. Он оценивает записи в заголовке и по этой причине не пытается, в свою очередь, переслать сообщение на серверы 2 и 3, которые ему известны (красные стрелки обозначают неиспользованную пересылку).
  6. Тем временем, клиенты получают сообщение со своего личного сервера новостей, как только они появляются в сети. NNTP-клиент 2 получает информацию, например, непосредственно от сервера 1; клиент 6, напротив, от сервера 4.

Обзор команд NNTP и кодов состояния

Для взаимодействия с NNTP клиенты и серверы используют команды ASCII. Таким образом, при каждом запросе NNTP клиент автоматически посылает одну из этих команд. Сервер отвечает сообщением о статусе и отправляет клиенту запрошенные данные. Наиболее важные команды в NNTP-коммуникации приведены в следующих таблицах:

Команда NNTP Функция
LIST Запрашивает список доступных групп новостей (включая номер первой и последней статьи).
NEWGROUPS Запрашивает все новые доступные группы
NEWNEWS Запрашивает все новые доступные статьи, которые были созданы на определенную дату
ГРУППА Указывает группу, к которой применяется запрос
СТАТЬЯ Обеспечивает запрос конкретной статьи по ее номеру в группе или ID сообщения
ЗАГОЛОВОК Запрашивает только заголовок статьи
ТЕЛО Запрашивает только тело статьи
STAT Необходим для указания идентификатора сообщения статьи
NEXT Выбирает следующую статью в группе новостей
POST Информирует сервер о том, что передается новое сообщение или статья
QUIT Прерывает соединение с сервером NNTP.

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

Код состояния сервера NNTP Значение
1xx Общая информация
2xx Сообщение получено, выполнение успешно
3xx Сообщение получено, требуется дополнительная информация
4xx Сообщение получено, выполнение неуспешно
5xx Неверная команда

Тем временем, сервер передает следующую информацию через вторую позицию цифрового кода:

Код состояния сервера NNTP Значение
x0x Информация о соединении, настройке или чем-то еще
x1x Информация о выбранной группе новостей
x2x Информация о выбранной статье
x3x Информация о передаче сообщения
x4x Информация об отправленной статье
x5x Ответ аутентификации
x8x Сообщение для расширенных нестандартных команд
x9x Отладочное сообщение

Оцените статью
cdelat.ru
Добавить комментарий