Internet Relay Chat (IRC)

Last Edited

by

in

,

Internet Relay Chat (IRC) is a real-time text-based communication protocol. In this comprehensive guide, we’ll dig deep into the nuts and bolts of IRC. We’ll explain the basic concepts, how it works technically, why it matters today, and much more. So whether you’re a tech enthusiast, an aspiring network administrator, or someone curious about the roots of real-time online communication, this article is for you.

In this article:

  1. What is Internet Relay Chat (IRC)?
  2. Why IRC Matters Today
  3. Basic Concepts in Internet Relay Chat
  4. How IRC Works: A Technical Overview
  5. Getting Started with IRC
  6. Common IRC Commands
  7. IRC vs. Modern Chat Platforms
  8. mIRC – The most popular Internet Relay Chat Software
  9. Web References

1. What is Internet Relay Chat (IRC)?

Internet Relay Chat (IRC) is a protocol for live text-based Internet chat. It functions on a client-server model where individual users (clients) connect to a chat network via an IRC server. Initially, IRC was one of the first protocols to offer a decentralized architecture, with different servers interconnected to form a network. Internet Relay Chat (IRC) is defined in Request for Comments (RFC) 1459.

Internet Relay Chat (IRC)

How It Started

IRC was invented by Jarkko Oikarinen in August 1988 in Finland as a replacement for the then-existing program “MUT” (MultiUser Talk). The initial purpose was to extend the capabilities of MUT to allow messages to be sent to more than one user simultaneously in discussion forums called channels.

Historical Importance

Back in the early days of the internet, IRC became the standard for real-time digital communication. It was especially vital during events like the Gulf War in 1991, where updates were disseminated in real time, serving as a precursor to the 24-hour news cycle online. Moreover, IRC played a pivotal role in establishing the foundation for subsequent real-time communication tools and social media. It introduced the idea of a “chat room,” where users from around the world could join channels based on interests, something replicated in various forms on platforms today.

In summary, understanding IRC is not just an exercise in tech nostalgia. It’s about recognizing a pivotal chapter in the history of online communication, one that informs and contextualizes the digital conversations we engage in today. So, let’s dive in and explore this fascinating subject further.

2. Why IRC Matters Today

Ongoing Utility

You might wonder why we’re talking about a protocol that originated in the late ’80s. The answer is simple: IRC still matters. Even with the advent of more sophisticated chat applications, IRC continues to be a robust, reliable, and scalable solution for real-time, text-based communication.

Open Source Advantage

One of the key advantages is its open-source nature. Anyone can create an IRC server, customize it, and operate it independently. This decentralized approach contrasts sharply with modern chat platforms that are often closed systems, controlled by a single corporation.

Niche Communities

Additionally, IRC still thrives as the backbone for many niche online communities. Specialized tech forums, coding communities, and even social groups prefer the simplicity and directness that IRC provides.

Educational Value

Lastly, from an educational standpoint, IRC serves as an excellent case study for students of computer networking and protocol design. Its simplicity makes it a fertile ground for learning about basic networking concepts.

In short, IRC maintains its relevance through its utility, openness, and educational value. It’s not just a piece of internet history; it’s a living, breathing entity in the digital world.

3. Basic Concepts in Internet Relay Chat

Channels

First and foremost, let’s talk about channels. These are the chat rooms where discussions take place. Usually identified with a ‘#’ symbol, channels are where the bulk of social interaction on IRC occurs.

Servers

Next, we have the IRC servers. These are the machines that host the channels and manage the chats. Each server can host multiple channels and is typically part of a larger network of interconnected servers.

Clients

Now, let’s move to the client-side of things. IRC clients are software programs that you install on your computer to connect to an IRC server. Popular clients include mIRC, HexChat, and Irssi.

Nicknames

In IRC, you’re identified by a unique nickname, often abbreviated as “nick.” This is how you’ll be known in the channels and direct messages.

Operators

Lastly, let’s touch upon operators, or “ops.” These are individuals with administrative privileges in channels or servers. They can kick out disruptive users, modify channel settings, and manage discussions.

To sum it up, the anatomy of IRC consists of servers that host channels, clients that connect you to those servers, and a range of roles and rules governing the interaction. Understanding these basic components gives you the foundation you need to navigate the vast and varied world of IRC.

4. How IRC works: A Technical Overview

Protocol Basics

Let’s kick things off with the protocol basics. IRC operates over TCP/IP, typically using port 6667 for plain-text communication and ports 6697 or 9999 for SSL-encrypted sessions. So, when we talk about IRC, we’re referring to a set of rules dictating how messages should be formatted and transmitted between clients and servers.

Connection Process

Firstly, upon connecting to an IRC server, the client undergoes a “handshake” process. The server challenges the client to provide a unique nickname (nick), a username, and sometimes even a password. Once authenticated, the client can join channels or create new ones.

