NNTP

nntp_ннтпNNTP (Network News Transfer Protocol)

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

У NNTP есть разновидность, отличающаяся только лишь набором поддерживаемых команд — NNRP (Network News Readers Protocol). Она предназначена для чтения информации с сервера новостей клиентским программным обеспечением в режиме реального времени. NNTP ориентирован на отправление статей подписавшимся пользователям при их появлении на сервере, а NNRP — только по запросу клиента. То есть, NNTP нужен для обмена сообщениями между серверами новостей, а NNRP предназначен для чтения сообщений с новостного сервера и создания новых сообщений.

NNTP требует от новостного сервера постоянного IP-подключения. Во времена, когда интернет-технологии только набирали силу, сервера новостей обменивались новостями при помощи uucp.

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

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