Welcome to DJ Ls Homepage
Home Blog Chat (IRC) About Me Contact 
Chat (IRC) Oo:.What is IRC? Oo:.Infrastructure

Infrastructure


How messages are transmitted in an IRC-network

To understand the infrastructure of IRC it is necessary that you know what the following terms are means. Hover your mouse over the terms to see the description and click to get a more detailed information about it:

Well, if you like to chat via IRC you need an IRC-client. There exist many of these clients. So you have the choice. I can't advice which is the best, but you should observance some things described at the section Opens internal link in current windowIRC-Clients. If you can't make a decision then you can use, in the case of need, Telnet Smiley... No, it's just a (geeky) joke, but it is really possible if you have understand the IRC-protocol and if you are fast enough to answer for every PING request with a PONG Smiley.

With this client you connect to an IRC-server. All messages which will be send is send to this server. The most IRC-client's are very transparent, so that you will see the most messages in the status-window of it. For example mIRC shows actually the PING - PONG stuff by default. These messages are called commands. You can send them and receive them, they have the following syntax:

Syntax of IRC messages
Who sends? Syntax
User <COMMAND> <PARAM> <PARAM> ... :<PARAM>
Server :<SERVER>|<NICK>!<USER>@<HOST> <COMMAND> <PARAM> <PARAM> ... :<PARAM>

A more detailed IRC-syntax you will find at RFC 1459.

Well, to get to the point: You do not need to know anything about this syntax. This is part of the protocol and it will send by the client. The commands which you will write to the client will be translated into the syntax above. But the commands and number of it's arguments are at most the same. So it is not unnecessary to know which commands at the protocol-level exist. The most client's accept the following syntax from the user:

Message syntax of the most IRC-clients

/<COMMAND> <PARAM> <PARAM> ... <PARAM>

An example which you can write:

An example for an IRC-command translation

Input to the client

/kick #djlnet.lobby user1 I'll kick you from this channel

Send from client to the server

KICK #djlnet.lobby user1 :I'll kick you from this channel

It will kick the user, who has the nick user1, from the channel #djlnet.lobby with the kick-message "I'll kick you from this channel". A list of the primary IRC-commands you will find at the section Opens internal link in current windowIRC-Commands.

What does the server do with this message? It will be send this message to all other IRC-server's on the IRC-network which have at least one user who is joined the channel #djlnet.lobby. The IRC-server's are recording that the user with the nick user1 will doesn't have access to this channel anymore, if channel mode +n is set. Now, every IRC-server which has users connected who are joined #djlnet.lobby will be send the kick-message to these and they will be informed about the kick, inclusive the user who has the nick user1.

As you can see at the example above, the IRC-server's must be exchange messages. And this must be organized to prevent redundant or actually inconsistent information. This is done by building a graph of the IRC-network (as data structure) and searching the shortest path. But it is too much to describe this concept precisely at this point. But you should be have a rough association about IRC-network's and how the messages will be transmitted.


Last change: Sun, 31. January 2010 - 02:30:16 by Dirk Lehmann