An IRC network consists of two or more IRC servers (normally excluding services servers; however, some networks consist only of a single (physical) server) linked together so that their users, and most channels, are shared.
This article will cover information not covered in wikipedia:IRC network.
Server types[edit | edit source]
Leaf[edit | edit source]
Leaves are servers connected to exactly one other server on the network (possibly excepting services). On most networks, leaves will take most of the user load.
Services and other pseudoservers[edit | edit source]
The two common services packages, Anope and Atheme, both present themselves to an IRC network as a pseudoserver - a server that is not a true IRC server in the sense of running a true IRCd (like hubs), but which instead serves other functions. Pseudoservers in general rarely serve as anything other than special leaf servers from the network's point of view. However, services servers are usually u-lined because of the permissions they require.
Hub[edit | edit source]
Hubs are connected to two or more servers, whether they be other hubs or merely leaves. Although typically not handling the main user load of the network, they are very important as they serve as central routing points for the network. For similar reasons, services servers are usually directly connected to a hub.
Hidden hub[edit | edit source]
Because of the importance of hubs, some or all of a network's hub servers may be made private, only known to the network's operator(s). Such a server is called a hidden hub and will not be used by ordinary users at all. Especially on large networks, the most important hub (the one hosting services) will be hidden. "Hidden" in this sense often also means the hiding of said server from the /map and/or /links commands except to IRC operators.
Linking of servers[edit | edit source]
Like a client connection, a server-server connection is a TCP socket opened between the two servers. The protocols vary by IRCd, but usually will include provisions for routing of messages and synchronizing servers; usually all servers will know the entire global state (multi-master replication), with the only common exceptions being user idle times and local (&-prefixed) channels. This does create scalability limitations inherent of all multi-master replication systems, but it's easiest in terms of coding to do it using multi-master replication. An event or property is said to be global if it affects the entire network, or local if it only pertains to a single server. For example, some xlines are global, while some are only local.
For an explanation of why, in terms of graph theory, networks are spanning trees with one unique path between any given pair of servers, see this for why it is impractical to do otherwise. The number of pairs of servers that can be formed from a set of n servers scales with O(n2) (wikipedia:Big O notation), which is impractical in many respects. Graph traversal is also far less trivial than tree traversal and can introduce many logistical problems as a result.
Social aspects[edit | edit source]
An IRC network is generally controlled by its IRC operators, who are usually founders of the network or appointed by founders of the network. Small networks tend to specialize towards one particular community, while large networks tend to cover many communities. Different networks have different policies, but generally will prohibit activities that are usually disruptive to online communities in general, such as personal attacks and spamming.