Annotation of researchv10no/cmd/netnews/doc/standard, revision 1.1

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: 

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.