A pri­n­ci­pios de la década de los 80, mucho antes de que se creara la World Wide Web, se creó una pla­ta­fo­r­ma mundial para el in­te­r­ca­m­bio de in­fo­r­ma­ción, llamada Usenet (ori­gi­na­l­me­n­te UNIX User Network), que sigue exi­s­tie­n­do hoy en día como un servicio de Internet in­de­pe­n­die­n­te paralelo a la Web. Los grupos de noticias o ne­w­s­grou­ps, como se denominan las áreas temáticas in­di­vi­dua­les de Usenet, han perdido mucha re­le­va­n­cia en las últimas décadas con la aparición de nuevos puntos de encuentro digitales, como foros o redes sociales.

Sin embargo, la es­tru­c­tu­ra je­rá­r­qui­ca de Usenet, basada en el clásico in­te­r­ca­m­bio de mensajes cliente-servidor, tiene un enorme valor histórico. Esto es razón más que su­fi­cie­n­te para echar un vistazo al NNTP (Network News Transfer Protocol), que es esencial para la co­mu­ni­ca­ción entre se­r­vi­do­res de noticias in­di­vi­dua­les y clientes.

¿Qué significa NNTP?

El Network News Transfer Protocol, también conocido como NNTP, es un protocolo de tra­n­s­fe­re­n­cia TCP/IP para mensajes en grupos de noticias o ne­w­s­grou­ps. Estos grupos de noticias se utilizan pri­n­ci­pa­l­me­n­te en el contexto de la llamada Usenet, una especie de an­te­pa­sa­do de los modernos foros de Internet, y son puntos de encuentro que permiten el in­te­r­ca­m­bio de un número ilimitado de mensajes de texto sobre una amplia variedad de temas. La primera es­pe­ci­fi­ca­ción del protocolo NNTP, re­gi­s­tra­da en RFC 977 data del año 1986. Desde entonces, el protocolo ha pasado por varias re­vi­sio­nes. La versión actual se encuentra en RFC 3977. Desde 2009, existe con RFC 5536, además, una Request for Comments que es­pe­ci­fi­ca el formato del mensaje de la tra­n­s­mi­sión NNTP con mayor precisión.

Nota

Hasta el de­sa­rro­llo y la­n­za­mie­n­to del NNTP, la tra­n­s­mi­sión de datos en Usenet tenía lugar a través de líneas te­le­fó­ni­cas usando el protocolo UNIX UUCP (Unix to Unix Copy).

¿Para qué se utiliza el protocolo NNTP?

Hoy en día, el NNTP ha perdido mucha re­le­va­n­cia en la co­mu­ni­ca­ción digital, lo que está re­la­cio­na­do con el hecho de que la propia Usenet ya solo se utiliza es­po­rá­di­ca­me­n­te y en círculos es­pe­cia­li­za­dos. Desde 1986, el Network News Transfer Protocol ha sido un elemento in­di­s­pe­n­sa­ble para la red de in­fo­r­ma­ción y se utiliza tanto en el lado del servidor como en el del cliente. Aparte de la tra­n­s­mi­sión de mensajes directos pe­r­so­na­les, Usenet se ca­ra­c­te­ri­za por los grupos de noticias ya me­n­cio­na­dos, que pueden crearse y ge­s­tio­nar­se in­di­vi­dua­l­me­n­te mediante el NNTP protocol. De este modo, a lo largo del tiempo numerosos subgrupos de noticias se han integrado en la jerarquía básica existente de la Usenet.

Nota

Los ocho temas pri­n­ci­pa­les de Usenet, también conocidos como Big Eight o Big-8 (los  grandes  8) son los si­guie­n­tes:

- comp: Or­de­na­do­res.

- sci: Ciencia y te­c­no­lo­gía.

- soc: Sociedad.

- talk: Temas generales.

- rec: Temas re­la­cio­na­dos con el ocio, la re­crea­ción, el arte y la cultura.