Message Structure

Let’s delve into the message structure. An IRC message comprises a prefix, command, and parameters. The prefix is optional and usually includes the source nickname and server. Commands are upper-case strings or numerical codes that signify the type of action, like “JOIN” for entering a channel. Parameters furnish extra information, like the channel name.

The Ping-Pong Mechanism

Keep an eye out for the “PING/PONG” messages; these aren’t for leisure. They serve a functional role, checking the latency and the active status between the client and server. If a client fails to respond to a “PING” message within a stipulated time, the server assumes the client is inactive and terminates the connection.

Data Packets

Transitional packets of data are usually text lines capped at 512 characters, including line breaks. These lines employ the CR-LF (Carriage Return – Line Feed) pair to indicate the end of a message.

Modes and Flags

Switch gears to modes and flags. A mode modifies the behavior of a channel or user. For example, setting a channel to “invite-only” mode restricts entry. User flags, on the other hand, grant special permissions. An operator, denoted by an “@” symbol next to their nickname, can control various channel settings.

DCC: Direct Client-to-Client

Lastly, let’s tackle Direct Client-to-Client (DCC), a feature that enables file transfers and one-on-one chats. DCC works by establishing a direct connection between two clients, bypassing the server. This is useful for transmitting large files or maintaining privacy.

Message Types

To round off, let’s mention three core message types:

  1. Private Messages (PRIVMSG): Direct communication between users.
  2. Notice Messages (NOTICE): Similar to private messages but generally automated and not solicited.
  3. Action Messages: These are typically used to display user actions in the third person, and they’re part of the PRIVMSG command but distinguished by a unique format.

In conclusion, understanding the intricate details of IRC’s technical operation isn’t just for protocol enthusiasts; it’s crucial for anyone aiming to master real-time, text-based communication over the internet. Whether you’re setting up your server, creating your client, or diving into the architecture of chat systems, the technical nitty-gritty of IRC provides an invaluable resource.

5. Getting Started with IRC

Setting Up Your Environment

First off, let’s tackle the preliminary steps. Before you can roam the IRC channels, you’ll need an IRC client. Some popular options include HexChat, mIRC, and Irssi for desktop users. Mobile aficionados can opt for clients like IRCCloud or AndroIRC.

Installation Steps

For the sake of this tutorial, let’s assume you’ve chosen HexChat. Here’s how you get it up and running:

  1. Download and Install: Navigate to the HexChat website and download the installer suited for your OS.
  2. Run the Installer: Double-click the downloaded file and follow the installation prompts.

Configuration

Post-installation, fire up HexChat. You’ll be greeted with a Network List dialog.

  1. Nickname: Choose a unique nickname, which will serve as your identity.
  2. User Name and Real Name: These are optional and serve for informational purposes.
  3. Networks: Select the IRC network you wish to join, like Freenode, and hit “Connect.”

And just like that, you’re connected to an IRC network! But hold on, we’re just getting started.

Joining a Channel

Once connected, it’s time to join a channel. You usually do this by typing /join #ChannelName in the input box and hitting Enter. If the channel doesn’t exist, this command will create it, and you become the channel operator by default.

Creating Your Channel

Feeling ambitious? Create your channel using the same /join command but with a channel name that doesn’t exist. Use /mode #YourChannel +o YourNick to secure operator status.

Basic IRC Commands

Now, let’s segue into some useful IRC commands to help you navigate this digital landscape:

  • /nick [NewNick]: Changes your nickname.
  • /list: Lists all available channels.
  • /whois [Nick]: Retrieves information about a user.
  • /quit [Message]: Exits IRC, optionally leaving a quit message.
  • /away [Message]: Marks you as away.
  • /me [Action]: Displays an action message.
  • /msg [Nick] [Message]: Sends a private message.
  • /kick [Nick] [Reason]: Kicks a user from the channel (operator only).
  • /ban [Nick]: Bans a user from the channel (operator only).
  • /topic [NewTopic]: Changes the channel’s topic (operator only).

Remember, the command syntax may vary slightly depending on your client, but these are the fundamental commands that work across the board.

Staying Safe

A final, but crucial, note on safety. Be cautious when clicking on links and never accept files from untrustworthy sources. Security should always be your top priority.

In essence, IRC offers a powerful, customizable, and versatile method of online communication. Whether you’re here for casual chatting, technical discussions, or educational purposes, knowing the ins and outs—right down to the common commands—provides you with the tools to make the most of your IRC experience.

6. Common Internet Relay Chat commands

Every IRC client has an input area where you can type what you want to say or issue IRC commands. You issue IRC commands by typing on a new line something beginning with a / (forward slash) character. Anything that does not begin with a / is assumed to be a message you are typing to someone or some channel. In the following I will describe the more common commands used in everyday IRC life. Commands you are supposed to type will be shown in **red**, while text which you will see in response will be shown in **blue**.

