[RFC主页] [文本|PDF格式|HTML格式] [跟踪器] [知识产权] [信息页]

作废人:1036未知
RFC 850 1983年6月USENET报文交换标准马克·霍顿[本备忘录作为RFC分发,仅用于ARPA中研究人员容易访问的信息社区。它没有指定互联网标准。]1.简介本文件定义了交换的标准格式USENET网站中的网络新闻文章。它描述了文章本身的格式,并给出部分新闻传播标准。新闻传播并不是为了达成一笔好交易而完全标准化可灵活选择单个主机传输硬件和软件,是否批量新闻,等等。本文件分为五个部分。第二节节定义格式。第三节定义了有效的控制消息。第四节规定了一些有效的传输方法。第五节描述了整体新闻传播算法。2.文章格式选择文章格式的主要考虑因素是它尽可能适合现有工具。现有工具包括邮件和新闻。(来自美国大学的notesfiles系统伊利诺伊州被视为新闻实施。)A标准邮件格式在ARPANET,这种格式满足了USENET公司。由于ARPANET格式是可扩展的,满足USENET额外需求的扩展包括按照ARPANET标准轻松制作。因此采用的规则是,所有USENET新闻文章必须根据ARPANET标准RFC 822。这个标准更比ARPANET标准更具限制性对每件物品的要求和禁止使用某些ARPANET功能。然而,它应该始终是可能的使用期望ARPANET消息的工具来处理新闻文章。在本标准规定的任何情况下与ARPANET标准冲突,RFC 822应该是被认为是正确的,而这个标准是错误的。- 1 -

其中包含一条示例消息来说明字段。继电器版本:版本B 2.10 2/13/83;网站cbosgd。UUCP公司发布版本:版本B 2.10 2/13/83;现场鹰。UUCP公司路径:cbosgd!mhuxj!mhuxt!老鹰!杰瑞发件人:jerry@eagle.uucp(杰里·施瓦兹)新闻组:net.general主题:Usenet礼仪——请阅读消息ID:<642@eagle.UUCP>日期:2002年11月19日星期五16:14:55 EST跟进至:net.news到期时间:美国东部时间1983年1月1日星期六00:00:00接收日期:美国东部标准时间2002年11月19日星期五16:59:30组织:贝尔实验室,默里山文章的正文在这里,在一个空白行之后。以下是旧格式的消息示例(之前本标准的存在)。建议:实现还接受这种格式的文章轻松向上转换。发件人:cbosgd!mhuxj!mhuxt!老鹰!杰里(杰里·施瓦兹)新闻组:net.general标题:Usenet礼仪——请阅读第I条编号:第642页发布时间:1982年11月19日星期五16:14:55接收日期:1982年11月19日星期五16:59:30有效期至:1990年1月1日星期一00:00:00文章的正文在这里,在一个空白行之后。一些新闻系统以“A”格式传输新闻看起来是这样的:埃格尔642网络概述cbosgd!mhuxj!mhuxt!老鹰!杰瑞1982年11月19日星期五16:14:55Usenet礼仪-请阅读文章的正文在这里,没有空行。一篇文章由几个标题行组成,后跟一个空行,后跟消息正文。这个标题行由关键字、冒号、空白和一些附加信息。这是ARPANET标准,简化后允许更简单的软件处理它。“from”行可以选择性地包括全名,采用上述格式,或使用ARPANET角度括号语法。为了保持实现简单,其他格式(例如,使用部分机器地址不允许在右括号后)。阿帕网延续标题行的约定(以允许为空或制表符)。- 2 -

某些标题是必需的,某些标题是可选。允许使用任何无法识别的标头,并且将未经修改通过。所需的标题为中继版本、发布版本、发件人、日期、新闻组、,主题、消息ID、路径。可选标题为跟进收件人、接收日期、到期日、回复收件人、发件人,参考、控制、分发、组织。2.1必需的标题

