Loading...

当前位置:资讯中心主页 >网管技术其他 >文章内容

  • Linux网络管理员手册(16)
  • 来源:linux宝库作者:linux宝库 发布时间:2007-09-30 08:00:00
    • 域名注册

    • 域名惊喜价格 cn域名1元注册
    • com域名39.9

      虚拟主机

    • 主机按月支付,低至19元/月
    • 超大流量,可开子站点

      VPS主机

    • 特惠VPS168元/月,4-8M独享带宽保证
    • 独立操作系统,无限开站点

      第十六章 网络新闻(Netnews)

      16.1 Usenet的历史

      网络新闻(network news)的观念产生于1979年,当时有两位研究生Tom Truscott和Jim El

      lis考虑在UN*X用户之间使用UUCP来连接各台机器以进行信息的交换。他们在北卡罗莱纳州用

      三台机器组成了一个小网。

      最初,信息传输是通过非常多shell脚本来处理的(后来用C语言改写),不过这些脚本从未向

      外界公开过。他们非常快就被“A”news替换掉了,这是第一个向外界发布的news软件版本。

      “A”news只设计成处理每天每个组非常少的文章。当新闻组的容量继续在增大时,该软件由M

      ark Horton和Matt Glickman进行了重写,他两人称其为“B”发行版(又名Bnews)。Bnews

      第一个公研发行版是1982年的2.1版。他被不断地扩充,增加了几个新特性。目前他的版本是

      Bnews 2.11。目前他已慢慢地被舍弃,最后一个正式维护者也转向了INN。

      另一次重写是由Geoff Collyer和Henry Spencer在1987年完成并发行的;这是版本“C”,或

      称C News。在接下来的一段时间内出了许多针对C News的补丁程式,最为显著的是C News P

      erformance版本。在有着大量新闻组的站点上,由于频繁地调用relaynews(该程式负责将入

      站文章分发到其他站点去)而造成的系统开销是非常大的。Performance版本给relaynews加了

      一个选项,该选项允许他以后台模式(daemon mode)来运行,将自己置入后台。

      Performance版本是目前包括在大多数Linux版中的C News版本。

      一直到“C”的所有news发行版基本上都是用于UUCP网络的。尽管他们也能用于其他的环境。

      在象TCP/IP、DECNet或其他相应的网络上进行有效的新闻传输需求一个新的方案。这就是为

      什么在1986年引进“网络新闻传输协议”(“Network News Transfer Protocol”),NNTP

      的原因了。他是基于网络连接的,并且指定了许多进行交互传送和收取文章的命令。

      网上有许多基于NNTP的应用程式。其中之一就是Brian Barber和Phil Lapsley的nntpd软件包

      ,你能使用这个软件及其他软件在一个局域网内为许多主机提供新闻阅读服务。nntpd是

      被设计成补足象Bnews或C News这样的news软件包的,为他们提供NNTP的特性。

      另一个不同的NNTP软件包是INN,即Internet News。他不仅仅是个前端程式,他自己就是

      一个news系统。他是个能够有效地同时维护几个并行NNTP链接的复杂的news中继后台程式

      ,因而许多Internet站点选择他作为news服务器。

      16.2 总之,什么是Usenet?

      有关Usenet最显著的事实之一是他不属于所有组织,也没有所有集中的网络管理特权。实际

      上,这是Usenet学问的一部分,除了技术说明以外,你定义不了他到底是什么,你只能指出

      他不是什么。如果你手头有本Brendan Kehoe的出色的“禅和Internet艺术”(网上和Prent

      ice-Hall有售,见[Kehoe92]),你会找到一张有趣的有关不属于Usenet的列表。

      冒着让人听上去感觉非常蠢的风险,人们能把Usenet定义为交换Usenet News的独立站点的集

      合。要成为一个Usenet站点,你全部所需做的是找到另一个Usenet站点,并和他的拥有者和

      维护者达成和你交换news的协议。为另一个站点提供news也称为给他喂信,这起源于另一个

      Usenet哲学的公理:“Get a feed and you’re on it.”

      Usenet news最基本的单元是文章。这是用户写作并“投递”到网上的。为了让news系统能够

      处理,这些文章附带了管理信息,即所谓的文章标题(头)。他和符合Internet邮件标准RF

      C 822的邮件的标题格式非常相似,他也是有几行文本组成,每行用一个以冒号结尾的字段名

      开始,其后带有字段的值。[1]

      文章被提交给一个或更多个新闻组(newsgroups)。人们能将一个新闻组看作是有关一个

      一起主题文章的论坛。所有的新闻组以层次结构组成,每个组名指出了自己在这个层次结构

      中的位置。这使得一个组能够非常容易地被看出是有关哪方面的。例如,从新闻组的名称上任

      何人都能看出comp.os.linux.announce是用于有关名为Linux的操作系统公告的。

      然后这些文章在所有乐意从这个组中传递news的Usenet站点之间进行交换。当两个站点同意

      互相交换news时,他们能自由地交换所喜欢的所有新闻组,甚至能加上他们自己本地ne

      ws层次结构。例如,groucho.edu可能和branyard.edu(这是个主要的news喂信机)有一个

      news链接,还和几个他要喂信的小站点有链接。目前,Barnyard大学可能接收了所有的Usen

      et组,而GMU却只想传送几个象sci、comp、rec等的主要的层次结构。某些下游的站点,比如

      说一个称为brewhq的UUCP站点,甚至想传送更少的组,因为他们没有这种网络或硬件资源。

      另一方面,brewhq可能想要从fj层次结构中接收新闻组,而这个层次结构GMU没有传送。因此

      ,他就和gargleblaster.com维持另一个链接,这个站点却传送了所有fj组,并将这些组喂给

      brewhq。这些news的流动见图16.1中所示。

      图16.1 Usenet news在Groucho Marx大学中的流动

      尽管非常清晰,从brewhq发出的箭头上的标签可能还是需要作些解释。默认地,他会要所有本

      地产生的news被送到groucho.edu。然而,由于groucho.edu没有传送fj组,所以从这些组给

      他发送所有消息中没有箭头指向。因此,从brewhq给GMU的喂信操作被标上了all,!fj,表示

      除了fj下的所有组都发送给他。

      16.3 Usenet是怎么处理News的?

      如今,Usenet已增长到占有巨大的比例。传送整个网络新闻的站点通常每天传输六十兆字

      节已不足为奇。[2] 当然这比任意摆布文件需要更多的处理。所以让我们看看大多数UN*X系

      统处理Usenet news的方法。

      News是通过各种传输渠道经由网络来发布的。传统的传输媒介原来是UUCP,不过如今主要的

      数据流量是由Internet站点来传送的。所用的路由选择的算法称为扩散法(flooding):每

      个站点都维护着许多到其他站点的链接(news feeds)。所有由本地news系统产生的或接收

      到的文章都被转发给他们,除非文章已在那个站点上,在这种情况下文章将被丢弃。通过观

      察Path:标题字段,一个站点能发现文章已穿过的所有其他站点。这个标题含有文章已

      经被其转发过的以bang path标记的所有系统的一张列表。

      为了差别各篇文章和识别重复文章,Usenet文章必须要携带一个消息id(在Message-Id:标

      题字段中指明),他将投递站点的名字和一个序列号组合在一起形成“”。对于所处理的每

      篇文章,news系统将这个id记录进history日志文件中,据此,检查所有新到的文章。

      所有两个站点之间的文章信息流动能通过两个准则来加以限制:其一,文章被指派一个发

      布信息(在Distribution:标题字段),该信息可用于将该文章归入站点内适当的组中。另

      一方面,被交换的新闻组能通过发送或接收系统两者来加以限制。允许往一个站点传送的

      新闻组和分类的集合通常保存在sys文件中。

      纯粹的文章数量通常需求对上述方案进行改进。在UUCP网络上,平常要做的是每隔一段时间

      收集一次文章,并将收集来的文章组合成一单个文件,进行压缩并发送到远程站点去。这称

      为批量处理(batching)。[3]

      另外一种技术是ihave/sendme协议,这个协议在文章最初的地方就避免重复发送文章,这样

      就节约了网络带宽。不是把所有的文章放入一个批处理文件中并将他们一起发送出去,而是

      只将文章的消息id组合成一个巨大的“ihave”消息并发送到远程站点。远程站点读取这个消

      息,和他自己的history文件比较,然后返回在“sendme”消息中想要的文章的列表。此后,

      只有这些文章将被发送。

      当然,ihave/sendme只有在涉及两个大站点时才显得有意义,这两个大站点各自从几个独立

      的喂信者那里接收news,并且经常相互选取对方作为有效的news流动目的地。

      在Internet上的站点通常依赖于基于TCP/IP,使用网络新闻传输协议NNTP的软件[4]。他在喂

      信者之间传送news并且为远程主机上的独立用户提供Usenet访问。

      NNTP能用三种方法来传递news。一种是ihave/sendme的实时版,也被称为推信(pushing

      news)操作。第二种技术称为拉信(pulling news)操作,在这种方法中,客户就向服务器

      索取指定新闻组或层次结构中文章的列表清单,并选择那些在他的history文件中没有的文章

      ,这些文章是在指定日期以后到达服务器站点的。第三种方式是用于交互式新闻阅读的,允

      许你或你的新闻阅读者从指定的新闻组中抽取文章,及投递标题信息不完全的文章。

      在每个站点上,news被放置在/var/spool/news下的目录结构中,每篇文章为一个文件,而每

      个新闻组在一个独立的目录中。目录名由新闻组名构成,新闻组名中的每个部分构成路径部

      分。因此,comp.os.linux.misc上的文章是放在/var/spool/news/comp/os/linux/misc中的

      。一个新闻组中的文章被按到达的次序分配了一个号,这个号就作为文件名。当前在线文章

      号的范围放置在一个称为active的文件中,这个文件同时用作你的站点所已知的新闻组的清

      单。

      由于磁盘空间是有限的资源,[5] 在一段时间以后,你就需要开始丢弃一些文章了。这叫做

      过期操作(expiring)。通常,从一定的组和结构中来的文章在到达站点经过一固定天数以

      后就过期了。投递者若在文章标题字段Expires:中指定一过期的日期,就能覆盖固定天数

      了。

      

  • 以上内容由 华夏名网 搜集整理,如转载请注明原文出处,并保留这一部分内容。

      “华夏名网” http://www.sudu.cn 和 http://www.bigwww.com 是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为25大IDC服务商之一。

    华夏名网网址导航: 虚拟主机 双线主机 主机 域名注册 cn域名 域名 服务器租用 酷睿服务器 vps vps主机

  • (阅读次数:159)
  • 上一篇: Linux下网卡设置常见问题(5)    下一篇: Linux网络管理员手册(15)
  • [收藏] [推荐] [评论] [打印本页] [返回上一页][关闭窗口]
  • 昵称: (为空则显示guest)
  • 评论分数: ★ ★ ★★★ ★★★★ ★★★★★
  • 评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。