In informatica, nell'ambito delle reti di computer ed in particolare in Internet Relay Chat (IRC), netsplit è un termine usato per descrivere la disconnessione di un nodo da una rete. Dato che schematicamente IRC è un grafo aciclico, un sezionamento tra due nodi suddivide l'intera rete in due tronconi.

Il netsplit in pratica modifica

Si considerino i grafici a destra, rappresentanti una rete di computer.

 
Una rete normalmente funzionante.
 
Una rete dopo un netsplit.

Ogni linea rappresenta una connessione fra due nodi, ognuno dei quali rappresenta un server od un utente sulla rete; quindi il server C è connesso direttamente ad A, connesso a sua volta con B e D.

Un'interruzione del collegamento fra C ed A implicherebbe la chiusura della connessione; un evento del genere può essere generato ad esempio da un errore del socket, o da un lag eccessivo che superi i limiti consentiti causando così un timeout.

Quando la connessione tra A e C venisse compromessa, gli utenti connessi a server appartenenti al lato irraggiungibile della rete sembrano disconnettersi. Ad esempio, se l'utente Sara fosse connesso al server A, l'utente Bob a B, Joe a C e quest'ultimo server si disconnettesse (splittasse) da A, a Joe sembrerebbe che Sara e Bob fossero usciti dalla rete e a questi che Joe avesse fatto lo stesso. Se il server C si riconnettesse alla rete questi utenti sembrerebbero rientrare in massa (il processo per cui i server si aggiornano l'un altro sui cambiamenti della rete avvenuti durante il netsplit è chiamato netburst o sync).

Talvolta alcuni utenti potrebbero cercare di sfruttare un netsplit per avere accesso ai canali protetti: se nessuno degli utenti fosse sul server C, si potrebbe entrare nel canale privato e avervi accesso quando le connessioni si siano ristabilite. Questa azione è comunemente chiamato "cavalcare lo split" ("riding the split").

Un altro attacco che può essere tentato durante un netsplit è basato sulla collisione dei nickname: in pratica un utente su un segmento isolato della rete cambia il proprio soprannome in quello di un altro utente dall'altro lato, al ripristino della connessione entrambi gli utenti vengono scollegati forzosamente. I server basati su implementazioni IRC recenti mitigano questo genere di problema, ma vecchi sistemi possono essere ancora vulnerabili.

Come appare un netsplit? modifica

Questo sono alcuni esempi di come un netsplit su una rete IRC venga percepito da un utente. Quando due server si disconnettono, molti utenti sembrano uscire contemporaneamente dalla chat; quando i server si riconnettono gli utenti sembrano rientrare.

Visto da un client IRC modifica

* usera has quit (a.irc.net b.irc.net)
* userb has quit (a.irc.net b.irc.net)
* userc has quit (a.irc.net b.irc.net)
* usera has joined #channel
* userb has joined #channel
* userc has joined #channel

Visto dal client IRC irssi modifica

00:00 -!- Netsplit a.irc.net <-> b.irc.net quits: usera, userb, userc
00:00 -!- Netsplit over, joins: usera, userb, userc

Visto da un utente su una rete privata modifica

* usera has quit (*.net *.split)
* userb has quit (*.net *.split)
* userc has quit (*.net *.split)
* usera has joined #channel
* userb has joined #channel
* userc has joined #channel

Altri progetti modifica

  Portale Telematica: accedi alle voci di Wikipedia che parlano di reti, telecomunicazioni e protocolli di rete