Netsplit
Encyclopedia
In computer networking, specifically Internet Relay Chat
Internet Relay Chat
Internet Relay Chat is a protocol for real-time Internet text messaging or synchronous conferencing. It is mainly designed for group communication in discussion forums, called channels, but also allows one-to-one communication via private message as well as chat and data transfer, including file...

 (IRC), netsplit is the disconnection of a given node from the previously established network or between two nodes. As an IRC network is an undirected acyclic graph
Tree (graph theory)
In mathematics, more specifically graph theory, a tree is an undirected graph in which any two vertices are connected by exactly one simple path. In other words, any connected graph without cycles is a tree...

, a split between any two nodes splits the entire network into two pieces.
Consider the graphic to the right, which represents the computer network
Computer network
A computer network, often simply referred to as a network, is a collection of hardware components and computers interconnected by communication channels that allow sharing of resources and information....

. Each line represents an established connection between the two nodes; each node represents either a server or a user on the network. Therefore, the server C is connected directly to A, which is also connected to B and D.

If a disruption in the connection between C and A occurs, the connection may in result be terminated. This can occur either by a socket
Internet socket
In computer networking, an Internet socket or network socket is an endpoint of a bidirectional inter-process communication flow across an Internet Protocol-based computer network, such as the Internet....

 producing an error, or by excessive lag
Lag
Lag is a common word meaning to fail to keep up or to fall behind. In real-time applications, the term is used when the application fails to respond in a timely fashion to inputs...

 in which the far server A anticipates this case (which is called a timeout).

When the connection between A and C is severed, users that were connected to other servers which are no longer reachable on the network appear to quit. For example, if user Sara is connected to server A, user Bob is connected to server B, and user Joe is connected to C, and C splits, or disconnects, from A, it will appear to Joe as if Sara and Bob both quit (disconnected from the network), and it will appear to both Sara and Bob that Joe quit.
However, Joe can still talk to anyone on the same server C.
This happens because the servers in which they are connected are informed of the change in the network status, and update their local information accordingly to display the change.

Later, server C may relink (reconnect) to a server on the network and the users who appeared to have quit will rejoin; the process of sending this updated information to all servers on the network is called a netburst (or sync
Synchronization
Synchronization is timekeeping which requires the coordination of events to operate a system in unison. The familiar conductor of an orchestra serves to keep the orchestra in time....

).
Occasionally, users will attempt to use netsplits to gain access to private channels. If none of the channel users were on server C, a user could join a private channel and later gain access when the servers relink. This is commonly known as split riding or riding the split.

Another typical netsplit-oriented IRC attack is Nickname Colliding. In this attack, a user on a split segment of the network would change nicknames to that of a user on the other side of the split network. Upon reconnection, the network would disconnect both users because only one nickname may be in use at one time. Modern IRC server software has largely eliminated this method, but servers using older software may still be vulnerable.

Appearance of netsplits

Below is an example of typical netsplit. When two servers split, a user sees this as large number of users quitting. After the servers are reconnected, a user sees the other users rejoining.

On GUI IRC clients

* 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

On command-line client irssi

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

To a user on a private network

* 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

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK