Internet Relay Chat (IRC) is a form of real-time Internet text messaging (chat) or synchronous conferencing.[1] It is mainly designed for group communication in discussion forums, called channels,[2]but also allows one-to-one communication via private message[3] as well as chat and data transfer,[4] including file sharing.[5]
IRC was created in 1988. Client software is now available for every major operating system that supports Internet access.[6] As of April 2011, the top 100 IRC networks served more than half a million users at a time,[7] with hundreds of thousands of channels[7] operating on a total of roughly 1,500 servers[7] out of roughly 3,200 servers worldwide.
History
IRC was created by Jarkko Oikarinen in August 1988 to replace a program called MUT (MultiUser Talk) on a BBS called OuluBox in Finland.[9] Oikarinen found inspiration in a chat system known asBitnet Relay, which operated on the BITNET.[9]
IRC was used to report on the 1991 Soviet coup d'état attempt throughout a media blackout.[10] It was previously used in a similar fashion during the Gulf War.[11] Logs of these and other events are kept in the ibiblio archive.[12]
[edit]Technical information
IRC is an open protocol that uses TCP[1] and optionally TLS. An IRC server can connect to other IRC servers to expand the IRC network.[13] Users access IRC networks by connecting a client to a server.[14] There are many client implementations such as mIRC or XChat and server implementations, e.g. the original IRCd. Most IRC servers do not require users to register an account but a user will have to set a nickname before being connected.[15]
IRC was originally a plain text protocol[1] (although later extended), which on request was assigned port 194/TCP by IANA.[16] However, the de facto has always been to run IRC on 6667/TCP[17] and nearby port numbers (for example TCP ports 6660-6669, 7000)[18] to avoid having to run the IRCd software withroot privileges.
The protocol specified that characters were 8-bit but did not specify the character encoding the text was supposed to use.[19] This can cause problems when users using different clients and/or different platforms want to converse.
All client-to-server IRC protocols in use today are descended from the protocol implemented in the irc2.4.0 version of the IRC2 server, and documented in RFC 1459. Since RFC 1459 was published, the new features in the irc2.10 implementation led to the publication of several revised protocol documents (RFC 2810, RFC 2811, RFC 2812 and RFC 2813); however, these protocol changes have not been widely adopted among other implementations.[citation needed]
Although many specifications on the IRC protocol have been published, there is no official specification, as the protocol remains dynamic. Virtually no clients and very few servers rely strictly on the above RFCs as a reference.[citation needed]
Microsoft made an extension for IRC in 1998 via the proprietary IRCX.[20] They later stopped distributing software supporting IRCX, instead developing the proprietary MSN .NET Messenger Service.
New protocol IRCwx (IRC web extension) inspired by IRCX is made by net-bits.net in an attempt to modernize IRCX for web use.[21]
The standard structure of a network of IRC servers is a tree.[22] Messages are routed along only necessary branches of the tree but network state is sent to every server[23] and there is generally a high degree of implicit trust between servers. This architecture has a number of problems. A misbehaving or malicious server can cause major damage to the network[24] and any changes in structure, whether intentional or a result of conditions on the underlying network, require a net-split and net-join. This results in a lot of network traffic and spurious quit/join messages to users[25] and temporary loss of communication to users on the splitting servers. Adding a server to a large network means a large background bandwidth load on the network and a large memory load on the server. Once established however, each message to multiple recipients is delivered in a fashion similar to multicast, meaning each message travels a network link exactly once.[26] This is a strength in comparison to non-multicasting protocols such as Simple Mail Transfer Protocol (SMTP) or Extensible Messaging and Presence Protocol (XMPP).
See also: IRC daemon
[edit]Commands and replies
Main article: List of Internet Relay Chat commands
IRC is based on a line-based structure with the client sending single-line messages to the server,[27] receiving replies to those messages[28] and receiving copies of some messages sent by other clients. In most clients users can enter commands by prefixing them with a '/'. Depending on the command, these may either be handled entirely by the client, or (generally for commands the client does not recognize) passed directly to the server, possibly with some modification.[citation needed]
Due to the nature of the protocol automated systems cannot always correctly pair a sent command with its reply with full reliability and are subject to guessing.[29]
[edit]Channels
The basic means of communicating to a group of users in an established IRC session is through a channel.[30] Channels on a network can be displayed using the IRC command LIST[31] that lists all currently available channels on that particular network.
Users can join to a channel using the JOIN command,[32] in most clients available as /join #channelname. Messages sent to the joined channels are then relayed to all other users.[30]
Channels that are available across an entire IRC network are prepended with a '#', while those local to a server use '&'.[33] Other non-standard and less common channel types include '+' channels—'modeless' channels without operators —[34] and '!' channels, a form of timestamped channel on normally non-timestamped networks.
get from wikipedia.org
get from wikipedia.org
No comments:
Post a Comment