contents
下一主题: 安装 NNTP 服务器 上一层: NNTP 概述 前一主题: NNTP 概述

简介

由于使用了不同的网络传输方式,NNTP 提供了一种与 C-news 截然不同的新闻交换方法。NNTP 代表“网络新闻传输协议”,它不是一个特定的软件包,而是一个互联网标准。gif 它基于客户端(网络中的任何位置)与服务器(主机上保存网络新闻在磁盘存储器中)之间面向流的连接——通常通过 TCP。流连接允许客户端和服务器交互式地协商文章传输,几乎没有周转延迟,从而保持较低的重复文章数量。加上互联网的高传输速率,这使得新闻传输远远超过了最初的 UUCP 网络。虽然几年前,一篇文章需要两周或更长时间才能到达 Usenet 的最后一个角落是很常见的,但现在通常不到两天;在互联网本身上,甚至在几分钟之内。

各种命令允许客户端检索、发送和发布文章。发送和发布之间的区别在于,后者可能涉及头部信息不完整的文章。gif 新闻传输客户端以及新闻阅读器都可以使用文章检索。这使得 NNTP 成为在本地网络上为许多客户端提供新闻访问的绝佳工具,而无需像使用 NFS 时那样进行复杂的配置。

NNTP 还提供了主动和被动的新闻传输方式,俗称“推送”和“拉取”。推送基本上与 C-news ihave/sendme 协议相同。客户端通过“IHAVE <varmsgid>”命令向服务器提供一篇文章,服务器返回一个响应代码,指示它是否已经拥有该文章,或者是否想要它。如果是,则客户端发送文章,以单独一行上的单个点号结束。

推送新闻的唯一缺点是它给服务器系统带来了沉重的负载,因为它必须为每篇文章搜索其历史数据库。

相反的技术是拉取新闻,其中客户端请求从一个组中获取在指定日期之后到达的所有(可用)文章的列表。此查询通过 NEWNEWS 命令执行。从返回的消息 ID 列表中,客户端选择它尚未拥有的文章,然后依次对每个文章使用 ARTICLE 命令。

拉取新闻的问题在于,服务器需要严格控制允许客户端请求的组和分发。例如,它必须确保不会将站点本地新闻组中的任何机密材料发送给未经授权的客户端。

还有许多方便新闻阅读器的命令,允许它们分别检索文章头部和正文,甚至从一系列文章中检索单个头部行。这使您可以将所有新闻保存在中央主机上,所有(可能是本地)网络上的用户都使用基于 NNTP 的客户端程序进行阅读和发布。这是通过 NFS 导出新闻目录的替代方案,这在 chapter-gif 中描述。

NNTP 的一个总体问题是,它允许知识渊博的人将带有虚假发送者规范的文章插入新闻流中。这被称为新闻伪造gif NNTP 的一个扩展允许对某些命令要求用户身份验证。

有许多可用的 NNTP 软件包。其中一个更广为人知的是 NNTP 守护程序,也称为参考实现。最初,它由 Stan Barber 和 Phil Lapsley 编写,旨在说明 RFC-977 的细节。它的最新版本是 nntpd-1.5.11,将在下面描述。您可以获取源代码并自行编译,或者使用 Fred van-Kempen 的 net-std 二进制软件包中的 nntpd。由于必须编译到各种特定于站点的值,因此不提供 nntpd 的即用型二进制文件。

nntpd 软件包包含一个服务器和两个分别用于拉取和推送新闻的客户端,以及一个 inews 替代品。它们在 Bnews 环境中运行,但稍作调整,它们也很乐意与 C-news 一起使用。但是,如果您计划将 NNTP 用于除了为新闻阅读器提供对您的新闻服务器的访问之外的用途,那么参考实现并不是一个真正的选择。因此,我们将仅讨论 nntpd 软件包中包含的 NNTP 守护程序,而忽略客户端程序。

还有一个名为“InterNet News”的软件包,简称 INN,由 Rich Salz 编写。它同时提供基于 NNTP 和 UUCP 的新闻传输,更适合大型新闻中心。当涉及到通过 NNTP 进行新闻传输时,它绝对比 nntpd 更好。INN 当前的版本是 inn-1.4sec。有一个用于在 Arjan de Vet 的机器上构建 INN 的工具包;它可以从 sunsite.unc.edu 的 system/Mail 目录中获得。如果您想设置 INN,请参考源代码附带的文档,以及定期发布到 news.software.b 的 INN-FAQ。


contents
下一主题: 安装 NNTP 服务器 上一层: NNTP 概述 前一主题: NNTP 概述

Andrew Anderson
1996 年 3 月 7 日星期四 23:22:06 EST