|
|
1.1 root 1:
2:
3:
4: Standard for Interchange of USENET Messages
5:
6: Mark R. Horton
7:
8:
9:
10:
11: 1. Introduction
Introduction
Introduction
Introduction
12:
13: This document defines the standard format for interchange
14: of Network News articles among USENET sites. It describes
15: the format for articles themselves, and gives partial
16: standards for transmission of news. The news transmission
17: is not entirely standardized in order to give a good deal
18: of flexibility to the individual hosts to choose
19: transmission hardware and software, whether to batch news,
20: and so on.
21:
22: There are five sections to this document. Section two
23: section defines the format. Section three defines the
24: valid control messages. Section four specifies some valid
25: transmission methods. Section five describes the overall
26: news propagation algorithm.
27:
28:
29: 2. Article Format
Article Format
Article Format
Article Format
30:
31: The primary consideration in choosing an article format is
32: that it fit in with existing tools as well as possible.
33: Existing tools include both implementations of mail and
34: news. (The notesfiles system from the University of
__________
35: Illinois is considered a news implementation.) A standard
36: format for mail messages has existed for many years on the
37: ARPANET, and this format meets most of the needs of
38: USENET. Since the ARPANET format is extensible,
39: extensions to meet the additional needs of USENET are
40: easily made within the ARPANET standard. Therefore, the
41: rule is adopted that all USENET news articles must be
42: formatted as valid ARPANET mail messages, according to the
43: ARPANET standard RFC 822. This standard is more
44: restrictive than the ARPANET standard, placing additional
45: requirements on each article and forbidding use of certain
46: ARPANET features. However, it should always be possible
47: to use a tool expecting an ARPANET message to process a
48: news article. In any situation where this standard
49: conflicts with the ARPANET standard, RFC 822 should be
50: considered correct and this standard in error.
51:
52: An example message is included to illustrate the fields.
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70: - 2 -
71:
72:
73:
74: Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
75: Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
76: Path: cbosgd!mhuxj!mhuxt!eagle!jerry
77: From: [email protected] (Jerry Schwarz)
78: Newsgroups: net.general
79: Subject: Usenet Etiquette -- Please Read
80: Message-ID: <[email protected]>
81: Date: Friday, 19-Nov-82 16:14:55 EST
82: Followup-To: net.news
83: Expires: Saturday, 1-Jan-83 00:00:00 EST
84: Date-Received: Friday, 19-Nov-82 16:59:30 EST
85: Organization: Bell Labs, Murray Hill
86:
87: The body of the article comes here, after a blank line.
88:
89: Here is an example of a message in the old format (before
90: the existence of this standard). It is recommended that
91: implementations also accept articles in this format to
92: ease upward conversion.
93:
94: From: cbosgd!mhuxj!mhuxt!eagle!jerry (Jerry Schwarz)
95: Newsgroups: net.general
96: Title: Usenet Etiquette -- Please Read
97: Article-I.D.: eagle.642
98: Posted: Fri Nov 19 16:14:55 1982
99: Received: Fri Nov 19 16:59:30 1982
100: Expires: Mon Jan 1 00:00:00 1990
101:
102: The body of the article comes here, after a blank line.
103:
104: Some news systems transmit news in the ``A'' format, which
105: looks like this:
106:
107: Aeagle.642
108: net.general
109: cbosgd!mhuxj!mhuxt!eagle!jerry
110: Fri Nov 19 16:14:55 1982
111: Usenet Etiquette - Please Read
112: The body of the article comes here, with no blank line.
113:
114: An article consists of several header lines, followed by a
115: blank line, followed by the body of the message. The
116: header lines consist of a keyword, a colon, a blank, and
117: some additional information. This is a subset of the
118: ARPANET standard, simplified to allow simpler software to
119: handle it. The ``from'' line may optionally include a
120: full name, in the format above, or use the ARPANET angle
121: bracket syntax. To keep the implementations simple, other
122: formats (for example, with part of the machine address
123: after the close parenthesis) are not allowed. The ARPANET
124: convention of continuation header lines (beginning with a
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136: - 3 -
137:
138:
139:
140: blank or tab) is allowed.
141:
142: Certain headers are required, certain headers are
143: optional. Any unrecognized headers are allowed, and will
144: be passed through unchanged. The required headers are
145: Relay-Version, Posting-Version, From, Date, Newsgroups,
146: Subject, Message-ID, Path. The optional headers are
147: Followup-To, Date-Received, Expires, Reply-To, Sender,
148: References, Control, Distribution, Organization.
149:
150: 2.1 Required Headers
Required Headers
Required Headers
Required Headers
151:
152: 2.1.1 Relay-Version This header line shows the version
_____________
153: of the program responsible for the transmission of this
154: article over the immediate link, that is, the program that
155: is relaying the article from the next site. For example,
156: suppose site A sends an article to site B, and site B
157: forwards the article to site C. The message being
158: transmitted from A to B would have a Relay-Version header
159: identifying the program running on A, and the message
160: transmitted from B to C would identify the program running
161: on B. This header can be used to interpret older headers
162: in an upward compatible way. Relay-Version must always be
163: the first in a message; thus, all articles meeting this
164: standard will begin with an upper case ``R''. No other
165: restrictions are placed on the order of header lines.
166:
167: The line contains two fields, separated by semicolons.
168: The fields are the version and the full domain name of the
169: site. The version should identify the system program used
170: (e.g., ``B'') as well as a version number and version
171: date. For example, the header line might contain
172:
173: Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
174:
175: This header should not be passed on to additional sites.
176: A relay program, when passing an article on, should
177: include only its own Relay-Version, not the Relay-Version
178: of some other site. (For upward compatibility with older
179: software, if a Relay-Version is found in a header which is
180: not the first line, it should be assumed to be moved by an
181: older version of news and deleted.)
182:
183: 2.1.2 Posting-Version This header identifies the
_______________
184: software responsible for entering this message into the
185: network. It has the same format as Relay-Version. It
186: will normally identify the same site as the Message-ID,
187: unless the posting site is serving as a gateway for a
188: message that already contains a message ID generated by
189: mail. (While it is permissible for a gateway to use an
190: externally generated message ID, the message ID should be
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202: - 4 -
203:
204:
205:
206: checked to ensure it conforms to this standard and to RFC
207: 822.)
208:
209: 2.1.3 From The From line contains the electronic mailing
____
210: address of the person who sent the message, in the ARPA
211: internet syntax. It may optionally also contain the full
212: name of the person, in parentheses, after the electronic
213: address. The electronic address is the same as the entity
214: responsible for originating the article, unless the Sender
215: header is present, in which case the From header might not
216: be verified. Note that in all site and domain names,
217: upper and lower case are considered the same, thus
218: [email protected], [email protected], and [email protected]
219: are all equivalent. User names may or may not be case
220: sensitive, for example, [email protected] might be
221: different from [email protected]. Programs should avoid
222: changing the case of electronic addresses when forwarding
223: news or mail.
224:
225: RFC 822 specifies that all text in parentheses is to be
226: interpreted as a comment. It is common in ARPANET mail to
227: place the full name of the user in a comment at the end of
228: the From line. This standard specifies a more rigid
229: syntax. The full name is not considered a comment, but an
230: optional part of the header line. Either the full name is
231: omitted, or it appears in parentheses after the electronic
232: address of the person posting the article, or it appears
233: before an electronic address enclosed in angle brackets.
234: Thus, the three permissible forms are:
235:
236: From: [email protected]
237: From: [email protected] (Mark Horton)
238: From: Mark Horton <[email protected]>
239:
240: Full names may contain any printing ASCII characters from
241: space through tilde, with the exceptions that they may not
242: contain parentheses ``('' or ``)'', or angle brackets
243: ``<'' or ``>''. Additional restrictions may be placed on
244: full names by the mail standard, in particular, the
245: characters comma ``,'', colon ``:'', and semicolon ``;''
246: are inadvisable in full names.
247:
248: 2.1.4 Date The Date line (formerly ``Posted'') is the
____
249: date, in a format that must be acceptable both to the
250: ARPANET and to the getdate routine, that the article was
251: originally posted to the network. This date remains
252: unchanged as the article is propagated throughout the
253: network. One format that is acceptable to both is
254:
255: Weekday, DD-Mon-YY HH:MM:SS TIMEZONE
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268: - 5 -
269:
270:
271:
272: Several examples of valid dates appear in the sample
273: article above. Note in particular that ctime format:
274:
275: Wdy Mon DD HH:MM:SS YYYY
276:
277: is not acceptable because it is not a valid ARPANET date.
___
278: However, since older software still generates this format,
279: news implementations are encouraged to accept this format
280: and translate it into an acceptable format.
281:
282: The contents of the TIMEZONE field is currently subject to
283: revision. Eventually, we hope to accept all possible
284: worldwide time zone abbreviations, including the usual
285: American zones (PST, PDT, MST, MDT, CST, CDT, EST, EDT),
286: the other North American zones (Bering through
287: Newfoundland), European zones, Australian zones, and so
288: on. Lacking a complete list at present (and unsure if an
289: unambiguous list exists), authors of software are
290: encouraged to keep this code flexible, and in particular
291: not to assume that time zone names are exactly three
292: letters long. Implementations are free to edit this
293: field, keeping the time the same, but changing the time
294: zone (with an appropriate adjustment to the local time
295: shown) to a known time zone.
296:
297: 2.1.5 Newsgroups The Newsgroups line specifies which
__________
298: newsgroup or newsgroups the article belongs in. Multiple
299: newsgroups may be specified, separated by a comma.
300: Newsgroups specified must all be the names of existing
301: newsgroups, as no new newsgroups will be created by simply
302: posting to them.
303:
304: Wildcards (e.g., the word ``all'') are never allowed in a
305: Newsgroups line. For example, a newsgroup ``net.all'' is
306: illegal, although a newsgroup name ``net.sport.football''
307: is permitted.
308:
309: If an article is received with a Newsgroups line listing
310: some valid newsgroups and some invalid newsgroups, a site
311: should not remove invalid newsgroups from the list.
312: Instead, the invalid newsgroups should be ignored. For
313: example, suppose site A subscribes to the classes
314: ``btl.all'' and ``net.all'', and exchanges news articles
315: with site B, which subscribes to ``net.all'' but not
316: ``btl.all''. Suppose A receives an article with
317: ``Newsgroups: net.micro,btl.general''. This article is
318: passed on to B because B receives net.micro, but B does
319: not receive btl.general. A must leave the Newsgroup line
320: unchanged. If it were to remove ``btl.general'', the
321: edited header could eventually reenter the ``btl.all''
322: class, resulting in an article that is not shown to users
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334: - 6 -
335:
336:
337:
338: subscribing to ``btl.general''. Also, followups from
339: outside ``btl.all'' would not be shown to such users.
340:
341: 2.1.6 Subject The Subject line (formerly ``Title'')
_______
342: tells what the article is about. It should be suggestive
343: enough of the contents of the article to enable a reader
344: to make a decision whether to read the article based on
345: the subject alone. If the article is submitted in
346: response to another article (e.g., is a ``followup'') the
347: default subject should begin with the four characters
348: ``Re: '' and the References line is required. (The user
349: might wish to edit the subject of the followup, but the
350: default should begin with ``Re: ''.)
351:
352: 2.1.7 Message-ID The Message-ID line gives the article a
__________
353: unique identifier. The same message ID may not be reused
354: during the lifetime of any article with the same message
355: ID. (It is recommended that no message ID be reused for
356: at least two years.) Message ID's have the syntax
357:
358: "<" "string not containing blank or >" ">"
359:
360: In order to conform to RFC 822, the Message-ID must have
361: the format
362:
363: "<" "unique" "@" "full domain name" ">"
364:
365: where ``full domain name'' is the full name of the host at
366: which the article entered the network, including a domain
367: that host is in, and unique is any string of printing
368: ASCII characters, not including "<", ">", or "@". For
369: example, the "unique" part could be an integer
370: representing a sequence number for articles submitted to
371: the network, or a short string derived from the date and
372: time the article was created. For example, valid message
373: ID for an article submitted from site ucbvax in domain
374: Berkeley.ARPA would be "<[email protected]>".
375: Programmers are urged not to make assumptions about the
376: content of message ID fields from other hosts, but to
377: treat them as unknown character strings. It is not safe,
378: for example, to assume that a message ID will be under 14
379: characters, nor that it is unique in the first 14
380: characters.
381:
382: The angle brackets are considered part of the message ID.
383: Thus, in references to the message ID, such as the
384: ihave/sendme and cancel control messages, the angle
385: brackets are included. White space characters (e.g.,
386: blank and tab) are not allowed in a message ID. All
387: characters between the angle brackets must be printing
388: ASCII characters.
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400: - 7 -
401:
402:
403:
404: 2.1.8 Path This line shows the path the article took to
____
405: reach the current system. When a system forwards the
406: message, it should add its own name to the list of systems
407: in the Path line. The names may be separated by any
408: punctuation character or characters, thus
409: ``cbosgd!mhuxj!mhuxt'', ``cbosgd, mhuxj, mhuxt'', and
410: ``@cbosgd.uucp,@mhuxj.uucp,@mhuxt.uucp'' and even
411: ``teklabs, zehntel, sri-unix@cca!decvax'' are valid
412: entries. (The latter path indicates a message that passed
413: through decvax, cca, sri-unix, zehntel, and teklabs, in
414: that order.) Additional names should be added from the
415: left, for example, the most recently added name in the
416: third example was ``teklabs''. Letters, digits, periods
417: and hyphens are considered part of site names; other
418: punctuation, including blanks, are considered separators.
419:
420: Normally, the rightmost name will be the name of the
421: originating system. However, it is also permissible to
422: include an extra entry on the right, which is the name of
423: the sender. This is for upward compatibility with older
424: system.
425:
426: The Path line is not used for replies, and should not be
427: taken as a mailing address. It is intended to show the
428: route the message travelled to reach the local site.
429: There are several uses for this information. One is to
430: monitor USENET routing for performance reasons. Another
431: is to establish a path to reach new sites. Perhaps the
432: most important is to cut down on redundant USENET traffic
433: by failing to forward a message to a site that is known to
434: have already received it. In particular, when site A
435: sends an article to site B, the Path line includes ``A'',
436: so that site B will not immediately send the article back
437: to site A. The site name each site uses to identify
438: itself should be the same as the name by which its
439: neighbors know it, in order to make this optimization
440: possible.
441:
442: A site adds its own name to the front of a path when it
443: receives a message from another site. Thus, if a message
444: with path A!X!Y!Z is passed from site A to site B, B will
445: add its own name to the path when it receives the message
446: from A, e.g., B!A!X!Y!Z. If B then passes the message on
447: to C, the message sent to C will contain the path
448: B!A!X!Y!Z, and when C receives it, C will change it to
449: C!B!A!X!Y!Z.
450:
451: Special upward compatibility note: Since the From, Sender,
452: and Reply-To lines are in internet format, and since many
453: USENET sites do not yet have mailers capable of
454: understanding internet format, it would break the reply
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466: - 8 -
467:
468:
469:
470: capability to completely sever the connection between the
471: Path header and the reply function. Thus, sites are
472: required to continue to keep the Path line in a working
473: reply format as much as possible, until January 1, 1984.
474: It is recognized that the path is not always a valid reply
475: string in older implementations, and no requirement to fix
476: this problem is placed on implementations. However, the
477: existing convention of placing the site name and an ``!''
478: at the front of the path, and of starting the path with
479: the site name, an ``!'', and the user name, should be
480: maintained at least until 1984.
481:
482: 2.2 Optional Headers
Optional Headers
Optional Headers
Optional Headers
483:
484: 2.2.1 Reply-To This line has the same format as From.
________
485: If present, mailed replies to the author should be sent to
486: the name given here. Otherwise, replies are mailed to the
487: name on the From line. (This does not prevent additional
488: copies from being sent to recipients named by the replier,
489: or on To or Cc lines.) The full name may be optionally
490: given, in parentheses, as in the From line.
491:
492: 2.2.2 Sender This field is present only if the submitter
______
493: manually enters a From line. It is intended to record the
494: entity responsible for submitting the article to the
495: network, and should be verified by the software at the
496: submitting site.
497:
498: For example, if John Smith is visiting CCA and wishes to
499: post an article to the network, using friend Sarah Jones
500: account, the message might read
501:
502: From: [email protected] (John Smith)
503: Sender: [email protected] (Sarah Jones)
504:
505: If a gateway program enters a mail message into the
506: network at site sri-unix, the lines might read
507:
508: From: [email protected]
509: Sender: [email protected]
510:
511: The primary purpose of this field is to be able to track
512: down articles to determine how they were entered into the
513: network. The full name may be optionally given, in
514: parentheses, as in the From line.
515:
516: 2.2.3 Followup-To This line has the same format as
___________
517: Newsgroups. If present, follow-up articles are to be
518: posted to the newsgroup(s) listed here. If this line is
519: not present, followups are posted to the newsgroup(s)
520: listed in the Newsgroups line, except that followups to
521:
522:
523:
524:
525:
526:
527:
528:
529:
530:
531:
532: - 9 -
533:
534:
535:
536: ``net.general'' should instead go to ``net.followup''.
537:
538: 2.2.4 Date-Received This line (formerly ``Received'') is
_____________
539: in a legal USENET date format. It records the date and
540: time that the article was first received on the local
541: system. If this line is present in an article being
542: transmitted from one host to another, the receiving host
543: should ignore it and replace it with the current date.
544: Since this field is intended for local use only, no site
545: is required to support it. However, no site should pass
546: this field on to another site unchanged.
547:
548: 2.2.5 Expires This line, if present, is in a legal
_______
549: USENET date format. It specifies a suggested expiration
550: date for the article. If not present, the local default
551: expiration date is used.
552:
553: This field is intended to be used to clean up articles
554: with a limited usefulness, or to keep important articles
555: around for longer than usual. For example, a message
556: announcing an upcoming seminar could have an expiration
557: date the day after the seminar, since the message is not
558: useful after the seminar is over. Since local sites have
559: local policies for expiration of news (depending on
560: available disk space, for instance), users are discouraged
561: from providing expiration dates for articles unless there
562: is a natural expiration date associated with the topic.
563: System software should almost never provide a default
564: Expires line. Leave it out and allow local policies to be
565: used unless there is a good reason not to.
566:
567: 2.2.6 References This field lists the message ID's of
__________
568: any articles prompting the submission of this article. It
569: is required for all follow-up articles, and forbidden when
570: a new subject is raised. Implementations should provide a
571: follow-up command, which allows a user to post a follow-up
572: article. This command should generate a Subject line
573: which is the same as the original article, except that if
574: the original subject does not begin with ``Re: '' or ``re:
575: '', the four characters ``Re: '' are inserted before the
576: subject. If there is no References line on the original
577: header, the References line should contain the message ID
578: of the original article (including the angle brackets).
579: If the original article does have a References line, the
580: followup article should have a References line containing
581: the text of the original References line, a blank, and the
582: message ID of the original article.
583:
584: The purpose of the References header is to allow articles
585: to be grouped into conversations by the user interface
586: program. This allows conversations within a newsgroup to
587:
588:
589:
590:
591:
592:
593:
594:
595:
596:
597:
598: - 10 -
599:
600:
601:
602: be kept together, and potentially users might shut off
603: entire conversations without unsubscribing to a newsgroup.
604: User interfaces may not make use of this header, but all
605: automatically generated followups should generate the
606: References line for the benefit of systems that do use it,
607: and manually generated followups (e.g. typed in well after
608: the original article has been printed by the machine)
609: should be encouraged to include them as well.
610:
611: 2.2.7 Control If an article contains a Control line, the
_______
612: article is a control message. Control messages are used
613: for communication among USENET host machines, not to be
614: read by users. Control messages are distributed by the
615: same newsgroup mechanism as ordinary messages. The body
616: of the Control header line is the message to the host.
617:
618: For upward compatibility, messages that match the
619: newsgroup pattern ``all.all.ctl'' should also be
620: interpreted as control messages. If no Control: header is
621: present on such messages, the subject is used as the
622: control message. However, messages on newsgroups matching
623: this pattern do not conform to this standard.
624:
625: 2.2.8 Distribution This line is used to alter the
____________
626: distribution scope of the message. It has the same format
627: as the Newsgroups line. User subscriptions are still
628: controlled by Newsgroups, but the message is sent to all
629: systems subscribing to the newsgroups on the Distribution
630: line instead of the Newsgroups line. Thus, a car for sale
631: in New Jersey might have headers including
632:
633: Newsgroups: net.auto,net.wanted
634: Distribution: nj.all
635:
636: so that it would only go to persons subscribing to
637: net.auto or net.wanted within New Jersey. The intent of
638: this header is to further restrict the distribution of a
639: newsgroup, not to increase it. A local newsgroup, such as
640: nj.crazy-eddie, will probably not be propagated by sites
641: outside New Jersey that do not show such a newsgroup as
642: valid. Wildcards in newsgroup names in the Distribution
643: line are allowed. Followup articles should default to the
644: same Distribution line as the original article, but the
645: user can change it to a more limited one, or escalate the
646: distribution if it was originally restricted and a more
647: widely distributed reply is appropriate.
648:
649: 2.2.9 Organization The text of this line is a short
____________
650: phrase describing the organization to which the sender
651: belongs, or to which the machine belongs. The intent of
652: this line is to help identify the person posting the
653:
654:
655:
656:
657:
658:
659:
660:
661:
662:
663:
664: - 11 -
665:
666:
667:
668: message, since site names are often cryptic enough to make
669: it hard to recognize the organization by the electronic
670: address.
671:
672:
673: 3. Control Messages
Control Messages
Control Messages
Control Messages
674:
675: This section lists the control messages currently defined.
676: The body of the Control header is the control message.
677: Messages are a sequence of zero or more words, separated
678: by white space (blanks or tabs). The first word is the
679: name of the control message, remaining words are
680: parameters to the message. The remainder of the header
681: and the body of the message are also potential parameters;
682: for example, the From line might suggest an address to
683: which a response is to be mailed.
684:
685: Implementors and administrators may choose to allow
686: control messages to be automatically carried out, or to
687: queue them for manual processing. However, manually
688: processed messages should be dealt with promptly.
689:
690: 3.1 Cancel
Cancel
Cancel
Cancel
691:
692: cancel <message ID>
693:
694: If an article with the given message ID is present on the
695: local system, the article is cancelled. This mechanism
696: allows a user to cancel an article after the article has
697: been distributed over the network.
698:
699: Only the author of the article or the local super user is
700: allowed to use this message. The verified sender of a
701: message is the Sender line, or if no Sender line is
702: present, the From line. The verified sender of the cancel
703: message must be the same as either the Sender or From
704: field of the original message. A verified sender in the
705: cancel message is allowed to match an unverified From in
706: the original message.
707:
708: 3.2 Ihave/Sendme
Ihave/Sendme
Ihave/Sendme
Ihave/Sendme
709:
710: ihave <message ID list> <remotesys>
711: sendme <message ID list> <remotesys>
712:
713: This message is part of the ``ihave/sendme'' protocol,
714: which allows one site (say ``A'') to tell another site
715: (``B'') that a particular message has been received on A.
716: Suppose that site A receives article ``ucbvax.1234'', and
717: wishes to transmit the article to site B. A sends the
718: control message ``ihave ucbvax.1234 A'' to site B (by
719:
720:
721:
722:
723:
724:
725:
726:
727:
728:
729:
730: - 12 -
731:
732:
733:
734: posting it to newsgroup ``to.B''). B responds with the
735: control message ``sendme ucbvax.1234 B'' (on newsgroup
736: to.A) if it has not already received the article. Upon
737: receiving the Sendme message, A sends the article to B.
738:
739: This protocol can be used to cut down on redundant traffic
740: between sites. It is optional and should be used only if
741: the particular situation makes it worthwhile. Frequently,
742: the outcome is that, since most original messages are
743: short, and since there is a high overhead to start sending
744: a new message with UUCP, it costs as much to send the
745: Ihave as it would cost to send the article itself.
746:
747: One possible solution to this overhead problem is to batch
748: requests. Several message ID's may be announced or
749: requested in one message. If no message ID's are listed
750: in the control message, the body of the message should be
751: scanned for message ID's, one per line.
752:
753: 3.3 Newgroup
Newgroup
Newgroup
Newgroup
754:
755: newgroup <groupname>
756:
757: This control message creates a new newsgroup with the name
758: given. Since no articles may be posted or forwarded until
759: a newsgroup is created, this message is required before a
760: newsgroup can be used. The body of the message is
761: expected to be a short paragraph describing the intended
762: use of the newsgroup.
763:
764: 3.4 Rmgroup
Rmgroup
Rmgroup
Rmgroup
765:
766: rmgroup <groupname>
767:
768: This message removes a newsgroup with the given name.
769: Since the newsgroup is removed from every site on the
770: network, this command should be used carefully by a
771: responsible administrator.
772:
773: 3.5 Sendsys
Sendsys
Sendsys
Sendsys
774:
775: sendsys (no arguments)
776:
777: The ``sys'' file, listing all neighbors and which
778: newsgroups are sent to each neighbor, will be mailed to
779: the author of the control message (Reply-to, if present,
780: otherwise From). This information is considered public
781: information, and it is a requirement of membership in
782: USENET that this information be provided on request,
783: either automatically in response to this control message,
784: or manually, by mailing the requested information to the
785:
786:
787:
788:
789:
790:
791:
792:
793:
794:
795:
796: - 13 -
797:
798:
799:
800: author of the message. This information is used to keep
801: the map of USENET up to date, and to determine where
802: netnews is sent.
803:
804: The format of the file mailed back to the author should be
805: the same as that of the ``sys'' file. This format has one
806: line per neighboring site (plus one line for the local
807: site), containing four colon separated fields. The first
808: field has the site name of the neighbor, the second field
809: has a newsgroup pattern describing the newsgroups sent to
810: the neighbor. The third and fourth fields are not defined
811: by this standard. A sample response:
812:
813: From cbosgd!mark Sun Mar 27 20:39:37 1983
814: Subject: response to your sendsys request
815: To: [email protected]
816:
817: Responding-System: cbosgd.UUCP
818: cbosgd:osg,cb,btl,bell,net,fa,to,test
819: ucbvax:net,fa,to.ucbvax:L:
820: cbosg:net,fa,bell,btl,cb,osg,to.cbosg:F:/usr/spool/outnews/cbosg
821: cbosgb:osg,to.cbosgb:F:/usr/spool/outnews/cbosgb
822: sescent:net,fa,bell,btl,cb,to.sescent:F:/usr/spool/outnews/sescent
823: npois:net,fa,bell,btl,ug,to.npois:F:/usr/spool/outnews/npois
824: mhuxi:net,fa,bell,btl,ug,to.mhuxi:F:/usr/spool/outnews/mhuxi
825:
826: 3.6 Senduuname
Senduuname
Senduuname
Senduuname
827:
828: senduuname (no arguments)
829:
830: The ``uuname'' program is run, and the output is mailed to
831: the author of the control message (Reply-to, if present,
832: otherwise From). This program lists all uucp neighbors of
833: the local site. This information is used to make maps of
834: the UUCP network. The sys file is not the same as the
___
835: UUCP L.sys file. The L.sys file should never be
_____
836: transmitted to another party without the consent of the
837: sites whose passwords are listed therein.
838:
839: It is optional for a site to provide this information.
840: Some reply should be made to the author of the control
841: message, so that a transmission error won't be blamed. It
842: is also permissible for a site to run the uuname program
843: (or in some other way determine the uucp neighbors) and
844: edit the output, either automatically or manually, before
845: mailing the reply back to the author. The file should
846: contain one site per line, beginning with the uucp site
847: name. Additional information may be included, separated
848: from the site name by a blank or tab. The phone number or
849: password for the site should NOT be included, as the reply
850: is considered to be in the public domain. (The uuname
851:
852:
853:
854:
855:
856:
857:
858:
859:
860:
861:
862: - 14 -
863:
864:
865:
866: program will send only the site name and not the entire
867: contents of the L.sys file, thus, phone numbers and
868: passwords are not transmitted.)
869:
870: The purpose of this message is to generate and maintain
871: UUCP mail routing maps. Thus, connections over which mail
872: can be sent using the site!user syntax should be included,
873: regardless of whether the link is actually a UUCP link at
874: the physical level. If a mail router should use it, it
875: should be included. Since all information sent in
876: response to this message is optional, sites are free to
877: edit the list, deleting secret or private links they do
878: not wish to publicise.
879:
880: 3.7 Version
Version
Version
Version
881:
882: version (no arguments)
883:
884: The name and version of the software running on the local
885: system is to be mailed back to the author of the article
886: (Reply-to if present, otherwise From).
887:
888:
889: 4. Transmission Methods
Transmission Methods
Transmission Methods
Transmission Methods
890:
891: USENET is not a physical network, but rather a logical
892: network resting on top of several existing physical
893: networks. These networks include, but are not limited to,
894: UUCP, the ARPANET, an Ethernet, the BLICN network, an NSC
895: Hyperchannel, and a Berknet. What is important is that
896: two neighboring systems on USENET have some method to get
897: a new article, in the format listed here, from one system
898: to the other, and once on the receiving system, processed
899: by the netnews software on that system. (On UNIX systems,
900: this usually means the ``rnews'' program being run with
901: the article on the standard input.)
902:
903: It is not a requirement that USENET sites have mail
904: systems capable of understanding the ARPA Internet mail
905: syntax, but it is strongly recommended. Since From,
906: Reply-To, and Sender lines use the Internet syntax,
907: replies will be difficult or impossible without an
908: internet mailer. A site without an internet mailer can
909: attempt to use the Path header line for replies, but this
910: field is not guaranteed to be a working path for replies.
911: In any event, any site generating or forwarding news
912: messages must have an internet address that allows them to
913: receive mail from sites with internet mailers, and they
914: must include their internet address on their From line.
915:
916:
917:
918:
919:
920:
921:
922:
923:
924:
925:
926:
927:
928: - 15 -
929:
930:
931:
932: 4.1 Remote Execution
Remote Execution
Remote Execution
Remote Execution
933:
934: Some networks permit direct remote command execution. On
935: these networks, news may be forwarded by spooling the
936: rnews command with the article on the standard input. For
937: example, if the remote system is called ``remote'', news
938: would be sent over a UUCP link with the command ``uux -
939: remote!rnews'', and on a Berknet, ``net -mremote rnews''.
940: It is important that the article be sent via a reliable
941: mechansim, normally involving the possibility of spooling,
942: rather than direct real-time remote execution. This is
943: because, if the remote system is down, a direct execution
944: command will fail, and the article will never be
945: delivered. If the article is spooled, it will eventually
946: be delivered when both systems are up.
947:
948: 4.2 Transfer by Mail
Transfer by Mail
Transfer by Mail
Transfer by Mail
949:
950: On some systems, direct remote spooled execution is not
951: possible. However, most systems support electronic mail,
952: and a news article can be sent as mail. One approach is
953: to send a mail message which is identical to the news
954: message: the mail headers are the news headers, and the
955: mail body is the news body. By convention, this mail is
956: sent to the user ``newsmail'' on the remote machine.
957:
958: One problem with this method is that it may not be
959: possible to convince the mail system that the From line of
960: the message is valid, since the mail message was generated
961: by a program on a system different from the source of the
962: news article. Another problem is that error messages
963: caused by the mail transmission would be sent to the
964: originator of the news article, who has no control over
965: news transmission between two cooperating hosts and does
966: not know who to contact. Transmission error messages
967: should be directed to a responsible contact person on the
968: sending machine.
969:
970: A solution to this problem is to encapsulate the news
971: article into a mail message, such that the entire article
972: (headers and body) are part of the body of the mail
973: message. The convention here is that such mail is sent to
974: user ``rnews'' on the remote system. A mail message body
975: is generated by prepending the letter ``N'' to each line
976: of the news article, and then attaching whatever mail
977: headers are convenient to generate. The N's are attached
978: to prevent any special lines in the news article from
979: interfering with mail transmission, and to prevent any
980: extra lines inserted by the mailer (headers, blank lines,
981: etc.) from becoming part of the news article. A program
982: on the receiving machine receives mail to ``rnews'',
983:
984:
985:
986:
987:
988:
989:
990:
991:
992:
993:
994: - 16 -
995:
996:
997:
998: extracting the article itself and invoking the ``rnews''
999: program. An example in this format might look like this:
1000:
1001: Date: Monday, 3-Jan-83 08:33:47 MST
1002: From: [email protected]
1003: Subject: network news article
1004: To: [email protected]
1005:
1006: NRelay-Version: B 2.10 2/13/83 cbosgd.UUCP
1007: NPosting-Version: B 2.9 6/21/82 sask.UUCP
1008: NPath: cbosgd!mhuxj!harpo!utah-cs!sask!derek
1009: NFrom: [email protected] (Derek Andrew)
1010: NNewsgroups: net.test
1011: NSubject: necessary test
1012: NMessage-ID: <[email protected]>
1013: NDate: Monday, 3-Jan-83 00:59:15 MST
1014: N
1015: NThis really is a test. If anyone out there more than 6
1016: Nhops away would kindly confirm this note I would
1017: Nappreciate it. We suspect that our news postings
1018: Nare not getting out into the world.
1019: N
1020:
1021:
1022: Using mail solves the spooling problem, since mail must
1023: always be spooled if the destination host is down.
1024: However, it adds more overhead to the transmission process
1025: (to encapsulate and extract the article) and makes it
1026: harder for software to give different priorities to news
1027: and mail.
1028:
1029: 4.3 Batching
Batching
Batching
Batching
1030:
1031: Since news articles are usually short, and since a large
1032: number of messages are often sent between two sites in a
1033: day, it may make sense to batch news articles. Several
1034: articles can be combined into one large article, using
1035: conventions agreed upon in advance by the two sites. One
1036: such batching scheme is described here; its use is still
1037: considered experimental.
1038:
1039: News articles are combined into a script, separated by a
1040: header of the form:
1041:
1042: ##! rnews 1234
1043:
1044: where 1234 is the length, in bytes, of the article. Each
1045: such line is followed by an article containing the given
1046: number of bytes. (The newline at the end of each line of
1047: the article is counted as one byte, for purposes of this
1048: count, even if it is stored as CRLF.) For example, a batch
1049:
1050:
1051:
1052:
1053:
1054:
1055:
1056:
1057:
1058:
1059:
1060: - 17 -
1061:
1062:
1063:
1064: of articles might look like this:
1065:
1066: #! rnews 374
1067: Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
1068: Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
1069: Path: cbosgd!mhuxj!mhuxt!eagle!jerry
1070: From: [email protected] (Jerry Schwarz)
1071: Newsgroups: net.general
1072: Subject: Usenet Etiquette -- Please Read
1073: Message-ID: <[email protected]>
1074: Date: Friday, 19-Nov-82 16:14:55 EST
1075:
1076: Here is an important message about USENET Etiquette.
1077: #! rnews 378
1078: Relay-Version: version B 2.10 2/13/83; site cbosgd.UUCP
1079: Posting-Version: version B 2.10 2/13/83; site eagle.UUCP
1080: Path: cbosgd!mhuxj!mhuxt!eagle!jerry
1081: From: [email protected] (Jerry Schwarz)
1082: Newsgroups: net.followup
1083: Subject: Notes on Etiquette article
1084: Message-ID: <[email protected]>
1085: Date: Friday, 19-Nov-82 17:24:12 EST
1086:
1087: There was something I forgot to mention in the last message.
1088:
1089: Batched news is recognized because the first character in
1090: the message is ``#''. The message is then passed to the
1091: unbatcher for interpretation.
1092:
1093:
1094: 5. The News Propagation Algorithm
The News Propagation Algorithm
The News Propagation Algorithm
The News Propagation Algorithm
1095:
1096: This section describes the overall scheme of USENET and
1097: the algorithm followed by sites in propagating news to the
1098: entire network. Since all sites are affected by
1099: incorrectly formatted articles and by propagation errors,
1100: it is important for the method to be standardized.
1101:
1102: USENET is a directed graph. Each node in the graph is a
1103: host computer, each arc in the graph is a transmission
1104: path from one host to another host. Each arc is labelled
1105: with a newsgroup pattern, specifying which newsgroup
1106: classes are forwarded along that link. Most arcs are
1107: bidirectional, that is, if site A sends a class of
1108: newsgroups to site B, then site B usually sends the same
1109: class of newsgroups to site A. This bidirectionality is
1110: not, however, required.
1111:
1112: USENET is made up of many subnetworks. Each subnet has a
1113: name, such as ``net'' or ``btl''. The special subnet
1114: ``net'' is defined to be USENET, although the union of all
1115:
1116:
1117:
1118:
1119:
1120:
1121:
1122:
1123:
1124:
1125:
1126: - 18 -
1127:
1128:
1129:
1130: subnets may be a superset of USENET (because of sites that
1131: get local newsgroup classes but do not get net.all). Each
1132: subnet is a connected graph, that is, a path exists from
1133: every node to every other node in the subnet. In
1134: addition, the entire graph is (theoretically) connected.
1135: (In practice, some political considerations have caused
1136: some sites to be unable to post articles reaching the rest
1137: of the network.)
1138:
1139: An article is posted on one machine to a list of
1140: newsgroups. That machine accepts it locally, then
1141: forwards it to all its neighbors that are interested in at
1142: least one of the newsgroups of the message. (Site A deems
1143: site B to be ``interested'' in a newsgroup if the
1144: newsgroup matches the pattern on the arc from A to B.
1145: This pattern is stored in a file on the A machine.) The
1146: sites receiving the incoming article examine it to make
1147: sure they really want the article, accept it locally, and
1148: then in turn forward the article to all their interested
_____
1149: neighbors. This process continues until the entire
1150: network has seen the article.
1151:
1152: An important part of the algorithm is the prevention of
1153: loops. The above process would cause a message to loop
1154: along a cycle forever. In particular, when site A sends
1155: an article to site B, site B will send it back to site A,
1156: which will send it to site B, and so on. One solution to
1157: this is the history mechanism. Each site keeps track of
1158: all articles it has seen (by their message ID) and
1159: whenever an article comes in that it has already seen, the
1160: incoming article is discarded immediately. This solution
1161: is sufficient to prevent loops, but additional
1162: optimizations can be made to avoid sending articles to
1163: sites that will simply throw them away.
1164:
1165: One optimization is that an article should never be sent
1166: to a machine listed in the Path line of the header. When
1167: a machine name is in the Path line, the message is known
1168: to have passed through the machine. Another optimization
1169: is that, if the article originated on site A, then site A
1170: has already seen the article. (Origination can be
1171: determined by the Posting-Version line.)
1172:
1173: Thus, if an article is posted to newsgroup ``net.misc'',
1174: it will match the pattern ``net.all'' (where ``all'' is a
1175: metasymbol that matches any string), and will be forwarded
1176: to all sites that subscribe to net.all (as determined by
1177: what their neighbors send them). These sites make up the
1178: ``net'' subnetwork. An article posted to ``btl.general''
1179: will reach all sites receiving ``btl.all'', but will not
1180: reach sites that do not get ``btl.all''. In effect, the
1181:
1182:
1183:
1184:
1185:
1186:
1187:
1188:
1189:
1190:
1191:
1192: - 19 -
1193:
1194:
1195:
1196: articles reaches the ``btl'' subnetwork. An article
1197: posted to newsgroups ``net.micro,btl.general'' will reach
1198: all sites subscribing to either of the two classes.
1199:
1200:
1201:
1202:
1203:
1204:
1205:
1206:
1207:
1208:
1209:
1210:
1211:
1212:
1213:
1214:
1215:
1216:
1217:
1218:
1219:
1220:
1221:
1222:
1223:
1224:
1225:
1226:
1227:
1228:
1229:
1230:
1231:
1232:
1233:
1234:
1235:
1236:
1237:
1238:
1239:
1240:
1241:
1242:
1243:
1244:
1245:
1246:
1247:
1248:
1249:
1250:
1251:
1252:
1253:
1254:
1255:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.