- noticias: In­fo­r­ma­ción y noticias sobre la propia Usenet.

- misc: Mi­s­ce­lá­nea.

- hu­ma­ni­ties: Hu­ma­ni­da­des, Asuntos Cu­l­tu­ra­les.

¿Cómo funciona el Network News Transfer Protocol?

El NNTP es un protocolo basado en texto y permite la tra­n­s­mi­sión de datos alterna entre el cliente y el servidor: por cada solicitud de NNTP se espera una respuesta del NNTP. Para esta co­mu­ni­ca­ción, la IANA (Internet Assigned Numbers Authority) ha previsto el puerto TCP 119, que en este caso está reservado úni­ca­me­n­te para este protocolo de co­mu­ni­ca­ción. Una red TCP/IP como Internet es, por lo tanto, la es­tru­c­tu­ra su­b­ya­ce­n­te para la pla­ta­fo­r­ma de in­fo­r­ma­ción. El protocolo NNTP, que a su vez funciona en la capa de apli­ca­ción, se basa di­re­c­ta­me­n­te en el protocolo TCP, que tiene la ventaja de ga­ra­n­ti­zar una tra­n­s­mi­sión de datos segura y fiable.

El concepto básico de Usenet establece que un mensaje nuevo enviado desde un cliente NNTP a cualquier servidor NNTP se mantiene en ese servidor. Todos los demás clientes que deseen pa­r­ti­ci­par en la co­n­ve­r­sa­ción pueden descargar ese mensaje o artículo en cualquier momento para ma­n­te­ne­r­se al día de ese grupo de noticias. Esto quiere decir que, si un cliente se conecta a un servidor NNTP, descarga primero todos los mensajes que se han publicado desde la última conexión a ese servidor. Por lo tanto, cuanto más tiempo haya estado de­s­co­ne­c­ta­do el cliente, más tiempo durará el proceso de ac­tua­li­za­ción al es­ta­ble­cer la conexión.

Nota

Cuando un servidor recibe un nuevo mensaje a través del Network News Transfer Protocol, añade un ID de mensaje único a ese mensaje o artículo. Este tiene el formato "<número co­n­se­cu­ti­vo@News-server>" y se utiliza para la ide­n­ti­fi­ca­ción ine­quí­vo­ca y para la re­cu­pe­ra­ción y re­fe­re­n­cia si otros clientes o usuarios desean reac­cio­nar o responder con su propio mensaje.

Asimismo, con el fin de di­s­tri­buir los nuevos mensajes en toda la red de Usenet, los se­r­vi­do­res in­di­vi­dua­les reenvían los mensajes recibidos a todos los demás se­r­vi­do­res del NNTP que conozcan. Antes de hacerlo, añaden su propio nombre al path-header o cabecera del mensaje NNTP para no volver a recibirlo.

NNTP: ejemplo de tra­n­s­mi­sión de mensajes

Después de haberte explicado los fu­n­da­me­n­tos del Network News Transfer Protocol en las secciones an­te­rio­res, te mostramos un ejemplo concreto de co­mu­ni­ca­ción entre los clientes y los se­r­vi­do­res. El punto de partida es el Cliente 1, que introduce un nuevo mensaje o artículo en Usenet:

