Netsplit

Un article de Wikipédia, l'encyclopédie libre.

Dans un réseau d'ordinateurs, en particulier pour IRC (Internet Relay Chat), le terme anglais netsplit désigne une déconnexion d'un nœud du réseau auquel il était connecté au préalable. C'est en français une coupure de connexion.

Le schéma ci-dessous représente un réseau d'ordinateurs.

Un réseau d'ordinateurs opérationnel.
Un réseau d'ordinateurs opérationnel.

Chaque trait représente une connexion établie entre deux nœuds ; chaque nœud représente soit un serveur, soit un utilisateur sur le réseau. Ainsi, le serveur C est connecté directement au serveur A qui est aussi connecté aux serveurs B et D.

Si une interruption se produit dans la connexion entre C et A, la connexion pourrait être terminée. Cela peut être causé par une erreur survenant sur la socket (point d'accès à une connexion TCP) du serveur ou plus vraisemblablement par un lag (ou délai) excessif causé par un manque de bande passante et par lequel le serveur distant A anticipe la rupture (timeout).

Un réseau sur lequel s'est produit un netsplit.
Un réseau sur lequel s'est produit un netsplit.

Quand la connexion entre A et C est interrompue, les utilisateurs connectés aux serveurs qui ne sont plus accessibles sur le réseau donnent l'impression d'avoir disparu. Par exemple, si l'utilisateur Sara est connecté au serveur A, Bob au serveur B et Joe au serveur C, et que C et A sont déconnectés, il semblera à Sara et à Bob que Joe a quitté le reseau alors qu'il semblera à Joe que Sara et Bob ont quitté le reseau. Cela arrive parce que les serveurs auxquels ils sont connectés sont informés du changement du réseau et mettent à jour leurs informations locales pour annoncer ces changements.

Plus tard, les serveurs C et A pourront se reconnecter et les utilisateurs qui semblaient avoir disparu du réseau (soit du réseau des utilisateurs du serveur C, soit du réseau des utilisateurs des autres serveurs) réapparaîtront. Le processus d'envoi de cette mise à jour d'informations à tous les serveurs est appelé un sync ou netburst (rafale de reconnexion).

Un netsplit peut être exploité pour effectuer une attaque menant à un takeover ou prise de contrôle du canal. Dans ce cas, l'attaquant se connecte sous le nom de l'utilisateur qu'il veut déconnecter et lorsque le netburst se produit les 2 utilisateurs sont déconnectés. C'est inefficace dans les réseaux IRC où les services existent.

Plusieurs parades ont été développées dans les serveurs IRC, comme timestamp sur EFnet ou nick delay sur IRCnet, etc.