2.1.1继电器版本此标题行显示版本负责传输此消息的程序的文章覆盖直接链接,即正在从下一个站点转播文章。例如,假设站点A向站点B发送一篇文章,而站点B将文章转发到站点C。消息为从A传输到B将具有Relay-Version标头识别在A上运行的程序,以及消息从B传输到C将标识正在运行的程序在B上。此标题可用于解释旧标题以向上兼容的方式。继电器版本必须始终为消息中的第一个;因此,所有符合此要求的条款标准将以大写字母“R”开头。没有其他对标题行的顺序进行了限制。该行包含两个字段,由分号分隔。这些字段是的版本和完整域名现场。版本应标识所使用的系统程序(例如“B”)以及版本号和版本日期。例如,标题行可能包含继电器版本:版本B 2.10 2/13/83;网站cbosgd。UUCP公司此标头不应传递给其他站点。传递文章时,中继程序应该仅包括其自己的中继版本,而不包括中继版本其他站点的。(用于向上兼容旧版本如果在标题中找到继电器版本不是第一行,应该假设它被旧版本的新闻并已删除。)2.1.2发布-版本此标题标识负责将此消息输入到网络。它的格式与Relay-Version相同。通常将标识与消息ID相同的站点,除非发布站点用作已包含由生成的消息ID的消息邮件。(虽然允许网关使用外部生成的消息ID,消息ID应为检查以确保其符合本标准和RFC822.)- 3 -

2.1.3发件人“发件人”行包含电子邮件发送消息的人在ARPA中的地址互联网语法。也可以选择包含完整姓名,括号中,在电子文档后面地址。电子地址与实体相同负责原产物品,除非发件人标头存在,在这种情况下,From标头可能不存在得到验证。请注意,在所有站点和域名中,大写和小写被认为是相同的,因此mark@cbosgd.UUCPmark@cbosgd.uucp、和mark@CBosgD.UUcp都是等效的。用户名可能大小写例如,敏感,Billy@cbosgd.UUCP可能是不同于BillY@cbosgd.UUCP。程序应避免转发时更改电子地址的大小写新闻或邮件。射频控制器822指定括号中的所有文本解释为注释。这在ARPANET邮件中很常见将用户的全名放在末尾的注释中“发件人”行。本标准规定了更严格的语法。全名不被视为注释,而是标题行的可选部分。全名为省略,或出现在电子文档后面的括号中发布文章的人的地址,或出现的地址在尖括号中的电子地址之前。因此,三种允许的形式是:发件人:mark@cbosgd.UUCP发件人:mark@cbosgd.UUCP(马克·霍顿)发件人:Mark Horton<mark@cbosgd.UUCP>全名可以包含来自空格通过波浪号,但可能没有的情况除外包含括号“(”或“)”或尖括号“<”或“>”。可能会对邮件标准的全名,尤其是字符逗号“,”、冒号“:”和分号“;”不宜使用全名。2.1.4日期日期行(以前称为“已发布”)是日期,格式必须为ARPANET和getdate例程中最初发布到网络上。此日期保留当文章在整个一种双方都可以接受的格式是工作日,DD-Mon-YY HH:MM:SS时区示例中显示了几个有效日期示例上面的文章。特别注意ctime格式:星期一星期一时分时分:年月日- 4 -

不可接受,因为它不是有效的ARPANET日期。然而,由于较旧的软件仍会生成这种格式,鼓励新闻实现接受这种格式并将其转换为可接受的格式。TIMEZONE字段的内容当前受全球时区缩写,包括通常的美国地区(PST、PDT、MST、MDT、CST、CDT、EST、EDT),其他北美地区(白令至纽芬兰)、欧洲地区、澳大利亚地区等目前缺乏完整的列表(并且不确定存在明确的列表),软件作者鼓励保持此代码的灵活性,尤其是不要假设时区名称正好是三个字母长。实现可以自由编辑此字段,保持时间不变,但更改时间区域(根据当地时间进行适当调整显示)到已知时区。2.1.5新闻组“新闻组”行指定文章所属的新闻组。多个可以指定新闻组,用逗号分隔。指定的新闻组必须全部是现有新闻组的名称新闻组,因为只需发布给他们。新闻组行。例如,新闻组“net.all”是虽然新闻组名称“net.sport.football”是非法的是允许的。如果收到带有新闻组行列表的文章一些有效的新闻组和一些无效的新闻组,一个站点不应从列表中删除无效的新闻组。相反,应该忽略无效的新闻组。对于例如,假设站点A订阅了类“btl.all”和“net.all”,并交换新闻文章网站B订阅“net.all”,但不订阅“顺便说一句”。假设A收到一篇带有“新闻组:net.micro,btl.general”。这篇文章是传递给B,因为B收到net.micro,但B收到未收到btl.general。A必须离开新闻组行保持不变。如果要删除“btl.general”编辑后的标题最终可能会重新输入“btl.all”类,从而生成未向用户显示的文章订阅“btl.general”。此外外部的“btl.all”不会显示给这些用户。- 5 -

2.1.6主题主题行(以前称为“标题”)讲述文章的内容。它应该具有启发性文章的内容足够读者阅读根据以下情况决定是否阅读文章仅此主题。如果文章是在对另一篇文章的回应(例如,是“后续”)默认主题应以四个字符开头“回复:”和参考行是必需的。(用户可能希望编辑后续主题,但默认值应以“Re:”开头。)2.1.7消息IDMessage-ID行为文章提供了一个唯一标识符。不能重复使用相同的消息ID在具有相同消息的任何文章的生命周期内ID(建议不要将任何消息ID重新用于至少两年。)消息ID具有语法“<”“字符串不包含空白或>”“>”为了符合射频控制器822,消息ID必须具有格式“<”“unique”“@”“完整域名”“>”其中“完整域名”是位于的主机的全名文章进入了网络,包括一个域该主机在中,唯一的是任何打印字符串ASCII字符,不包括“<”、“>”或“@”。对于例如,“唯一”部分可以是整数表示提交给的文章的序列号网络,或从日期和创建文章的时间。例如,有效消息从域中的站点ucbvax提交的文章的ID伯克利。ARPA将是“<4123@ucbvax.Berkeley.ARPA>".我们敦促程序员不要对来自其他主机的消息ID字段的内容,但到将它们视为未知字符串。这不安全,例如,假设消息ID小于14也不是说它在前14个字符中是唯一的字符。尖括号被视为消息ID的一部分。因此,在引用消息ID时,例如i保存/发送和取消控制消息,角度包括括号。空白字符(例如。,消息ID中不允许使用空白和制表符)。所有必须打印尖括号之间的字符ASCII字符。2.1.8路径这一行显示了文章的路径到达当前系统。当系统转发消息,它应该将自己的名称添加到系统列表中在路径行中。名称可以用任何标点符号字符,因此- 6 -

