Internet Relay Chat: Architecture
RFC 2810

Document Type RFC - Informational (April 2000; Errata)
Updates RFC 1459
Was draft-kalt-irc-arch (individual)
Last updated 2013-03-02
Stream IETF
Formats plain text pdf htmlized with errata bibtex
Stream WG state (None)
Document shepherd No shepherd assigned
IESG IESG state RFC 2810 (Informational)
Consensus Boilerplate Unknown
Telechat date
Responsible AD (None)
Send notices to (None)
Network Working Group                                           C. Kalt
Request for Comments: 2810                                   April 2000
Updates: 1459
Category: Informational

                   Internet Relay Chat: Architecture

Status of this Memo

   This memo provides information for the Internet community.  It does
   not specify an Internet standard of any kind.  Distribution of this
   memo is unlimited.

Copyright Notice

   Copyright (C) The Internet Society (2000).  All Rights Reserved.

Abstract

   The IRC (Internet Relay Chat) protocol is for use with text based
   conferencing. It has been developed since 1989 when it was originally
   implemented as a mean for users on a BBS to chat amongst themselves.

   First formally documented in May 1993 by RFC 1459 [IRC], the protocol
   has kept evolving. This document is an update describing the
   architecture of the current IRC protocol and the role of its
   different components.  Other documents describe in detail the
   protocol used between the various components defined here.

Table of Contents

   1.  Introduction ...............................................   2
   2.  Components .................................................   2
      2.1  Servers ................................................   2
      2.2  Clients ................................................   3
         2.2.1  User Clients ......................................   3
         2.2.2  Service Clients ...................................   3
   3.  Architecture ...............................................   3
   4.  IRC Protocol Services ......................................   4
      4.1  Client Locator .........................................   4
      4.2  Message Relaying .......................................   4
      4.3  Channel Hosting And Management .........................   4
   5.  IRC Concepts ...............................................   4
      5.1  One-To-One Communication ...............................   5
      5.2  One-To-Many ............................................   5
         5.2.1  To A Channel ......................................   5
         5.2.2  To A Host/Server Mask .............................   6

Kalt                         Informational                      [Page 1]
RFC 2810           Internet Relay Chat: Architecture          April 2000

         5.2.3  To A List .........................................   6
      5.3  One-To-All .............................................   6
         5.3.1  Client-to-Client ..................................   6
         5.3.2  Client-to-Server ..................................   7
         5.3.3  Server-to-Server ..................................   7
   6.  Current Problems ...........................................   7
      6.1  Scalability ............................................   7
      6.2  Reliability ............................................   7
      6.3  Network Congestion .....................................   7
      6.4  Privacy ................................................   8
   7.  Security Considerations ....................................   8
   8.  Current Support And Availability ...........................   8
   9.  Acknowledgements ...........................................   8
   10.  References ................................................   8
   11.  Author's Address ..........................................   9
   12.  Full Copyright Statement ..................................  10

1. Introduction

   The IRC (Internet Relay Chat) protocol has been designed over a
   number of years for use with text based conferencing.  This document
   describes its current architecture.

   The IRC Protocol is based on the client-server model, and is well
   suited to running on many machines in a distributed fashion.  A
   typical setup involves a single process (the server) forming a
   central point for clients (or other servers) to connect to,
   performing the required message delivery/multiplexing and other
   functions.

   This distributed model, which requires each server to have a copy
   of the global state information, is still the most flagrant problem
   of the protocol as it is a serious handicap, which limits the maximum
   size a network can reach.  If the existing networks have been able to
   keep growing at an incredible pace, we must thank hardware
   manufacturers for giving us ever more powerful systems.

2. Components

   The following paragraphs define the basic components of the IRC
   protocol.

2.1 Servers

   The server forms the backbone of IRC as it is the only component
   of the protocol which is able to link all the other components
   together: it provides a point to which clients may connect to talk to

Kalt                         Informational                      [Page 2]
RFC 2810           Internet Relay Chat: Architecture          April 2000

   each other [IRC-CLIENT], and a point for other servers to connect to
Show full document text