Los pasos in­di­vi­dua­les de la tra­n­s­mi­sión del mensaje, que aparecen en este diagrama, se pueden resumir así:

  1. El usuario del Cliente NNTP 1 escribe un nuevo mensaje (o artículo) y envía estos datos al servidor NNTP 1.
  2. El Servidor 1 de NNTP pro­po­r­cio­na al mensaje un ID de mensaje único y añade su nombre a la cabecera. Este conoce al Servidor NNTP 2 y al servidor NNTP 3 y reenvía el mensaje a ambos.
  3. El Servidor NNTP 2 recibe el mensaje e inserta su nombre en la cabecera. El Servidor NNTP 3 recibe también el mensaje, añade su nombre a la cabecera, y reenvía el mensaje al servidor 4 de NNTP, que conoce.
  4. El Servidor NNTP 4 recibe y procesa este mensaje. Después, añade su propio nombre a la cabecera. Después, contacta con el servidor 5, que conoce, y le envía los datos.
  5. El Servidor NNTP 5 añade su ide­n­ti­fi­ca­ción a la cabecera. Entonces, evalúa las entradas de la cabecera y por lo tanto no intenta reenviar el mensaje a los se­r­vi­do­res 2 y 3, aunque los conoce (las flechas rojas si­g­ni­fi­can que se omite el envío).
  6. Tan pronto como están en línea, los clientes recogen el mensaje de su servidor personal de noticias. Por ejemplo, el Cliente NNTP 2 recibe la in­fo­r­ma­ción di­re­c­ta­me­n­te del servidor 1, mientras que el Cliente 6 la recibe del Servidor 4.

Resumen de los comandos de NNTP y códigos de estado

Los clientes y los se­r­vi­do­res utilizan comandos ASCII para co­mu­ni­car­se con el protocolo NNTP. De este modo, con cada solicitud de NNTP, un cliente envía au­to­má­ti­ca­me­n­te uno de estos comandos. El servidor responde con un mensaje de estado y envía los datos so­li­ci­ta­dos al cliente. Los comandos más im­po­r­ta­n­tes para la co­mu­ni­ca­ción NNTP aparecen en esta tabla:

Comando NNTP Función
LIST Solicita una lista de los grupos de noticias di­s­po­ni­bles (in­clu­ye­n­do el primer y último número de artículo)
NEWGROUPS Consulta todos los nuevos grupos di­s­po­ni­bles
NEWNEWS Consulta todos los nuevos artículos di­s­po­ni­bles creados a partir de una fecha de­te­r­mi­na­da
GROUP Es­pe­ci­fi­ca el grupo al que se realiza la solicitud
ARTICLE Permite consultar un mensaje es­pe­cí­fi­co mediante su número en el grupo o su ID de mensaje
HEADER Solicita solo la cabecera de un artículo
BODY Solicita solo el cuerpo de un artículo
STAT Es necesario para es­pe­ci­fi­car el ID de mensaje de un artículo
NEXT Se­le­c­cio­na el siguiente artículo en el grupo de noticias
POST Informa al servidor que se está enviando un nuevo mensaje o artículo
QUIT Corta la conexión con el servidor NNTP

El mensaje de estado que el servidor devuelve como respuesta NNTP (in­clu­ye­n­do los datos so­li­ci­ta­dos) es un código numérico de tres cifras. La primera cifra se in­te­r­pre­ta de la siguiente manera:

Código de estado del servidor de NNTP Si­g­ni­fi­ca­do
1xx In­fo­r­ma­ción general
2xx Comando recibido, ejecución co­m­ple­ta­da
3xx Comando recibido, se requiere más in­fo­r­ma­ción
4xx Comando recibido, ejecución no co­m­ple­ta­da
5xx Comando de­s­co­no­ci­do

En la segunda cifra del código numérico se transmite la siguiente in­fo­r­ma­ción:

Código de estado del servidor de NNTP Si­g­ni­fi­ca­do
x0x In­fo­r­ma­ción sobre la conexión, la co­n­fi­gu­ra­ción u otros datos
x1x In­fo­r­ma­ción sobre un grupo de noticias se­le­c­cio­na­do
x2x In­fo­r­ma­ción sobre artículos se­le­c­cio­na­dos
x3x In­fo­r­ma­ción sobre tra­n­s­fe­re­n­cia de mensajes
x4x In­fo­r­ma­ción sobre los artículos enviados
x5x Respuesta de au­te­n­ti­ca­ción
x8x Mensaje para comandos añadidos no es­ta­n­da­ri­za­dos
x9x Mensaje de de­pu­ra­ción
Ir al menú principal