“cbosgd!mhuxj!mhuxt”、“cbosgd,mhuxj,mhuxt”和“@cbosgd.uucp,@mhuxj.uucp,@mhuxt.uucp”甚至“teklabs,zehntel,sri-unix@cca!decvax“有效条目。(后一个路径指示传递的消息通过decvax、cca、sri-unix、zehntel和teklabs该订单。)应从中添加其他名称例如,左边是第三个例子是“teklabs”。字母、数字、句点连字符被认为是网站名称的一部分;其他标点符号(包括空格)被视为分隔符。通常,最右边的名称是原始系统。然而,也允许在右侧包含一个额外的条目,即发送方。这是为了与旧版本兼容系统。路径行不用于答复,也不应作为邮寄地址。它旨在显示将消息发送到本地站点的路线。此信息有多种用途。一个是到出于性能原因监视USENET路由。另一个就是建立一条到达新站点的路径。也许是最重要的是减少冗余USENET流量无法将消息转发到已知的站点已经收到。特别是当站点A将文章发送到站点B,路径行包括“A”,这样站点B就不会立即将文章发回到站点A。每个站点用于标识的站点名称其本身应与其名称相同邻居们都知道,为了进行优化可能。当站点将自己的名称添加到路径的前面时从另一个站点接收消息。因此,如果消息使用路径A!X!是的!Z从站点A传递到站点B,B将在收到消息时将其自己的名称添加到路径中来自A,例如B!A!X!是的!Z.如果B随后将消息传递给到C,发送到C的消息将包含路径B!A!X!是的!Z、 当C收到它时,C会将其更改为C!B!A!X!Y!Z.公司。特殊向上兼容性说明:自发件人、发件人、,和Reply-To线路采用互联网格式USENET网站还没有能够理解互联网格式会破坏回复能够完全切断路径头和应答函数。因此,站点是需要继续保持工作中的路径线回复格式尽可能多,直到1984年1月1日。众所周知,路径并不总是有效的回复旧实现中的字符串,无需修复这个问题放在实现上。然而- 7 -

放置站点名称和“!”的现有约定在路径的前面,并以开始路径站点名称“!”和用户名应为至少维持到1984年。2.2可选标题

2.2.1回复至此行的格式与From相同。如果存在,应将给作者的邮件回复发送至此处给出的名称。否则,答复将发送到发件人行上的名称。(这并不妨碍副本发送给回复者指定的接收人,或在“收件人”或“抄送”行。)全名可以是可选的在括号中给出,如在From行中。2.2.2发件人仅当提交者手动输入“发件人”行。它旨在记录负责将文章提交给网络,并应由软件在提交站点。例如,如果John Smith正在访问CCA并希望使用朋友莎拉·琼斯向网络发布一篇文章帐户,消息可能会显示发件人:smith@ucbvax.uucp(约翰·史密斯)发件人:jones@cca.arpa(莎拉·琼斯)如果网关程序将邮件消息输入位于站点sri-unix的网络,线路可能会显示发件人:John.Doe@CMU-CS-A.ARPA公司发件人:network@sri-unix.ARPA该领域的主要目的是能够跟踪记录文章以确定它们是如何进入网络。可以选择给定全名,在括号,如From行中的。2.2.3跟进至此行的格式与新闻组。如果有,后续文章将发布到此处列出的新闻组。如果该行是不存在,后续消息将发布到新闻组列在“新闻组”行中,但以下内容除外“net.general”应该改为“net.followup”。2.2.4接收日期此行(以前称为“已接收”)是采用合法的USENET日期格式。它记录了日期和文章首次在本地收到的时间系统。如果该行出现在从一个主机传输到另一个主机,即接收主机应该忽略它并将其替换为当前日期。由于此字段仅供本地使用,因此没有站点需要支持它。但是,任何站点都不应通过将此字段更改为另一个站点。- 8 -

2.2.5过期此行(如果存在)是合法的USENET日期格式。它指定了建议的到期时间文章的日期。如果不存在,则使用本地默认值使用到期日期。此字段用于清理物品用途有限,或保存重要物品比平时更久。例如,一条消息宣布即将召开的研讨会可能会过期请注明研讨会的第二天,因为消息不是研讨会结束后有用。由于本地站点新闻过期的当地政策(取决于例如,可用磁盘空间),不鼓励用户使用提供物品的有效期,除非有是与主题关联的自然到期日期。系统软件几乎不应提供默认值使行过期。忽略它,允许地方政策除非有充分的理由不使用。2.2.6工具书类此字段列出的消息ID任何促使提交本文的文章。所有后续物品都需要,并且在以下情况下禁止使用提出了一个新课题。实施应提供following命令,允许用户发布后续信息文章。此命令应生成主题行与原文相同,但如果原始主题不是以“Re:”或“Re:”开头,主题。如果原件上没有参考线标头,引用行应包含消息ID(包括尖括号)。如果原始文章确实有参考行,则后续文章应该有一个包含以下内容的参考行原始参考行的文本,一个空白,以及原始文章的消息ID。References标题的目的是允许文章按用户界面分组为对话程序。这允许新闻组中的对话保持在一起,潜在的用户可能会关闭没有取消订阅新闻组的整个对话。用户界面可能不会使用此标头,但所有自动生成的跟进应生成参考线为使用它的系统带来好处,以及手动生成的后续信息(例如,在很长一段时间后键入原始文章已被机器打印出来)也应鼓励将其包括在内。2.2.7控制如果项目包含控制行,则文章是一条控制消息。使用控制消息用于USENET主机之间的通信,而不是用户阅读。控制消息由与普通消息相同的新闻组机制。尸体Control标题行的是发送给主机的消息。- 9 -