In addition, the graphical clients such as mIRC or Ircle allow you to use a mouse to point and click your way around IRC, so that you don’t have to type many of these commands manually. You should still learn the commands properly because often they are the only way to specify precisely what you want done, and also they are often faster and easier than navigating through the labyrinth of buttons, menus, and dialogs that are supposed to make your life easier.

/HELP [optional command name]

The first and most useful command is the on-line help built into all good IRC clients just by typing /help where you normally type to chat. This should bring up a list of all commands. You can also get specific help for a command, such as /help who for the /who command.

You can get a quick introduction to IRC built into your client. mIRC users type /ircintro while ircII users type /help intro or /help newuser.

If you are not sure about the spelling of a mIRC command, just type in the first few letters. The help window, which shows commands arranged alphabetically, will open to approximately the right place so that you can choose to learn about a specific command.

If you are not sure about the spelling of an ircII command, type the first few letters and press the ESCape key twice. ircII will give you a listing of COMMANDS and ALIASes that start with that prefix. Don’t forget the “/irchelp/” in front of the command, though.

For example, you type the following:

/W <ESC><ESC>

You get as a response the following (this is just an example. Your screen may show more or less aliases or commands):

*** Commands:
***     WAIT           WALLOPS        WHILE          WHO
***     WHOIS          WHOWAS
*** Aliases:
***     W              WA             WH             WI

/SERVER new-server-hostname

Each server is known by a “hostname” such as irc.ais.net, us.undernet.org, irc.dal.net, or irc.webbernet.net, which are sample servers for the networks EFnet, Undernet, DALnet, and IRCnet, respectfully. Just specify the hostname to connect or switch to that server. For example:

/SERVER irc.psinet.com

You then see the following messages indicating your client has successfully connected to that server.

*** Looking up your hostname...
*** Found your hostname, cached
*** Checking Ident
*** Got Ident response
*** Welcome to EFNet IRC - the Internet Relay Chat Network foo
*** Your host is irc.psinet.com, running version 2.8/hybrid-5.3
[remaining server messages truncated]

/NICK new-nickname

Change the nickname by which you are known. Nicknames are usually limited to 9 characters. For example, if your default nick was “foo” and you want to change it to “YourNick”:

/NICK YourNick
*** foo is now known as YourNick

/LIST

Lists IRC channels, number of users, and topic for each. This is how you find places to go meet people and chat.

/LIST
*** Channel    Users  Topic
*** #test      1      this is a test channel
*** #IRChelp   18     Ask questions on the channel or see www.irchelp.org
[remainder of list not shown]

If you’re on a big network, this list may be very long, up to many thousands of channels! It may even cause you to flood yourself off so that you get disconnected from the server. If that happens, try using different servers on that network, or instead use the searchable EFnet channel list web page which is updated hourly or the less frequently updated but more comprehensive Liszt channel list.

You can also search for specific keywords by using /LIST keyword in mIRC, or /LIST *keyword* in ircII. Note this may or may not be any faster or safer than a full list depending on the network. On networks like EFnet and IRCnet, for example, your client gets the full list first and then does the filtering internally before displaying matches to you. On Undernet, the server filters the list and sends only the matches to you, which can be much faster if you’re on a slow modem.

/NAMES #channel-name

Shows the nicknames of all users on that channel. While theoretically this is supposed to work whether or not you are on that channel, in practice most people these days are set to be “invisible” and thus do not show up on such queries unless you are in the same channel already.

/NAMES #demo
Pub: #demo   @YourNick +buddy DeepMpact @FunGuy PrettyGrl

The “@” symbols show that YourNick and FunGuy are “channel ops”, and that buddy has been given a “voice”. These terms will be described in more detail in the channel modes section later.

/WHOIS nickname

Shows information about the nick specified.

/WHOIS buddy
*** buddy is abcd@dialup-6.provider.com (Think different.)
*** on channels: @#demo #test123
*** on irc via server irc.psinet.com (PSI Net EFNet IRC Server)

The “abcd@dialup-6.provider.com” looks like an email address but actually abcd is buddy’s identifying “username” on dialup-6.provider.com, which is the “hostname” of the computer buddy is using for IRC. One cannot arbitrarily change the hostname, because it is the computer’s address on the Internet, and it is required in order for the IRC server to communicate with one’s computer properly. Next, in the parentheses, buddy shows a personal message instead of the real name which is supposed to go there.

The second line shows he is on the “public” channels #demo and #test123, and the @ symbol means he is an operator on #demo. It doesn’t show other, “secret” channels he might be on. Finally, the third line shows which Internet Relay Chat server he is using.

