
Networking Group | J. Oikarinen
|
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.
The IRC protocol is a text-based protocol, with the simplest client being any socket program capable of connecting to the server.
1. INTRODUCTION............................................... 4
1.1 Servers................................................ 4
1.2 Clients................................................ 5
1.2.1 Operators.......................................... 5
1.3 Channels................................................ 5
1.3.1 Channel Operators................................. 6
2. THE IRC SPECIFICATION....................................... 7
2.1 Overview................................................ 7
2.2 Character codes......................................... 7
2.3 Messages................................................ 7
2.3.1 Message format in 'pseudo' BNF.................... 8
2.4 Numeric replies......................................... 10
3. IRC Concepts................................................ 10
3.1 One-to-one communication................................ 10
3.2 One-to-many............................................. 11
3.2.1 To a list.......................................... 11
3.2.2 To a group (channel)............................... 11
3.2.3 To a host/server mask.............................. 12
3.3 One to all.............................................. 12
3.3.1 Client to Client................................... 12
3.3.2 Clients to Server.................................. 12
3.3.3 Server to Server................................... 12
4. MESSAGE DETAILS............................................. 13
4.1 Connection Registration................................. 13
4.1.1 Password message................................... 14
4.1.2 Nickname message................................... 14
4.1.3 User message....................................... 15
4.1.4 Server message..................................... 16
4.1.5 Operator message................................... 17
4.1.6 Quit message....................................... 17
4.1.7 Server Quit message................................ 18
4.2 Channel operations...................................... 19
4.2.1 Join message....................................... 19
4.2.2 Part message....................................... 20
4.2.3 Mode message....................................... 21
4.2.3.1 Channel modes................................. 21
4.2.3.2 User modes.................................... 22
4.2.4 Topic message...................................... 23
4.2.5 Names message...................................... 24
4.2.6 List message....................................... 24
4.2.7 Invite message..................................... 25
4.2.8 Kick message....................................... 25
4.3 Server queries and commands............................. 26
4.3.1 Version message.................................... 26
4.3.2 Stats message...................................... 27
4.3.3 Links message...................................... 28
4.3.4 Time message....................................... 29
4.3.5 Connect message.................................... 29
4.3.6 Trace message...................................... 30
4.3.7 Admin message...................................... 31
4.3.8 Info message....................................... 31
4.4 Sending messages........................................ 32
4.4.1 Private messages................................... 32
4.4.2 Notice messages.................................... 33
4.5 User-based queries...................................... 33
4.5.1 Who query.......................................... 33
4.5.2 Whois query........................................ 34
4.5.3 Whowas message..................................... 35
4.6 Miscellaneous messages.................................. 35
4.6.1 Kill message....................................... 36
4.6.2 Ping message....................................... 37
4.6.3 Pong message....................................... 37
4.6.4 Error message...................................... 38
5. OPTIONAL MESSAGES........................................... 38
5.1 Away message............................................ 38
5.2 Rehash command.......................................... 39
5.3 Restart command......................................... 39
5.4 Summon message.......................................... 40
5.5 Users message........................................... 40
5.6 Operwall command........................................ 41
5.7 Userhost message........................................ 42
5.8 Ison message............................................ 42
6. REPLIES..................................................... 43
6.1 Error Replies........................................... 43
6.2 Command responses....................................... 48
6.3 Reserved numerics....................................... 56
7. Client and server authentication............................ 56
8. Current Implementations Details............................. 56
8.1 Network protocol: TCP................................... 57
8.1.1 Support of Unix sockets............................ 57
8.2 Command Parsing......................................... 57
8.3 Message delivery........................................ 57
8.4 Connection 'Liveness'................................... 58
8.5 Establishing a server-client connection................. 58
8.6 Establishing a server-server connection................. 58
8.6.1 State information exchange when connecting......... 59
8.7 Terminating server-client connections................... 59
8.8 Terminating server-server connections................... 59
8.9 Tracking nickname changes............................... 60
8.10 Flood control of clients............................... 60
8.11 Non-blocking lookups................................... 61
8.11.1 Hostname (DNS) lookups............................ 61
8.11.2 Username (Ident) lookups.......................... 61
8.12 Configuration file..................................... 61
8.12.1 Allowing clients to connect....................... 62
8.12.2 Operators......................................... 62
8.12.3 Allowing servers to connect....................... 62
8.12.4 Administrivia..................................... 63
8.13 Channel membership..................................... 63
9. Current problems............................................ 63
9.1 Scalability............................................. 63
9.2 Labels.................................................. 63
9.2.1 Nicknames.......................................... 63
9.2.2 Channels........................................... 64
9.2.3 Servers............................................ 64
9.3 Algorithms.............................................. 64
10. Support and availability................................... 64
11. Security Considerations.................................... 65
12. Authors' Addresses......................................... 65
Note from the Webmaster: The page numbers correspond to the text file.
![]()
Comments about this page? Send them to
webmaster (at) invlogic.com.
Visitor #
since February 1st, 1997.
Return to Innovative Logic's Home Page.
Last modified: 17-Sep-2004 01:04PM.
Pages copyright ©1996-1997,
Innovative Web Creations.
All rights reserved.