为了实现向上兼容性新闻组模式“all.all.ctl”也应该是解释为控制消息。如果没有Control:标头在此类消息中,主题被用作控制消息。然而,新闻组上的消息匹配这个图案不符合这个标准。2.2.8分发此行用于更改消息的分发范围。它具有相同的格式作为新闻组行。用户订阅仍在进行由新闻组控制,但消息将发送给所有订阅分发上新闻组的系统行,而不是新闻组行。因此,一辆待售汽车在新泽西州,头球可能包括新闻组:net.auto,net.wanted分发:nj.all这样它只会给订阅的人在新泽西州通缉net.auto或net.want。的意图此标头用于进一步限制新闻组,而不是增加它。本地新闻组,例如nj.crazy-eddie可能不会被网站传播在新泽西州以外,不显示这样的新闻组有效。分发中新闻组名称中的通配符行。后续文章应默认为与原始文章的分发行相同,但用户可以将其更改为更有限的,或将如果最初受到限制,则分配广泛分发的回复是合适的。2.2.9组织这行文字很短描述发件人所在组织的短语属于或机器所属。的意图此行用于帮助识别发布消息,因为站点名称通常很神秘很难通过电子方式识别组织地址。.控制消息本节列出了当前定义的控制消息。Control标头的主体是控制消息。消息是由零个或多个单词组成的序列,分隔开空白(空格或制表符)。第一个词是控制消息的名称,其余单词为消息的参数。页眉的其余部分消息正文也是潜在参数;例如,“发件人”行可能会建议一个地址将发送响应。-10个-

实施者和管理员可以选择允许自动执行的控制消息,或将它们排队进行手动处理。但是,手动处理后的信息应及时处理。3.1取消取消<消息ID>如果具有给定消息ID的文章出现在本地系统,文章被取消。这个机制允许用户在文章完成以下操作后取消文章通过网络分发。只有文章作者或本地超级用户允许使用此消息。已验证的发件人message是Sender行,如果没有Sender行当前,“发件人”行。已验证的取消发件人消息必须与发件人或发件人相同原始消息的字段。中的已验证发件人允许取消消息与中未验证的发件人匹配原始消息。3.2我有/发送给我ihave<消息ID列表><远程系统>sendme<消息ID列表><远程系统>此消息是“ihave/sendme”协议的一部分,允许一个站点(例如“A”)告诉另一个站点(“B”)已在a上接收到特定消息。假设站点A收到文章“ucbvax.1234”,并且希望将文章发送到站点B。A发送控制消息“ihave ucbvax.1234 A”至站点B(由将其发布到新闻组“to.B”)。B用回应控制消息“sendme ucbvax.1234 B”(在新闻组上如果它还没有收到物品。收到Sendme消息后,A将文章发送给B。此协议可用于减少冗余流量站点之间。它是可选的,只有在特殊的情况使它值得。通常,结果是,由于大多数原始消息很短,而且由于开始发送的开销很高使用UUCP发送新消息,发送我有寄这篇文章本身的费用。解决这个开销问题的一个可能方法是批处理请求。可能会公布多个消息ID,或在一条消息中请求。如果未列出消息ID在控制消息中,消息正文应该是扫描邮件ID,每行一个。- 11 -

3.3新闻组新组<组名>此控制消息创建一个名为鉴于。因为直到创建新闻组后,需要在可以使用新闻组。消息的正文是应该是一个简短的段落,描述预期的新闻组的使用。3.4R组rmgroup<组名>此邮件删除具有给定名称的新闻组。由于新闻组已从上的每个站点中删除网络,此命令应由负责管理员。3.5Sendsys公司sendsys(无参数)“sys”文件,列出所有邻居新闻组被发送到每个邻居,将被邮寄到控制消息的作者(如果有回复,否则为From)。此信息被视为公开信息信息,这是中的成员资格要求USENET要求提供此信息,自动响应此控制消息,或通过将请求的信息邮寄到消息的作者。此信息用于保存最新的USENET地图,并确定其位置netnews已发送。邮寄回作者的文件格式应为与“sys”文件相同。此格式有一个每个相邻站点的线路(加上本地站点的一条线路site),包含四个冒号分隔的字段。第一个字段具有邻居的站点名称,第二个字段具有描述发送到的新闻组的新闻组模式邻居。第三和第四个字段未定义按照这个标准。回答示例:来自cbosgd!1983年3月27日星期日20:39:37主题:对sendsys请求的响应收件人:mark@cbosgd.UUCP- 12 -

响应系统:cbosgd。UUCP公司cbosgd:osg,cb,btl,bell,net,fa,to,testucbvax:net,fa到.ucbvax:L:cbosg:net,fa,bell,btl,cb,osg,到.cbosg:F:/usr/spool/outnews/cbosgcbosgb:osg,到.cbosgb:F:/usr/spool/outnews/cbosgbsessent:net,fa,bell,btl,cb,to。sessent:F:/usr/spool/outnews/sessentnpois:net、fa、bell、btl、ug、to。npois:F:/usr/spool/outnews/npoismhuxi:net,fa,bell,btl,ug,到.mhuxi:F:/usr/spool/outnews/mhuxi3.6发送uunamesenduuname(无参数)运行“uuname”程序,并将输出发送到控制消息的作者(如果有回复,否则为From)。此程序列出的所有uucp邻居本地站点。此信息用于绘制UUCP网络。sys文件与UUCP L.sys文件。L.sys文件不应该是未经其中列出密码的站点。站点可以选择提供此信息。应向控制作者作出一些答复消息,这样传输错误就不会受到指责。也允许站点运行uuname程序(或以其他方式确定uucp邻居)和在之前自动或手动编辑输出将回复邮寄给作者。该文件应每行包含一个站点,从uucp站点开始名称。附加信息可以包括在内,并分开通过空白或选项卡显示站点名称。电话号码或回复中不应包含网站密码被视为属于公共领域。(uuname程序将只发送站点名称,而不发送整个L.sys文件的内容,因此,电话号码和不传输密码。)此消息的目的是生成和维护UUCP邮件路由图。因此,邮件的连接可以使用网站发送!应包括用户语法,无论链接是否实际是位于的UUCP链接身体水平。如果邮件路由器应该使用它应包括在内。由于所有信息都已发送对此消息的响应是可选的,站点可以免费编辑列表,删除他们所做的秘密或私人链接不想公开。3.7版本版本(无参数)本地上运行的软件的名称和版本系统将邮寄回文章作者(如果存在,请回复,否则请回复发件人)。- 13 -

4.传输方法USENET不是物理网络,而是逻辑网络位于几个现有物理设备之上的网络网络。这些网络包括但不限于:,UUCP、ARPANET、以太网、BLICN网络、NSCHyperchannel和Berknet。重要的是USENET上的两个相邻系统有一些方法一篇来自一个系统的新文章,格式如下到另一个,并在接收系统上处理一次通过该系统上的netnews软件。(在UNIX系统上,这通常意味着运行“rnews”程序关于标准输入的文章。)USENET网站不要求有邮件能够理解ARPA互联网邮件的系统语法,但强烈建议使用。自起,Reply-To和Sender行使用Internet语法,如果没有互联网邮件。没有网络邮件程序的站点可以尝试使用Path标题行进行回复,但这字段不能保证是答复的工作路径。在任何情况下,任何生成或转发新闻的网站消息必须具有允许其访问的互联网地址从带有互联网邮件程序的站点接收邮件必须在发件人行中包含他们的互联网地址。4.1远程执行某些网络允许直接远程执行命令。打开这些网络,新闻可以通过假脱机转发rnews命令与标准输入上的文章。对于例如,如果远程系统被称为“远程”,新闻将使用命令“uux通过UUCP链接发送-远程!“rnews”,在Berknet上是“net-mremote rnews先生”。通过可靠的mechanisim,通常涉及缠绕的可能性,而不是直接实时远程执行。这是因为,如果远程系统关闭,直接执行命令将失败,文章将永远不会失败交付。如果文章被假脱机,它最终会在两个系统都启动时交付。4.2邮寄转账在某些系统上,直接远程假脱机执行不可能。然而,大多数系统支持电子邮件,新闻文章可以通过邮件发送。一种方法是发送与新闻相同的邮件信息消息:邮件标题是新闻标题邮件正文是新闻正文。按照惯例,这封邮件是发送给远程机器上的用户“新闻邮件”。- 14 -

这种方法的一个问题是它可能不是可以说服邮件系统由于邮件消息是生成的,因此消息是有效的通过不同于源系统上的程序新闻文章。另一个问题是错误消息由邮件传输引起的新闻文章的发起者,他无法控制两个合作主持人之间的新闻传播不知道该联系谁。传输错误消息应直接发送给负责的联系人发送机器。这个问题的解决方案是封装新闻文章转换为邮件消息,这样整个文章(标题和正文)是邮件正文的一部分消息。这里的惯例是这样的邮件发送到远程系统上的用户“rnews”。邮件正文通过在每行前面加上字母“N”生成然后附上任何邮件标题很容易生成。N已附加以防止新闻文章中的任何特殊行干扰邮件传输,并防止由邮件发送程序插入的额外行(标题、空行等),等)成为新闻文章的一部分。一个程序在接收机器上接收发送到“rnews”的邮件,提取文章本身并调用“rnews”程序。此格式的示例可能如下所示:日期:1983年1月3日,星期一08:33:47 MST发件人:news@cbosgd.UUCP主题:网络新闻文章收件人:rnews@npois.UUCPNRelay版本:B 2.10 2/13/83 cbosgd。UUCP公司N发布版本:B 2.9 6/21/82 sask.UUCPNPath:cbosgd!mhuxj!竖琴!犹他州cs!萨克!德里克N来自:derek@sask.UUCP(德里克·安德鲁)N新闻组:net.testN主题:必要的测试N消息ID:<176@sask.UUCP>日期:1983年1月3日星期一00:59:15 MSTN个这真的是一个测试。如果有人超过6Nhops away会确认这张便条我会准确无误。我们怀疑我们的新闻发布我无法融入这个世界。N个使用邮件解决了假脱机问题,因为邮件必须如果目标主机关闭,则始终进行后台打印。然而,它给传输过程增加了更多开销(封装和提取文章)并使其软件很难对新闻赋予不同的优先级和邮件。- 15 -

4.3批处理由于新闻文章通常很短消息的数量通常在今天,批量发布新闻文章可能是有意义的。几个文章可以组合成一篇大文章,使用两个站点预先商定的公约。一个这里描述这种配料方案;它仍在使用被认为是实验性的。新闻文章被合并成一个脚本,由表单标题:##! 内华达1234其中1234是文章的长度(以字节为单位)。每个该行后面是一个包含给定字节数。(每行末尾的换行符出于这个目的,文章被计算为一个字节计数,即使它存储为CRLF。)例如,批次的文章可能如下所示:#! 内华达374继电器版本:版本B 2.10 2/13/83;网站cbosgd。UUCP公司发布版本:版本B 2.10 2/13/83;现场鹰。UUCP公司路径:cbosgd!mhuxj!mhuxt!老鹰!杰瑞发件人:jerry@eagle.uucp(杰里·施瓦兹)新闻组:net.general主题:Usenet礼仪——请阅读消息ID:<642@eagle.UUC公司>日期:2002年11月19日星期五16:14:55 EST这里有一个关于USENET礼仪的重要信息。#! 内华达378继电器版本:版本B 2.10 2/13/83;网站cbosgd。UUCP公司发布版本:版本B 2.10 2/13/83;现场鹰。UUCP公司路径:cbosgd!mhuxj!mhuxt!老鹰!杰瑞发件人:杰瑞@eagle.uucp(杰里·施瓦兹)新闻组:net.followup主题:礼仪文章注释消息ID:<643@eagle.UUCP>日期:美国东部时间2002年11月19日星期五17:24:12我在最后一条消息中忘了提到一些事情。由于中的第一个字符,因此可以识别成批新闻消息是“#”。然后将消息传递给解绑器进行解释。-16个-

