Skip to content

History of IRC

IRC (Internet Relay Chat) was created around 1988 by a guy called Jarkko “WiZ” Oikarinen; He was an electrical engineering student in Oulo, Finland. It was he who created the first IRC client and server.

It was originally intended to be a real time BBS (Bulletin Board System. A BBS was basically a server where people can post messages for others to read.). Initially, he based quite a substantial part of his code upon chat programs made by Jyrki Kuoppala and Jukka Pihl, but began to modify them into more extensible, robust programs. However, in the end he decided that there were too many features in his real-time BBS, so he ditched the BBS part of it, leaving only the real-time chat part intact. He succeeded in the end, and set up a IRC server at tolsun.oulu.fi. . It was quickly adopted by the entire Finnish network, Funet.

However, it became very popular, and by the middle of 1989, there were some 40 servers worldwide.

This was a good thing, because the VAX 8530, a HUGE machine, who went by the name of “Buddy”, wasnÂ’t up to the traffic (and when he was replaced by a Sun IPC called alpha60 running NetBSD, it turned out to be very unstable, crashing at least every 12 or so hours).

In 1990, a new network was set up in order to develop a new version (2.6) of the ircd. The network named ChNet (about 25 servers and no users) existed a few months before disagreements among the programmers caused it to dissolve.

EFnet

In August 1990 the first major disagreement took place in the IRC world. The “A-net” (Anarchy net) included as server named eris.berkeley.edu. It was all open, required no passwords and had no limit on the number of connects.

Undernet

Another fork effort, the first that really made a big and lasting difference, was initiated by ‘Wildthang’ in USA October 1992 (it forked off the EFnet ircd version 2.8.10). It was meant to be just a test network to develop bots on but it quickly grew to a network “for friends and their friends”. In Europe and Canada a separate new network was being worked on (by ‘_dl’ and ‘WIZZARD’) and in December the french servers connected to the canadian ones, and in the end of the month, the .fr-.ca network was connected to the US one and the network that later came to be called “The Undernet” was born. On August 15th, the new user count record was set to 57 users.

How IRC works

Why Client/Server?

What do you do when you want to chat to someone on another computer? It may seem the best thing to simply establish a connection to their computer and simply send data to and from both computers.

As shown above, two connections are required, one to send and one to receive data.

This type of connection is fine for simple sending and receiving of messages. Now, look at the diagram for a 3 way client-client connection below:

As you can see, things are now getting slightly inefficient. Now, every message has to be sent twice, which is not THAT bad, but when the number of clients increases, things get very out of hand, as below:

Now it should be obvious what the problem is. There are 42 connections, and every message is sent 6 times!

It would be much better if everything was just sent to one powerful computer who could handle the traffic, and then if the server was to send out the messages to users.

Here is a diagram like the one above, only for a client server system:

This is much neater by anyone standards, and works better. The number of connections is reduced by 28! And data must only be sent once by any particular client.

Below is a table showing the number of connections required for a given number of clients

No. of Clients

Client-Client

Client-Server

2

2

4

4

12

8

6

30

12

10

90

20

17

192

34

20

380

40

x

x*(x-1)

2x

This is what made IRC so special. It was the first time that Client-Server chat was successfully used on a large scale.

Another advantage of the client-server model is that it protects the clients. If someone decides to flood the server with data, the server may stall, but the clients will not be adversely affected.

How does IRC send-receive data?

IRC does not have very complex instructions. In fact, it can be run with some difficulty from a telnet client providing one knows the commands. ALL commands are sent as ASCII messages, with only errors returning numeric values.

Messages generally take the form:

where crlf is the carriage return-line feed (basically, pressing the return key on your keyboard runs sends this command to the computer).

For example, to login as “erde” to the host tolmoon and to the server tolsun with the real name Stephen Lavelle, I would type:

USER erde tolmoon tolsun :Stephen Lavelle

To then say hi to harry who is on the server foo.bar.net , I would type

PRIVMSG harry@ foo.bar.net:Hey Harry!!

That’s all for now.