PRATIQUE ALGO/METHODES 
Expliquez-moi... Le protocole NNTP
 
Inventé en 1986 et encore activement utilisé, Usenet utilise ce protocole de transfert de données pour gérer la publication et la propagation des messages qui lui sont envoyés. (07/07/2006)
  Forum

Réagissez dans les forums de JDN Développeurs

Accronyme de Network News Transport Protocol, NNTP est le protocole Internet précisant la manière dont les messages des newsgroups sont distribués, récupérés, cherchés et publiés - et donc celui qui décide des interactions entre serveurs de newsgroups et outils de lecture de ces newsgroups.

Schéma du fonctionnement d'Usenet,
tiré du TCP/IP Guide.
NNTP est la fondation d'Usenet, un système distribué d'échange de messages par Internet. Les messages, publiés dans des catégories précises (par exemple, fr.comp.sys.amiga, alt.tv.lost ou alt.ensign.wesley.die), sont propagés automatiquement entre les serveurs - c'est donc l'un des premiers systèmes distribués à grande échelle, proche du modèle peer-to-peer.

Créé en 1986, Usenet précède de plus de 5 ans le Web de Tim Berners-Lee, et reste aujourd'hui une méthode populaire d'échange de message textuels ou binaire. Les catégories de messages, appelées newsgroups, sont par exemple accessibles depuis l'onglet Groupes de Google.

Le protocole NNTP fait partie des protocoles simples, créés à l'époque pour répondre rapidement à une demande précise et resté en place, à la manière de POP3 et SMTP pour l'échange d'e-mails. L'un des points importants de ce protocole reste son processus de propagation des messages. En effet, c'est à lui qu'incombe la tâche de distribuer tous les messages postés sur un serveur, vers les autres serveurs.

Sachant que les newsgroups binaires transportent aujourd'hui plusieurs giga-octets de nouvelles données par jour, il est nécessaire de disposer d'un algorithme non seulement efficace, mais conçu pour éviter les boucles, c'est-à-dire la propagation sans fin d'un message.

Cet algorithme se protège des boucles en utilisant l'identifiant numérique d'un message, unique et généré par le serveur original. Si ce serveur reçoit un message ayant le même identifiant, celui-ci est rejeté. Également, l'en-tête d'un message contient l'ensemble du chemin de propagation d'icelui, serveur par serveur, ce qui permet au serveur courant de ne pas viser ces autres serveurs lors de sa propre relance.

Quant à la distribution des messages elle-même, chaque serveur est lié à au moins à un autre, censé être plus gros, et s'y connecte régulièrement pour échanger les dernières informations - l'échange se fait dans les deux sens, afin qu'un message publié sur un serveur mineur n'y reste pas, mais est récupéré par les plus gros serveurs, et donc les autres serveurs mineurs.
 
Xavier Borderie, JDN Développeurs
 
 
Accueil | Haut de page