/AWAY away-message-here

Leave a message explaining that you are not currently paying attention to IRC.

/AWAY getting coffee, be back in 5 mins
You have been marked as being away

If your friend does /whois YourNick now, they will get the 3 lines as described in the /whois section above, plus a final line saying:

*** YourNick is away: getting coffee, be back in 5 mins

/AWAY without any additional argument will remove the away message.

/AWAY
You are no longer marked as being away (or something to that effect)

/QUIT [optional farewell message]

Exits IRC (also leaves any channels you may be on).

/QUIT hasta la vista, baby!
*** Signoff: YourNick (hasta la vista, baby!)

Channel Operators

Channel operators or “ops” have absolute power over their channel, including the right to decide who gets to come in, who must leave, who may talk, etc. When you first start out, it’s best to chat on other people’s channels and heed their rules, or else you may find yourself kicked out. If that happens and you cannot settle your differences with the ops, just go to another channel.

At some point, you will probably want to try your hand at being a channel op, either by creating your own new channel or by gaining the trust of the ops on an existing channel. You need to know a whole different set of commands. With this power comes the sometimes frustrating responsibility of maintaining the channel against intentional abuse as well as the usual Internet Relay Chat mishaps.

Some networks such as Undernet and DALnet support channel registration, whereby you can “reserve” a channel. The advantage is that you are assured control over the channel as long as you show up once in a while, the disadvantage is that many popular channel names are probably already registered by others.

Two of the largest nets EFnet and IRCnet do not support channel registration (or any other services). On these nets, there is no way to ensure you will always control a channel. Some channels try hard with all sorts of bots (which are explicitly banned by most servers) and protective scripts, but it’s really just a matter of time before somebody with the right combination of lameness and knowledge comes along and takes over the channel.

7. IRC vs. Modern Chat Platforms

As we delve deeper into the world of Internet Relay Chat (IRC), a pertinent question arises: How does IRC stack up against modern chat platforms like Slack and Discord? In this chapter, we’ll dissect the technical nuances and practical implications of IRC in comparison to its contemporary counterparts.

The Age Factor: Maturity vs. Modernity

Firstly, IRC has a venerable history, originating in the late ’80s. This longevity grants it a stable, if somewhat dated, technological base. Modern platforms like Slack and Discord, on the other hand, offer a more polished user experience, with features continually rolling out.

Protocols and APIs: The Underlying Tech

IRC operates on a straightforward, text-based protocol. It’s an open standard, allowing for extensive customization and a variety of clients. Slack and Discord use more complex, proprietary APIs, which facilitate advanced features but may limit third-party customizations.

Real-time Communication: Synchronous vs. Asynchronous

Here, all three platforms offer real-time messaging. However, modern platforms include more interactive elements like reactions, threaded conversations, and @mentions—features that are usually accomplished in IRC through bots or scripts.

Channels and Servers: The Basic Units

In IRC, we talk about “channels” on a “network.” In Slack and Discord, these are “channels” within a “workspace” or “server,” respectively. However, the concept remains fundamentally the same. The key difference lies in the ease of setup and management, which is more user-friendly in modern platforms.

Extensibility: Bots and Integrations

IRC has been using bots for decades to automate tasks and add functionalities. Modern platforms come with a whole ecosystem of apps, integrations, and bots, often available in a marketplace format. Nonetheless, IRC offers more raw programmability, allowing you to build functionalities from scratch.

Security Measures: Old Guard vs. New Kids

IRC offers basic security features like SSL connections and channel keys for private chats. Modern platforms up the ante with end-to-end encryption, two-factor authentication, and enterprise-level security protocols.

Anonymity and Pseudonymity

IRC allows for greater anonymity, requiring only a nickname to join channels. Modern platforms usually require an email address and sometimes even workspace invitations, thus creating a more controlled environment.

Multimedia Support

This is where modern platforms clearly pull ahead. While IRC is text-centric, platforms like Slack and Discord support voice chat, video conferencing, file sharing, and even screen sharing.

Conclusion: Choose Your Weapon

In sum, IRC offers an unadulterated, customizable chat experience steeped in internet tradition. Modern platforms, however, provide a sleek, feature-rich environment more in line with current user expectations. Your choice boils down to what you prioritize: the robust, hacker-friendly nature of IRC or the user-centric, plug-and-play convenience of modern platforms.

8. mIRC – The most popular Internet Relay Chat Software

mIRC is a popular Internet Relay Chat client used by individuals and organizations to communicate, share, play and work with each other on IRC networks around the world.

mIRC - most famous Internet Relay Chat software
The most famous Internet Relay Chat software: mIRC

You can still download and install mIRC. The latest version is mIRC v7.75 for Windows XP/Vista/7/8/10/11. Download mIRC

9. Web References

Search