IRC in 2016 seems so innocent.
Internet relay chat (IRC) is a fundamentally primitive technology, a precursor to social networks, and, especially, chat services like Slack and Hipchat. Slack, in particular, has been quietly decimating IRC as mass chats and chat-supported collaborations make the jump from the relative anarchy of IRC to what is perhaps a new group-chat standard (and is based on a fancy newish network protocol called WebSockets). A quick poll of open-source projects (the first 10 or so that came to mind) finds that Slack is just about ubiquitous where public chats are in use by contributors.
The heart of an IRC channel is a server. On this server exists a daemon, which is basically a background computer program that waits around for something in particular to happen. Here, the daemon waits for incoming network connections on certain designated ports. For every incoming IRC connection, the IRC server maintains a TCP connection with some client, who can read messages that live on the server and also add messages. There are also commands that can be entered by clients for things like requesting channel invites or finding users by name.
IRC networks expand by adding additional servers, and, with them, clients. Every server in an IRC network shares the same global state. So, a client can post a message to one server, and that server will make sure it's mirrored to the other servers. Freenode, the largest IRC network, employs a couple dozen servers, which then serve some 90,000 to 100,000 averages users across 35,000 to 45,000 channels.
Here's the basic architecture:
IRC is an application layer protocol. This layer is the top of the network technology stack and it's where regular end-users interface with networks. Other protocols at this level include HTTP (where webpage-formatted content is transferred), SMPT (email), FTP (file transfer), SSH (remote command shells), and DNS (domain name resolution). These are all just message formats corresponding to different network-application functions. The format for IRC, which was first formalized by the IEFT in 1993 after several years of increasing popularity, is lightweight: message target ("to:"), IRC channel, IRC server, and then the message itself. IRC is basically text messaging over the internet, but usually featuring multiple recipients.
The maximum size of an IRC message is 512 characters. This has to include not just the message to be displayed to other users, but the meta information as well, including the nick (client nickname) along with any commands and command parameters. The actual message payload, the thing to be communicated to other users (read: content), is prefaced by a command (PRIVMSG) and is transported in the form of a parameter to that command. (Note that many of the IETF specs for IRC are routinely violated by various IRC networks; protocols are really just things that clients and servers agree upon.)
0.0) The first chat
At its 1988 inception, IRC was intended to be an extension of a BBS (bulletin board system) at the University of Finland called OuluBox. Its creator, Jarkko Oikarinen (the "WiZ"), basically wanted a real-time BBS, featuring a real-time Usenet-style discussion board service. The chat feature of Oikarinen's future-BBS was the first thing to be implemented, which is a good thing because he would soon have to nuke the whole real-time BBS idea. It was too unrealistic.
Still, IRC was in place and so BBS users could at least chat in real-time. At first, this was only among universities in Finland, but soon enough servers at the University of Denver and Oregon State University were connected as well. By the end of 1988, IRC had spread across the internet at-large and encompassed 40 servers, according to an IRC history by cURL creator and IETF member Daniel Stenberg.
Over the next several years, IRC would split several times, resulting in not just a single IRC but several, including Anarchy net, EFnet, IRCnet, Dalnet, and others. In 1998, Freenode launched as the Open Projects Net. It was to be the IRC network supporting the open-source movement and it remains as such.
1.0) Pick a client
A chat client is how a user and-or administrator interacts with IRC. There are a whole lot of them. I picked CIRC, which is a Chrome app. LimeChat (Mac) and HexChat (Windows) both come recommended as free standalone clients.
1.1) Pick a nick
Open up your client and set your nickname ("nick") like this: