RFC 2813 (rfc2813) - Page 2 of 26


Internet Relay Chat: Server Protocol



Alternative Format: Original Text Document



RFC 2813          Internet Relay Chat: Server Protocol        April 2000


Table of Contents

   1.  Introduction ...............................................   3
   2.  Global database ............................................   3
      2.1  Servers ................................................   3
      2.2  Clients ................................................   4
         2.2.1  Users .............................................   4
         2.2.2  Services ..........................................   4
      2.3  Channels ...............................................   4
   3.  The IRC Server Specification ...............................   5
      3.1  Overview ...............................................   5
      3.2  Character codes ........................................   5
      3.3  Messages ...............................................   5
         3.3.1  Message format in Augmented BNF ...................   6
      3.4  Numeric replies ........................................   7
   4.  Message Details ............................................   7
      4.1  Connection Registration ................................   8
         4.1.1  Password message ..................................   8
         4.1.2  Server message ....................................   9
         4.1.3  Nick ..............................................  10
         4.1.4  Service message ...................................  11
         4.1.5  Quit ..............................................  12
         4.1.6  Server quit message ...............................  13
      4.2  Channel operations .....................................  14
         4.2.1  Join message ......................................  14
         4.2.2  Njoin message .....................................  15
         4.2.3  Mode message ......................................  16
   5.  Implementation details  ....................................  16
      5.1  Connection 'Liveness' ..................................  16
      5.2  Accepting a client to server connection ................  16
         5.2.1  Users .............................................  16
         5.2.2  Services ..........................................  17
      5.3  Establishing a server-server connection. ...............  17
         5.3.1  Link options ......................................  17
            5.3.1.1  Compressed server to server links ............  18
            5.3.1.2  Anti abuse protections .......................  18
         5.3.2  State information exchange when connecting ........  18
      5.4  Terminating server-client connections ..................  19
      5.5  Terminating server-server connections ..................  19
      5.6  Tracking nickname changes ..............................  19
      5.7  Tracking recently used nicknames .......................  20
      5.8  Flood control of clients ...............................  20
      5.9  Non-blocking lookups ...................................  21
         5.9.1  Hostname (DNS) lookups ............................  21
         5.9.2  Username (Ident) lookups ..........................  21
   6.  Current problems ...........................................  21
      6.1  Scalability ............................................  21
      6.2  Labels .................................................  22



Kalt                         Informational