![Tolsun 2](https://upload.wikimedia.org/wikipedia/commons/e/e3/Tolsun_2.jpg)
Internet Relay Chat (IRC) is a text-based chat system for
instant messaging
Instant messaging (IM) technology is a type of online chat allowing real-time text transmission over the Internet or another computer network. Messages are typically transmitted between two or more parties, when each user inputs text and trigge ...
. IRC is designed for
group communication Communication in small groups consists of three or more people who share a common goal and communicate collectively to achieve it. During small group communication, interdependent participants analyze data, evaluate the nature of the problem(s), dec ...
in discussion forums, called ''
channels
Channel, channels, channeling, etc., may refer to:
Geography
* Channel (geography), in physical geography, a landform consisting of the outline (banks) of the path of a narrow body of water.
Australia
* Channel Country, region of outback Austral ...
'', but also allows one-on-one communication via
private messages as well as
chat and data transfer, including
file sharing
File sharing is the practice of distributing or providing access to digital media, such as computer programs, multimedia (audio, images and video), documents or electronic books. Common methods of storage, transmission and dispersion include r ...
.
Internet Relay Chat is implemented as an
application layer
An application layer is an abstraction layer that specifies the shared communications protocols and Interface (computing), interface methods used by Host (network), hosts in a communications network. An ''application layer'' abstraction is speci ...
protocol to facilitate communication in the form of text. The chat process works on a
client–server networking model. Users connect, using a clientwhich may be a
web app
A web application (or web app) is application software that is accessed using a web browser. Web applications are delivered on the World Wide Web to users with an active network connection.
History
In earlier computing models like client-serve ...
, a
standalone desktop program, or embedded into part of a larger programto an IRC server, which may be part of a larger IRC network. Examples of programs used to connect include
Mibbit
Mibbit is a web-based client for web browsers that supports Internet Relay Chat (IRC), Yahoo! Messenger, and Twitter. It is developed by Jimmy Moore and is designed around the Ajax model with a user interface written in JavaScript. It is the IR ...
,
IRCCloud
The following tables compare general and technical information between a number of notable IRC client programs which have been discussed in independent, reliable prior published sources.
General
Basic general information about the notablecl ...
,
KiwiIRC
Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called ''channels'', but also allows one-on-one communication via private messages as well as chat and ...
, and
mIRC
mIRC is an Internet Relay Chat (IRC) client for Windows, created in 1995. It is a fully functional chat utility and its integrated scripting language makes it extensible and versatile.
mIRC has been described as "one of the most popular IRC cl ...
.
IRC usage has been declining steadily since 2003, losing 60 percent of its users.
In April 2011, the top 100 IRC networks served more than half a million users at a time.
History
IRC was created by
Jarkko Oikarinen
Jarkko Oikarinen (born 16 August 1967) is a Finnish IT professional and the inventor of the first Internet chat network, called Internet Relay Chat (IRC), where he is known as WiZ.
Biography and career
Oikarinen was born in Kuusamo. While worki ...
in August 1988 to replace a program called MUT (MultiUser Talk) on a
BBS
BBS may refer to:
Ammunition
* BBs, BB gun metal bullets
* BBs, airsoft gun plastic pellets
Computing and gaming
* Bulletin board system, a computer server users dial into via dial-up or telnet; precursor to the Internet
* BIOS Boot Specificat ...
called OuluBox at the
University of Oulu
The University of Oulu ( fi, Oulun yliopisto) is one of the largest universities in Finland, located in the city of Oulu. It was founded on July 8, 1958. The university has around 13,000 students and 2,900 staff. 21 International Master's P ...
in
Finland
Finland ( fi, Suomi ; sv, Finland ), officially the Republic of Finland (; ), is a Nordic country in Northern Europe. It shares land borders with Sweden to the northwest, Norway to the north, and Russia to the east, with the Gulf of B ...
, where he was working at the Department of Information Processing Science. Jarkko intended to extend the BBS software he administered, to allow news in the
Usenet
Usenet () is a worldwide distributed discussion system available on computers. It was developed from the general-purpose Unix-to-Unix Copy (UUCP) dial-up network architecture. Tom Truscott and Jim Ellis conceived the idea in 1979, and it was ...
style, real time discussions and similar BBS features. The first part he implemented was the chat part, which he did with borrowed parts written by his friends Jyrki Kuoppala and Jukka Pihl. The first IRC network was running on a single server named tolsun.oulu.fi.
Oikarinen found inspiration in a chat system known as
Bitnet Relay, which operated on the
BITNET
BITNET was a co-operative U.S. university computer network founded in 1981 by Ira Fuchs at the City University of New York (CUNY) and Greydon Freeman at Yale University. The first network link was between CUNY and Yale.
The name BITNET original ...
.
Jyrki Kuoppala pushed Oikarinen to ask Oulu University to free the IRC code so that it also could be run outside of Oulu, and after they finally got it released, Jyrki Kuoppala immediately installed another server. This was the first "IRC network". Oikarinen got some friends at the
Helsinki University
The University of Helsinki ( fi, Helsingin yliopisto, sv, Helsingfors universitet, abbreviated UH) is a public university, public Research university, research university located in Helsinki, Finland since 1829, but founded in the city of Turk ...
and
Tampere University
, image_name =
, motto = ''Human Potential Unlimited''
, established = 1925;
, type = Public
, rector = Mari Walls
, academic_staff = 4,200 (2021)
, students = 21,500 (2021)
, ...
to start running IRC servers when his number of users increased and other universities soon followed. At this time Oikarinen realized that the rest of the BBS features probably wouldn't fit in his program.
Oikarinen got in touch with people at the
University of Denver
The University of Denver (DU) is a private university, private research university in Denver, Colorado. Founded in 1864, it is the oldest independent private university in the Mountain States, Rocky Mountain Region of the United States. It is ...
and
Oregon State University
Oregon State University (OSU) is a public land-grant, research university in Corvallis, Oregon. OSU offers more than 200 undergraduate-degree programs along with a variety of graduate and doctoral degrees. It has the 10th largest engineering co ...
. They had their own IRC network running and wanted to connect to the Finnish network. They had obtained the program from one of Oikarinen's friends, Vijay Subramaniam—the first non-Finnish person to use IRC. IRC then grew larger and got used on the entire Finnish national network—
FUNET
FUNET is the Finnish University and Research Network, a backbone network providing Internet connections for Finnish universities and polytechnics as well as other research facilities. It is governed by the state-owned CSC – IT Center for Sc ...
—and then connected to
Nordunet
NORDUnet is an international collaboration between the National research and education networks in the Nordic countries.
Members
The members of NORDUnet are:
* SUNET of Sweden
* UNINETT of Norway
* FUNET of Finland
* Forskningsnettet of De ...
, the Scandinavian branch of the Internet. In November 1988, IRC had spread across the Internet and in the middle of 1989, there were some 40 servers worldwide.
EFnet
In August 1990, the first major disagreement took place in the IRC world. The "A-net" (Anarchy net) included a server named eris.berkeley.edu. It was all open, required no passwords and had no limit on the number of connects. As Greg "wumpus" Lindahl explains: "it had a wildcard server line, so people were hooking up servers and
nick-colliding everyone". The "Eris Free Network",
EFnet
EFnet or Eris-Free network is a major Internet Relay Chat (IRC) network, with more than 35,000 users. It is the modern-day descendant of the original IRC network.
History
Initially, most IRC servers formed a single IRC network, to which new ser ...
, made the eris machine the first to be Q-lined (Q for quarantine) from IRC. In wumpus' words again: "Eris refused to remove that line, so I formed EFnet. It wasn't much of a fight; I got all the hubs to join, and almost everyone else got carried along." A-net was formed with the eris servers, while EFnet was formed with the non-eris servers. History showed most servers and users went with EFnet. Once A-net disbanded, the name EFnet became meaningless, and once again it was the one and only IRC network.
Around that time IRC was used to report on the
1991 Soviet coup d'état attempt
The 1991 Soviet coup d'état attempt, also known as the August Coup,, "August Putsch". was a failed attempt by hardliners of the Soviet Union's Communist Party to forcibly seize control of the country from Mikhail Gorbachev, who was Soviet ...
throughout a
media blackout
Media blackout is the censorship of news related to a certain topic, particularly in mass media, for any reason. A media blackout may be voluntary, or may in some countries be enforced by the government or State (polity), state. The latter case is ...
. It was previously used in a similar fashion during the
Gulf War
The Gulf War was a 1990–1991 armed campaign waged by a 35-country military coalition in response to the Iraqi invasion of Kuwait. Spearheaded by the United States, the coalition's efforts against Iraq were carried out in two key phases: ...
.
Chat log
A chat log is an archive of transcripts from online chat and instant messaging conversations. Many chat or IM applications allow for the client-side archiving of online chat conversations, while a subset of chat or IM clients (i.e., Google Talk and ...
s of these and other events are kept in the
ibiblio
ibiblio (formerly SunSITE.unc.edu and MetaLab.unc.edu) is a "collection of collections", and hosts a diverse range of publicly available information and open source content, including software, music, literature, art, history, science, politic ...
archive.
Undernet fork
Another fork effort, the first that made a lasting difference, was initiated by "Wildthang" in the United States in 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 and in December the French servers connected to the Canadian ones, and by the end of the month, the French and Canadian network was connected to the US one, forming the network that later came to be called "The
Undernet
The Undernet is the third largest publicly monitored Internet Relay Chat (IRC) network, c. 2022, with about 36 client servers serving 47,444 users in ~6000 channels at any given time.
IRC clients can connect to Undernet via the global round rob ...
".
The "undernetters" wanted to take ircd further in an attempt to make it use less bandwidth and to try to sort out the channel chaos (
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
s and
takeovers
In business, a takeover is the purchase of one company (the ''target'') by another (the ''acquirer'' or ''bidder''). In the UK, the term refers to the acquisition of a public company whose shares are listed on a stock exchange, in contrast to t ...
) that EFnet started to suffer from. For the latter purpose, the Undernet implemented timestamps, new routing and offered the CService—a program that allowed users to register channels and then attempted to protect them from troublemakers. The first server list presented, from 15 February 1993, includes servers from the U.S., Canada, France, Croatia and Japan. On 15 August, the new user count record was set to 57 users.
In May 1993, RFC 1459
was published and details a simple protocol for client/server operation, channels, one-to-one and one-to-many conversations.
It is notable that a significant number of extensions like CTCP, colors and formats are not included in the protocol specifications, nor is character encoding,
which led various implementations of servers and clients to diverge. Software implementation varied significantly from one network to the other, each network implementing their own policies and standards in their own code bases.
DALnet fork
During the summer of 1994, the Undernet was itself forked. The new network was called
DALnet (named after its founder: dalvenjah), formed for better user service and more user and channel protections. One of the more significant changes in DALnet was use of longer nicknames (the original ircd limit being 9 letters). DALnet ircd modifications were made by Alexei "Lefler" Kosut. DALnet was thus based on the Undernet ircd server, although the DALnet pioneers were EFnet abandoners. According to James Ng, the initial DALnet people were "ops in #StarTrek sick from the constant splits/lags/takeovers/etc".
DALnet quickly offered global WallOps (IRCop messages that can be seen by users who are +w (/mode NickName +w)), longer nicknames, Q:Lined nicknames (nicknames that cannot be used i.e. ChanServ, IRCop, NickServ, etc.), global K:Lines (ban of one person or an entire domain from a server or the entire network), IRCop only communications: GlobOps, +H mode showing that an IRCop is a "helpop" etc. Much of DALnet's new functions were written in early 1995 by Brian "Morpher" Smith and allow users to own nicknames, control channels, send memos, and more.
IRCnet fork
In July 1996, after months of
flame war
Flaming or roasting is the act of posting insults, often including profanity or other offensive language, on the internet. This term should not be confused with the term trolling, which is the act of someone going online, or in person, and causing ...
s and discussions on the mailing list, there was yet another split due to disagreement in how the development of the ircd should evolve. Most notably, the "European" (most of those servers were in Europe) side that later named itself
IRCnet
IRCnet is currently the third largest IRC network with around 25,000 users using it daily. An early 2005 record had approximately 123,110 users simultaneously connected to the network.
History
Initially, most IRC servers formed a single IRC netw ...
argued for nick and channel delays whereas the EFnet side argued for timestamps.
There were also disagreements about policies: the European side had started to establish a set of rules directing what IRCops could and could not do, a point of view opposed by the US side.
Most (not all) of the IRCnet servers were in Europe, while most of the EFnet servers were in the US. This event is also known as "The Great Split" in many IRC societies. EFnet has since (as of August 1998) grown and passed the number of users it had then. In the (northern) autumn of the year 2000, EFnet had some 50,000 users and IRCnet 70,000.
Modern IRC
IRC has changed much over its life on the Internet. New server software has added a multitude of new features.
*
Services
Service may refer to:
Activities
* Administrative service, a required part of the workload of university faculty
* Civil service, the body of employees of a government
* Community service, volunteer service for the benefit of a community or a pu ...
: Network-operated bots to facilitate registration of nicknames and channels, sending messages for offline users and network operator functions.
* Extra modes: While the original IRC system used a set of standard user and channel modes, new servers add many new modes for features such as removing color codes from text, or obscuring a user's hostmask ("cloaking") to protect from
denial-of-service attack
In computing, a denial-of-service attack (DoS attack) is a cyber-attack in which the perpetrator seeks to make a machine or network resource unavailable to its intended users by temporarily or indefinitely disrupting services of a host connect ...
s.
* Proxy detection: Most modern servers support detection of users attempting to connect through an insecure (misconfigured or exploited)
proxy server
In computer networking, a proxy server is a server application that acts as an intermediary between a client requesting a resource and the server providing that resource.
Instead of connecting directly to a server that can fulfill a request ...
, which can then be denied a connection. This proxy detection software is used by several networks, although that real time list of proxies is defunct since early 2006.
* Additional commands: New commands can be such things as shorthand commands to issue commands to Services, to network-operator-only commands to manipulate a user's hostmask.
*
Encryption
In cryptography, encryption is the process of encoding information. This process converts the original representation of the information, known as plaintext, into an alternative form known as ciphertext. Ideally, only authorized parties can decip ...
: For the client-to-server leg of the connection
TLS might be used (messages cease to be secure once they are relayed to other users on standard connections, but it makes
eavesdropping
Eavesdropping is the act of secretly or stealthily listening to the private conversation or communications of others without their consent in order to gather information.
Etymology
The verb ''eavesdrop'' is a back-formation from the noun ''eaves ...
on or wiretapping an individual's IRC sessions difficult). For client-to-client communication,
SDCC (Secure DCC) can be used.
* Connection protocol: IRC can be connected to via
IPv4
Internet Protocol version 4 (IPv4) is the fourth version of the Internet Protocol (IP). It is one of the core protocols of standards-based internetworking methods in the Internet and other packet-switched networks. IPv4 was the first version de ...
, the old version of the
Internet Protocol
The Internet Protocol (IP) is the network layer communications protocol in the Internet protocol suite for relaying datagrams across network boundaries. Its routing function enables internetworking, and essentially establishes the Internet.
IP h ...
, or by
IPv6
Internet Protocol version 6 (IPv6) is the most recent version of the Internet Protocol (IP), the communication protocol, communications protocol that provides an identification and location system for computers on networks and routes traffic ...
, the current standard of the protocol.
, a new standardization effort is under way under a working group called IRCv3, which focuses on more advanced client features like instant notifications, better history support and improved security.
, no major IRC networks have fully adopted the proposed standard.
there are 481 different IRC networks known to be operating,
of which the open source
Libera Chat
Libera Chat, stylized Libera.Chat, is an IRC network for free and open source software projects. It was founded on 19 May 2021 by former Freenode staff members, after Freenode was taken over by Andrew Lee, founder of Private Internet Access.
...
, founded in May 2021, has the most users, with 20,374 channels on 26 servers; between them, the top 100 IRC networks share over 100 thousand channels operating on about one thousand servers.
After its golden era during the 1990s and early 2000s (240,000 users on QuakeNet in 2004), IRC has seen a significant decline, losing around 60% of users between 2003 and 2012, with users moving to newer
social media
Social media are interactive media technologies that facilitate the creation and sharing of information, ideas, interests, and other forms of expression through virtual communities and networks. While challenges to the definition of ''social medi ...
platforms like
Facebook
Facebook is an online social media and social networking service owned by American company Meta Platforms. Founded in 2004 by Mark Zuckerberg with fellow Harvard College students and roommates Eduardo Saverin, Andrew McCollum, Dustin M ...
or
Twitter
Twitter is an online social media and social networking service owned and operated by American company Twitter, Inc., on which users post and interact with 280-character-long messages known as "tweets". Registered users can post, like, and ...
,
but also to open platforms like
XMPP
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it ...
which was developed in 1999. Certain networks like
Freenode
Freenode, stylized as freenode and formerly known as Open Projects Network, is an IRC network which was previously used to discuss peer-directed projects. Their servers are accessible from the hostname , which load balances connections by usi ...
have not followed the overall trend and have more than quadrupled in size during the same period.
However, Freenode, which in 2016 had around 90,000 users, has since declined to about 9,300 users.
The largest IRC networks have traditionally been grouped as the "Big Four"
—a designation for networks that top the statistics. The Big Four networks change periodically, but due to the community nature of IRC there are a large number of other networks for users to choose from.
Historically the "Big Four" were:
*
EFnet
EFnet or Eris-Free network is a major Internet Relay Chat (IRC) network, with more than 35,000 users. It is the modern-day descendant of the original IRC network.
History
Initially, most IRC servers formed a single IRC network, to which new ser ...
*
IRCnet
IRCnet is currently the third largest IRC network with around 25,000 users using it daily. An early 2005 record had approximately 123,110 users simultaneously connected to the network.
History
Initially, most IRC servers formed a single IRC netw ...
*
Undernet
The Undernet is the third largest publicly monitored Internet Relay Chat (IRC) network, c. 2022, with about 36 client servers serving 47,444 users in ~6000 channels at any given time.
IRC clients can connect to Undernet via the global round rob ...
*
DALnet
IRC reached 6 million simultaneous users in 2001 and 10 million users in 2003, dropping to 371k in 2018.
, the largest IRC networks are:
*
Libera Chat
Libera Chat, stylized Libera.Chat, is an IRC network for free and open source software projects. It was founded on 19 May 2021 by former Freenode staff members, after Freenode was taken over by Andrew Lee, founder of Private Internet Access.
...
– around 48.7k users at peak hours
*
OFTC
The Open and Free Technology Community (OFTC) is an IRC network that provides collaboration services to members of the free software community in any part of the world. OFTC is an associated project of Software in the Public Interest, a non-profit ...
– around 19.4k users at peak hours
*
IRCnet
IRCnet is currently the third largest IRC network with around 25,000 users using it daily. An early 2005 record had approximately 123,110 users simultaneously connected to the network.
History
Initially, most IRC servers formed a single IRC netw ...
– around 17.9k users at peak hours
*
Undernet
The Undernet is the third largest publicly monitored Internet Relay Chat (IRC) network, c. 2022, with about 36 client servers serving 47,444 users in ~6000 channels at any given time.
IRC clients can connect to Undernet via the global round rob ...
– around 13.4k users at peak hours
*
Rizon
Rizon is a large Internet Relay Chat (IRC) network with an average of around 20,000 users. The IRC network itself ranks number 5 among the largest IRC networks.
Rizon is popular with many anime fansubbing groups who work online, many of whom pro ...
– around 10.5k users at peak hours
*
EFnet
EFnet or Eris-Free network is a major Internet Relay Chat (IRC) network, with more than 35,000 users. It is the modern-day descendant of the original IRC network.
History
Initially, most IRC servers formed a single IRC network, to which new ser ...
– around 10.4k users at peak hours
*
Freenode
Freenode, stylized as freenode and formerly known as Open Projects Network, is an IRC network which was previously used to discuss peer-directed projects. Their servers are accessible from the hostname , which load balances connections by usi ...
– around 9.3k users at peak hours
*
QuakeNet
QuakeNet is an Internet Relay Chat (IRC) network, and was one of the largest IRC networks. The network was founded in 1997 by Garfield (Henrik Rasmussen, Denmark) and Oli (Oli Gustafsson, Sweden) as a new home for their respective countries' Quak ...
– around 8.4k users at peak hours
*
DALnet – around 7.9k users at peak hours
The top 100 IRC networks have around 228k users connected at peak hours.
Timeline
Timeline of major servers:
*
EFnet
EFnet or Eris-Free network is a major Internet Relay Chat (IRC) network, with more than 35,000 users. It is the modern-day descendant of the original IRC network.
History
Initially, most IRC servers formed a single IRC network, to which new ser ...
, 1990 to present
*
Undernet
The Undernet is the third largest publicly monitored Internet Relay Chat (IRC) network, c. 2022, with about 36 client servers serving 47,444 users in ~6000 channels at any given time.
IRC clients can connect to Undernet via the global round rob ...
, 1992 to present
*
DALnet, 1994 to present
*
freenode
Freenode, stylized as freenode and formerly known as Open Projects Network, is an IRC network which was previously used to discuss peer-directed projects. Their servers are accessible from the hostname , which load balances connections by usi ...
, 1995 to present
*
IRCnet
IRCnet is currently the third largest IRC network with around 25,000 users using it daily. An early 2005 record had approximately 123,110 users simultaneously connected to the network.
History
Initially, most IRC servers formed a single IRC netw ...
, 1996 to present
*
QuakeNet
QuakeNet is an Internet Relay Chat (IRC) network, and was one of the largest IRC networks. The network was founded in 1997 by Garfield (Henrik Rasmussen, Denmark) and Oli (Oli Gustafsson, Sweden) as a new home for their respective countries' Quak ...
, 1997 to present
*
Open and Free Technology Community
The Open and Free Technology Community (OFTC) is an IRC network that provides collaboration services to members of the free software community in any part of the world. OFTC is an associated project of Software in the Public Interest, a non-profit ...
, 2001 to present
*
Rizon
Rizon is a large Internet Relay Chat (IRC) network with an average of around 20,000 users. The IRC network itself ranks number 5 among the largest IRC networks.
Rizon is popular with many anime fansubbing groups who work online, many of whom pro ...
, 2002 to present
*
Libera Chat
Libera Chat, stylized Libera.Chat, is an IRC network for free and open source software projects. It was founded on 19 May 2021 by former Freenode staff members, after Freenode was taken over by Andrew Lee, founder of Private Internet Access.
...
, 2021 to present
Technical information
![Irssi 1](https://upload.wikimedia.org/wikipedia/commons/a/ae/Irssi_1.2.3_screenshot.png)
IRC is an open
protocol
Protocol may refer to:
Sociology and politics
* Protocol (politics), a formal agreement between nation states
* Protocol (diplomacy), the etiquette of diplomacy and affairs of state
* Etiquette, a code of personal behavior
Science and technology
...
that uses
TCP and, optionally,
TLS. An
IRC server
An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol, enabling people to talk to each other via the Internet (exchanging textual messages in real time). It is distinct from an IRC bot that connects out ...
can connect to other IRC servers to expand the IRC network. Users access IRC networks by connecting a client to a server. There are many client implementations, such as
mIRC
mIRC is an Internet Relay Chat (IRC) client for Windows, created in 1995. It is a fully functional chat utility and its integrated scripting language makes it extensible and versatile.
mIRC has been described as "one of the most popular IRC cl ...
,
HexChat and
irssi
Irssi ( ) is an IRC client program for Linux, FreeBSD, macOS and Microsoft Windows. It was originally written by Timo Sirainen, and released under the terms of the GNU GPL-2.0-or-later in January 1999.
Features
Irssi is written in the C progr ...
, and server implementations, e.g. the original
IRCd
An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol, enabling people to talk to each other via the Internet (exchanging textual messages in real time). It is distinct from an IRC bot that connects outb ...
. Most IRC servers do not require users to register an account but a
nickname
A nickname is a substitute for the proper name of a familiar person, place or thing. Commonly used to express affection, a form of endearment, and sometimes amusement, it can also be used to express defamation of character. As a concept, it is ...
is required before being connected.
IRC was originally a
plain text protocol (although later extended), which on request was assigned port
194/TCP by
IANA
The Internet Assigned Numbers Authority (IANA) is a standards organization that oversees global IP address allocation, autonomous system number allocation, root zone management in the Domain Name System (DNS), media types, and other Interne ...
. However, the
''de facto'' standard has always been to run IRC on 6667/TCP and nearby port numbers (for example TCP ports 6660–6669, 7000) to avoid having to run the
IRCd
An IRCd, short for Internet Relay Chat daemon, is server software that implements the IRC protocol, enabling people to talk to each other via the Internet (exchanging textual messages in real time). It is distinct from an IRC bot that connects outb ...
software with
root privileges
In computing, the superuser is a special user account used for system administration. Depending on the operating system (OS), the actual name of this account might be root, administrator, admin or supervisor. In some cases, the actual name of th ...
.
The protocol specified that characters were 8-bit but did not specify the character encoding the text was supposed to use.
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.
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.
Microsoft made an extension for IRC in 1998 via the proprietary
IRCX
IRCX (Internet Relay Chat eXtensions) is an extension to the Internet Relay Chat protocol, developed by Microsoft.
IRCX defines ways to use Simple Authentication and Security Layer authentication to authenticate securely to the server, channel pro ...
. They later stopped distributing software supporting IRCX, instead developing the proprietary
MSNP.
The standard structure of a network of IRC servers is a
tree
In botany, a tree is a perennial plant with an elongated stem, or trunk, usually supporting branches and leaves. In some usages, the definition of a tree may be narrower, including only woody plants with secondary growth, plants that are ...
. Messages are routed along only necessary branches of the tree but network state is sent to every server and there is generally a high degree of implicit trust between servers. However, this architecture has a number of problems. A misbehaving or malicious server can cause major damage to the network 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 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
In computer networking, multicast is group communication where data transmission is addressed to a group of destination computers simultaneously. Multicast can be one-to-many or many-to-many distribution. Multicast should not be confused with ...
, meaning each message travels a network link exactly once. This is a strength in comparison to non-multicasting protocols such as
Simple Mail Transfer Protocol
The Simple Mail Transfer Protocol (SMTP) is an Internet standard communication protocol for electronic mail transmission. Mail servers and other message transfer agents use SMTP to send and receive mail messages. User-level email clients typica ...
(SMTP) or
Extensible Messaging and Presence Protocol
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an Open standard, open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup ...
(XMPP).
An IRC daemon can also be used on a local area network (LAN). IRC can thus be used to facilitate communication between people within the local area network (internal communication).
Commands and replies
IRC has a line-based structure. Clients send single-line messages to the server, receive replies to those messages and receive 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.
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.
Channels
The basic means of communicating to a group of users in an established IRC session is through a ''
channel
Channel, channels, channeling, etc., may refer to:
Geography
* Channel (geography), in physical geography, a landform consisting of the outline (banks) of the path of a narrow body of water.
Australia
* Channel Country, region of outback Austral ...
''.
Channels on a network can be displayed using the IRC command ''LIST'', which lists all currently available channels that do not have the modes +s or +p set, on that particular network.
Users can ''join'' a channel using the ''JOIN'' command,
in most clients available as ''/join #channelname''. Messages sent to the joined channels are then relayed to all other users.
Channels that are available across an entire IRC network are prefixed with a '#', while those local to a server use '&'. Other less common channel types include '+' channels—'modeless' channels without operators—and '!' channels, a form of
timestamped channel on normally non-timestamped networks.
Modes
Users and channels may have ''modes'' that are represented by individual case-sensitive letters and are set using the ''MODE'' command. User modes and channel modes are separate and can use the same letter to mean different things (e.g. user mode "i" is invisible mode while channel mode "i" is invite only.) Modes are usually set and unset using the mode command that takes a target (user or channel), a set of modes to set (+) or unset (-) and any parameters the modes need.
Some channel modes take parameters and other channel modes apply to a user on a channel or add or remove a mask (e.g. a ban mask) from a list associated with the channel rather than applying to the channel as a whole. Modes that apply to users on a channel have an associated symbol that is used to represent the mode in names replies
(sent to clients on first joining a channel
and use of the names command) and in many clients also used to represent it in the client's displayed list of users in a channel or to display an own indicator for a user's modes.
In order to correctly parse incoming mode messages and track channel state the client must know which mode is of which type and for the modes that apply to a user on a channel which symbol goes with which letter. In early implementations of IRC this had to be hard-coded in the client but there is now a de facto standard extension to the protocol called ISUPPORT that sends this information to the client at connect time using numeric 005.
There is a small design fault in IRC regarding modes that apply to users on channels: the names message used to establish initial channel state can only send one such mode per user on the channel,
but multiple such modes can be set on a single user. For example, if a user holds both operator status (+o) and voice status (+v) on a channel, a new client will be unable to see the mode with less priority (i.e. voice). Workarounds for this are possible on both the client and server side but none are widely implemented.
Standard (RFC 1459) modes
Many daemons and networks have added extra modes or modified the behavior of modes in the above list.
Channel operators
A ''channel operator'' is a
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuable ...
on an
IRC channel
Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called ''channels'', but also allows one-on-one communication via private messages as well as chat and ...
that manages the channel.
IRC channel operators can be easily seen by the a symbol or icon next to their name (varies by client implementation, commonly a "@" symbol prefix, a green circle, or a Latin letter "+o"/"o").
On most networks, an operator can:
* Kick a user.
* Ban a user.
* Give another user IRC Channel Operator Status or IRC Channel Voice Status.
* Change the IRC Channel topic while channel mode +t is set.
* Change the IRC Channel Mode locks.
IRC operators
There are also users who maintain elevated rights on their local server, or the entire network; these are called IRC operators,
sometimes shortened to IRCops or Opers (not to be confused with channel operators). As the implementation of the IRCd varies, so do the privileges of the IRC operator on the given IRCd. RFC 1459
claims that IRC operators are "a necessary evil" to keep a clean state of the network, and as such they need to be able to disconnect and reconnect servers. Additionally, to prevent malicious users or even harmful automated programs from entering IRC, IRC operators are usually allowed to disconnect clients and completely ban IP addresses or complete subnets. Networks that carry services (NickServ et al.) usually allow their IRC operators also to handle basic "ownership" matters. Further privileged rights may include overriding channel bans (being able to join channels they would not be allowed to join, if they were not opered), being able to op themselves on channels where they would not be able without being opered, being auto-opped on channels always and so forth.
Hostmasks
A hostmask is a unique identifier of an IRC
client
Client(s) or The Client may refer to:
* Client (business)
* Client (computing), hardware or software that accesses a remote service on another computer
* Customer or client, a recipient of goods or services in return for monetary or other valuable ...
connected to an IRC
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients
Role
* Waiting staff, those who work at a restaurant or a bar attending customers and su ...
.
IRC
servers,
services
Service may refer to:
Activities
* Administrative service, a required part of the workload of university faculty
* Civil service, the body of employees of a government
* Community service, volunteer service for the benefit of a community or a pu ...
, and other clients, including
bots
The British Overseas Territories (BOTs), also known as the United Kingdom Overseas Territories (UKOTs), are fourteen territories with a constitutional and historical link with the United Kingdom. They are the last remnants of the former Bri ...
, can use it to identify a specific IRC session.
The format of a hostmask is
nick!user@host
. The hostmask looks similar to, but should not be confused with an
e-mail address
An email address identifies an email box to which messages are delivered. While early messaging systems used a variety of formats for addressing, today, email addresses follow a set of specific rules originally standardized by the Internet Engineer ...
.
The nick part is the nickname chosen by the user and may be changed while connected.
The user part is the username reported by
ident on the client.
If ident is not available on the client, the username specified when the client connected is used after being prefixed with a
tilde
The tilde () or , is a grapheme with several uses. The name of the character came into English from Spanish, which in turn came from the Latin '' titulus'', meaning "title" or "superscription". Its primary use is as a diacritic (accent) in ...
.
The host part is the
hostname
In computer networking, a hostname (archaically nodename) is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. Hos ...
the client is connecting from. If the
IP address
An Internet Protocol address (IP address) is a numerical label such as that is connected to a computer network that uses the Internet Protocol for communication.. Updated by . An IP address serves two main functions: network interface ident ...
of the client cannot be resolved to a valid
hostname
In computer networking, a hostname (archaically nodename) is a label that is assigned to a device connected to a computer network and that is used to identify the device in various forms of electronic communication, such as the World Wide Web. Hos ...
by the server, it is used instead of the hostname.
Because of the
privacy
Privacy (, ) is the ability of an individual or group to seclude themselves or information about themselves, and thereby express themselves selectively.
The domain of privacy partially overlaps with security, which can include the concepts of a ...
implications of exposing the IP address or hostname of a client, some
IRC daemons also provide privacy features, such as InspIRCd or UnrealIRCd's "+x" mode. This
hashes a client IP address or masks part of a client's hostname, making it unreadable to users other than
IRCops. Users may also have the option of requesting a "virtual host" (or "vhost"), to be displayed in the hostmask to allow further anonymity. Some IRC networks, such as
Libera Chat
Libera Chat, stylized Libera.Chat, is an IRC network for free and open source software projects. It was founded on 19 May 2021 by former Freenode staff members, after Freenode was taken over by Andrew Lee, founder of Private Internet Access.
...
or
Freenode
Freenode, stylized as freenode and formerly known as Open Projects Network, is an IRC network which was previously used to discuss peer-directed projects. Their servers are accessible from the hostname , which load balances connections by usi ...
, use these as "cloaks" to indicate that a user is affiliated with a group or project.
URI scheme
There are three provisional recognized
uniform resource identifier (URI) schemes for Internet Relay Chat:
irc
,
ircs
, and
irc6
. When supported, they allow
hyperlink
In computing, a hyperlink, or simply a link, is a digital reference to data that the user can follow or be guided by clicking or tapping. A hyperlink points to a whole document or to a specific element within a document. Hypertext is text wit ...
s of various forms, including
irc:// "> [?">channel>[?
ircs:// "> [?">channel>[?
irc6:// "> [?">channel>[?
(where items enclosed within brackets ([,]) are optional) to be used to (if necessary) connect to the specified host (or network, if known to the IRC client) and join the specified channel. (This can be used within the client itself, or from another application such as a Web browser). irc is the default URI, irc6 specifies a connection to be made using IPv6, and ircs specifies a secure connection.
Per the specification, the usual
hash symbol
The symbol is known variously in English-speaking regions as the number sign, hash, or pound sign. The symbol has historically been used for a wide range of purposes including the designation of an ordinal number and as a Typographic ligature, ...
(#) will be prepended to channel names that begin with an
alphanumeric
Alphanumericals or alphanumeric characters are a combination of alphabetical and numerical characters. More specifically, they are the collection of Latin letters and Arabic digits. An alphanumeric code is an identifier made of alphanumeric ch ...
character—allowing it to be omitted. Some implementations (for example, mIRC) will do so ''unconditionally'' resulting in a (usually unintended) extra (for example, ##channel), if included in the URL.
Some implementations allow multiple channels to be specified, separated by commas.
Challenges
Issues in the original design of IRC were the amount of shared state data being a limitation on its scalability, the absence of unique user identifications leading to the nickname collision problem, lack of protection from
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
s by means of cyclic routing, the trade-off in scalability for the sake of real-time user presence information, protocol weaknesses providing a platform for abuse, no transparent and optimizable message passing, and no encryption. Some of these issues have been addressed in ''Modern IRC''.
Attacks
Because IRC connections may be unencrypted and typically span long time periods, they are an attractive target for
DoS/DDoS attackers and
hackers
A hacker is a person skilled in information technology who uses their technical knowledge to achieve a goal or overcome an obstacle, within a computerized system by non-standard means. Though the term ''hacker'' has become associated in popu ...
. Because of this, careful security policy is necessary to ensure that an IRC network is not susceptible to an attack such as a
takeover
In business, a takeover is the purchase of one company (the ''target'') by another (the ''acquirer'' or ''bidder''). In the UK, the term refers to the acquisition of a public company whose shares are listed on a stock exchange, in contrast to t ...
war. IRC networks may also
K-line
K-Line Electric Trains is a brand name of O gauge and S gauge model railway locomotives, rolling stock, and buildings. Formerly the brand name under which Chapel Hill, North Carolina-based MDK Inc. sold its products, K-Line was then acquired by ...
or
G-line users or servers that have a harming effect.
Some IRC servers support
SSL/TLS
Transport Layer Security (TLS) is a cryptographic protocol designed to provide communications security over a computer network. The protocol is widely used in applications such as email, instant messaging, and voice over IP, but its use in securi ...
connections for security purposes. This helps stop the use of
packet sniffer
A packet analyzer, also known as packet sniffer, protocol analyzer, or network analyzer, is a computer program or computer hardware such as a packet capture appliance, that can intercept and log traffic that passes over a computer network or p ...
programs to obtain the passwords of IRC users, but has little use beyond this scope due to the public nature of IRC channels. SSL connections require both client and server support (that may require the user to install SSL binaries and IRC client specific patches or modules on their computers). Some networks also use SSL for server-to-server connections, and provide a special channel flag (such as
+S
) to only allow SSL-connected users on the channel, while disallowing operator identification in clear text, to better utilize the advantages that SSL provides.
IRC served as an early laboratory for many kinds of Internet attacks, such as using fake
ICMP unreachable messages to break
TCP-based IRC connections (
nuking) to annoy users or facilitate
takeovers
In business, a takeover is the purchase of one company (the ''target'') by another (the ''acquirer'' or ''bidder''). In the UK, the term refers to the acquisition of a public company whose shares are listed on a stock exchange, in contrast to t ...
.
Abuse prevention
One of the most contentious technical issues surrounding IRC implementations, which survives to this day, is the merit of "Nick/Channel Delay" vs. "Timestamp" protocols. Both methods exist to solve the problem of denial-of-service attacks, but take very different approaches.
The problem with the original IRC protocol as implemented was that when two servers split and rejoined, the two sides of the network would simply merge their channels. If a user could join on a "split" server, where a channel that existed on the other side of the network was empty, and gain operator status, they would become a channel operator of the "combined" channel after the
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
ended; if a user took a nickname that existed on the other side of the network, the server would kill both users when rejoining (a "nick collision"). This was often abused to "mass-kill" all users on a channel, thus creating "opless" channels where no operators were present to deal with abuse. Apart from causing problems within IRC, this encouraged people to conduct denial-of-service attacks against IRC servers in order to cause
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
s, which they would then abuse.
The nick delay (ND) and channel delay (CD) strategies aim to prevent abuse by delaying reconnections and renames. After a user signs off and the
nickname
A nickname is a substitute for the proper name of a familiar person, place or thing. Commonly used to express affection, a form of endearment, and sometimes amusement, it can also be used to express defamation of character. As a concept, it is ...
becomes available, or a channel ceases to exist because all its users parted (as often happens during a
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
), the server will not allow any user to use that nickname or join that channel, until a certain period of time (the ''delay'') has passed. The idea behind this is that even if a
netsplit
In computer networking, specifically Internet Relay Chat (IRC), netsplit is a disconnection between two servers. A split between any two servers splits the entire network into two pieces.
Cause and effects
Consider the graph to the right, which ...
occurs, it is useless to an abuser because they cannot take the nickname or gain operator status on a channel, and thus no collision of a nickname or "merging" of a channel can occur. To some extent, this inconveniences legitimate users, who might be forced to briefly use a different name after rejoining (appending an
underscore
An underscore, ; also called an underline, low line, or low dash; is a line drawn under a segment of text. In proofreading, underscoring is a convention that says "set this text in italic type", traditionally used on Manuscript (publishing), man ...
is popular).
The timestamp protocol is an alternative to nick/channel delays which resolves collisions using timestamped priority. Every nickname and channel on the network is assigned a timestampthe date and time when it was created. When a netsplit occurs, two users on each side are free to use the same nickname or channel, but when the two sides are joined, only one can survive. In the case of nicknames, the newer user, according to their TS, is killed; when a channel collides, the members (users on the channel) are merged, but the channel operators on the "losing" side of the split lose their channel operator status.
TS is a much more complicated protocol than ND/CD, both in design and implementation, and despite having gone through several revisions, some implementations still have problems with "desyncs" (where two servers on the same network disagree about the current state of the network), and allowing too much leniency in what was allowed by the "losing" side. Under the original TS protocols, for example, there was no protection against users setting bans or other modes in the losing channel that would then be merged when the split rejoined, even though the users who had set those modes lost their channel operator status. Some modern TS-based IRC servers have also incorporated some form of ND and/or CD in addition to timestamping in an attempt to further curb abuse.
Most networks today use the timestamping approach. The timestamp versus ND/CD disagreements caused several servers to split away from
EFnet
EFnet or Eris-Free network is a major Internet Relay Chat (IRC) network, with more than 35,000 users. It is the modern-day descendant of the original IRC network.
History
Initially, most IRC servers formed a single IRC network, to which new ser ...
and form the newer
IRCnet
IRCnet is currently the third largest IRC network with around 25,000 users using it daily. An early 2005 record had approximately 123,110 users simultaneously connected to the network.
History
Initially, most IRC servers formed a single IRC netw ...
. After the split, EFnet moved to a TS protocol, while IRCnet used ND/CD.
In recent versions of the IRCnet ircd, as well as ircds using the TS6 protocol (including Charybdis), ND has been extended/replaced by a mechanism called SAVE. This mechanism assigns every client a
UID upon connecting to an IRC server. This ID starts with a number, which is forbidden in nicks (although some ircds, namely IRCnet and InspIRCd, allow clients to switch to their own UID as the nickname).
If two clients with the same nickname join from different sides of a netsplit ("nick collision"), the first server to see this collision will force ''both'' clients to change their nick to their UID, thus saving both clients from being disconnected. On IRCnet, the nickname will also be locked for some time (ND) to prevent both clients from changing back to the original nickname, thus colliding again.
Clients
Client software
![Ircnetz-Schema](https://upload.wikimedia.org/wikipedia/commons/a/ab/Ircnetz-Schema.svg)
Client software exists for various
operating system
An operating system (OS) is system software that manages computer hardware, software resources, and provides common services for computer programs.
Time-sharing operating systems schedule tasks for efficient use of the system and may also in ...
s or software packages, as well as web-based or inside games. Many different clients are available for the various operating systems, including
Windows
Windows is a group of several proprietary graphical operating system families developed and marketed by Microsoft. Each family caters to a certain sector of the computing industry. For example, Windows NT for consumers, Windows Server for serv ...
,
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
and
Linux
Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, which ...
,
macOS
macOS (; previously OS X and originally Mac OS X) is a Unix operating system developed and marketed by Apple Inc. since 2001. It is the primary operating system for Apple's Mac computers. Within the market of desktop and lapt ...
and mobile operating systems (such as
iOS
iOS (formerly iPhone OS) is a mobile operating system created and developed by Apple Inc. exclusively for its hardware. It is the operating system that powers many of the company's mobile devices, including the iPhone; the term also includes ...
and
Android). On Windows,
mIRC
mIRC is an Internet Relay Chat (IRC) client for Windows, created in 1995. It is a fully functional chat utility and its integrated scripting language makes it extensible and versatile.
mIRC has been described as "one of the most popular IRC cl ...
is one of the most popular clients.
Some programs which are extensible through
plug-ins also serve as platforms for IRC clients. For instance, a client called
ERC, written entirely in
Emacs Lisp
Emacs Lisp is a dialect of the Lisp programming language used as a scripting language by Emacs (a text editor family most commonly associated with GNU Emacs and XEmacs). It is used for implementing most of the editing functionality built into Ema ...
, is included in v.22.3 of Emacs. Therefore, any platform that can run Emacs can run ERC.
A number of
web browser
A web browser is application software for accessing websites. When a user requests a web page from a particular website, the browser retrieves its files from a web server and then displays the page on the user's screen. Browsers are used on ...
s have built-in IRC clients, such as
Opera
Opera is a form of theatre in which music is a fundamental component and dramatic roles are taken by singers. Such a "work" (the literal translation of the Italian word "opera") is typically a collaboration between a composer and a librett ...
(
version 12.18 and earlier) and the
ChatZilla
ChatZilla is an IRC client that is part of SeaMonkey. It was previously an extension for Mozilla-based browsers such as Firefox, introduced in 2000. It is cross-platform open source software which has been noted for its consistent appearance acr ...
add-on for Mozilla
Firefox
Mozilla Firefox, or simply Firefox, is a free and open-source web browser developed by the Mozilla Foundation and its subsidiary, the Mozilla Corporation. It uses the Gecko rendering engine to display web pages, which implements current and ...
(for Firefox 56 and earlier; included as a built-in component of
SeaMonkey
SeaMonkey is a free and open-source Internet suite. It is the continuation of the former Mozilla Application Suite, based on the same source code, which itself grew out of Netscape Communicator and formed the base of Netscape 6 and Netscape 7.
...
). Web-based clients, such as
Mibbit
Mibbit is a web-based client for web browsers that supports Internet Relay Chat (IRC), Yahoo! Messenger, and Twitter. It is developed by Jimmy Moore and is designed around the Ajax model with a user interface written in JavaScript. It is the IR ...
and open source KiwiIRC, can run in most browsers.
Games such as ''
War§ow
''Warsow'', also stylized as ''War§ow'', is an open source first-person shooter video game.
Development
''Warsow'' was first publicly released on June 8, 2005, as an alpha version. The stable version 1.0 was released on July 28, 2012, after ...
'', ''
Unreal Tournament
''Unreal Tournament'' is a first-person arena shooter video game developed by Epic Games and Digital Extremes. The second installment in the ''Unreal'' series, it was first published by GT Interactive in 1999 for Microsoft Windows, and later r ...
'' (up to
Unreal Tournament 2004
''Unreal Tournament 2004'' is a first-person arena shooter video game developed by Epic Games and Digital Extremes. Part of the ''Unreal'' franchise, it is the third game in the ''Unreal Tournament'' series and the sequel to ''Unreal Tournament ...
), ''
Uplink
In a telecommunications network, a link is a communication channel that connects two or more devices for the purpose of data transmission. The link may be a dedicated physical link or a virtual circuit that uses one or more physical links or shar ...
'', ''
Spring Engine
The Spring Engine (also termed SpringRTS and formerly TA Spring), is a game engine for real-time strategy (RTS) video games. The game engine is free and open-source software, subject to the terms of the GNU General Public License v2.0 or later.
...
''-based games,
0 A.D. and ''ZDaemon'' have included IRC.
Ustream
IBM Watson Media (formerly Ustream and IBM Cloud Video) is an American virtual events platform company which is a division of IBM. Prior to IBM acquisition, it had more than 180 employees across San Francisco, Los Angeles, and Budapest offices. ...
's chat interface is
IRC
Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called ''channels'', but also allows one-on-one communication via private messages as well as chat and ...
with custom authentication as well as
Twitch
Twitch may refer to:
Biology
* Muscle contraction
** Convulsion, rapid and repeated muscle contraction and relaxation
** Fasciculation, a small, local, involuntary muscle contraction
** Myoclonic twitch, a jerk usually caused by sudden muscle con ...
's (formerly Justin.tv).
Bots
A typical use of bots in IRC is to provide
IRC services
Internet Relay Chat services (usually called IRC services) is a name for a set of features implemented on many modern Internet Relay Chat networks. Services are automated bots with special status which are generally used to provide users with a ...
or specific functionality within a channel such as to host a chat-based game or provide notifications of external events. However, some IRC bots are used to launch malicious attacks such as denial of service, spamming, or exploitation.
Bouncer
A program that runs as a
daemon
Daimon or Daemon (Ancient Greek: , "god", "godlike", "power", "fate") originally referred to a lesser deity or guiding spirit such as the daimons of ancient Greek religion and mythology and of later Hellenistic religion and philosophy.
The word ...
on a
server
Server may refer to:
Computing
*Server (computing), a computer program or a device that provides functionality for other programs or devices, called clients
Role
* Waiting staff, those who work at a restaurant or a bar attending customers and su ...
and functions as a persistent
proxy
Proxy may refer to:
* Proxy or agent (law), a substitute authorized to act for another entity or a document which authorizes the agent so to act
* Proxy (climate), a measured variable used to infer the value of a variable of interest in climate re ...
is known as a BNC or bouncer. The purpose is to maintain a connection to an IRC server, acting as a relay between the server and client, or simply to act as a proxy. Should the client lose network connectivity, the BNC may stay connected and archive all traffic for later delivery, allowing the user to resume their IRC session without disrupting their connection to the server.
Furthermore, as a way of obtaining a bouncer-like effect, an IRC client (typically
text-based
In computing, text-based user interfaces (TUI) (alternately terminal user interfaces, to reflect a dependence upon the properties of computer terminals and not just text), is a retronym describing a type of user interface (UI) common as an ear ...
, for example
Irssi
Irssi ( ) is an IRC client program for Linux, FreeBSD, macOS and Microsoft Windows. It was originally written by Timo Sirainen, and released under the terms of the GNU GPL-2.0-or-later in January 1999.
Features
Irssi is written in the C progr ...
) may be run on an always-on server to which the user connects via
ssh
The Secure Shell Protocol (SSH) is a cryptographic network protocol for operating network services securely over an unsecured network. Its most notable applications are remote login and command-line execution.
SSH applications are based on a ...
. This also allows devices that only have ssh functionality, but no actual IRC client installed themselves, to connect to the IRC, and it allows sharing of IRC sessions.
To keep the IRC client from quitting when the ssh connection closes, the client can be run inside a
terminal multiplexer
A terminal multiplexer is a software application that can be used to multiplex several separate pseudoterminal-based login sessions inside a single terminal display, terminal emulator window, PC/workstation system console, or remote login session, ...
such as
GNU Screen
GNU Screen is a terminal multiplexer, a software application that can be used to multiplex several virtual consoles, allowing a user to access multiple separate login sessions inside a single terminal window, or detach and reattach sessions from ...
or
tmux
tmux is an open-source terminal multiplexer for Unix-like operating systems. It allows multiple terminal sessions to be accessed simultaneously in a single window. It is useful for running more than one command-line program at the same time. I ...
, thus staying connected to the IRC network(s) constantly and able to log conversation in channels that the user is interested in, or to maintain a channel's presence on the network. Modelled after this setup, in 2004 an IRC client following the
client–server, called
Smuxi
Smuxi is a cross-platform IRC client for the GNOME desktop inspired by Irssi. It pioneered the concept of separating the frontend client from the backend engine which manages connections to IRC servers inside a single graphical application.
Arch ...
, was launched.
Search engines
There are numerous search engines available to aid the user in finding what they are looking for on IRC. Generally the search engine consists of two parts, a "back-end" (or "spider/crawler") and a front-end "search engine".
The back-end (spider/webcrawler) is the work horse of the search engine. It is responsible for crawling IRC servers to index the information being sent across them. The information that is indexed usually consists solely of channel text (text that is publicly displayed in public channels). The storage method is usually some sort of relational database, like
MySQL
MySQL () is an open-source relational database management system (RDBMS). Its name is a combination of "My", the name of co-founder Michael Widenius's daughter My, and "SQL", the acronym for Structured Query Language. A relational database o ...
or
Oracle
An oracle is a person or agency considered to provide wise and insightful counsel or prophetic predictions, most notably including precognition of the future, inspired by deities. As such, it is a form of divination.
Description
The word '' ...
.
The front-end "search engine" is the user interface to the database. It supplies users with a way to search the database of indexed information to retrieve the data they are looking for. These front-end search engines can also be coded in numerous programming languages.
Most search engines have their own spider that is a single application responsible for crawling IRC and indexing data itself; however, others are "user based" indexers. The latter rely on users to install their "add-on" to their IRC client; the add-on is what sends the database the channel information of whatever channels the user happens to be on.
Many users have implemented their own
ad hoc
Ad hoc is a Latin phrase meaning literally 'to this'. In English, it typically signifies a solution for a specific purpose, problem, or task rather than a generalized solution adaptable to collateral instances. (Compare with ''a priori''.)
Com ...
search engines using the logging features built into many IRC clients. These search engines are usually implemented as bots and dedicated to a particular channel or group of associated channels.
Character encoding
IRC still lacks a single globally accepted standard convention for how to transmit characters outside the 7-bit
ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
repertoire.
IRC servers normally transfer messages from a client to another client just as byte sequences, without any interpretation or recoding of
characters
Character or Characters may refer to:
Arts, entertainment, and media Literature
* ''Character'' (novel), a 1936 Dutch novel by Ferdinand Bordewijk
* ''Characters'' (Theophrastus), a classical Greek set of character sketches attributed to The ...
. The IRC protocol (unlike e.g.
MIME
Multipurpose Internet Mail Extensions (MIME) is an Internet standard that extends the format of email messages to support text in character sets other than ASCII, as well as attachments of audio, video, images, and application programs. Message ...
or
HTTP
The Hypertext Transfer Protocol (HTTP) is an application layer protocol in the Internet protocol suite model for distributed, collaborative, hypermedia information systems. HTTP is the foundation of data communication for the World Wide Web, ...
) lacks mechanisms for announcing and negotiating character encoding options. This has put the responsibility for choosing the appropriate character codec on the client. In practice, IRC channels have largely used the same character encodings that were also used by operating systems (in particular
Unix
Unix (; trademarked as UNIX) is a family of multitasking, multiuser computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, and ot ...
derivatives) in the respective language communities:
* 7-bit era: In the early days of IRC, especially among
Scandinavian and
Finnish language
Finnish ( endonym: or ) is a Uralic language of the Finnic branch, spoken by the majority of the population in Finland and by ethnic Finns outside of Finland. Finnish is one of the two official languages of Finland (the other being Swedish ...
users, national variants of
ISO 646
ISO/IEC 646 is a set of ISO/IEC standards, described as ''Information technology — ISO 7-bit coded character set for information interchange'' and developed in cooperation with ASCII at least since 1964. Since its first edition in 1 ...
were the dominant
character encoding
Character encoding is the process of assigning numbers to Graphics, graphical character (computing), characters, especially the written characters of Language, human language, allowing them to be Data storage, stored, Data communication, transmi ...
s. These encode non-ASCII characters like Ä Ö Å ä ö å at code positions 0x5B 0x5C 0x5D 0x7B 0x7C 0x7D (
US-ASCII
ASCII ( ), abbreviated from American Standard Code for Information Interchange, is a character encoding standard for electronic communication. ASCII codes represent text in computers, telecommunications equipment, and other devices. Because of ...
:
'' \ '' ). That is why these codes are always allowed in nicknames. According to RFC 1459, in nicknames should be treated as lowercase equivalents of
\ respectively.
By the late 1990s, the use of 7-bit encodings had disappeared in favour of
ISO 8859-1
ISO/IEC 8859-1:1998, ''Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No. 1'', is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1 ...
, and such equivalence mappings were dropped from some IRC daemons.
* 8-bit era: Since the early 1990s, 8-bit encodings such as
ISO 8859-1
ISO/IEC 8859-1:1998, ''Information technology — 8-bit single-byte coded graphic character sets — Part 1: Latin alphabet No. 1'', is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 1 ...
have become commonly used for European languages. Russian users had a choice of
KOI8-R
KOI8-R (RFC 1489) is an 8-bit character encoding, derived from the KOI-8 encoding by the programmer Andrei Chernov in 1993 and designed to cover Russian, which uses a Cyrillic alphabet. KOI8-R was based on Russian Morse code, which was created fr ...
,
ISO 8859-5
ISO/IEC 8859-5:1999, ''Information technology — 8-bit single-byte coded graphic character sets — Part 5: Latin/Cyrillic alphabet'', is part of the ISO/IEC 8859 series of ASCII-based standard character encodings, first edition published in 198 ...
and
CP1251
Windows-1251 is an 8-bit character encoding, designed to cover languages that use the Cyrillic script such as Russian, Ukrainian, Belarusian, Bulgarian, Serbian Cyrillic, Macedonian and other languages.
On the web, it is the second most-used ...
, and since about 2000, modern Russian IRC networks convert between these different commonly used encodings of the
Cyrillic script
The Cyrillic script ( ), Slavonic script or the Slavic script, is a writing system used for various languages across Eurasia. It is the designated national script in various Slavic languages, Slavic, Turkic languages, Turkic, Mongolic languages, ...
.
* Multi-byte era: For a long time, East Asian IRC channels with logographic scripts in China, Japan, and Korea have been using multi-byte encodings such as
EUC or
ISO-2022-JP
ISO/IEC 2022 ''Information technology—Character code structure and extension techniques'', is an ISO/IEC standard (equivalent to the ECMA standard ECMA-35, the ANSI standard ANSI X3.41 and the Japanese Industrial Standard JIS X 0202) in the f ...
. With the common migration from ISO 8859 to
UTF-8
UTF-8 is a variable-width encoding, variable-length character encoding used for electronic communication. Defined by the Unicode Standard, the name is derived from ''Unicode'' (or ''Universal Coded Character Set'') ''Transformation Format 8-bit'' ...
on Linux and Unix platforms since about 2002, UTF-8 has become an increasingly popular substitute for many of the previously used 8-bit encodings in European channels. Some IRC clients are now capable of reading messages both in ISO 8859-1 or UTF-8 in the same channel, heuristically autodetecting which encoding is used. The shift to UTF-8 began in particular on Finnish-speaking IRC (
Merkistö (Finnish)).
Today, the UTF-8 encoding of
Unicode
Unicode, formally The Unicode Standard,The formal version reference is is an information technology Technical standard, standard for the consistent character encoding, encoding, representation, and handling of Character (computing), text expre ...
/
ISO 10646
ISO is the most common abbreviation for the International Organization for Standardization.
ISO or Iso may also refer to: Business and finance
* Iso (supermarket), a chain of Danish supermarkets incorporated into the SuperBest chain in 2007
* Iso ...
would be the most likely contender for a single future standard character encoding for all IRC communication, if such standard ever relaxed the 510-byte message size restriction. UTF-8 is ASCII compatible and covers the superset of all other commonly used
coded character set
Character encoding is the process of assigning numbers to graphical characters, especially the written characters of human language, allowing them to be stored, transmitted, and transformed using digital computers. The numerical values that ...
standards.
File sharing
Much like conventional
P2P
P2P may refer to:
* Pay to play, where money is exchanged for services
* Peer-to-peer, a distributed application architecture in computing or networking
** List of P2P protocols
* Phenylacetone, an organic compound commonly known as P2P
* Poin ...
file sharing, users can create file servers that allow them to share files with each other by using customised
IRC bot
409px, An IRC bot performing a simple task.An IRC bot is a set of scripts or an independent program that connects to Internet Relay Chat as a client, and so appears to other IRC users as another user. An IRC bot differs from a regular client in th ...
s or scripts for their
IRC client
Internet Relay Chat (IRC) is a text-based chat system for instant messaging. IRC is designed for group communication in discussion forums, called ''channels'', but also allows one-on-one communication via private messages as well as chat and ...
. Often users will group together to distribute
warez
Warez is a common computing and broader cultural term referring to pirated software (i.e. illegally copied, often after deactivation of anti-piracy measures) that is distributed via the Internet. Warez is used most commonly as a noun, a plural ...
via a network of IRC bots.
Technically, IRC provides no
file transfer File transfer is the transmission of a computer file through a communication channel from one computer system to another. Typically, file transfer is mediated by a communications protocol. In the history of computing, numerous file transfer protocol ...
mechanisms itself; file sharing is implemented by IRC ''clients'', typically using the
Direct Client-to-Client
Direct Client-to-Client (DCC) (originally Direct Client Connection) is an IRC-related sub-protocol enabling peers to interconnect using an IRC server for handshaking in order to exchange files or perform non-relayed chats. Once established, a typi ...
(DCC) protocol, in which file transfers are negotiated through the exchange of private messages between clients. The vast majority of IRC clients feature support for DCC file transfers, hence the view that file sharing is an integral feature of IRC.
The commonplace usage of this protocol, however, sometimes also causes DCC spam. DCC commands have also been used to exploit vulnerable clients into performing an action such as disconnecting from the server or exiting the client.
See also
*
Chat room
The term chat room, or chatroom (and sometimes group chat; abbreviated as GC), is primarily used to describe any form of synchronous conferencing, occasionally even asynchronous conferencing. The term can thus mean any technology, ranging from ...
*
Client-to-client protocol
Client-to-client protocol (CTCP) is a special type of communication between Internet Relay Chat (IRC) clients.
CTCP is a common protocol implemented by most major IRC clients in use today. CTCP extends the original IRC protocol by allowing users t ...
*
Comparison of instant messaging protocols
The following is a comparison of instant messaging protocols. It contains basic general information about the protocols.
Table of instant messaging protocols
See also
*Comparison of cross-platform instant messaging clients
*Comparison of Inte ...
*
Comparison of IRC clients
The following tables compare general and technical information between a number of notable IRC client programs which have been discussed in independent, reliable prior published sources.
General
Basic general information about the notablecl ...
*
Comparison of mobile IRC clients
*
The Hamnet Players
The Hamnet Players, founded in 1993, perform virtual theatre (cyberformance) using IRC chat.
Overview
On 12 December 1993, a dozen people gathered at an event which made cyber-history: an experimental performance on IRC–Internet Relay Chat of ...
*
Internet slang
Internet slang (also called Internet shorthand, cyber-slang, netspeak, digispeak or chatspeak) is a non-standard or unofficial form of language used by people on the Internet to communicate to one another. An example of Internet slang is "LOL" m ...
*
List of IRC commands
This is a list of all Internet Relay Chat commands from Request for Comments, RFC 1459, RFC 2812, and extensions added to major IRC daemons. Most IRC clients require commands to be preceded by a slash ("/"). Some commands are actually sent to IRC ...
*
Serving channel
A serving channel (sometimes called a depot channel) is a slang term for a file sharing channel found on an IRC network. Here, users can share and download files including photos, videos, audio files, books, programs, etc. Users that are actively ...
*
Matrix (protocol)
Matrix is an open standard and communication protocol for real-time communication. It aims to make real-time communication work seamlessly between different service providers, in the way that standard Simple Mail Transfer Protocol email current ...
and
XMPP
Extensible Messaging and Presence Protocol (XMPP, originally named Jabber) is an open communication protocol designed for instant messaging (IM), presence information, and contact list maintenance. Based on XML (Extensible Markup Language), it ...
, similar chat protocols
Citations
General bibliography
*
*
*
*
*
Further reading
*
*
*
*
External links
*
IRC Numerics ListIRC.org– Technical and Historical IRC6 information; Articles on the history of IRC
IRChelp.org– Internet Relay Chat (IRC) help archive; Large archive of IRC-related documents
IRCv3– Working group of developers, who add new features to the protocol and write specs for them
IRC-Source – Internet Relay Chat (IRC) network and channel search engine with historical data
irc.netsplit.de– Internet Relay Chat (IRC) network listing with historical data
{{Computer-mediated communication
1988 software
Application layer protocols
Computer-related introductions in 1988
Finnish inventions
Internet terminology
Virtual communities