Previous Section  < Day Day Up >  Next Section

Hack 5 The IRC Model

figs/beginner.gif figs/hack5.gif

If you are totally new to IRC, you may be wondering where to begin. Understand the conceptual model of Internet Relay Chat for a good start.

Internet Relay Chat was originally implemented so that users of bulletin board systems could chat with one another in real time. It has grown considerably since then, and thousands of networks of servers are now available for public use. The IRC protocol is text based, so programs that connect to IRC servers are easy to write.

2.2.1 Network of Servers

Each IRC network consists of at least one server. If there is more than one server, they are linked together to form a spanning tree. A spanning tree is a structure that allows each server in the network to communicate with all the other servers in the network, even if there is no direct connection between them. Because the servers in an IRC network are connected like this, two users can talk to each other even if they are using different servers on the same IRC network.

2.2.2 Clients

Anything that connects to an IRC server that is not another server is called a client. This includes the set of programs that most people use to chat with each other on IRC. An IRC client can connect directly to one of the servers on the IRC network and allow the user to chat with other users on the network. When a private message is sent to another client, it is sent via the IRC network, so there is no need for a separate connection to be made.

Each client that connects to an IRC network must have a unique nickname. Some servers still enforce a limit of nine characters for this nickname, but most servers these days allow much longer nicknames. Nicknames cannot contain spaces or certain punctuation characters.

2.2.3 Channels

Communication on IRC is not limited to just sending messages between pairs of users. IRC is very strongly oriented toward the concept of channels. A channel is something rather analogous to a room, where a group of clients can stay and chat as a whole. When a message is sent to a channel, all clients in that channel will receive it. The process of entering a channel is called joining , and leaving a channel is known as parting or leaving.

To be strict, parting is the most correct term for leaving a channel. This is because IRC clients send a PART message to the server when they want to leave a channel. However, most IRC clients provide a more natural command alias that lets you leave a channel.


All channel names are unique and typically prefixed with a # character. These channels can be joined by anybody on the entire IRC network. Other prefixes exist, such as &, which is used for channels belonging only to a particular local server. In any case, channel names cannot contain spaces or commas.

For example, to join the channel #irchacks, you would type:

/join #irchacks

When you are in the #irchacks channel, you can leave it by typing /part or /leave.

A channel does not actually exist until the first client joins it. The channel no longer exists after the last client has left. If the channel is configured to allow external messages, a client can send messages to the channel without needing to join it. Most channels disallow this, as it inevitably leads to abuse and confusion.

An individual client can join more than one channel, but for performance reasons, most servers impose a limit. When there is a limit, it is usually set to the recommended value of 10. If within the limit, a client can usually join any channel, but a couple of exceptions are worth noting. A channel can be configured to ban clients that have a nickname or host mask matching a particular pattern, thus preventing such clients from joining the channel. Channels can also be set to be "invite only," which means you must be invited by a user in the channel before you can join it.

2.2.4 Operators

An operator is a client that has special access to the IRC network. Operators can carry out maintenance tasks on the network, such as connecting and disconnecting other servers in the network. In extreme cases, operators may exercise their ability to forcibly remove users from the IRC network. Not only can they disconnect any client, but they can also prevent that client from reconnecting to the network.

2.2.5 Channel Operators

If you are the first client to join a channel, you will probably be made a channel operator for that channel. This allows you to kick other clients out of the channel and to set the topic if it is protected. If the channel is marked as "invite only," you can issue invitations to other clients on the network. A channel operator can also change the mode of the channel. This lets you do a variety of tasks including banning certain users from the channel or making other clients in the channel become channel operators like you. You can tell if a user is a channel operator, as he will have an @ character in front of his nickname. Most users refer to channel operators incorrectly as "operators," or more informally as "ops."

    Previous Section  < Day Day Up >  Next Section