5.新闻传播算法本节描述了USENET和网站向整个网络。因为所有站点都受到文章格式不正确以及传播错误,方法的标准化很重要。USENET是一个有向图。图中的每个节点都是主机,图形中的每个弧都是一个传输从一台主机到另一台主机的路径。每个弧都有标签使用新闻组模式,指定哪个新闻组类沿着该链接转发。大多数弧是双向,即,如果站点A发送新闻组发送到站点B,然后站点B通常发送相同的消息站点A的新闻组类。这种双向性是然而,这不是必需的。USENET由许多子网组成。每个子网都有一个名称,例如“net”或“btl”。特殊子网“net”被定义为USENET,尽管子网可能是USENET的超集(因为站点获取本地新闻组类,但不要获取net.all)。每个子网是一个已连接的图,也就是说,从每个节点到子网中的每个其他节点。此外,整个图(理论上)是连通的。(实际上,一些政治考虑导致一些网站无法向其他网站发布文章网络的。)文章在一台机器上发布到新闻组。那台机器在本地接受它将其转发给所有感兴趣的邻居消息的至少一个新闻组。(现场A认为如果新闻组匹配从A到B的弧上的图案。此图案存储在a机器上的文件中。)这个接收到传入文章的站点检查它以使确定他们真的想要这篇文章,在当地接受它,并且然后将文章转发给所有感兴趣的人邻居。这个过程一直持续到网络已经看到了这篇文章。算法的一个重要部分是防止循环。上述过程将导致消息循环永远沿着一个循环。特别是,当站点A发送文章发送到站点B,站点B会将其发送回站点A,将其发送到站点B,依此类推。一个解决方案这就是历史机制。每个站点都会跟踪它所看到的所有文章(通过其消息ID)和当一篇文章出现在它已经看到的地方时收到的物品立即丢弃。这个解决方案足以防止循环,但额外可以进行优化以避免将文章发送到只会把它们扔掉的网站。- 17 -

一个优化是永远不应该发送文章到标题路径行中列出的机器。什么时候?路径行中有一个机器名,消息是已知的通过机器。另一个优化就是说,如果文章来源于站点A,那么站点A已经看过这篇文章了。(起源可以是由发布版本行确定。)因此,如果一篇文章被发布到新闻组“net.misc”,它将匹配模式“net.all”(其中“all”是一个匹配任何字符串的元符号),并将被转发所有订阅net.all的网站(由他们的邻居寄给他们的)。这些网站构成了“net”子网。一篇文章发布到“btl.general”将到达所有接收“btl.all”的站点,但不会访问未获得“btl.all”的站点。实际上文章到达“btl”子网。一篇文章发布到新闻组“net.micro,btl.general”将到达所有订阅这两个类别中任何一个的网站。-18个-