Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
IRCd
(section)
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Features == === Ports === The officially assigned port numbers are 194 ("irc"), 529 ("irc-serv"), and 994 ("ircs").<ref>[https://www.iana.org/assignments/port-numbers IANA.org]</ref> However, these ports are in the ''privileged'' range (0–1024), which on a [[Unix-like]] system means that the daemon would historically have to have [[superuser]] privileges in order to open them. For various [[security]] reasons this used to be undesirable. The common ports for an IRCd process are 6665 to 6669, with 6667 being the historical default.<ref>{{cite journal|url=http://tools.ietf.org/html/rfc1459#section-5.6 |title=RFC 1459 – Internet Relay Chat Protocol |year=1993 |publisher=Tools.ietf.org |doi=10.17487/RFC1459 |access-date=2010-03-03|last1=Oikarinen |first1=J. |last2=Reed |first2=D. |url-access=subscription }}</ref> These ports can be opened by a non-superuser process, and they became widely used. === Connections === Running a large IRC server, one that has more than a few thousand simultaneous users, requires keeping a very large number of [[Transmission Control Protocol|TCP connections]] open for long periods. Very few ircds are [[Thread (computer science)|multithreaded]] as nearly every action needs to access (at least read and possibly modify) the global state. The result is that the best platforms for ircds are those that offer efficient mechanisms for handling huge numbers of connections in a single thread. [[Linux kernel|Linux]] offers this ability in the form of [[epoll]], in kernel series newer than 2.4.x. [[FreeBSD]] (since 4.1) and OpenBSD (since 2.9) offers [[kqueue]]. [[Solaris (operating system)|Solaris]] has had [https://web.archive.org/web/20070202231908/http://access1.sun.com/techarticles/devpoll.html /dev/poll] since version 7, and from version 10 onwards has [[IOCP]] (I/O Completion Ports). [[Windows]] has supported [[IOCP]] since Windows NT 3.5. The difference made by these new interfaces can be dramatic. IRCU developers have mentioned increases in the practical capacity per server from 10,000 users to 20,000 users.{{Citation needed|reason=Which developers? and When? |date=July 2022}} === TLS (Transport Layer Security) === Some IRCd support [[Transport Layer Security]], or TLS, for those who don't, it is still possible to use SSL via [[Stunnel]]. The unofficial, but most often used port for TLS IRCd connections is [[List of TCP and UDP port numbers#Registered ports|6697]]. More recently, as a security enhancement and usability enhancement, various client and server authors have begun drafting a standard known as the STARTTLS standard<ref>{{Cite web |url=http://www.inspircd.org/wiki/STARTTLS_Documentation |title=STARTTLS standard |access-date=2008-07-20 |archive-url=https://web.archive.org/web/20080624222000/http://www.inspircd.org/wiki/STARTTLS_Documentation |archive-date=2008-06-24 |url-status=dead }}</ref> which allows for TLS and plain text connections to co-exist on the same TCP port. === IPv4 and IPv6 === IRC daemons support [[IPv4]], and some also support [[IPv6]]. In general, the difference between IPv6 and IPv4 connections to IRC is purely academic and the service operates in much the same manner through either protocol. === Clustering === Large IRC networks consist of multiple servers for [[horizontal scaling]] purposes. There are several IRC protocol extensions for these purposes.<ref name=scale>Paul Mutton, ''IRC hacks'', [[O'Reilly Media]], 2004, {{ISBN|0-596-00687-X}}, pp. 371</ref> ==== IRCX ==== [[IRCX]] (Internet Relay Chat eXtensions) is an extension to the IRC protocol developed by Microsoft<br/> ==== P10 ==== The '''P10''' protocol is an extension to the [[Internet Relay Chat]] protocol for server to server communications developed by the Undernet Coder Committee to use in their ircu server software. It is similar in purpose to [[IRCX]] and EFnet TS5/TS6 protocols and implements nick and channel timestamping for handling nick collisions and netsplit channel riding, respectively. Other IRCd's that utilize this protocol extension include [[bIRCd|beware ircd]].<ref name=scale/><ref>[http://ircd.bircd.org/bewarep10.txt beware's P10 documentation]</ref><ref>[http://web.mit.edu/klmitch/Sipb/devel/src/ircu2.10.11/doc/p10.html ircu P10 documentation]</ref> ==== TS6 ==== The '''TS6''' protocol is an extension to the [[Internet Relay Chat]] protocol for server to server communications developed initially by the developers of ircd-ratbox. It has been extended by various IRC software and has the feature that proper implementations of TS6 can link to each other by using feature negotiation—even if features are disparate.
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)