پروتوكول الدردشة عبر الإنترنت
نموذج TCP/IP (RFC 1122) |
---|
طبقة التطبيقات |
BGP • DHCP • DNS • FTP • گوفر • GTP • HTTP • IMAP • IRC • NNTP • NTP • POP • RIP • RPC • RTCP • RTP • RTSP • SDP • SIP • SMTP • SNMP • SOAP • SSH • STUN • Telnet • TIME • TLS/SSL • XMPP • (المزيد) |
طبقة النقل |
TCP • UDP • DCCP • SCTP • RSVP • ECN • (المزيد) |
طبقة الإنترنت |
IP (IPv4, IPv6) • ICMP • ICMPv6 • IGMP • IPsec • (المزيد) |
طبقة الوصل |
ARP • RARP • NDP • OSPF • Tunnels (L2TP) • Media Access Control (إيثرنت, DSL, ISDN, FDDI) • Device Drivers • (المزيد) |
Internet Relay Chat (IRC) is a text-based chat (instant messaging) system. IRC is designed for group communication in discussion forums, called channels,[1] but also allows one-on-one communication via private messages[2] as well as chat and data transfer,[3] including file sharing.[4]
Internet Relay Chat is implemented as an application layer protocol to facilitate communication in the form of text. The chat process works on a client–server networking model. Users connect to an IRC server, which may be part of a larger IRC network. Users connect using a client, which may be a web app, a standalone desktop program, or embedded into part of a larger program. Examples of programs used to connect include Mibbit, IRCCloud, KiwiIRC, and MIRC.
IRC usage has been declining steadily since 2003, losing 60 percent of its users.[5] In April 2011, the top 100 IRC networks served more than half a million users at a time.[6] As of June 2021, there are 481 different IRC networks known to be operating,[7] of which the open source Libera Chat, 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 thousand servers.[8]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
History
IRC was created by Jarkko Oikarinen in August 1988 to replace a program called MUT (MultiUser Talk) on a BBS called OuluBox at the University of Oulu in Finland, 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 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.[9] Oikarinen found inspiration in a chat system known as Bitnet Relay, which operated on the BITNET.[10]
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 and Tampere University 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.[9]
Oikarinen got in touch with people at the University of Denver and Oregon State University. 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—and then connected to Nordunet, 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.[9]
EFnet
Undernet fork
DALnet fork
IRCnet fork
Modern IRC
IRC has changed much over its life on the Internet. New server software has added a multitude of new features.
- Services: 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,[11] or obscuring a user's hostmask ("cloaking") to protect from denial-of-service attacks.[12]
- Proxy detection: Most modern servers support detection of users attempting to connect through an insecure (misconfigured or exploited) proxy server, 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.[13]
- 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: 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 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, the old version of the Internet Protocol, or by IPv6, the current standard of the protocol.
اعتبارا من 2016[تحديث], 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.[14] اعتبارا من 2019[تحديث], no major IRC networks have fully adopted the proposed standard.[15]
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 platforms like Facebook or Twitter,[5] but also to open platforms like XMPP which was developed in 1999. Certain networks like Freenode have not followed the overall trend and have more than quadrupled in size during the same period.[5] However, Freenode, which in 2016 had around 90,000 users, has since declined to about 9,300 users.[16]
The largest IRC networks have traditionally been grouped as the "Big Four"[17][18][19][20]—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:[17][18][19]
IRC reached 6 million simultaneous users in 2001 and 10 million users in 2003, dropping to 371k in 2018.[بحاجة لمصدر]
اعتبارا من January 2022[تحديث], the largest IRC networks are:
- Libera Chat – around 48.7k users at peak hours
- OFTC – around 19.4k users at peak hours
- IRCnet – around 17.9k users at peak hours
- Undernet – around 13.4k users at peak hours
- Rizon – around 10.5k users at peak hours
- EFnet – around 10.4k users at peak hours
- Freenode – around 9.3k users at peak hours
- QuakeNet – 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.[21]
خط زمني
Timeline of major servers:
- EFnet, 1990 to present
- Undernet, 1992 to present
- DALnet, 1994 to present
- freenode, 1995 to 2021[22]
- IRCnet, 1996 to present
- QuakeNet, 1997 to present
- Open and Free Technology Community, 2001 to present
- Rizon, 2002 to present
- Libera Chat, 2021 to present
Technical information
IRC is an open protocol that uses TCP[23] and, optionally, TLS. An IRC server can connect to other IRC servers to expand the IRC network.[24] Users access IRC networks by connecting a client to a server.[25] There are many client implementations, such as mIRC, HexChat and irssi, and server implementations, e.g. the original IRCd. Most IRC servers do not require users to register an account but a nick is required before being connected.[26]
IRC was originally a plain text protocol[23] (although later extended), which on request was assigned port 194/TCP by IANA.[27] However, the de facto standard has always been to run IRC on 6667/TCP[28] and nearby port numbers (for example TCP ports 6660–6669, 7000)[29] to avoid having to run the IRCd software with root privileges.
The protocol specified that characters were 8-bit but did not specify the character encoding the text was supposed to use.[30] 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.[31] They later stopped distributing software supporting IRCX, instead developing the proprietary MSNP.
The standard structure of a network of IRC servers is a tree.[32] Messages are routed along only necessary branches of the tree but network state is sent to every server[33] 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[34] 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[35] 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.[36] This is a strength in comparison to non-multicasting protocols such as Simple Mail Transfer Protocol (SMTP)[بحاجة لمصدر] or Extensible Messaging and Presence Protocol (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).[37][38]
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Commands and replies
Channels
Modes
Standard (RFC 1459) modes
Letter | Symbol | Description |
---|---|---|
i | Invisible—cannot be seen without a common channel or knowing the exact name | |
s | Receives server notices | |
w | Receives wallops[39] | |
o | User is an IRC operator (ircop) |
Letter | Symbol | Parameter(s) | Description |
---|---|---|---|
o | @ | Name of affected user | Channel operator—can change channel modes and kick users out of the channel among other things |
s | Secret channel—not shown in channel list or user whois except to users already on the channel | ||
p | Private channel—listed in channel list as "prv" according to RFC 1459 | ||
n | Users cannot send messages to the channel externally | ||
m | Channel is moderated (only those who hold channel operator or voice status on the channel can send messages to it) | ||
i | Only users with invites may enter the channel. | ||
t | Only channel operators can change the channel topic. | ||
l | Limit number | Limits number of users able to be on channel (when full, no new users can join) | |
b | Ban mask (nick!user@host with wildcards allowed) | Bans hostmasks from channel | |
v | + | Name of affected user | Gives a user voice status on channel (see +m above) |
k | New channel key | Sets a channel key such that only users knowing the key can enter |
Many daemons and networks have added extra modes or modified the behavior of modes in the above list.[40][41][42][43]
Channel operators
IRC operators
Hostmasks
URI scheme
Challenges
Attacks
Abuse prevention
Clients
Client software
Bots
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
Bouncer
Search engines
Character encoding
File sharing
See also
- Chat room
- Client-to-client protocol
- Comparison of instant messaging protocols
- Comparison of IRC clients
- Comparison of mobile IRC clients
- The Hamnet Players
- Internet slang
- List of IRC commands
- Serving channel
- Matrix (protocol) and XMPP, similar chat protocols
Citations
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ Rollo, Troy. "A description of the DCC protocol". irchelp.org. Retrieved 8 April 2011.
- ^ Wang, Wallace (25 October 2004). "Instant Messaging and Online Chat Rooms: Internet Relay Chat (IRC)". Steal this File Sharing Book (1st ed.). San Francisco, California: No Starch Press. pp. 61–67. ISBN 978-1-59327-050-6.
- ^ أ ب ت "IRC is dead, long live IRC". Pingdom. 24 April 2012. Retrieved 25 April 2016.
- ^ "IRC Networks – Top 100". irc.netsplit.de. Retrieved 8 April 2011.
- ^ "IRC Networks - in alphabetical order". netsplit.de. Retrieved 2022-01-12.
- ^ "IRC Networks - Top 100". netsplit.de. Retrieved 2022-01-12.
- ^ أ ب ت Stenberg, Daniel (29 March 2011). "History of IRC (Internet Relay Chat)". Retrieved 25 April 2016.
I did not experience all of this. I found information on various places and I received information from various people in order to write this. People that have helped me with this include: Greg "wumpus" Lindahl, Vesa "vesa" Ruokonen, James Ng, Tuomas Heino, Richard (eagle`s on undernet), Ari Lemmke
- ^ Oikarinen, Jarkko. "Founding IRC". Retrieved 8 April 2011.
- ^ "Channel Modes". UnrealIRCd documentation wiki. Retrieved 6 January 2018.
- ^ "Cloaking". UnrealIRCd documentation wiki. Retrieved 6 January 2018.
- ^ "Blitzed Open Proxy Monitor Shuts Down".
The Open Proxy Monitor which has been provided by the Blitzed IRC network has been shut down…The database was so large that it is near to impossible for the team to backup, or find a new location to continue the service. Added to that, most of the team members do not possess the time anymore to keep the service running.
- ^ "IRCv3". IRCv3 Working Group. 2016. Retrieved 25 April 2016.
The IRCv3 Working Group is a collection of IRC client and server software authors working to enhance, maintain and standardize the IRC protocol using backwards-compatible extensions.
- ^ "Networks - IRCv3". 2019. Retrieved 9 August 2019.
- ^ "netsplit.de top 10". Retrieved 15 January 2021.
- ^ أ ب Charalabidis, Alex (15 December 1999). "IRCing On The Macintosh: Ircle". The Book of IRC: The Ultimate Guide to Internet Relay Chat (1st ed.). San Francisco, California: No Starch Press. p. 61. ISBN 978-1-886411-29-6.
On large networks such as the Big Four — EFnet, IRCnet, Undernet, and DALnet — trying to list the thousands of channels with Ircle always causes you to disconnect due to the flood of information, while other clients can usually manage the feat, if you are on a direct Ethernet connection.
- ^ أ ب Jones, Steve, ed. (10 December 2002). "Internet Relay Chat". Encyclopedia of New Media: An Essential Reference to Communication and Technology (1st ed.). Thousand Oaks, California: SAGE Publications. p. 257. ISBN 978-0-7619-2382-4.
Today there are hundreds of independent IRC networks, but the "Big Four" are EFNet, UnderNet, Dalnet, and IRCnet.
- ^ أ ب Rittner, Don (3 March 1999). The iMac Book (1st ed.). Scottsdale, Arizona: Coriolis Group. p. 215. ISBN 978-1-57610-429-3.
There are several large networks: EFnet, UnderNET, DALnet, and IRCnet make up the Big Four.
- ^ Turban, Efraim; Leidner, Dorothy; McLean, Ephraim; Wetherbe, James (7 February 2005). "Communication". Information Technology for Management: Transforming Organizations in the Digital Economy (5th ed.). Hoboken, New Jersey: John Wiley & Sons. pp. 106–107. ISBN 978-0-471-70522-2.
The largest networks have traditionally been grouped as the "Big Four": EFNet, IrcNet, QuakeNet, and UnderNet.
- ^ "IRC Networks – Top 100". irc.netsplit.de. netsplit.de. Retrieved 15 January 2021.
- ^ "Freenode commits suicide, is no longer a serious IRC network". www.devever.net. Retrieved 2021-12-19.
- ^ أ ب خطأ استشهاد: وسم
<ref>
غير صحيح؛ لا نص تم توفيره للمراجع المسماةrfc 1459 1 introduction
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ "Port Numbers". Marina del Rey, California: Internet Assigned Numbers Authority. 6 April 2011. Retrieved 5 April 2021.
{{cite web}}
: CS1 maint: url-status (link) - ^ قالب:Cite IETF
- ^ Lucas, Mark; Singh, Abhishek; Cantrell, Chris (5 October 2006). "Defining a Firewall". In Henmi, Anne (ed.). Firewall Policies and VPN Configurations. Rockland, Massachusetts: Syngress Publishing. p. 93. ISBN 978-1-59749-088-7.
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ قالب:Cite IETF
- ^ "IRC daemons for LAN". Retrieved 2 October 2014.
- ^ "Running an own IRC server". Retrieved 2 October 2014.
- ^ قالب:Cite IETF
- ^ Butcher, Simon (12 January 2005). "IRC User Modes List". alien.net.au. Retrieved 10 April 2011.
- ^ Butcher, Simon (12 January 2005). "IRC Channel Modes List". alien.net.au. Retrieved 10 April 2011.
- ^ Butcher, Simon (12 January 2005). "IRC Server Modes List". alien.net.au. Retrieved 10 April 2011.
- ^ Olsen, Tommy. "IRCd Modes". webtoman.com. Archived from the original on 15 October 2011. Retrieved 10 April 2011.
General bibliography
- قالب:Cite IETF
- قالب:Cite IETF
- قالب:Cite IETF
- قالب:Cite IETF
- Loesch, Carl (17 July 2003). "Functionality Provided by Systems for Synchronous Conferencing". psyc.eu. Retrieved 10 April 2011.
{{cite journal}}
: Cite journal requires|journal=
(help)
Further reading
- قالب:Cite IETF
- قالب:Cite IETF
- "Logs of major events in the online community". Chapel Hill, North Carolina: ibiblio. Retrieved 8 April 2011.
- Butcher, Simon. "IRC technical information". alien.net.au. Retrieved 10 April 2011.
External links
- IRC at Curlie
- IRC Numerics List
- History of IRC
- IRC.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
- CS1 maint: url-status
- Short description with empty Wikidata description
- Articles with hatnote templates targeting a nonexistent page
- Articles with unsourced statements from January 2010
- مقالات فيها عبارات متقادمة منذ 2016
- جميع المقالات التي فيها عبارات متقادمة
- مقالات فيها عبارات متقادمة منذ 2019
- Articles with unsourced statements from January 2015
- مقالات فيها عبارات متقادمة منذ January 2022
- Articles with unsourced statements from July 2007
- Articles with Curlie links
- Internet Relay Chat
- 1988 software
- Application layer protocols
- Computer-related introductions in 1988
- Finnish inventions
- Internet terminology
- Virtual communities