1 · What netsplits are
Netsplits occur when the connection of one or more server breaks with another server (for whatever reason). The network will break into two, separate halves. DALnet has many servers, some of which are hubs and some of which are leafs. Those hubs are connected together and form a web. The hubs also link one or more additional servers which are usually called leafs. When all those servers are linked together you have a network running where all servers are either indirectly or directly connected to each other.
To best illustrate that you may want to think of a large tree. The tree has many branches which are all connected together. The tree also has leafs which are connected to a specific branch. When a netsplit happens, a leaf or hub is disconnected from the rest of the network.
When this happens, the network is no longer whole: there are two parts (or 'sides'). One side with some servers and another side with a few other servers that are not connected together in any way.
If this sounds confusing just think of the tree, if one branch falls, part of the tree is still together and the other part (which would be the branch with all the leafs) is somewhere else. While being part of the same network they are currently split and can not interact. Here's an example that might make this seem simpler.
Ex. #1
Hub1------------Hub2 | | |-Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6
In this example 2 hubs are connected together and each of those hubs holds 3 other servers. In other words, 8 servers are directly and indirectly connected together and everything that happens on one server happens on the other.
Ex. #2)
Hub1 Hub2 | | |-Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6
Above you can see the hubs are no longer connected together and while the hubs still hold 3 servers each, they do not transmit information to the other 3 servers.
Ex. #3)
Hub1-----------Hub2 | | | Leaf1 |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6
Here both hubs are connected together, however Hub#1 is missing one server. This server can still be online but as long as it is not connected to the hub, only the users on that server will be able to see whats going on.
2 · What do users see
-
When a server splits, users on each side of the split will see the other users disappear. The quit message would look something like "server1.xx.xx.dal.net server2.xx.xx.dal.net", where server1 and server2 are the servers that split from each other. However, the quit message may differ from client to client
Ex. #1)
Mystro (mystro@mystro.canshell.com) Quit (liberty.nj.us.dal.net vader.ny.us.dal.net)
where Vader is the server Mystro is on and liberty is the server you are connected to.
However, Mystro, on the other side of the netsplit would see something like this:
WhateverNick (someperson@someisp.com) Quit (vader.ny.us.dal.net liberty.nj.us.dal.net)
where liberty is the server you are on and Vader is the server Mystro is on.
(Just as a note, Vader is a hub on DALnet and does not allow connections from the public, I have used it for demonstration
purposes only).
Ex. #2)
Vader----------------Hub2 | | |-Liberty |-Leaf4 |-Leaf2 |-Leaf5 |-Leaf3 |-Leaf6
This is overall the same thing but it is easier to understand. Everyone on liberty will see as if Vader left them and everyone on Vader will see as if Liberty left them
-
In a case a network split occurs where 2 or more hubs split, the people will see it as if the hubs are the servers they are on.
Ex. #1)
Vader.ny.us.dal.net and Journey.ca.us.dal.netsplit. Vader is still holding liberty and Journey is holding the rest of the servers.
The quit message would look something like this:
Mystro (mystro@mystro.canshell.com) Quit (vader.ny.us.dal.net journey.ca.us.dal.net)
and vice versa from the other side.
Ex. #2)
An easier way to illustrate this is draw a diagram:
Vader Journey | | |-Liberty |-Leaf1 |-Leaf2 |-Leaf3
In this illustration you see that Vader has split from Journey. While Liberty is still connected to Vader, the rest of the network is gone. In this case I would see Vader and Journey split rather than Liberty and Journey.
-
Finally, when the servers reconnect, you are going to see a flood of people come in and the servers change modes in the channels so that everything gets back to how it was before the split.
Ex.
[16:22] *** user1 (user1@blah.com) has joined #blah
[16:22] *** user2 (user2@blah.com) has joined #blah
[16:22] *** user3 (user3@blah.com) has joined #blah
[16:22] *** user4 (user4@blah.com) has joined #blah
[16:22] *** user5 (user5@blah.com) has joined #blah
[16:22] *** liberty.nj.us.dal.net sets mode: +ovvv user1 user2 user3 user4
This would be something like what you would see when a server reconnected, the server which changes the modes in the channel will always be the one that left the network and than reconnected.
3 · How are netsplits solved
This is where the IRC operator comes into play. As soon as a netsplit occurs, a global message is sent out by the IRC server saying that it occurred, what server and why (read errors, timeouts etc...). Now, contrary to popular belief, IRCops do their job quite nicely and get to work on netsplits as soon as they can. IRC operators will right away try and reconnect the two or more servers to the rest of the network. Should this fail, they will try and reroute the servers to other hubs that contain C/N lines (linking lines without which you can not connect a server to another) for that server.
4 · Dos and Don'ts during a netsplit.
-
The safest way to ride out a netsplit is to just stay where you are and wait for the servers to reconnect.
-
Do NOT try to connect to a split server in order to gain ops in any specific channels. First of all it will prove futile since DALnet's IRC servers do not let people gain ops in channels while a netsplit is in progress. Second of all, servers reset the settings to what they were before the split, in which case they will deop you as soon as the net gets back to normal. Thirdly, it will just get a lot of mad people staring at you, and no one likes that.
-
If you do decide to switch servers, make sure you're switching to where most of the other users are, hence not a server which is linked to the current servers you are on. As well, I would suggest using a different nickname just in case either of the server is lagged and still records you as beeing on the server. Although as I said before, it's best if you stay just where you are and let everything get back to normal.
-
Do NOT bug IRCops if you see a netsplit, if they are active they will have seen it as well and if they aren't active there isn't much point in bugging them in the first place.
5 · Glossary
- IRC
-
IRC stands for Internet Relay Chat, it allows thousands of users like you and me to chat with other thousands of users simultanously anywhere around the world.
- IRC operator
-
IRCop, also known as IRC Operator is a user with special access to the IRC Server, he is there to help run the server, fix net splits, deal with abusive users and much more. IRC operators are sometimes mistaken for 'Cops' 'mIRC Cops' or many other things. They are in no way cops. They are just your average human being who is on the network to make your stay more pleasant.
- Hub and Leaf
-
A 'hub' is a server that usually connects 2 or more servers together in order to form a web. A leaf on the other hand can not connect more than 1 server and in most cases, the leaf is connected to the hub.
6 · Conclusion
DALnet tries to make any IRCers' stay as pleasant as possible. If and when a netsplit occurs the administration (IRCops and Admins) get to work as soon as possible to fix it just so that IRCers' can have a pleasant chat. Unfortunately, no IRC network has the joy of lacking netsplits completely, and when a netsplit does occur, all we ask for is that you have some patience, ride it out and get back to doing whatever you were doing before :)
Please direct any comments or feedback about this document (only! no help requests!) to docs@dal.net. If you need help on issues not covered in this document, please see the information at http://help.dal.net.