kids encyclopedia robot

IRCd facts for kids

Kids Encyclopedia Facts

An IRCd is special computer software that acts like a server for IRC. Think of it as the main "brain" that allows people to chat with each other in real-time over the Internet. It helps send text messages back and forth between everyone connected.

This software is different from an IRC bot, which is a program that connects to an IRC chat room like a regular user. An IRCd is the server itself.

The server listens for connections from IRC clients (the chat programs people use) on specific internet "ports." If the server is part of a bigger IRC network, it also connects to other IRCd servers to share chat information across the whole network.

The word "ircd" first referred to one specific program. But now, it's a general term for any software that does this job. The original program is still called "ircd" too!

How IRCd Started

The very first IRCd software was created by Jarkko Oikarinen in 1988. He got help from others, like Markku Savela, to make it better.

In the beginning, IRC was quite simple. Chat rooms didn't have names; they just had numbers, like "channel 4" or "channel 57." The "topic" of the channel would tell you what people were talking about. A funny leftover from this time is that if you type "CHANNEL 0," your chat program will leave all the channels you are in. This was the original command to leave a channel.

A big change happened in version 2.5 when named channels were added. These were first called "+channels" and later changed to "#channels" in version 2.7. At this point, the old numbered channels were removed. Also, new features like banning users from channels (called "mode +b") were added.

Around version 2.7, there was a disagreement that led to a new version of ircd called "ircu." This version became the basis for the Undernet IRC network.

Version 2.8 added more types of channels, like "&channels" (which only exist on one server) and "!channels" (which were safer from certain problems). Most modern IRCd programs are based on this 2.8 version.

Around the time of version 2.8, a system called "nick and channel delay" was introduced. This was meant to stop bad things like people taking over nicknames or channels. However, many big IRC networks didn't agree with this system. Instead, they started using something called TS (or "time stamping"). This system gives each nickname or channel a unique time stamp to decide which one is the "correct" one if there's a conflict on the network.

Time stamping has been improved many times. The latest versions of these rules are:

  • The TS6 protocol, used by networks like EFnet.
  • The P10 protocol, used by Undernet and ircu-based servers.

Even though the ways chat programs connect to servers are similar, the ways servers connect to each other are very different. This makes it hard to link different types of IRC servers together.

Important versions based on 2.8 include:

  • 2.8.21+CS, developed by Chris Behrens.
  • Hybrid IRCd, which started as 2.8/hybrid and was developed by Jon Lusky and Diane Bruce.
  • Newer versions like 2.9, 2.10, and 2.11, which continued the original software's development.

The original software continued to be developed mainly for the IRCnet network. New server-to-server rules were added in version 2.10 (released in 1998) and 2.11 (first released in 2004). This software is used by IRCnet and is free software, meaning anyone can use and change it.

2.8.21+CS and Hybrid IRCd are still used on EFnet. A version called ircd-ratbox (which came from ircd-hybrid) is very popular there.

Other IRCd Versions

IRCd software implementations3
This diagram shows how different IRCd programs are related to each other.

More recently, some IRCd programs were built completely from scratch. Examples include InspIRCd and ConferenceRoom.

These new programs have had mixed success. Each new IRCd might use slightly different rules for how IRC works. This can make it tricky for chat programs and bots, as they might need to change how they work depending on which server they connect to. These new versions often try to make IRC easier to use, more secure, or better at working with other IRC features. One common difference is whether they include a "half-op" status for channel operators, which isn't required by the official IRC rules.

IRCd Features

Ports

IRC servers usually listen for connections on specific numbers called "ports." The official ports are 194, 529, and 994. However, these are "privileged" ports, meaning the server software would need special permissions to use them. For security reasons, this is often avoided.

So, IRCd programs commonly use ports 6665 to 6669, with 6667 being the most common. These ports don't need special permissions and are widely used.

Connections

A large IRC server can have thousands of people chatting at the same time. This means the server needs to keep many connections open for long periods. Most IRCd programs are not "multithreaded," meaning they handle all these connections in one main process.

Because of this, the best computers for IRCds are those that can handle many connections efficiently in a single process. Modern operating systems like Linux, FreeBSD, OpenBSD, Solaris, and Windows have special features that help with this. For example, developers of the IRCU software saw their server capacity increase from 10,000 to 20,000 users thanks to these improvements.

Secure Connections (TLS)

Some IRCd programs support Transport Layer Security (TLS), which makes your connection secure and private. If an IRCd doesn't support TLS directly, you can still use a tool like Stunnel to make your connection secure. The most common port for secure IRCd connections is 6697. More recently, a new standard called STARTTLS allows both secure and regular connections to use the same port.

Internet Addresses (IPv4 and IPv6)

IRCd programs support IPv4, which is the common way internet addresses are formatted. Some also support IPv6, which is a newer, longer address format. For most users, there isn't much difference in how IRC works whether they use IPv4 or IPv6.

Connecting Servers (Clustering)

Big IRC networks have many servers working together. This is called "horizontal scaling." There are special rules and extensions to the IRC protocol that help these servers communicate and share information.

P10

The P10 protocol is a set of rules for how IRC servers talk to each other. It was developed by the Undernet network for their ircu server software. It helps manage nicknames and channels, especially when parts of the network temporarily disconnect and reconnect (called "netsplits").

TS6

The TS6 protocol is another set of rules for server-to-server communication. It was first developed for ircd-ratbox. A cool thing about TS6 is that different IRC software programs that use it can often connect to each other, even if they have slightly different features.

