HTML layout by Tatu J. Lund Apr 1997

Network Working Group

Request for Comments: 1459

J. Oikarinen

D. Reed

May 1993


Internet Relay Chat Protocol

Editor’s Note: This is the original RFC for IRC. Tatu J. Lund translated the official text file RFC 1459 into this web version, which is mirrored with his permission. There are also other RFC documents including specifications for CTCP, DCC, and the “new” IRC RFCs.

Status of This Memo

This memo defines an Experimental Protocol for the Internet community. Discussion and suggestions for improvement are requested. Please refer to the current edition of the “IAB Official Protocol Standards” for the standardization state and status of this protocol. Distribution of this memo is unlimited.

Abstract

The IRC protocol was developed over the last 4 years since it was first implemented as a means for users on a BBS to chat amongst themselves. Now it supports a world-wide network of servers and clients, and is stringing to cope with growth. Over the past 2 years, the average number of users connected to the main IRC network has grown by a factor of 10.

The IRC protocol is a text-based protocol, with the simplest client being any socket program capable of connecting to the server.

Table of Contents

1.INTRODUCTION

1.1 Servers

1.2 Clients

1.2.1 Operators

1.3 Channels

1.3.1 Channel Operators

2. THE IRC SPECIFICATION

2.1 Overview

2.2 Character codes

2.3 Messages

2.3.1 Message format in ‘pseudo’ BNF

2.4 Numeric replies

3. IRC CONCEPTS

3.1 One-to-one communication

3.2 One-to-many

3.2.1 To a list

3.2.2 To a group (channel)

3.2.3 To a host/server mask

3.3 One to all

3.3.1 Client to Client

3.3.2 Clients to Server

3.3.3 Server to Server

4. MESSAGE DETAILS

4.1 Connection Registration

4.1.1 Password message

4.1.2 Nickname message

4.1.3 User message

4.1.4 Server message

4.1.5 Operator message

4.1.6 Quit message

4.1.7 Server Quit message

4.2 Channel operations

4.2.1 Join message

4.2.2 Part message

4.2.3 Mode message

4.2.3.1 Channel modes

4.2.3.2 User modes

4.2.4 Topic message

4.2.5 Names message

4.2.6 List message

4.2.7 Invite message

4.2.8 Kick message

4.3 Server queries and commands

4.3.1 Version message

4.3.2 Stats message

4.3.3 Links message

4.3.4 Time message

4.3.5 Connect message

4.3.6 Trace message

4.3.7 Admin message

4.3.8 Info message

4.4 Sending messages

4.4.1 Private messages

4.4.2 Notice messages

4.5 User-based queries

4.5.1 Who query

4.5.2 Whois query

4.5.3 Whowas message

4.6 Miscellaneous messages

4.6.1 Kill message

4.6.2 Ping message

4.6.3 Pong message

4.6.4 Error message

5. OPTIONAL MESSAGES

5.1 Away message

5.2 Rehash command

5.3 Restart command

5.4 Summon message

5.5 Users message

5.6 Operwall command

5.7 Userhost message

5.8 Ison message

6. REPLIES 6.1 Error Replies

6.2 Command responses

6.3 Reserved numerics

7. CLIENT AND SERVER AUTHENTICATION

8. CURRENT IMPLEMENTATIONS DETAILS

8.1 Network protocol: TCP

8.1.1 Support of Unix sockets

8.2 Command Parsing

8.3 Message delivery

8.4 Connection ‘Liveness’

8.5 Establishing a server-client connection

8.6 Establishing a server-server connection

8.6.1 State information exchange when connecting

8.7 Terminating server-client connections

8.8 Terminating server-server connections

8.9 Tracking nickname changes

8.10 Flood control of clients

8.11 Non-blocking lookups

8.11.1 Hostname (DNS) lookups

8.11.2 Username (Ident) lookups

8.12 Configuration file

8.12.1 Allowing clients to connect

8.12.2 Operators

8.12.3 Allowing servers to connect

8.12.4 Administrivia

8.13 Channel membership

9. CURRENT PROBLEMS

9.1 Scalability

9.2 Labels

9.2.1 Nicknames

9.2.2 Channels

9.2.3 Servers

9.3 Algorithms

10. SUPPORT AND AVAILABILITY

11. SECURITY CONSIDERATIONS

12. AUTHORS’ ADDRESSES

Other IRC RFC Documents


< >