NNTP: ¿qué es exactamente el Network News Transfer Protocol?
A principios de la década de los 80, mucho antes de que se creara la World Wide Web, se creó una plataforma mundial para el intercambio de información, llamada Usenet (originalmente UNIX User Network), que sigue existiendo hoy en día como un servicio de Internet independiente paralelo a la Web. Los grupos de noticias o newsgroups, como se denominan las áreas temáticas individuales de Usenet, han perdido mucha relevancia en las últimas décadas con la aparición de nuevos puntos de encuentro digitales, como foros o redes sociales.
Sin embargo, la estructura jerárquica de Usenet, basada en el clásico intercambio de mensajes cliente-servidor, tiene un enorme valor histórico. Esto es razón más que suficiente para echar un vistazo al NNTP (Network News Transfer Protocol), que es esencial para la comunicación entre servidores de noticias individuales y clientes.
¿Qué significa NNTP?
El Network News Transfer Protocol, también conocido como NNTP, es un protocolo de transferencia TCP/IP para mensajes en grupos de noticias o newsgroups. Estos grupos de noticias se utilizan principalmente en el contexto de la llamada Usenet, una especie de antepasado de los modernos foros de Internet, y son puntos de encuentro que permiten el intercambio de un número ilimitado de mensajes de texto sobre una amplia variedad de temas. La primera especificación del protocolo NNTP, registrada en RFC 977 data del año 1986. Desde entonces, el protocolo ha pasado por varias revisiones. La versión actual se encuentra en RFC 3977. Desde 2009, existe con RFC 5536, además, una Request for Comments que especifica el formato del mensaje de la transmisión NNTP con mayor precisión.
Hasta el desarrollo y lanzamiento del NNTP, la transmisión de datos en Usenet tenía lugar a través de líneas telefónicas 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 relevancia en la comunicación digital, lo que está relacionado con el hecho de que la propia Usenet ya solo se utiliza esporádicamente y en círculos especializados. Desde 1986, el Network News Transfer Protocol ha sido un elemento indispensable para la red de información y se utiliza tanto en el lado del servidor como en el del cliente. Aparte de la transmisión de mensajes directos personales, Usenet se caracteriza por los grupos de noticias ya mencionados, que pueden crearse y gestionarse individualmente 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.
Los ocho temas principales de Usenet, también conocidos como Big Eight o Big-8 (los grandes 8) son los siguientes:
- comp: Ordenadores.
- sci: Ciencia y tecnología.
- soc: Sociedad.
- talk: Temas generales.
- rec: Temas relacionados con el ocio, la recreación, el arte y la cultura.
- noticias: Información y noticias sobre la propia Usenet.
- misc: Miscelánea.
- humanities: Humanidades, Asuntos Culturales.
¿Cómo funciona el Network News Transfer Protocol?
El NNTP es un protocolo basado en texto y permite la transmisión de datos alterna entre el cliente y el servidor: por cada solicitud de NNTP se espera una respuesta del NNTP. Para esta comunicación, la IANA (Internet Assigned Numbers Authority) ha previsto el puerto TCP 119, que en este caso está reservado únicamente para este protocolo de comunicación. Una red TCP/IP como Internet es, por lo tanto, la estructura subyacente para la plataforma de información. El protocolo NNTP, que a su vez funciona en la capa de aplicación, se basa directamente en el protocolo TCP, que tiene la ventaja de garantizar una transmisió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 participar en la conversación pueden descargar ese mensaje o artículo en cualquier momento para mantenerse 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 desconectado el cliente, más tiempo durará el proceso de actualización al establecer la conexión.
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 consecutivo@News-server>" y se utiliza para la identificación inequívoca y para la recuperación y referencia si otros clientes o usuarios desean reaccionar o responder con su propio mensaje.
Asimismo, con el fin de distribuir los nuevos mensajes en toda la red de Usenet, los servidores individuales reenvían los mensajes recibidos a todos los demás servidores 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 transmisión de mensajes
Después de haberte explicado los fundamentos del Network News Transfer Protocol en las secciones anteriores, te mostramos un ejemplo concreto de comunicación entre los clientes y los servidores. El punto de partida es el Cliente 1, que introduce un nuevo mensaje o artículo en Usenet:
Los pasos individuales de la transmisión del mensaje, que aparecen en este diagrama, se pueden resumir así:
- El usuario del Cliente NNTP 1 escribe un nuevo mensaje (o artículo) y envía estos datos al servidor NNTP 1.
- El Servidor 1 de NNTP proporciona 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.
- 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.
- 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.
- El Servidor NNTP 5 añade su identificación a la cabecera. Entonces, evalúa las entradas de la cabecera y por lo tanto no intenta reenviar el mensaje a los servidores 2 y 3, aunque los conoce (las flechas rojas significan que se omite el envío).
- 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 información directamente 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 servidores utilizan comandos ASCII para comunicarse con el protocolo NNTP. De este modo, con cada solicitud de NNTP, un cliente envía automáticamente uno de estos comandos. El servidor responde con un mensaje de estado y envía los datos solicitados al cliente. Los comandos más importantes para la comunicación NNTP aparecen en esta tabla:
Comando NNTP | Función |
---|---|
LIST | Solicita una lista de los grupos de noticias disponibles (incluyendo el primer y último número de artículo) |
NEWGROUPS | Consulta todos los nuevos grupos disponibles |
NEWNEWS | Consulta todos los nuevos artículos disponibles creados a partir de una fecha determinada |
GROUP | Especifica el grupo al que se realiza la solicitud |
ARTICLE | Permite consultar un mensaje específico 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 especificar el ID de mensaje de un artículo |
NEXT | Selecciona 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 (incluyendo los datos solicitados) es un código numérico de tres cifras. La primera cifra se interpreta de la siguiente manera:
Código de estado del servidor de NNTP | Significado |
---|---|
1xx | Información general |
2xx | Comando recibido, ejecución completada |
3xx | Comando recibido, se requiere más información |
4xx | Comando recibido, ejecución no completada |
5xx | Comando desconocido |
En la segunda cifra del código numérico se transmite la siguiente información:
Código de estado del servidor de NNTP | Significado |
---|---|
x0x | Información sobre la conexión, la configuración u otros datos |
x1x | Información sobre un grupo de noticias seleccionado |
x2x | Información sobre artículos seleccionados |
x3x | Información sobre transferencia de mensajes |
x4x | Información sobre los artículos enviados |
x5x | Respuesta de autenticación |
x8x | Mensaje para comandos añadidos no estandarizados |
x9x | Mensaje de depuración |