Table of Contents
This is an old revision of the document!
IRC
IRC is an protocol commonly used on the internet that facilitates a text-based chatroom environment. Typically, port 6697 is used with SSL, but historically IRC was a plaintext protocol using port 6667.
Clients
Design
Networks
IRC is designed to be a federated protocol, meaning that an IRC network can be accessible from various different approved servers. This federated model can protect from network downtime, due to the lack of a single point of failure, as well as promote diplomacy among the network administration.
Channels
Servers are grouped into channels. Channels start with a pound # symbol and can have various different modes set, represented by a string of flags.
Users
A user has four identifying attributes:
nicknameHow you will be seen in chat and user lists. Only ASCII. No spaces.realnameOptional field that supports spaces and unusual characters.ident/usernameFor SASL.password(not shown to other clients)
Additionally, there is the user's IP and host, but those are not client defined. The IP is only seen by the server; but the host is shown to other clients. Usually the host is an rdns lookup of the client IP, a cloaked (hashed) version of the user's IP, or customized by the user after registering to preserve their anonymity.
IRC client commands
Here are some commands broadly implemented by IRC clients.
/join <channel> Subscribes you to a channel.
/part Leaves a channel and incurs a part message defined by your client.
/whois <nick> Queries info about another person in the same channel.
Discussion