Netsplit Information
Why do servers split, what does it mean?

what is an irc network?

which server am i on?

how do netsplits happen?

If you have an irc server, you can have say 1024 users that can connect to it.

/server irc.vbirc.com 6667
and you connect to that particular server.
Upon connect, you can join a room:
/join #chat
Users of course connect to their own rooms, and rooms of friends.

Now, if you are all on 1 server, in #chat or another room.
It's just 1 server, and if it is online, it's online. If it's not, nobody can be online.

The main server can be set up as a HUB. Allowing other irc servers to connect.

This allows a network setup. Users can connect to irc.vbirc.org or irc.vbirc.net.
But once connected, if they /join #chat They will see you in #chat too, even if you are on irc.vbirc.com

The benefit here is that if all three servers allow 1024 users, the whole network can
spread the load of users, so 3072 total. The benefit there is that we can have way more users online.
And still have servers be offline, and still have a fast network.

The setup would now be:

irc.vbirc.com (HUB:1024)
	|- irc.vbirc.org (LEAF:1024)
	`- irc.vbirc.net (LEAF:1024)

If a server is dying, because of a DDoS attack, network maintenance, server maintenance, routing issues, or whatever.
Then for example irc.vbirc.org disconnects. Taking all its users with it.

Now, users can of course try to reconnect to irc.vbirc.org and maybe a minute later it will work again. But server could also be offline for
weeks. Reconnecting to irc.vbirc.net or irc.vbirc.com which are still online (as they are hosted at different locations) will let you get back online and /join #chat will make you be able to continue chatting.

With a web site you won't notice 'netsplits' because it's usually just 1 server, the works: or it doesn't.
But if you are on a page and the server dies, you won't notice it. The page is already loaded. With IRC you have a persistent connection.
If that connection drops, it takes active connections with it.

In the channel you will see:

* User: Floris has quit (irc.vbirc.com irc.vbirc.org)
Meaning: this is a netsplit, the quit msg says irc.vbirc.org has disconnected from irc.vbirc.com.

If you would check the MAP of the network it will now show:

irc.vbirc.com (HUB:1024)
	`- irc.vbirc.net (LEAF:1024)

irc.vbirc.org isn't on it.

But if we would have just 1 server, then it's 100% loss.
With 3 servers, only a third has quit. Allowing two third to stay online with a positive experience.

A network also allows that 1024 users can be spread over multiple servers, the server has less resource issues and stays fast/snappy.

A network also allows that 1024 can easily grow to 100,000 or a million users over a network. In case of an event more servers can be connected to the HUB growing the network without taking it down. New leaf servers can be added on the fly.

So imagine 1 server with 1 million users chatting in rooms, during an event. And that 1 server goes down. Everybody is upset that nobody can chat. They can't connect or otherwise resume chat.

Now, if we had 100 servers with 1 million users in rooms, during an event, and 1 server goes down. 99 servers stay online. Only say about 1000 users quit. They can easily reconnect. The benefit is huge. The loss is small.

So a netsplit is caused because on a network of irc servers one or more servers split away due to a disconnect, from the hub they're connected to. Causing users sometimes to disappear from the chat room, or maybe you if you're on that server. But it's just a portion of the network and the users will automatically return or they can reconnect through another entry point.

Sometimes the routing between hub/leaf server is unstable and splits. But both servers remain online. In 1 side of the network (netsplit source side) you will see 50 people, and if you would be on the other server you might see 5 or 500. They can continue chatting, but of course. They dont' see the other users. Upon a reconnect (should happen automatically once routing i restored) the rejoin the chat rooms and what they say will again be able to be seen by the others.

You can do a /map command on IRC to see which servers are connected, and how, and how many users are on each server.
You can do a /lusers command on IRC to see how many users are connected in total.
You can do a /whois (like /whois Floris) to find out on which server a user is.

On the vbirc network our HUB is : irc.vbirc.com
And we use rrDNS with IN A records for all the unique IP addresses of all hubs and leafs.
So if you connect to irc.vbirc.com you might end up on irc.vbirc.net
But if you connect again to irc.vbirc.com you might end up on irc.vbirc.org
So web site owners can always point to irc.vbirc.com, because even if irc.vbirc.com itself is down.
The rrDNS name server setup will reconnect the user to one of the other servers on the network.
This allows us to take bad servers out of the pool, and add more servers to the pool if needed.
The end user has very little frustration from all the negative sides of netsplits and what not, as we're capable of damage control.
But because routing issues and global connectivity isn't a given, it's inevitable to avoid netsplits.

For more questions, join #help on irc.vbirc.com