IRCd Settings and Bans

Jupe

"Juping" a server, a channel, or a nickname means blocking it on the server or the entire network. This prevents people from using that specific channel, nickname, or even connecting to a certain server.

One story says the term came from an IRC operator named Jupiter who took control of the nickname "NickServ" on EFnet. EFnet didn't have services like NickServ, and Jupiter (and other operators) believed nicknames shouldn't be "owned." Today, EFnet operators "jupe" nicknames that are used as services on other networks.

When you "jupe" something, you're essentially claiming it as unique, so no one else can use it. Sometimes, official "jupes" are used to stop a server that has been hacked from causing problems on the network.

Today, IRC operators use "jupe" settings to make channels or nicknames unavailable. A "channel jupe" means a channel is banned on a specific server. So, you can't join it from that server, but you might be able to join it from another server on the network. This is a way to block access to channels that cause problems.

O-line

An O-line (short for "Operator Line") is a special line of code in an IRC server's settings file. It decides which users can become an IRC operator (someone who helps manage the IRC network) and what permissions they get. The name comes from the letter "O" that used to start these lines in the original IRCd software.

The O-line specifies things like the username, password, and what special powers the operator will have. A server can have many O-lines for different operators.

Operator powers vary depending on the IRCd software. Some operators might manage how the network connects, while others might deal with user abuse. More modern IRCd programs usually have more types of operator powers.

An O-line can also be set so that only users from a specific internet address (called a "hostmask" or "IP address") can become an operator using that line. This adds extra security.

K-line

When a user is k-lined (short for "kill line"), they are banned from a specific server. This ban can be for a certain amount of time or forever. Once banned, they cannot connect to that server. This ban is recorded in the server's settings file with a line starting with the letter "K."

Some IRCd programs can share K-lines with other servers on the network. In these cases, a K-line acts like a global ban, similar to a G-line.

Reasons for a K-line can vary, but usually involve:

  • Bad User Behavior: This includes things like trying to take over nicknames, flooding channels with too many messages, bothering other users with private messages, or sending spam.
  • Problematic Chat Programs: Some IRCd programs can check for viruses or security weaknesses in the chat programs users are connecting with. They might block outdated or insecure programs to protect other users. They might also block users who are connecting through open "proxy servers" or running insecure web servers.
  • Location: If an IRC network has servers in different places, it might try to connect users to the closest server. It might disconnect or ban users who are connecting from very far away to encourage them to use a closer server.

There are other types of "lines" similar to K-lines. Modern IRCd programs often let operators set these bans without directly editing the server's settings file.

G-line

A G-line or global kill line is a ban that applies to a user across the entire IRC network, not just one server. This term comes from the Undernet network.

G-lines are sometimes stored in the IRCd's settings file. When a G-lined person tries to connect to the network, the server or special IRC services will automatically disconnect them. They usually see a message explaining why they were banned.

G-lines are like K-lines, but they affect the whole network. K-lines only ban users from one server. G-lines are usually used for users who keep causing problems even after being K-lined on one server. They are seen as a serious measure, often used only for repeated abuse. Because of this, usually only high-ranking global IRC operators can set G-lines, while K-lines are handled by operators on individual servers.

G-lines often ban users based on their internet address (like *@IPaddress or *@host). Using the IP address is usually better because it's faster. If the *@host option is used, the server has to look up the user's hostname, which can cause delays or even allow banned users to connect if the lookup fails.

Z-line

A Z-line or zap line is similar to a K-line but bans a range of IP addresses. It's used in very serious cases. A Z-line is more efficient than a K-line or G-line because it doesn't need to check usernames or hostnames. It can ban a user's connection almost immediately.

In some IRCd programs, this is called a D-line (deny line) or an X-line.

Z-lines are sometimes stored in the IRCd's settings file. When a Z-lined person tries to connect, the server automatically disconnects them, often with a message explaining the ban.

Z-lines are a type of K-line. Most Z-lines are given to people who cause problems for the entire network.

Z-lines work a bit differently from K-lines. They are usually set as *@IP or *@host. The *@IP option is better because it's faster and doesn't wait for a username response or a hostname lookup. Some IRCd programs only allow *@IP for Z-lines, letting you use special characters like `*` or `/8` to block entire groups of IP addresses. Another difference is that if an IP is banned with a Z-line, nothing, not even other servers, can connect from that IP address.

One advantage of Z-lines for server administrators is that they use less internet data than K-lines because they don't wait for extra information.

A disadvantage of Z-lines is that it can be harder to ban entire internet service providers (ISPs) or users with constantly changing IP addresses. For example, to ban an entire ISP, you might need to list many IP ranges with Z-lines, whereas a G-line could use a simpler hostname pattern.

Z-lines can also be global, meaning they apply to every server on the network. These are called GZ-lines. Some IRCd programs can also share Z-lines with other servers.

Q-line

On some IRCd programs, like UnrealIRCd, a Q-line stops a specific nickname or any nickname matching a certain pattern from being used. This is often used to protect important nicknames like "X" or NickServ (which are used by IRC services) or to prevent non-operators from using operator nicknames. Some IRCd programs might disconnect users when a Q-line is first applied, while others might force a nickname change or wait until the user reconnects. Other IRCd programs, like ircd-hybrid, use a "RESV" (reserve) command instead, which can also forbid a channel from being used.

More to Explore

  • Internet Relay Chat services

See also

Kids robot.svg In Spanish: IRCd para niños

kids search engine
IRCd Facts for Kids. Kiddle Encyclopedia.