Kaynağa Gözat

Remove local docs dir as we never use it

Change-Id: Ia62c9e06d3a3e0dbdc0c86e338cd9f63a9d14da1
Reviewed-on: http://gerrit.dmdirc.com/1530
Automatic-Compile: Greg Holmes <greg@dmdirc.com>
Reviewed-by: Greg Holmes <greg@dmdirc.com>
tags/0.6.5b1
Chris Smith 13 yıl önce
ebeveyn
işleme
a44ce921a0
5 değiştirilmiş dosya ile 0 ekleme ve 10174 silme
  1. 0
    3562
      docs/rfcs/RFC1459.txt
  2. 0
    561
      docs/rfcs/RFC2810.txt
  3. 0
    1065
      docs/rfcs/RFC2811.txt
  4. 0
    3529
      docs/rfcs/RFC2812.txt
  5. 0
    1457
      docs/rfcs/RFC2813.txt

+ 0
- 3562
docs/rfcs/RFC1459.txt
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 0
- 561
docs/rfcs/RFC2810.txt Dosyayı Görüntüle

@@ -1,561 +0,0 @@
1
-
2
-
3
-
4
-
5
-Network Working Group                                           C. Kalt
6
-Request for Comments: 2810                                   April 2000
7
-Updates: 1459
8
-Category: Informational
9
-
10
-
11
-                   Internet Relay Chat: Architecture
12
-
13
-Status of this Memo
14
-
15
-   This memo provides information for the Internet community.  It does
16
-   not specify an Internet standard of any kind.  Distribution of this
17
-   memo is unlimited.
18
-
19
-Copyright Notice
20
-
21
-   Copyright (C) The Internet Society (2000).  All Rights Reserved.
22
-
23
-Abstract
24
-
25
-   The IRC (Internet Relay Chat) protocol is for use with text based
26
-   conferencing. It has been developed since 1989 when it was originally
27
-   implemented as a mean for users on a BBS to chat amongst themselves.
28
-
29
-   First formally documented in May 1993 by RFC 1459 [IRC], the protocol
30
-   has kept evolving. This document is an update describing the
31
-   architecture of the current IRC protocol and the role of its
32
-   different components.  Other documents describe in detail the
33
-   protocol used between the various components defined here.
34
-
35
-Table of Contents
36
-
37
-   1.  Introduction ...............................................   2
38
-   2.  Components .................................................   2
39
-      2.1  Servers ................................................   2
40
-      2.2  Clients ................................................   3
41
-         2.2.1  User Clients ......................................   3
42
-         2.2.2  Service Clients ...................................   3
43
-   3.  Architecture ...............................................   3
44
-   4.  IRC Protocol Services ......................................   4
45
-      4.1  Client Locator .........................................   4
46
-      4.2  Message Relaying .......................................   4
47
-      4.3  Channel Hosting And Management .........................   4
48
-   5.  IRC Concepts ...............................................   4
49
-      5.1  One-To-One Communication ...............................   5
50
-      5.2  One-To-Many ............................................   5
51
-         5.2.1  To A Channel ......................................   5
52
-         5.2.2  To A Host/Server Mask .............................   6
53
-
54
-
55
-
56
-Kalt                         Informational                      [Page 1]
57
-
58
-RFC 2810           Internet Relay Chat: Architecture          April 2000
59
-
60
-
61
-         5.2.3  To A List .........................................   6
62
-      5.3  One-To-All .............................................   6
63
-         5.3.1  Client-to-Client ..................................   6
64
-         5.3.2  Client-to-Server ..................................   7
65
-         5.3.3  Server-to-Server ..................................   7
66
-   6.  Current Problems ...........................................   7
67
-      6.1  Scalability ............................................   7
68
-      6.2  Reliability ............................................   7
69
-      6.3  Network Congestion .....................................   7
70
-      6.4  Privacy ................................................   8
71
-   7.  Security Considerations ....................................   8
72
-   8.  Current Support And Availability ...........................   8
73
-   9.  Acknowledgements ...........................................   8
74
-   10.  References ................................................   8
75
-   11.  Author's Address ..........................................   9
76
-   12.  Full Copyright Statement ..................................  10
77
-
78
-1. Introduction
79
-
80
-   The IRC (Internet Relay Chat) protocol has been designed over a
81
-   number of years for use with text based conferencing.  This document
82
-   describes its current architecture.
83
-
84
-   The IRC Protocol is based on the client-server model, and is well
85
-   suited to running on many machines in a distributed fashion.  A
86
-   typical setup involves a single process (the server) forming a
87
-   central point for clients (or other servers) to connect to,
88
-   performing the required message delivery/multiplexing and other
89
-   functions.
90
-
91
-   This distributed model, which requires each server to have a copy
92
-   of the global state information, is still the most flagrant problem
93
-   of the protocol as it is a serious handicap, which limits the maximum
94
-   size a network can reach.  If the existing networks have been able to
95
-   keep growing at an incredible pace, we must thank hardware
96
-   manufacturers for giving us ever more powerful systems.
97
-
98
-2. Components
99
-
100
-   The following paragraphs define the basic components of the IRC
101
-   protocol.
102
-
103
-2.1 Servers
104
-
105
-   The server forms the backbone of IRC as it is the only component
106
-   of the protocol which is able to link all the other components
107
-   together: it provides a point to which clients may connect to talk to
108
-
109
-
110
-
111
-
112
-Kalt                         Informational                      [Page 2]
113
-
114
-RFC 2810           Internet Relay Chat: Architecture          April 2000
115
-
116
-
117
-   each other [IRC-CLIENT], and a point for other servers to connect to
118
-   [IRC-SERVER].  The server is also responsible for providing the basic
119
-   services defined by the IRC protocol.
120
-
121
-2.2 Clients
122
-
123
-   A client is anything connecting to a server that is not another
124
-   server.  There are two types of clients which both serve a different
125
-   purpose.
126
-
127
-2.2.1 User Clients
128
-
129
-   User clients are generally programs providing a text based
130
-   interface that is used to communicate interactively via IRC.  This
131
-   particular type of clients is often referred as "users".
132
-
133
-2.2.2 Service Clients
134
-
135
-   Unlike users, service clients are not intended to be used manually
136
-   nor for talking.  They have a more limited access to the chat
137
-   functions of the protocol, while optionally having access to more
138
-   private data from the servers.
139
-
140
-   Services are typically automatons used to provide some kind of
141
-   service (not necessarily related to IRC itself) to users.  An example
142
-   is a service collecting statistics about the origin of users
143
-   connected on the IRC network.
144
-
145
-3. Architecture
146
-
147
-   An IRC network is defined by a group of servers connected to each
148
-   other.  A single server forms the simplest IRC network.
149
-
150
-   The only network configuration allowed for IRC servers is that of
151
-   a spanning tree where each server acts as a central node for the rest
152
-   of the network it sees.
153
-
154
-                       1--\
155
-                           A        D---4
156
-                       2--/ \      /
157
-                             B----C
158
-                            /      \
159
-                           3        E
160
-
161
-   Servers: A, B, C, D, E         Clients: 1, 2, 3, 4
162
-
163
-                    [ Fig. 1. Sample small IRC network ]
164
-
165
-
166
-
167
-
168
-Kalt                         Informational                      [Page 3]
169
-
170
-RFC 2810           Internet Relay Chat: Architecture          April 2000
171
-
172
-
173
-   The IRC protocol provides no mean for two clients to directly
174
-   communicate.  All communication between clients is relayed by the
175
-   server(s).
176
-
177
-4. IRC Protocol Services
178
-
179
-   This section describes the services offered by the IRC protocol.  The
180
-   combination of these services allow real-time conferencing.
181
-
182
-4.1 Client Locator
183
-
184
-   To be able to exchange messages, two clients must be able to locate
185
-   each other.
186
-
187
-   Upon connecting to a server, a client registers using a label which
188
-   is then used by other servers and clients to know where the client is
189
-   located.  Servers are responsible for keeping track of all the labels
190
-   being used.
191
-
192
-4.2 Message Relaying
193
-
194
-   The IRC protocol provides no mean for two clients to directly
195
-   communicate.  All communication between clients is relayed by the
196
-   server(s).
197
-
198
-4.3 Channel Hosting And Management
199
-
200
-   A channel is a named group of one or more users which will all
201
-   receive messages addressed to that channel.  A channel is
202
-   characterized by its name and current members, it also has a set of
203
-   properties which can be manipulated by (some of) its members.
204
-
205
-   Channels provide a mean for a message to be sent to several clients.
206
-   Servers host channels, providing the necessary message multiplexing.
207
-   Servers are also responsible for managing channels by keeping track
208
-   of the channel members.  The exact role of servers is defined in
209
-   "Internet Relay Chat: Channel Management" [IRC-CHAN].
210
-
211
-5. IRC Concepts
212
-
213
-   This section is devoted to describing the actual concepts behind the
214
-   organization of the IRC protocol and how different classes of
215
-   messages are delivered.
216
-
217
-
218
-
219
-
220
-
221
-
222
-
223
-
224
-Kalt                         Informational                      [Page 4]
225
-
226
-RFC 2810           Internet Relay Chat: Architecture          April 2000
227
-
228
-
229
-5.1 One-To-One Communication
230
-
231
-   Communication on a one-to-one basis is usually performed by clients,
232
-   since most server-server traffic is not a result of servers talking
233
-   only to each other.  To provide a means for clients to talk to each
234
-   other, it is REQUIRED that all servers be able to send a message in
235
-   exactly one direction along the spanning tree in order to reach any
236
-   client.  Thus the path of a message being delivered is the shortest
237
-   path between any two points on the spanning tree.
238
-
239
-   The following examples all refer to Figure 1 above.
240
-
241
-   Example 1: A message between clients 1 and 2 is only seen by server
242
-       A, which sends it straight to client 2.
243
-
244
-   Example 2: A message between clients 1 and 3 is seen by servers A &
245
-       B, and client 3.  No other clients or servers are allowed see the
246
-       message.
247
-
248
-   Example 3: A message between clients 2 and 4 is seen by servers A, B,
249
-       C & D and client 4 only.
250
-
251
-5.2 One-To-Many
252
-
253
-   The main goal of IRC is to provide a forum which allows easy and
254
-   efficient conferencing (one to many conversations).  IRC offers
255
-   several means to achieve this, each serving its own purpose.
256
-
257
-5.2.1 To A Channel
258
-
259
-   In IRC the channel has a role equivalent to that of the multicast
260
-   group; their existence is dynamic and the actual conversation carried
261
-   out on a channel MUST only be sent to servers which are supporting
262
-   users on a given channel.  Moreover, the message SHALL only be sent
263
-   once to every local link as each server is responsible to fan the
264
-   original message to ensure that it will reach all the recipients.
265
-
266
-   The following examples all refer to Figure 2.
267
-
268
-   Example 4: Any channel with 1 client in it. Messages to the channel
269
-       go to the server and then nowhere else.
270
-
271
-   Example 5: 2 clients in a channel. All messages traverse a path as if
272
-       they were private messages between the two clients outside a
273
-       channel.
274
-
275
-
276
-
277
-
278
-
279
-
280
-Kalt                         Informational                      [Page 5]
281
-
282
-RFC 2810           Internet Relay Chat: Architecture          April 2000
283
-
284
-
285
-   Example 6: Clients 1, 2 and 3 in a channel.  All messages to the
286
-       channel are sent to all clients and only those servers which must
287
-       be traversed by the message if it were a private message to a
288
-       single client.  If client 1 sends a message, it goes back to
289
-       client 2 and then via server B to client 3.
290
-
291
-5.2.2 To A Host/Server Mask
292
-
293
-   To provide with some mechanism to send messages to a large body of
294
-   related users, host and server mask messages are available.  These
295
-   messages are sent to users whose host or server information match
296
-   that of the mask.  The messages are only sent to locations where
297
-   users are, in a fashion similar to that of channels.
298
-
299
-5.2.3 To A List
300
-
301
-   The least efficient style of one-to-many conversation is through
302
-   clients talking to a 'list' of targets (client, channel, mask).  How
303
-   this is done is almost self explanatory: the client gives a list of
304
-   destinations to which the message is to be delivered and the server
305
-   breaks it up and dispatches a separate copy of the message to each
306
-   given destination.
307
-
308
-   This is not as efficient as using a channel since the destination
309
-   list MAY be broken up and the dispatch sent without checking to make
310
-   sure duplicates aren't sent down each path.
311
-
312
-5.3 One-To-All
313
-
314
-   The one-to-all type of message is better described as a broadcast
315
-   message, sent to all clients or servers or both.  On a large network
316
-   of users and servers, a single message can result in a lot of traffic
317
-   being sent over the network in an effort to reach all of the desired
318
-   destinations.
319
-
320
-   For some class of messages, there is no option but to broadcast it to
321
-   all servers so that the state information held by each server is
322
-   consistent between servers.
323
-
324
-5.3.1 Client-to-Client
325
-
326
-   There is no class of message which, from a single message, results in
327
-   a message being sent to every other client.
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-Kalt                         Informational                      [Page 6]
337
-
338
-RFC 2810           Internet Relay Chat: Architecture          April 2000
339
-
340
-
341
-5.3.2 Client-to-Server
342
-
343
-   Most of the commands which result in a change of state information
344
-   (such as channel membership, channel mode, user status, etc.) MUST be
345
-   sent to all servers by default, and this distribution SHALL NOT be
346
-   changed by the client.
347
-
348
-5.3.3 Server-to-Server
349
-
350
-   While most messages between servers are distributed to all 'other'
351
-   servers, this is only required for any message that affects a user,
352
-   channel or server.  Since these are the basic items found in IRC,
353
-   nearly all messages originating from a server are broadcast to all
354
-   other connected servers.
355
-
356
-6. Current Problems
357
-
358
-   There are a number of recognized problems with this protocol, this
359
-   section only addresses the problems related to the architecture of
360
-   the protocol.
361
-
362
-6.1 Scalability
363
-
364
-   It is widely recognized that this protocol does not scale
365
-   sufficiently well when used in a large arena.  The main problem comes
366
-   from the requirement that all servers know about all other servers,
367
-   clients and channels and that information regarding them be updated
368
-   as soon as it changes.
369
-
370
-6.2 Reliability
371
-
372
-   As the only network configuration allowed for IRC servers is that of
373
-   a spanning tree, each link between two servers is an obvious and
374
-   quite serious point of failure.  This particular issue is addressed
375
-   more in detail in "Internet Relay Chat: Server Protocol" [IRC-
376
-   SERVER].
377
-
378
-6.3 Network Congestion
379
-
380
-   Another problem related to the scalability and reliability issues, as
381
-   well as the spanning tree architecture, is that the protocol and
382
-   architecture for IRC are extremely vulnerable to network congestions.
383
-   This problem is endemic, and should be solved for the next
384
-   generation: if congestion and high traffic volume cause a link
385
-   between two servers to fail, not only this failure generates more
386
-   network traffic, but the reconnection (eventually elsewhere) of two
387
-   servers also generates more traffic.
388
-
389
-
390
-
391
-
392
-Kalt                         Informational                      [Page 7]
393
-
394
-RFC 2810           Internet Relay Chat: Architecture          April 2000
395
-
396
-
397
-   In an attempt to minimize the impact of these problems, it is
398
-   strongly RECOMMENDED that servers do not automatically try to
399
-   reconnect too fast, in order to avoid aggravating the situation.
400
-
401
-6.4 Privacy
402
-
403
-   Besides not scaling well, the fact that servers need to know all
404
-   information about other entities, the issue of privacy is also a
405
-   concern. This is in particular true for channels, as the related
406
-   information is quite a lot more revealing than whether a user is
407
-   online or not.
408
-
409
-7. Security Considerations
410
-
411
-   Asides from the privacy concerns mentioned in section 6.4 (Privacy),
412
-   security is believed to be irrelevant to this document.
413
-
414
-8. Current Support And Availability
415
-
416
-        Mailing lists for IRC related discussion:
417
-          General discussion: ircd-users@irc.org
418
-          Protocol development: ircd-dev@irc.org
419
-
420
-        Software implementations:
421
-          ftp://ftp.irc.org/irc/server
422
-          ftp://ftp.funet.fi/pub/unix/irc
423
-          ftp://coombs.anu.edu.au/pub/irc
424
-
425
-        Newsgroup: alt.irc
426
-
427
-9. Acknowledgements
428
-
429
-   Parts of this document were copied from the RFC 1459 [IRC] which
430
-   first formally documented the IRC Protocol.  It has also benefited
431
-   from many rounds of review and comments.  In particular, the
432
-   following people have made significant contributions to this
433
-   document:
434
-
435
-   Matthew Green, Michael Neumayer, Volker Paulsen, Kurt Roeckx, Vesa
436
-   Ruokonen, Magnus Tjernstrom, Stefan Zehl.
437
-
438
-
439
-
440
-
441
-
442
-
443
-
444
-
445
-
446
-
447
-
448
-Kalt                         Informational                      [Page 8]
449
-
450
-RFC 2810           Internet Relay Chat: Architecture          April 2000
451
-
452
-
453
-10. References
454
-
455
-   [KEYWORDS]   Bradner, S., "Key words for use in RFCs to Indicate
456
-                Requirement Levels", BCP 14, RFC 2119, March 1997.
457
-
458
-   [IRC]        Oikarinen, J. and D. Reed, "Internet Relay Chat
459
-                Protocol", RFC 1459, May 1993.
460
-
461
-   [IRC-CLIENT] Kalt, C., "Internet Relay Chat: Client Protocol", RFC
462
-                2812, April 2000.
463
-
464
-   [IRC-SERVER] Kalt, C., "Internet Relay Chat: Server Protocol", RFC
465
-                2813, April 2000.
466
-
467
-   [IRC-CHAN]   Kalt, C., "Internet Relay Chat: Channel Management", RFC
468
-                2811, April 2000.
469
-
470
-11. Author's Address
471
-
472
-   Christophe Kalt
473
-   99 Teaneck Rd, Apt #117
474
-   Ridgefield Park, NJ 07660
475
-   USA
476
-
477
-   EMail: kalt@stealth.net
478
-
479
-
480
-
481
-
482
-
483
-
484
-
485
-
486
-
487
-
488
-
489
-
490
-
491
-
492
-
493
-
494
-
495
-
496
-
497
-
498
-
499
-
500
-
501
-
502
-
503
-
504
-Kalt                         Informational                      [Page 9]
505
-
506
-RFC 2810           Internet Relay Chat: Architecture          April 2000
507
-
508
-
509
-12.  Full Copyright Statement
510
-
511
-   Copyright (C) The Internet Society (2000).  All Rights Reserved.
512
-
513
-   This document and translations of it may be copied and furnished to
514
-   others, and derivative works that comment on or otherwise explain it
515
-   or assist in its implementation may be prepared, copied, published
516
-   and distributed, in whole or in part, without restriction of any
517
-   kind, provided that the above copyright notice and this paragraph are
518
-   included on all such copies and derivative works.  However, this
519
-   document itself may not be modified in any way, such as by removing
520
-   the copyright notice or references to the Internet Society or other
521
-   Internet organizations, except as needed for the purpose of
522
-   developing Internet standards in which case the procedures for
523
-   copyrights defined in the Internet Standards process must be
524
-   followed, or as required to translate it into languages other than
525
-   English.
526
-
527
-   The limited permissions granted above are perpetual and will not be
528
-   revoked by the Internet Society or its successors or assigns.
529
-
530
-   This document and the information contained herein is provided on an
531
-   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
532
-   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
533
-   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
534
-   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
535
-   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
536
-
537
-Acknowledgement
538
-
539
-   Funding for the RFC Editor function is currently provided by the
540
-   Internet Society.
541
-
542
-
543
-
544
-
545
-
546
-
547
-
548
-
549
-
550
-
551
-
552
-
553
-
554
-
555
-
556
-
557
-
558
-
559
-
560
-Kalt                         Informational                     [Page 10]
561
-

+ 0
- 1065
docs/rfcs/RFC2811.txt
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 0
- 3529
docs/rfcs/RFC2812.txt
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


+ 0
- 1457
docs/rfcs/RFC2813.txt
Dosya farkı çok büyük olduğundan ihmal edildi
Dosyayı Görüntüle


Loading…
İptal
Kaydet