- About IRC on Wikipedia, see the Wikipedia page : IRC .
IRC ( Internet Relay Chat ) is an application-level protocol for real-time messaging.
| IRC | |
|---|---|
| Title | Internet Relay Chat |
| Level (by OSI model ) | Applied |
| Family | TCP / IP |
| Created by | 1988 |
| Port / ID | 194 / TCP , 6667 / TCP |
| Protocol assignment | Access to chat servers |
| Specification | RFC 1459 , RFC 2810 , RFC 2811 , RFC 2812 , RFC 2813 |
| Basic implementations (clients) | irssi , KVIrc , mIRC , X-Chat , WeeChat , Miranda IM , x3irc , Pidgin |
| Basic implementations ( servers ) | UnrealIRCd , ircnet-ircd, hybrid-ircd, ircd-seven |
Designed primarily for group communication, it also allows you to communicate through private messages and share data, including files.
IRC uses the TCP transport protocol and cryptographic TLS (optional).
The IRC began to gain special popularity after Operation Desert Storm (1991), when messages from around the world gathered in one place and were broadcast on-line in IRC [1] .
Due to the technical simplicity of implementation, the IRC protocol has recently been used in organizing botnets as a means of transmitting control commands to computers participating in a botnet from the owner.
Content
History and specifications
IRC was developed in 1988 as a replacement for MultiUser Talk.
The main specification is RFC 1459 (1993).
It is complemented by several specifications of the year 2000:
IRC network
According to protocol specifications, an IRC network is a group of servers that are interconnected. The simplest network is a single server.
The network should have the form of a connected tree, in which each server is the central node for the rest of the network.
The client is everything that is connected to the server, except for other servers. There are two types of clients:
- custom;
- service.
IRC network messaging
IRC provides the possibility of both group and private communication.
For group communication there are several possibilities.
The user can send a message to the list of users, while the list is sent to the server, the server extracts individual users from it and sends a copy of the message to each of them.
More effective is the use of channels. In this case, the message is sent directly to the server, and the server sends it to all users in the channel.
Both in group and in private communication, messages are sent to clients along the shortest path and are visible only to the sender, the recipient and the servers entering the shortest path.
In addition, it is possible to send a broadcast message. Client messages regarding network status changes (for example, channel mode or user status) should be sent to all servers on the network. All messages originating from the server must also be sent to all other servers.
User Roles
In relation to the IRC server, users can be IRC operators of the server ( IRCops ), channel ( English chanops ) and regular users [2] .
Client applications for IRC networks
The most popular applications for various operating systems:
Windows:
- mIRC , Miranda IM , Trillian , Pidgin , KVIrc , XChat
Unix and Linux:
- Quassel , Kopete , Irssi , BitchX , XChat , Konversation , KVIrc , Pidgin , ircII , WeeChat
Mac OS X:
- Textual, Snak , Ircle , Adium , Colloquy , KVIrc , LimeChat
AmigaOS:
- AmIRC , AIRcOS , WookieChat , BenderIRC , BitchX , BlackIRC
Android:
- androIRC , IRC for Android , Andchat , DaraIRC , fIRC chat , IRC radio , Yaaic , AiCiA , Droid-Life IRC
MIDP:
- Jmirc
Specificity of the Russian-language IRC
The use of the Russian language in IRC does not rely on any standard.
However, there are a number of customs and agreements that have arisen in the process of evolution of various Russian-speaking IRC communities.
Background
The first Russian-speaking channels appeared back in the 1990s in international networks, such as DALnet and IRCNet. Originally, under the influence of UNIX culture, it was decided to encode the letters of the Russian alphabet in KOI-8 .
Around 1995, an influx of Windows users began, who often had no idea what a code page was and did not know the difference between Cyrillic and Windows-1251 .
This contradiction has caused many conflicts.
A spontaneous agreement in those days placed the question of encodings in the conduct of specific channels.
It was very inconvenient for users, but at that time there was no other way out.
In part, it was this problem that, from about 2000, stimulated the formation of individual Russian-language networks, where coding issues could be solved centrally.
The customs of modern Russian-language networks
Traditionally, in international IRC networks, clients send and receive messages consisting of bytes ; however, the question of the interpretation of non-ASCII bytes is left to the discretion of customers.
All equally developed Russian-language networks, with all their differences, adhere to a different principle: customers send and receive messages consisting of characters .
That is, if a correctly configured client sends the letter “Y” to the channel, then all correctly configured clients connected to the channel will also receive the letter “Y”, regardless of how each of them prefers to encode it.
In practice, this is usually implemented by having several TCP ports on a server, each of which uses a specific encoding. The list of these ports can be placed in the MOTD (server greeting).
Thus, the question of the "correct setting" of the client is preserved, however, it is much easier for the user to choose the connection port than to install the character conversion tables, which, by the way, is not possible in any client.
Sometimes (though not necessarily), the server software allows you to switch the encoding without disconnecting from the server — although for a number of reasons, such a change in the encoding works carelessly.
As a rule, each network uses its own internal encoding (most often it is Windows-1251 and almost never UTF-8; why, see below), while the data transmitted or received by clients with encodings different from the internal one is subjected to transcoding (immediate received at the time of the formation of the incoming message - during transmission).
Nicky
Historically, the use of Cyrillic letters in nicknames was impossible.
However, the largest Russian-language IRC network RusNet allows you to use Cyrillic nicknames and register them.
UTF-8 and Cons
Proponents of internationalization generally consider UTF-8 as a promising encoding for all languages, including Russian. However, it should be noted that one Cyrillic letter in UTF-8 occupies two bytes , which creates some additional load on the network and limits the maximum length of a single message.
According to the standard, an IRC message cannot have a length greater than 510 bytes, of which the text itself has no more than 499 in any way (by an unrealistically overvalued estimate).
Consequently, it is impossible to send more than 249 Russian letters in one message.
Limiting the size of messages causes another problem: when you try to exceed the limit, the server cuts off messages.
If the slice passes in the middle of the Russian letter (that is, the first byte is transmitted, but the second one is dropped), then the resulting byte sequence will cease, in terms of UTF-8, to be the correct string.
A number of clients (for example, Xchat or mIRC ) will display such a message as 8-bit (for example, in Latin-1 or Windows-1251), which will make it completely unreadable and also occupies a lot of screen space.
The only undoubted advantage of using UTF-8 for encoding the Russian language is the ability to freely quote texts in other languages, as well as use exotic characters like “→” and “☺”.
In addition, being a client of the IRC network, in which UTF-8 is universally accepted, it will be possible to communicate in many languages at once, without worrying about the technical representation of letters.
For now, however, multilingual networks are clearly unknown, clearly stipulating the need to use only UTF-8, using UTF-8 as an internal encoding, or otherwise ordering character encoding by clients (except for the IRC server within the I2P network).
See also
- IRC services
- List of IRC clients
- Bouncer
- Web chat
- Instant messenger
Notes
- ↑ Logs on the site ibiblio.org
- ↑ Hossein Bidgoli. The Internet Encyclopedia, A – O. - John Wiley & Sons, 11 May 2004. - Vol. 2. - P. 314–. - ISBN 978-0-471-68996-6 .
Links
- irchelp.org (English) - IRC documentation
- ircnet.su - help and articles about IRC
- rus-net.org - everything about Russian IRC
- Statistical information on various IRC networks (English)
- Statistical information on various IRC networks (English)
- Yuri Merkulov. Guide to IRC clients . iXBT.com (July 18, 2006). The appeal date is April 25, 2008. Archived August 21, 2011. - IRC client guide