第一章 网络绪论
1.1 历史
连网的主意大概与电讯事业本身一样的久远。考虑人们生活的石器时代,那时鼓可能已经用
于在人们之间传递消息了。假释穴居人A想邀请穴居人B进行一场互扔石块的游戏,但是他们
互相之间居住得太遥远,以至B听不见A的击鼓声。那么,A能够做些什么呢?他可以1)走到
B的地方去,2)使用一个更大的鼓,或者3)询问C,C居住在他们中间的地方,来传递消息。
这最后一个办法就叫做连网。
当然,我们已经比我们祖先的原始嗜好和设备有了长足的进步。现在,通过大量的线缆的集
合,如光纤、微波、等等,我们用计算机进行相互间的对话来作星期六足球比赛的约会。[1
] 下面,我们将涉及实现上述的手段和方法,但不考虑线缆,也不考虑足球的部分。
在本手册中,我们将讨论两种网络类型:基于UUCP的,和基于TCP/IP的。这是一些协议集和
软件包,它们提供了在两台计算机之间传输数据的方法。在这一章中,我们将考虑这两种网
络类型,并且讨论它们的基本原理。
我们定义网络是一个互相之间能够通信主机(hosts)的集合,这常常依赖于一些专用(指定
)主机的服务,即是在参与者之间中继数据。主机通常就是计算机,但也不一定;也可以将
X-终端或者智能打印机当作主机。少量的主机聚合也称为站点(sites)。
没有语言或者代码,进行通信是不可能的。在计算机网络中,这些语言共同地被称为协议(
protocols)。然而,这里你不用关心协议是如何制定出来的,而是要,例如,考虑州长开会
时注意到的高度形式化的行为代码。同样,用于计算机网络中的协议仅仅是两台或多台主机
之间交换消息所用的非常严格的一些规则。
1.2 UUCP网络
UUCP是Unix-to-Unix Copy的缩写。刚开始它是作为一个程序包,用于在串行线路上传输文件
、确定这些传输的时间、并且在远程站点上启动程序的执行。自从七十年代末它第一次实现
以来,已经历了很大的变化,但其提供的服务仍然很简单。他的主要应用仍然是在基于拨号
连接的广域网中。
UUCP是贝尔实验室在1977年首先开发出来的,用于在他们的Unix开发站点之间的通信。在19
78年中期,这个网络已经连接了80多个站点。它应用于运行电子邮件以及远程打印。然而,
这个系统主要用于分发新软件以及调试程序。[2] 现今,UUCP不再被限制于这个环境内了。
在许多种类的平台上已有免费的和商业的移植版本了,包括AmigaOS、DOS、Atari的TOS等等
。
UUCP网络的主要缺点之一是它的低带宽。一方面,电话设备对最高传输速率有严密的限制。
另一方面,UUCP链接很少有固定的连接;而是在有规则的时间间隔上主机拨号来相互连接。
因此,大多数时间,是用于在UUCP网络上传输存储于某些主机磁盘上的邮件消息、等待下次
连接的建立。
尽管有这些限制,世界各地仍有许多UUCP网络在运转着,主要是由计算机业余爱好者在运行
着,它以合适的价格为私人用户提供网络访问。UUCP流行的主要原因是:与将你的计算机连
接到大Internet电缆上相比,它是极其便宜的。为了使你的计算机成为一个UUCP节点,你只
须有个modem、一个运行着的UUCP程序,以及愿意供你邮件和新闻的其他的UUCP节点。
1.2.1 如何使用UUCP
UUCP后面的概念是非常简单的:就如同它的名字指出的一样,它基本上是将文件从一台主机
上拷贝到另一台上去,但它也允许在远程主机上进行一定的操作。
假设你的机器允许访问名为swim的假想的主机,并且让它为你执行lpr打印命令。那么你可以
命令行上键入下面一行在swim上打印出本书来:[3]
$ uux -r swim!lpr !netguide.dvi
这使得uux为swim调度了一个作业(job)。uux是UUCP组中的一个命令。这个作业由输入文件
netguide.dvi、以及馈送该文件到lpr的请求组成。-r标志告诉uux不用立刻访问远程系统,
而是将作业存储起来直到稍后时有个连接被建立起来。这叫作假脱机(打印)(spooling)
。
UUCP的另一个特性是它允许通过几台主机转发作业和文件,假如它们合作的话。假定上面例
子中的swim与groucho有一个UUCP链接,groucho中保存着大量的应用程序文档。为了下载文
件tripwire-1.0.tar.gz到你的站点上,你可以发出
$ uucp -mr swim!groucho!~/security/tripwire-1.0.tar.gz
trip.tgz
所创建的作业将请求swim从groucho取得该文件,并将文件送到你的站点,这里UUCP将把文件
存为trip.tgz并且通过文件到达的邮件来通知你。这将分三步完成。首先,你的站点将作业
送至swim。当下次swim与groucho建立了连接,就会下载该文件。最后一步是从swim到你站点
的实际的传输。
目前,UUCP网络所提供的最重要的服务就是电子邮件和新闻。稍后我们将会讨论这些,所以
这里我们仅给出一个概要的介绍。
电子邮件 ? 简称email ? 允许你与远程主机上的用户交换消息而无需实际地知道如何访问
这些主机。控制一个消息从你的站点到达目的站点的任务是完全由邮件处理系统完成的。在
一个UUCP环境中,邮件一般是通过在比邻的主机上执行rmail命令传送的,并把接收者的地址
和邮件消息传给rmail。然后rmail将会转发消息到另一台主机上等等,直到消息到达目的主
机为止。我们将在第13章中详细地讨论。
News可以最恰当地描述成一类分布式的电子公告板系统。绝大多数情况下,这个术语指的是
Usenet News,它是直到目前为止最著名的估计有着120,000-参与站点的新闻交换网络。Use
net的起源可追溯至1979年,那时,在新的Unix-V7版本发布以后,三个研究生有了一个在Un
ix团体中通用信息交换的点子。他们整理了一些脚本,这成了第一个网络新闻系统。在1980
年里,这个网络连接了北卡罗林纳州的两所大学里的duke、unc和phs网络。从这衍生出来,
Usenet最终成长起来了。尽管它起初是一个基于UUCP的网络,现已不再限于单种类型的网络
了。
信息的基本单元是文章,它可能被投寄到专用于某个特殊主题的新闻组的层次结构中。大多
数站点仅仅接收全部新闻组的一个选集,而全部新闻组每天平均传送相当于60MB的文章。
在UUCP的世界中,news通常是按照从请求的组中收集所有的文章,并且打包成几批(batche
s),再通过一个UUCP链接来发送的。这几批文章被发送到接收站点,并在那里被送给了rne
ws命令来打开这几批数据包以及更进一步的处理。
最后,对于许多拨号上网的供公共访问的文档站点来说,UUCP也同样是一种供选择的方法。
你通常可以这样来使用它们:使用UUCP拨号上网、作为来客(guest)用户登录、并从公共访
问文档区域下载文件。这些来客帐号的登录名/口令通常是uucp/nuucp或者是其他一些类似的
。
1.3 TCP/IP网络
尽管UUCP可能是一种廉价的拨号上网链接的选择,但还存在着许多情况,在这些情况下,这
种存储-与-转发的技术被证明是不灵活的,例如在局域网(LANs)的情况下。这通常是由位
于同一幢建筑物、甚至是位于同一层的少数机器组成,它们互相连接以提供一个相似的工作
环境。典型地来讲,你将在这些主机上共享文件,或者在不同的机器上运行分布式应用程序
。
这些任务需要一种完全不同的连网途径。所有的数据被分解成更小的块(packets 包、分组
),这些块被立刻转发到目的主机上,并再重新组合起来。而不是随同一个作业脚本转发整
个文件。这类网络被称为包[分组]交换(packet-switched)网络。从其它方面来讲,这允许
在网络上运行交互式的应用程序。当然,所付出的代价是大大地增加了软件的复杂性。
这种系统---不一定就是主机---所采用的解决方案就是著名的TCP/IP。在本节中,我们将看
一下它的基本概念。
1.3.1 TCP/IP网络引言
TCP/IP的起源可以上溯到1975年美国DARPA(Defense Advanced Research Projects Agency
国防部远景规划局)支助的研究计划。那是个试验性的网络,ARPANET,在经证实成功以后
,于1975年转入正常运行。
1983年,新的TCP/IP协议组被作为标准采用,并且网络中的所有主机必须使用它。当ARPANE
T最终成长为Internet时(ARPANET本身于1990年停止使用),TCP/IP的使用已经传播到Inte
rnet以外的网络上去了。最值得注意的是局域网络,但随着象ISDN等快速数字电话设备的出
现,将来肯定也会应用于拨号上网的传输。
在贯穿以下几节的TCP/IP讨论当中,作为一个看待的具体实例,我们将考虑坐落在Fredland
某地的Groucho Marx大学(GMU),绝大多数系部运行他们自己的局域网,有些系部共享一个
局域网,有些有好几个局域网络。他们都是互连的,并且通过一个高速链接与Internet相连
。
假设你的机器在数学系连接到局域网上,并且假设你的机器名为erdos。为了访问物理系的一
个名为guark的主机,你键入以下命令:
$ rlogin quark.physics
Welcome to the Physics Department at GMU
(ttyq2) login:
在提示符下,输入你的登录名,假如说是andres,以及你的口令。这时你就进入了quark的s
hell,在那里你就可以象是在系统的控制台上一样键入各种命令。在你退出shell以后,就会
退回到自己机器的提示符下。你刚才即使用了TCP/IP提供的即时的、交互式的应用程序:远
程登录。
在你登录进quark时,你也会想要运行一