home *** CD-ROM | disk | FTP | other *** search
/ Handbook of Infosec Terms 2.0 / Handbook_of_Infosec_Terms_Version_2.0_ISSO.iso / text / rfcs / rfc1036.txt < prev    next >
Text File  |  1996-05-07  |  47KB  |  481 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7. Network Working Group                                          M. Horton Request for Comments:  1036                       AT&T Bell Laboratories Obsoletes: RFC-850                                              R. Adams                                               Center for Seismic Studies                                                            December 1987 
  8.  
  9.                Standard for Interchange of USENET Messages 
  10.  
  11.  
  12.  
  13. STATUS OF THIS MEMO 
  14.  
  15.     This document defines the standard format for the interchange of     network News messages among USENET hosts.  It updates and replaces     RFC-850, reflecting version B2.11 of the News program.  This memo is     disributed as an RFC to make this information easily accessible to     the Internet community.  It does not specify an Internet standard.     Distribution of this memo is unlimited. 
  16.  
  17. 1.  Introduction 
  18.  
  19.     This document defines the standard format for the interchange of     network News messages among USENET hosts.  It describes the format     for messages themselves and gives partial standards for transmission     of news.  The news transmission is not entirely in order to give a     good deal of flexibility to the hosts to choose transmission     hardware and software, to batch news, and so on. 
  20.  
  21.     There are five sections to this document.  Section two defines the     format.  Section three defines the valid control messages.  Section     four specifies some valid transmission methods.  Section five     describes the overall news propagation algorithm. 
  22.  
  23. 2.  Message Format 
  24.  
  25.     The primary consideration in choosing a message format is that it     fit in with existing tools as well as possible.  Existing tools     include implementations of both mail and news.  (The notesfiles     system from the University of Illinois is considered a news     implementation.)  A standard format for mail messages has existed     for many years on the Internet, and this format meets most of the     needs of USENET.  Since the Internet format is extensible,     extensions to meet the additional needs of USENET are easily made     within the Internet standard.  Therefore, the rule is adopted that     all USENET news messages must be formatted as valid Internet mail     messages, according to the Internet standard RFC-822.  The USENET     News standard is more restrictive than the Internet standard, 
  26.  
  27.  
  28.  
  29. Horton & Adams                                                  [Page 1] 
  30.  RFC 1036              Standard for USENET Messages         December 1987 
  31.  
  32.      placing additional requirements on each message and forbidding use     of certain Internet features.  However, it should always be possible     to use a tool expecting an Internet message to process a news     message.  In any situation where this standard conflicts with the     Internet standard, RFC-822 should be considered correct and this     standard in error. 
  33.  
  34.     Here is an example USENET message to illustrate the fields. 
  35.  
  36.               From: jerry@eagle.ATT.COM (Jerry Schwarz)               Path: cbosgd!mhuxj!mhuxt!eagle!jerry               Newsgroups: news.announce               Subject: Usenet Etiquette -- Please Read               Message-ID: <642@eagle.ATT.COM>               Date: Fri, 19 Nov 82 16:14:55 GMT               Followup-To: news.misc               Expires: Sat, 1 Jan 83 00:00:00 -0500               Organization: AT&T Bell Laboratories, Murray Hill 
  37.  
  38.               The body of the message comes here, after a blank line. 
  39.  
  40.       Here is an example of a message in the old format (before the       existence of this standard). It is recommended that       implementations also accept messages in this format to ease upward       conversion. 
  41.  
  42.                From: cbosgd!mhuxj!mhuxt!eagle!jerry (Jerry Schwarz)                Newsgroups: news.misc                Title: Usenet Etiquette -- Please Read                Article-I.D.: eagle.642                Posted: Fri Nov 19 16:14:55 1982                Received: Fri Nov 19 16:59:30 1982                Expires: Mon Jan 1 00:00:00 1990 
  43.  
  44.                The body of the message comes here, after a blank line. 
  45.  
  46.       Some news systems transmit news in the A format, which looks like       this: 
  47.  
  48.                 Aeagle.642                 news.misc                 cbosgd!mhuxj!mhuxt!eagle!jerry                 Fri Nov 19 16:14:55 1982                 Usenet Etiquette - Please Read                 The body of the message comes here, with no blank line. 
  49.  
  50.     A standard USENET message consists of several header lines, followed     by a blank line, followed by the body of the message.  Each header 
  51.  
  52.  
  53.  
  54. Horton & Adams                                                  [Page 2] 
  55.  RFC 1036              Standard for USENET Messages         December 1987 
  56.  
  57.      line consist of a keyword, a colon, a blank, and some additional     information.  This is a subset of the Internet standard, simplified     to allow simpler software to handle it.  The "From" line may     optionally include a full name, in the format above, or use the     Internet angle bracket syntax.  To keep the implementations simple,     other formats (for example, with part of the machine address after     the close parenthesis) are not allowed.  The Internet convention of     continuation header lines (beginning with a blank or tab) is     allowed. 
  58.  
  59.     Certain headers are required, and certain other headers are     optional.  Any unrecognized headers are allowed, and will be passed     through unchanged.  The required header lines are "From", "Date",     "Newsgroups", "Subject", "Message-ID", and "Path".  The optional     header lines are "Followup-To", "Expires", "Reply-To", "Sender",     "References", "Control", "Distribution", "Keywords", "Summary",     "Approved", "Lines", "Xref", and "Organization".  Each of these     header lines will be described below. 
  60.  
  61. 2.1.  Required Header lines 
  62.  
  63. 2.1.1.  From 
  64.  
  65.     The "From" line contains the electronic mailing address of the     person who sent the message, in the Internet syntax.  It may     optionally also contain the full name of the person, in parentheses,     after the electronic address.  The electronic address is the same as     the entity responsible for originating the message, unless the     "Sender" header is present, in which case the "From" header might     not be verified.  Note that in all host and domain names, upper and     lower case are considered the same, thus "mark@cbosgd.ATT.COM",     "mark@cbosgd.att.com", and "mark@CBosgD.ATt.COm" are all equivalent.     User names may or may not be case sensitive, for example,     "Billy@cbosgd.ATT.COM" might be different from     "BillY@cbosgd.ATT.COM".  Programs should avoid changing the case of     electronic addresses when forwarding news or mail. 
  66.  
  67.     RFC-822 specifies that all text in parentheses is to be interpreted     as a comment.  It is common in Internet mail to place the full name     of the user in a comment at the end of the "From" line.  This     standard specifies a more rigid syntax.  The full name is not     considered a comment, but an optional part of the header line.     Either the full name is omitted, or it appears in parentheses after     the electronic address of the person posting the message, or it     appears before an electronic address which is enclosed in angle     brackets.  Thus, the three permissible forms are: 
  68.  
  69.  
  70.  
  71.  
  72.  
  73. Horton & Adams                                                  [Page 3] 
  74.  RFC 1036              Standard for USENET Messages         December 1987 
  75.  
  76.                From: mark@cbosgd.ATT.COM               From: mark@cbosgd.ATT.COM (Mark Horton)               From: Mark Horton <mark@cbosgd.ATT.COM> 
  77.  
  78.     Full names may contain any printing ASCII characters from space     through tilde, except that they may not contain "(" (left     parenthesis), ")" (right parenthesis), "<" (left angle bracket), or     ">" (right angle bracket).  Additional restrictions may be placed on     full names by the mail standard, in particular, the characters ","     (comma), ":" (colon), "@" (at), "!" (bang), "/" (slash), "="     (equal), and ";" (semicolon) are inadvisable in full names. 
  79.  
  80. 2.1.2.  Date 
  81.  
  82.     The "Date" line (formerly "Posted") is the date that the message was     originally posted to the network.  Its format must be acceptable     both in RFC-822 and to the getdate(3) routine that is provided with     the Usenet software.  This date remains unchanged as the message is     propagated throughout the network.  One format that is acceptable to     both is: 
  83.  
  84.                       Wdy, DD Mon YY HH:MM:SS TIMEZONE 
  85.  
  86.     Several examples of valid dates appear in the sample message above.     Note in particular that ctime(3) format: 
  87.  
  88.                           Wdy Mon DD HH:MM:SS YYYY 
  89.  
  90.     is not acceptable because it is not a valid RFC-822 date.  However,     since older software still generates this format, news     implementations are encouraged to accept this format and translate     it into an acceptable format. 
  91.  
  92.     There is no hope of having a complete list of timezones.  Universal     Time (GMT), the North American timezones (PST, PDT, MST, MDT, CST,     CDT, EST, EDT) and the +/-hhmm offset specifed in RFC-822 should be     supported.  It is recommended that times in message headers be     transmitted in GMT and displayed in the local time zone. 
  93.  
  94. 2.1.3.  Newsgroups 
  95.  
  96.     The "Newsgroups" line specifies the newsgroup or newsgroups in which     the message belongs.  Multiple newsgroups may be specified,     separated by a comma.  Newsgroups specified must all be the names of     existing newsgroups, as no new newsgroups will be created by simply     posting to them. 
  97.  
  98.  
  99.  
  100.  
  101.  
  102. Horton & Adams                                                  [Page 4] 
  103.  RFC 1036              Standard for USENET Messages         December 1987 
  104.  
  105.      Wildcards (e.g., the word "all") are never allowed in a "News-     groups" line.  For example, a newsgroup comp.all is illegal,     although a newsgroup rec.sport.football is permitted. 
  106.  
  107.     If a message is received with a "Newsgroups" line listing some valid     newsgroups and some invalid newsgroups, a host should not remove     invalid newsgroups from the list.  Instead, the invalid newsgroups     should be ignored.  For example, suppose host A subscribes to the     classes btl.all and comp.all, and exchanges news messages with host     B, which subscribes to comp.all but not btl.all.  Suppose A receives     a message with Newsgroups: comp.unix,btl.general. 
  108.  
  109.     This message is passed on to B because B receives comp.unix, but B     does not receive btl.general.  A must leave the "Newsgroups" line     unchanged.  If it were to remove btl.general, the edited header     could eventually re-enter the btl.all class, resulting in a message     that is not shown to users subscribing to btl.general.  Also,     follow-ups from outside btl.all would not be shown to such users. 
  110.  
  111. 2.1.4.  Subject 
  112.  
  113.     The "Subject" line (formerly "Title") tells what the message is     about.  It should be suggestive enough of the contents of the     message to enable a reader to make a decision whether to read the     message based on the subject alone.  If the message is submitted in     response to another message (e.g., is a follow-up) the default     subject should begin with the four characters "Re:", and the     "References" line is required.  For follow-ups, the use of the     "Summary" line is encouraged. 
  114.  
  115. 2.1.5.  Message-ID 
  116.  
  117.     The "Message-ID" line gives the message a unique identifier.  The     Message-ID may not be reused during the lifetime of any previous     message with the same Message-ID.  (It is recommended that no     Message-ID be reused for at least two years.)  Message-ID's have the     syntax: 
  118.  
  119.                      <string not containing blank or ">"> 
  120.  
  121.     In order to conform to RFC-822, the Message-ID must have the format: 
  122.  
  123.                           <unique@full_domain_name> 
  124.  
  125.     where full_domain_name is the full name of the host at which the     message entered the network, including a domain that host is in, and     unique is any string of printing ASCII characters, not including "<"     (left angle bracket), ">" (right angle bracket), or "@" (at sign). 
  126.  
  127.  
  128.  
  129. Horton & Adams                                                  [Page 5] 
  130.  RFC 1036              Standard for USENET Messages         December 1987 
  131.  
  132.      For example, the unique part could be an integer representing a     sequence number for messages submitted to the network, or a short     string derived from the date and time the message was created.  For     example, a valid Message-ID for a message submitted from host ucbvax     in domain "Berkeley.EDU" would be "<4123@ucbvax.Berkeley.EDU>".     Programmers are urged not to make assumptions about the content of     Message-ID fields from other hosts, but to treat them as unknown     character strings.  It is not safe, for example, to assume that a     Message-ID will be under 14 characters, that it is unique in the     first 14 characters, nor that is does not contain a "/". 
  133.  
  134.     The angle brackets are considered part of the Message-ID.  Thus, in     references to the Message-ID, such as the ihave/sendme and cancel     control messages, the angle brackets are included.  White space     characters (e.g., blank and tab) are not allowed in a Message-ID.     Slashes ("/") are strongly discouraged.  All characters between the     angle brackets must be printing ASCII characters. 
  135.  
  136. 2.1.6.  Path 
  137.  
  138.     This line shows the path the message took to reach the current     system.  When a system forwards the message, it should add its own     name to the list of systems in the "Path" line.  The names may be     separated by any punctuation character or characters (except "."     which is considered part of the hostname).  Thus, the following are     valid entries: 
  139.  
  140.                    cbosgd!mhuxj!mhuxt                    cbosgd, mhuxj, mhuxt                    @cbosgd.ATT.COM,@mhuxj.ATT.COM,@mhuxt.ATT.COM                    teklabs, zehntel, sri-unix@cca!decvax 
  141.  
  142.     (The latter path indicates a message that passed through decvax,     cca, sri-unix, zehntel, and teklabs, in that order.) Additional     names should be added from the left.  For example, the most recently     added name in the fourth example was teklabs.  Letters, digits,     periods and hyphens are considered part of host names; other     punctuation, including blanks, are considered separators. 
  143.  
  144.     Normally, the rightmost name will be the name of the originating     system.  However, it is also permissible to include an extra entry     on the right, which is the name of the sender.  This is for upward     compatibility with older systems. 
  145.  
  146.     The "Path" line is not used for replies, and should not be taken as     a mailing address.  It is intended to show the route the message     traveled to reach the local host.  There are several uses for this     information.  One is to monitor USENET routing for performance 
  147.  
  148.  
  149.  
  150. Horton & Adams                                                  [Page 6] 
  151.  RFC 1036              Standard for USENET Messages         December 1987 
  152.  
  153.      reasons.  Another is to establish a path to reach new hosts.     Perhaps the most important use is to cut down on redundant USENET     traffic by failing to forward a message to a host that is known to     have already received it.  In particular, when host A sends a     message to host B, the "Path" line includes A, so that host B will     not immediately send the message back to host A.  The name each host     uses to identify itself should be the same as the name by which its     neighbors know it, in order to make this optimization possible. 
  154.  
  155.     A host adds its own name to the front of a path when it receives a     message from another host.  Thus, if a message with path "A!X!Y!Z"     is passed from host A to host B, B will add its own name to the path     when it receives the message from A, e.g., "B!A!X!Y!Z".  If B then     passes the message on to C, the message sent to C will contain the     path "B!A!X!Y!Z", and when C receives it, C will change it to     "C!B!A!X!Y!Z". 
  156.  
  157.     Special upward compatibility note:  Since the "From", "Sender", and     "Reply-To" lines are in Internet format, and since many USENET hosts     do not yet have mailers capable of understanding Internet format, it     would break the reply capability to completely sever the connection     between the "Path" header and the reply function.  It is recognized     that the path is not always a valid reply string in older     implementations, and no requirement to fix this problem is placed on     implementations.  However, the existing convention of placing the     host name and an "!"  at the front of the path, and of starting the     path with the host name, an "!", and the user name, should be     maintained when possible. 
  158.  
  159. 2.2.  Optional Headers 
  160.  
  161. 2.2.1.  Reply-To 
  162.  
  163.     This line has the same format as "From".  If present, mailed replies     to the author should be sent to the name given here.  Otherwise,     replies are mailed to the name on the "From" line. (This does not     prevent additional copies from being sent to recipients named by the     replier, or on "To" or "Cc" lines.)  The full name may be optionally     given, in parentheses, as in the "From" line. 
  164.  
  165. 2.2.2.  Sender 
  166.  
  167.     This field is present only if the submitter manually enters a "From"     line.  It is intended to record the entity responsible for     submitting the message to the network.  It should be verified by the     software at the submitting host. 
  168.  
  169.  
  170.  
  171.  
  172.  
  173. Horton & Adams                                                  [Page 7] 
  174.  RFC 1036              Standard for USENET Messages         December 1987 
  175.  
  176.      For example, if John Smith is visiting CCA and wishes to post a     message to the network, using friend Sarah Jones' account, the     message might read: 
  177.  
  178.               From: smith@ucbvax.Berkeley.EDU (John Smith)               Sender: jones@cca.COM (Sarah Jones) 
  179.  
  180.     If a gateway program enters a mail message into the network at host     unix.SRI.COM, the lines might read: 
  181.  
  182.               From: John.Doe@A.CS.CMU.EDU               Sender: network@unix.SRI.COM 
  183.  
  184.     The primary purpose of this field is to be able to track down     messages to determine how they were entered into the network.  The     full name may be optionally given, in parentheses, as in the "From"     line. 
  185.  
  186. 2.2.3.  Followup-To 
  187.  
  188.     This line has the same format as "Newsgroups".  If present, follow-     up messages are to be posted to the newsgroup or newsgroups listed     here.  If this line is not present, follow-ups are posted to the     newsgroup or newsgroups listed in the "Newsgroups" line. 
  189.  
  190.     If the keyword poster is present, follow-up messages are not     permitted.  The message should be mailed to the submitter of the     message via mail. 
  191.  
  192. 2.2.4.  Expires 
  193.  
  194.     This line, if present, is in a legal USENET date format.  It     specifies a suggested expiration date for the message.  If not     present, the local default expiration date is used.  This field is     intended to be used to clean up messages with a limited usefulness,     or to keep important messages around for longer than usual.  For     example, a message announcing an upcoming seminar could have an     expiration date the day after the seminar, since the message is not     useful after the seminar is over.  Since local hosts have local     policies for expiration of news (depending on available disk space,     for instance), users are discouraged from providing expiration dates     for messages unless there is a natural expiration date associated     with the topic.  System software should almost never provide a     default "Expires" line.  Leave it out and allow local policies to be     used unless there is a good reason not to. 
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  Horton & Adams                                                  [Page 8] 
  201.  RFC 1036              Standard for USENET Messages         December 1987 
  202.  
  203.  2.2.5.  References 
  204.  
  205.     This field lists the Message-ID's of any messages prompting the     submission of this message.  It is required for all follow-up     messages, and forbidden when a new subject is raised.     Implementations should provide a follow-up command, which allows a     user to post a follow-up message.  This command should generate a     "Subject" line which is the same as the original message, except     that if the original subject does not begin with "Re:" or "re:", the     four characters "Re:" are inserted before the subject.  If there is     no "References" line on the original header, the "References" line     should contain the Message-ID of the original message (including the     angle brackets).  If the original message does have a "References"     line, the follow-up message should have a "References" line     containing the text of the original "References" line, a blank, and     the Message-ID of the original message. 
  206.  
  207.     The purpose of the "References" header is to allow messages to be     grouped into conversations by the user interface program.  This     allows conversations within a newsgroup to be kept together, and     potentially users might shut off entire conversations without     unsubscribing to a newsgroup.  User interfaces need not make use of     this header, but all automatically generated follow-ups should     generate the "References" line for the benefit of systems that do     use it, and manually generated follow-ups (e.g., typed in well after     the original message has been printed by the machine) should be     encouraged to include them as well. 
  208.  
  209.     It is permissible to not include the entire previous "References"     line if it is too long.  An attempt should be made to include a     reasonable number of backwards references. 
  210.  
  211. 2.2.6.  Control 
  212.  
  213.     If a message contains a "Control" line, the message is a control     message.  Control messages are used for communication among USENET     host machines, not to be read by users.  Control messages are     distributed by the same newsgroup mechanism as ordinary messages.     The body of the "Control" header line is the message to the host. 
  214.  
  215.     For upward compatibility, messages that match the newsgroup pattern     "all.all.ctl" should also be interpreted as control messages.  If no     "Control" header is present on such messages, the subject is used as     the control message.  However, messages on newsgroups matching this     pattern do not conform to this standard.  
  216.  
  217.  
  218.  
  219.  
  220.  
  221. Horton & Adams                                                  [Page 9] 
  222.  RFC 1036              Standard for USENET Messages         December 1987 
  223.  
  224.      Also for upward compatibility, if the first 4 characters of the     "Subject:" line are "cmsg", the rest of the "Subject:" line should     be interpreted as a control message. 
  225.  
  226. 2.2.7.  Distribution 
  227.  
  228.     This line is used to alter the distribution scope of the message.     It is a comma separated list similar to the "Newsgroups" line.  User     subscriptions are still controlled by "Newsgroups", but the message     is sent to all systems subscribing to the newsgroups on the     "Distribution" line in addition to the "Newsgroups" line.  For the     message to be transmitted, the receiving site must normally receive     one of the specified newsgroups AND must receive one of the     specified distributions.  Thus, a message concerning a car for sale     in New Jersey might have headers including: 
  229.  
  230.                    Newsgroups: rec.auto,misc.forsale                    Distribution: nj,ny 
  231.  
  232.     so that it would only go to persons subscribing to rec.auto or misc.     for sale within New Jersey or New York.  The intent of this header     is to restrict the distribution of a newsgroup further, not to     increase it.  A local newsgroup, such as nj.crazy-eddie, will     probably not be propagated by hosts outside New Jersey that do not     show such a newsgroup as valid.  A follow-up message should default     to the same "Distribution" line as the original message, but the     user can change it to a more limited one, or escalate the     distribution if it was originally restricted and a more widely     distributed reply is appropriate. 
  233.  
  234. 2.2.8.  Organization 
  235.  
  236.     The text of this line is a short phrase describing the organization     to which the sender belongs, or to which the machine belongs.  The     intent of this line is to help identify the person posting the     message, since host names are often cryptic enough to make it hard     to recognize the organization by the electronic address. 
  237.  
  238. 2.2.9.  Keywords 
  239.  
  240.     A few well-selected keywords identifying the message should be on     this line.  This is used as an aid in determining if this message is     interesting to the reader. 
  241.  
  242. 2.2.10.  Summary 
  243.  
  244.     This line should contain a brief summary of the message.  It is     usually used as part of a follow-up to another message.  Again, it 
  245.  
  246.  
  247.  
  248. Horton & Adams                                                 [Page 10] 
  249.  RFC 1036              Standard for USENET Messages         December 1987 
  250.  
  251.      is very useful to the reader in determining whether to read the     message. 
  252.  
  253. 2.2.11.  Approved 
  254.  
  255.     This line is required for any message posted to a moderated     newsgroup.  It should be added by the moderator and consist of his     mail address.  It is also required with certain control messages. 
  256.  
  257. 2.2.12.  Lines 
  258.  
  259.     This contains a count of the number of lines in the body of the     message. 
  260.  
  261. 2.2.13.  Xref 
  262.  
  263.     This line contains the name of the host (with domains omitted) and a     white space separated list of colon-separated pairs of newsgroup     names and message numbers.  These are the newsgroups listed in the     "Newsgroups" line and the corresponding message numbers from the     spool directory. 
  264.  
  265.     This is only of value to the local system, so it should not be     transmitted.  For example, in: 
  266.  
  267.                Path: seismo!lll-crg!lll-lcc!pyramid!decwrl!reid                From: reid@decwrl.DEC.COM (Brian Reid)                Newsgroups: news.lists,news.groups                Subject: USENET READERSHIP SUMMARY REPORT FOR SEP 86                Message-ID: <5658@decwrl.DEC.COM>                Date: 1 Oct 86 11:26:15 GMT                Organization: DEC Western Research Laboratory                Lines: 441                Approved: reid@decwrl.UUCP                Xref: seismo news.lists:461 news.groups:6378 
  268.  
  269.     the "Xref" line shows that the message is message number 461 in the     newsgroup news.lists, and message number 6378 in the newsgroup     news.groups, on host seismo.  This information may be used by     certain user interfaces. 
  270.  
  271. 3.  Control Messages 
  272.  
  273.     This section lists the control messages currently defined.  The body     of the "Control" header line is the control message.  Messages are a     sequence of zero or more words, separated by white space (blanks or     tabs).  The first word is the name of the control message, remaining     words are parameters to the message.  The remainder of the header 
  274.  
  275.  
  276.  
  277. Horton & Adams                                                 [Page 11] 
  278.  RFC 1036              Standard for USENET Messages         December 1987 
  279.  
  280.      and the body of the message are also potential parameters; for     example, the "From" line might suggest an address to which a     response is to be mailed. 
  281.  
  282.     Implementors and administrators may choose to allow control messages     to be carried out automatically, or to queue them for annual     processing.  However, manually processed messages should be dealt     with promptly. 
  283.  
  284.     Failed control messages should NOT be mailed to the originator of     the message, but to the local "usenet" account. 
  285.  
  286. 3.1.  Cancel 
  287.  
  288.                      cancel <Message-ID> 
  289.  
  290.      If a message with the given Message-ID is present on the local     system, the message is cancelled.  This mechanism allows a user to     cancel a message after the message has been distributed over the     network. 
  291.  
  292.     If the system is unable to cancel the message as requested, it     should not forward the cancellation request to its neighbor systems. 
  293.  
  294.     Only the author of the message or the local news administrator is     allowed to send this message.  The verified sender of a message is     the "Sender" line, or if no "Sender" line is present, the "From"     line.  The verified sender of the cancel message must be the same as     either the "Sender" or "From" field of the original message.  A     verified sender in the cancel message is allowed to match an     unverified "From" in the original message. 
  295.  
  296. 3.2.  Ihave/Sendme 
  297.  
  298.                    ihave <Message-ID list> [<remotesys>]                    sendme <Message-ID list> [<remotesys>] 
  299.  
  300.     This message is part of the ihave/sendme protocol, which allows one     host (say A) to tell another host (B) that a particular message has     been received on A.  Suppose that host A receives message     "<1234@ucbvax.Berkeley.edu>", and wishes to transmit the message to     host B. 
  301.  
  302.     A sends the control message "ihave <1234@ucbvax.Berkeley.edu> A" to     host B (by posting it to newsgroup to.B).  B responds with the     control message "sendme <1234@ucbvax.Berkeley.edu> B" (on newsgroup     to.A), if it has not already received the message.  Upon receiving 
  303.  
  304.  
  305.  
  306. Horton & Adams                                                 [Page 12] 
  307.  RFC 1036              Standard for USENET Messages         December 1987 
  308.  
  309.      the sendme message, A sends the message to B. 
  310.  
  311.     This protocol can be used to cut down on redundant traffic between     hosts.  It is optional and should be used only if the particular     situation makes it worthwhile.  Frequently, the outcome is that,     since most original messages are short, and since there is a high     overhead to start sending a new message with UUCP, it costs as much     to send the ihave as it would cost to send the message itself. 
  312.  
  313.     One possible solution to this overhead problem is to batch requests.     Several Message-ID's may be announced or requested in one message.     If no Message-ID's are listed in the control message, the body of     the message should be scanned for Message-ID's, one per line. 
  314.  
  315. 3.3.  Newgroup 
  316.  
  317.                       newgroup <groupname> [moderated] 
  318.  
  319.     This control message creates a new newsgroup with the given name.     Since no messages may be posted or forwarded until a newsgroup is     created, this message is required before a newsgroup can be used.     The body of the message is expected to be a short paragraph     describing the intended use of the newsgroup. 
  320.  
  321.     If the second argument is present and it is the keyword moderated,     the group should be created moderated instead of the default of     unmoderated.  The newgroup message should be ignored unless there is     an "Approved" line in the same message header. 
  322.  
  323. 3.4.  Rmgroup 
  324.  
  325.                             rmgroup <groupname> 
  326.  
  327.     This message removes a newsgroup with the given name.  Since the     newsgroup is removed from every host on the network, this command     should be used carefully by a responsible administrator.  The     rmgroup message should be ignored unless there is an "Approved:"     line in the same message header. 
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341. Horton & Adams                                                 [Page 13] 
  342.  RFC 1036              Standard for USENET Messages         December 1987 
  343.  
  344.  3.5.  Sendsys                            sendsys (no arguments) 
  345.  
  346.     The sys file, listing all neighbors and the newsgroups to be sent to     each neighbor, will be mailed to the author of the control message     ("Reply-To", if present, otherwise "From").  This information is     considered public information, and it is a requirement of membership     in USENET that this information be provided on request, either     automatically in response to this control message, or manually, by     mailing the requested information to the author of the message.     This information is used to keep the map of USENET up to date, and     to determine where netnews is sent. 
  347.  
  348.     The format of the file mailed back to the author should be the same     as that of the sys file.  This format has one line per neighboring     host (plus one line for the local host), containing four colon     separated fields.  The first field has the host name of the     neighbor, the second field has a newsgroup pattern describing the     newsgroups sent to the neighbor.  The third and fourth fields are     not defined by this standard.  The sys file is not the same as the     UUCP L.sys file.  A sample response is: 
  349.  
  350.       From: cbosgd!mark  (Mark Horton)       Date: Sun, 27 Mar 83 20:39:37 -0500       Subject: response to your sendsys request       To: mark@cbosgd.ATT.COM 
  351.  
  352.       Responding-System: cbosgd.ATT.COM       cbosgd:osg,cb,btl,bell,world,comp,sci,rec,talk,misc,news,soc,to,             test       ucbvax:world,comp,to.ucbvax:L:       cbosg:world,comp,bell,btl,cb,osg,to.cbosg:F:/usr/spool/outnews             /cbosg       cbosgb:osg,to.cbosgb:F:/usr/spool/outnews/cbosgb       sescent:world,comp,bell,btl,cb,to.sescent:F:/usr/spool/outnews             /sescent       npois:world,comp,bell,btl,ug,to.npois:F:/usr/spool/outnews/npois       mhuxi:world,comp,bell,btl,ug,to.mhuxi:F:/usr/spool/outnews/mhuxi 
  353.  
  354. 3.6.  Version 
  355.  
  356.                            version (no arguments) 
  357.  
  358.     The name and version of the software running on the local system is     to be mailed back to the author of the message ("Reply-to" if     present, otherwise "From"). 
  359.  
  360. 3.7.  Checkgroups 
  361.  
  362.  
  363.  
  364. Horton & Adams                                                 [Page 14] 
  365.  RFC 1036              Standard for USENET Messages         December 1987 
  366.  
  367.      The message body is a list of "official" newsgroups and their     description, one group per line.  They are compared against the list     of active newsgroups on the current host.  The names of any obsolete     or new newsgroups are mailed to the user "usenet" and descriptions     of the new newsgroups are added to the help file used when posting     news. 
  368.  
  369. 4.  Transmission Methods 
  370.  
  371.     USENET is not a physical network, but rather a logical network     resting on top of several existing physical networks.  These     networks include, but are not limited to, UUCP, the Internet, an     Ethernet, the BLICN network, an NSC Hyperchannel, and a BERKNET.     What is important is that two neighboring systems on USENET have     some method to get a new message, in the format listed here, from     one system to the other, and once on the receiving system, processed     by the netnews software on that system.  (On UNIX systems, this     usually means the rnews program being run with the message on the     standard input. <1>) 
  372.  
  373.     It is not a requirement that USENET hosts have mail systems capable     of understanding the Internet mail syntax, but it is strongly     recommended.  Since "From", "Reply-To", and "Sender" lines use the     Internet syntax, replies will be difficult or impossible without an     Internet mailer.  A host without an Internet mailer can attempt to     use the "Path" header line for replies, but this field is not     guaranteed to be a working path for replies.  In any event, any host     generating or forwarding news messages must have an Internet address     that allows them to receive mail from hosts with Internet mailers,     and they must include their Internet address on their From line. 
  374.  
  375. 4.1.  Remote Execution 
  376.  
  377.     Some networks permit direct remote command execution.  On these     networks, news may be forwarded by spooling the rnews command with     the message on the standard input.  For example, if the remote     system is called remote, news would be sent over a UUCP link     with the command: 
  378.  
  379.                               uux - remote!rnews 
  380.  
  381.     and on a Berknet: 
  382.  
  383.                               net -mremote rnews 
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.  
  391. Horton & Adams                                                 [Page 15] 
  392.  RFC 1036              Standard for USENET Messages         December 1987 
  393.  
  394.      It is important that the message be sent via a reliable mechanism,     normally involving the possibility of spooling, rather than direct     real-time remote execution.  This is because, if the remote system     is down, a direct execution command will fail, and the message will     never be delivered.  If the message is spooled, it will eventually     be delivered when both systems are up. 
  395.  
  396. 4.2.  Transfer by Mail 
  397.  
  398.     On some systems, direct remote spooled execution is not possible.     However, most systems support electronic mail, and a news message     can be sent as mail.  One approach is to send a mail message which     is identical to the news message: the mail headers are the news     headers, and the mail body is the news body.  By convention, this     mail is sent to the user newsmail on the remote machine. 
  399.  
  400.     One problem with this method is that it may not be possible to     convince the mail system that the "From" line of the message is     valid, since the mail message was generated by a program on a     system different from the source of the news message.  Another     problem is that error messages caused by the mail transmission     would be sent to the originator of the news message, who has no     control over news transmission between two cooperating hosts     and does not know whom to contact.  Transmission error messages     should be directed to a responsible contact person on the     sending machine. 
  401.  
  402.     A solution to this problem is to encapsulate the news message into a     mail message, such that the entire message (headers and body) are     part of the body of the mail message.  The convention here is that     such mail is sent to user rnews on the remote system.  A mail     message body is generated by prepending the letter N to each line of     the news message, and then attaching whatever mail headers are     convenient to generate.  The N's are attached to prevent any special     lines in the news message from interfering with mail transmission,     and to prevent any extra lines inserted by the mailer (headers,     blank lines, etc.) from becoming part of the news message.  A     program on the receiving machine receives mail to rnews, extracting     the message itself and invoking the rnews program.  An example in     this format might look like this: 
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414. Horton & Adams                                                 [Page 16] 
  415.  RFC 1036              Standard for USENET Messages         December 1987 
  416.  
  417.                  Date: Mon, 3 Jan 83 08:33:47 MST                 From: news@cbosgd.ATT.COM                 Subject: network news message                 To: rnews@npois.ATT.COM 
  418.  
  419.                 NPath: cbosgd!mhuxj!harpo!utah-cs!sask!derek                 NFrom: derek@sask.UUCP (Derek Andrew)                 NNewsgroups: misc.test                 NSubject: necessary test                 NMessage-ID: <176@sask.UUCP>                 NDate: Mon, 3 Jan 83 00:59:15 MST                 N                 NThis really is a test.  If anyone out there more than 6                 Nhops away would kindly confirm this note I would                 Nappreciate it.  We suspect that our news postings                 Nare not getting out into the world.                 N 
  420.  
  421.     Using mail solves the spooling problem, since mail must always be     spooled if the destination host is down.  However, it adds more     overhead to the transmission process (to encapsulate and extract the     message) and makes it harder for software to give different     priorities to news and mail. 
  422.  
  423. 4.3.  Batching 
  424.  
  425.     Since news messages are usually short, and since a large number of     messages are often sent between two hosts in a day, it may make     sense to batch news messages.  Several messages can be combined into     one large message, using conventions agreed upon in advance by the     two hosts.  One such batching scheme is described here; its use is     highly recommended. 
  426.  
  427.     News messages are combined into a script, separated by a header of     the form: 
  428.  
  429.                     #! rnews 1234 
  430.  
  431.     where 1234 is the length of the message in bytes.  Each such line is     followed by a message containing the given number of bytes.  (The     newline at the end of each line of the message is counted as one     byte, for purposes of this count, even if it is stored as <CARRIAGE     RETURN><LINE FEED>.)  For example, a batch of message might look     like this: 
  432.  
  433.  
  434.  
  435.  
  436.  
  437.  Horton & Adams                                                 [Page 17] 
  438.  RFC 1036              Standard for USENET Messages         December 1987 
  439.  
  440.                  #! rnews 239                 From: jerry@eagle.ATT.COM (Jerry Schwarz)                 Path: cbosgd!mhuxj!mhuxt!eagle!jerry                 Newsgroups: news.announce                 Subject: Usenet Etiquette -- Please Read                 Message-ID: <642@eagle.ATT.COM>                 Date: Fri, 19 Nov 82 16:14:55 EST                 Approved: mark@cbosgd.ATT.COM 
  441.  
  442.                 Here is an important message about USENET Etiquette.                 #! rnews 234                 From: jerry@eagle.ATT.COM (Jerry Schwarz)                 Path: cbosgd!mhuxj!mhuxt!eagle!jerry                 Newsgroups: news.announce                 Subject: Notes on Etiquette message                 Message-ID: <643@eagle.ATT.COM>                 Date: Fri, 19 Nov 82 17:24:12 EST                 Approved: mark@cbosgd.ATT.COM 
  443.  
  444.                 There was something I forgot to mention in the last                 message. 
  445.  
  446.     Batched news is recognized because the first character in the     message is #.  The message is then passed to the unbatcher for     interpretation. 
  447.  
  448.     The second argument (in this example rnews) determines which     batching scheme is being used.  Cooperating hosts may use whatever     scheme is appropriate for them. 
  449.  
  450. 5.  The News Propagation Algorithm 
  451.  
  452.     This section describes the overall scheme of USENET and the     algorithm followed by hosts in propagating news to the entire     logical network.  Since all hosts are affected by incorrectly     formatted messages and by propagation errors, it is important     for the method to be standardized. 
  453.  
  454.     USENET is a directed graph.  Each node in the graph is a host     computer, and each arc in the graph is a transmission path from     one host to another host.  Each arc is labeled with a newsgroup     pattern, specifying which newsgroup classes are forwarded along     that link.  Most arcs are bidirectional, that is, if host A     sends a class of newsgroups to host B, then host B usually sends     the same class of newsgroups to host A.  This bidirectionality     is not, however, required. 
  455.  
  456.     USENET is made up of many subnetworks.  Each subnet has a name, such 
  457.  
  458.  
  459.  
  460. Horton & Adams                                                 [Page 18] 
  461.  RFC 1036              Standard for USENET Messages         December 1987 
  462.  
  463.      as comp or btl.  Each subnet is a connected graph, that is, a path     exists from every node to every other node in the subnet.  In     addition, the entire graph is (theoretically) connected.  (In     practice, some political considerations have caused some hosts to be     unable to post messages reaching the rest of the network.) 
  464.  
  465.     A message is posted on one machine to a list of newsgroups. That     machine accepts it locally, then forwards it to all its neighbors     that are interested in at least one of the newsgroups of the     message.  (Site A deems host B to be "interested" in a newsgroup if     the newsgroup matches the pattern on the arc from A to B.  This     pattern is stored in a file on the A machine.)  The hosts receiving     the incoming message examine it to make sure they really want the     message, accept it locally, and then in turn forward the message to     all their interested neighbors.  This process continues until the     entire network has seen the message. 
  466.  
  467.     An important part of the algorithm is the prevention of loops.  The     above process would cause a message to loop along a cycle forever.     In particular, when host A sends a message to host B, host B will     send it back to host A, which will send it to host B, and so on.     One solution to this is the history mechanism.  Each host keeps     track of all messages it has seen (by their Message-ID) and     whenever a message comes in that it has already seen, the incoming     message is discarded immediately.  This solution is sufficient to     prevent loops, but additional optimizations can be made to avoid     sending messages to hosts that will simply throw them away. 
  468.  
  469.     One optimization is that a message should never be sent to a machine     listed in the "Path" line of the header.  When a machine name is     in the "Path" line, the message is known to have passed through the     machine.  Another optimization is that, if the message originated     on host A, then host A has already seen the message.  Thus, if a     message is posted to newsgroup misc.misc, it will match the pattern     misc.all (where all is a metasymbol that matches any string), and     will be forwarded to all hosts that subscribe to misc.all (as     determined by what their neighbors send them).  These hosts make up     the misc subnetwork.  A message posted to btl.general will reach all     hosts receiving btl.all, but will not reach hosts that do not get     btl.all.  In effect, the messages reaches the btl subnetwork.  A     messages posted to newsgroups misc.misc,btl.general will reach all     hosts subscribing to either of the two classes. 
  470.  
  471. Notes 
  472.  
  473.     <1>  UNIX is a registered trademark of AT&T. 
  474.  
  475.  
  476.  
  477.  
  478.  
  479. Horton & Adams                                                 [Page 19] 
  480.  
  481.