路由器工作原理
 
引言
互联网是20世纪通信领域的最伟大发明之一。它的存在使得人们能够在数秒内

将电子邮件发送给对方。此外,它还能使人们浏览到很多信息,其中就包括您

现在正在浏览的博闻网文章。我们现在已经对互联网的各部分给家庭和办公提

供的各种便利感到习以为常,例如网页、电子邮件和下载的文件等等,这些都

使互联网成为一个充满生机和活力的媒介和宝库。但是,如果缺少了其中一个

重要的部分,上述那些由互联网提供的服务都将无法到达您的计算机终端,而

且您很可能从未见过它的这一重要部件。事实上,大多数人都不曾亲眼目睹这

一确保互联网正常运作的重要技术组件:路由器。

 

路由器工作原理 _互联网


Fujitsu GeoStream R980工业级路由器
路由器是一种专用的计算机,它会将您和所有其他互联网用户的信息沿着成千

上万条路径高速传送到目的地。在这篇文章中,您将领略到这些工作在幕后的

机器是如何保证互联网正常运行的。
保持信息的正常传输
当您将一封电子邮件发送给身在外地的朋友时,如何确保这一信息会到达您朋

友的计算机,而不是世界上其他数百万计算机中的另外一台?将信息从一台计

算机发送到另外一台计算机的工作就主要是由路由器来承担的,这是因为它们

是保证网络间而不是网络内消息正常流动的重要设备。
让我们举个例子来看看一个简单的路由器是如何工作的。设想一家小型的公司

,这间公司主要为当地电视台制作3-D动画。公司有10名员工,每人都配备有计

算机。其中4名员工是动画制作者,剩下的员工主要从事营销、会计和管理等工

作。在完成项目的过程中,动画制作者之间需要来回传送很多非常大的文件。

为实现这一需求,他们需要一个计算机网络。
当一位动画制作者发送文件给另外一位制作者时,大型文件将会占用绝大部分

的网络资源,使得该网络对于其他用户而言速度显得极其缓慢。事实上,一个

高负荷用户会影响整个网络的性能,其中的原因之一缘于以太网的工作原理。

从一台计算机发送出的每个数据包都将会被本网络中其他计算机检测到,随后

,每台计算机检查该数据包并判断其目标地址是否为本机。这一工作原理简化

了网络的基本设计,但是当网络规模或是网络负荷程度变大时,就会出现性能

问题。为了防止动画制作者的工作影响到前端办公室中的员工,公司建立了两

个独立的网络,一个网络供动画制作者使用,另外一个被其他人员所用。而一

台路由器就将这两个网络连接起来并将它们一同连接到互联网。
引导网络流量
路由器是唯一能接收到该公司两个网络中所有计算机所发送的全部信息的设备

。在我们所举的例子中,当一位动画制作者发送一个很大的文件给另外一位制

作者时,路由器先查看信息数据里的目标地址,然后将其保留在制作者专用的

网络上。另一种情况下,如果一个制作者向会计员发送邮件询问报销单核对事

宜时,路由器查看到信息数据的目标地址,然后会将其转发到另一个网络上。
配置表是路由器用来判定数据包如何传输的依据之一,它是一系列信息的集合

,其中包括:
• 哪些连接是指向特定地址组的
• 使用的连接的优先级
• 处理常规网络流量和特殊网络流量的规则
在最小的路由器中,配置表可能简单到只有六行,但是在处理大量的互联网信

息的大型路由器中,配置表会变庞大而又复杂。
路由器有两个相互独立而又相互关联的功能:
• 路由器需要确保信息不会被传送到不相关的地址,这对于防止大量数

据堵塞他人连接是至关重要的,否则其他连接将成为“毫不相干的旁观者”。
• 路由器需要确保信息被传送到指定的地址。
正是由于对上述两个功能的执行,路由器非常适用于处理互联的两个独立网络

。它将两个网络联结起来,将信息从一个网络传输到另外一个网络。在某些情

况下,路由器还会实现两个网络间不同协议的互相转换。它还能保护网络,避

免一个网络中的信息意外泄露到另一个网络上。随着互联的网络数量增加,负

责处理这些网络间信息传送的配置表也在不断增大,路由器的处理能力也得相

应地变得更强大。然而,无论互联的网络数量有多大,路由器的基本操作和功

能都是一样的。由于互联网是一个由数以万计的较小网络组成的庞大网络,所

以路由器的使用是必不可少的。
分组发送
当您拨打电话给远在他乡的友人时,电话系统将会为您的电话和被呼电话之间

建立起一个固定线路。这一线路可能又由六个或是更多的链路组成,其中包括

线缆、交换机、光纤、微波和卫星等。一旦建立起连接之后,该线路在整个通

话过程中是不会发生改变的。固定线路连接方法意味着在通话过程中线路的质

量是保持一致的。如果整个线路中的任何一个环节出现问题,例如一棵树压倒

了其中的部分电线或是线路中的某个一个交换机出现电源问题,那么通话将会

被突然中断。而当您发送一封带有附件的电子邮件时,计算机网络所采用的方

法却与电话系统截然不同。
无论互联网数据以何种形式存在(如网页、下载的文件或是电子邮件),这些

数据都会在一个被称为分组交换网络的系统上传输。在这一系统中,电子邮件

或文件的数据被分割为数个大小为1500字节左右的数据包。每个数据包的外层

会被加上额外的信息,其中包括发送方地址、接收方地址、该数据包在整个消

息中所处的位置,以及接收的计算机如何确定数据包是否完整抵达。每个数据

包(又称为分组)将会沿着最佳的可用路径发送到目的地。同一消息中的其他

数据包可能均采用这一路径,也可能不会采用。与使用固定线路连接方法的电

话系统相比,计算机网络采用的分组交换方法看起来似乎非常复杂,但分组交

换方法对于数据网络有两大优势:
• 在毫秒级的时间内,网络能在各个设备间平衡负荷。
• 在信息传输过程中,如果网络上的一个设备出现故障,数据包将会绕

行以确保整个消息的完整传输。
数据包的传输路径
路由器是互联网的重要组成部分,它能对分组进行路径的重新配置,因为路由

器会根据数据包附带的额外信息来判断网络条件,例如接收数据和发送数据的

延时以及网络上各部分的流量。然而,并不是所有路由器都会实现上述功能。

路由器也有不同的规格大小,例如:
• 如果您在两台装有Windows 98系统的计算机之间开启了互联网连接共

享功能,您将其中一台与互联网连接的计算机作为简单的路由器。在这个例子

中,路由器执行很简单的操作,只是根据数据判断其目标地址是哪台计算机。

而这一操作又可以在系统的后台完成,从而避免了严重影响到其他正在运行的

程序。
• 稍大型的路由器将会执行较多的操作,例如将一个小型办公室连接到

互联网上的路由器。这一类路由器通常会为保护办公室网络安全而实施一定的

规则,防止某些恶意攻击危害网络安全。为了处理足够规模的网络流量,这类

路由器往往是一些独立的硬件设备,而不是运行在服务器上的软件程序。
• 大型路由器能每秒处理数百万的数据包而且能最有效地配置整个网络

,例如在互联网主要节点上处理数据的路由器。这一类路由器是大型的独立系

统,更类似于超型计算机,与办公室的服务器大相径庭。
转发数据包的示例
以博闻网美国总部办公室使用的路由器为例,我们来看一个中型路由器的例子

。在这一例子中,路由器只需考虑到两个网络:一个是由50台计算机和设备组

建而成的办公室网络,另一个便是互联网。办公室网络通过以太网的方式连接

到路由器上——更准确的说是100 base-T的以太网。这里,100 base-T的含义

是连接速度为每秒100兆比特,使用的是双绞线,类似于连接电话机与墙上插座

缆线,只不过是8芯的。在路由器与公司的互联网服务提供商之间有两条连接,

其中一个是支持每秒1.5兆比特的T-1链路,另外一个是支持每秒128千比特的

ISDN链路。路由器配置表的操作规则如下,除非T-1链路因某种原因无法使用(

例如缆线被锄耕机铲断),那么向外传输的数据包通过T-1链路传输。当T-1链

路中断时,向外传输的数据包才会通过ISDN链路传输。在这一规则中ISDN链路

被用作速度更快的T-1链路出现故障时的备用链路,而且整个过程无需人为干预

,路由器会根据配置表自动实现该功能。
除实现数据包转发外,博闻网路由器还通过一定的规则来限制网络外的计算机

与网络内计算机的连接方式,限制博闻网网络对外界的可见性,以及实现其他

一些安全功能。虽然绝大多数公司都配备有防火墙(硬件或软件实现)来保证

网络安全,但是路由器配置表中的规则对于公司或家庭网络安全而言也是至关

重要的。
准确判定信息数据包的目标地址是否位于本地网络内是路由器的关键任务之一

。为了实现这一功能,计算机网络使用子网掩码的机制。子网掩码看起来类似

于一个IP地址,通常是“255.255.255.0”。这一地址指示路由器当发送方IP地

址和目的IP地址的前三个部分相同时,两者之间传输的所有数据都将只在本地

网络内传输,而不能传送到其他网络上。例如:当一个IP地址为15.57.31.40

的计算机发送请求给IP为15.57.31.52 的计算机时,负责处理所有数据包的路

由器将发送方和接收方的IP地址前三部分(15.57.31)进行匹配,发现两者相同

而将数据包保留在本地网络内传输。您将在下一章节中了解更多有关IP地址原

理的知识。
在网页信息数据离开www.howstuffworks.com服务器到显示到您的显示器的过程

之间,信息经过了数个路由器,具体经过的路由器的准确数目是不可能提前预

知的。这一过程非常类似于一封信从您的邮筒被邮递到您朋友的邮筒,只不过

邮件分类员和邮件递送员所完成的工作是由路由器实现的。
如何转发数据包?
路由器是构成计算机网络“管路”的设备之一。和集线器、交换机一样,都是

将计算机或网络的数据传输到其他计算机或网络上的设备。但是其中只有路由

器会检测每个传输的数据包并决定其确切的传输路径。因此,路由器必须掌握

三个信息:发送方的地址,接收方的地址以及网络拓扑结构。
当一位朋友将生日贺卡邮寄到您家时,他可能会使用类似于下面的地址:
乔•史密斯
枫叶大街123号
Smalltown佛罗里达 45678
上面的地址由多个部分组成,每一部分都将帮助邮局工作人员将信件准确的邮

递到您家。虽然邮政编码能加快这一过程,但是即使没有邮政编码,只要您的

朋友写清楚了您的国家/地区、城市和街道地址,生日贺卡也同样能邮递到。我

们可以将这一地址比作是逻辑地址,该地址指示了如何能将信件投递给您。这

一逻辑地址又与相应的物理地址相关联,而物理地址是只有您在买卖房子的时

候才会了解到的。土地和房屋的勘测图包括纬度、经度和方位等信息,这些信

息则给出了该资产的法律的描述或是地址。
逻辑地址
无论是办公室网络还是互联网,连接到网络上的每个设备都有一个物理地址。

对于直接与网络线缆连接的设备而言,这个地址是独一无二的。例如,如果您

的台式计算机有一个网卡,那么此网卡就具有一个物理地址,永久存储在一个

特殊的存储位置中。该物理地址又称为媒介访问控制(Media Access Control,

MAC)地址,它有两个部分,每部分的长度为3个字节。前3个字节标识制造网卡

(NIC)的公司,后3个字节是网卡本身的序列号。
有趣的是您的计算机可以同时拥有多个逻辑地址。当然,您可能对于通过多个

“逻辑地址”将消息传送到同一个物理地址的情况习以为常。当您在家的时候

,通过邮递地址、电话号码和电子邮件地址都能使得消息传达给您。它们只是

对应于不同的消息形式,也可以说不同的网络。
在计算机网络中,逻辑地址的工作原理与之完全相同。您可能同时在使用几种

不同类型的网络的地址配置方法或传输协议。既然您已经在阅读此网页了,说

明您的计算机一定已经建立了互联网链接,那么您就已经使用了TCP/IP协议中

规定的IP地址。如果为了实现几台家庭计算机之间的文件互传,您又组建了一

个小型网络,那么您很可能还用到了微软的NetBEUI协议。如果您从家里连接到

公司的网络,那么您的计算机很可能使用了Novell的IPX/SPX协议中规定的地址

。而所有这些不同的地址配置方法或传输协议都能在您的计算机上同时存在。

计算机能通过相应的驱动程序软件与各个网络进行通信,但它们会占用内存和

CPU时间等资源,因此您并不希望加载不必要的协议,但即使让所有工作所需的

协议同时运行也并不会造成问题。
在下一页中,您将了解到如何查看计算机的MAC地址。
MAC地址
您很可能从来没有看到过一台设备的MAC地址,原因是您的计算机在与网络进行

通信时,系统会利用软件的方法将MAC地址与逻辑地址进行匹配。而网络正是通

过逻辑地址来向计算机传送信息的。
如果想看到您的Windows系统计算机的MAC地址和IP协议使用的逻辑地址,那么

您可以运行一个Windows系统自带的小程序。首先点击“开始”菜单,选择“运

行”,然后在弹出的对话框中输入“WINIPCFG”(Windows 2000/XP用户输入“

IPCONFIG/ALL”)。在弹出灰色窗口后,点击“更多信息”,您会看到以下信

息:
Windows 98 IP Configuration:
Host Name:NAMEHOWSTUFFWORKS
DNS Servers:208.153.64.20
                    208.153.0.5
Node Type:Broadcast
NetBIOS Scope ID:
IP Routing Enabled:Yes
WINS Proxy Enabled:No
NetBIOS Resolution Uses DNS:No
Ethernet adapter:
Description:PPP Adapter
Physical Address:44-45-53-54-12-34
DHCP Enabled:Yes
IP Address:227.78.86.288
Subnet Mask:255.255.255.0
Default Gateway:227.78.86.288
DHCP Server:255.255.255.255
Primary WINS Server:
Secondary WINS Server:Lease Obtained:01 01 80 12:00:00 AM
Lease Expires:01 01 80 12:00:00 AM
这里的很多信息会因您的计算机连接到网络的具体方式不同而不同,通过该小

程序查询出来的网卡的MAC地址就是物理地址。IP地址是由互联网服务提供商或

是网络管理员为您的连接而设定的逻辑地址。您还可以看到其他服务器的IP地

址,包括为您进行域名解析的DNS服务器和帮助您连接到互联网的网关服务器。

DNS服务器的作用是使您在访问我们网站时可直接输入www.howstuffworks.com

,而不是难以记忆的IP地址:216.27.61.189。当您查阅完这些消息后点击“确

定”结束。(注意:出于安全方面的考虑,我们对这个互联网连接中的一些信

息进行了修改。事实上,在将这些信息公开给他人时您必须非常谨慎小心。在

某些情况下,一些恶意的用户可以通过您的IP地址和使用适当的工具,获得您

的个人信息,还能控制您的计算机系统。点击每日一问查看更多信息。)
理解网络协议
路由器首要且最基本的功能就是如何转发以您的计算机为目标地址的信息。正

如之前提到的外地邮递员,即使他不知道您家的具体位置,但他仍能掌握足够

的信息以确保那张生日贺卡正在寄往您家的途中。在将一封电子邮件转发给您

的过程中,它经过的绝大多数路由器并不知道您计算机的MAC地址,但它们也能

掌握足够的信息以确保该电子邮件正向您“游”(邮)来。
通过程序设定,路由器能适用于最常用的网络协议。这意味着路由器知道地址

的格式,知道向网络发出的各基本分组数据包的字节数,并知道如何确保所有

数据包都到达目标地址而且能正确“组装”起来。一些路由器被设置在互联网

主要骨干节点上,这意味着它们每秒要检测和转发数百万的数据包。此外,路

由器并不只是简单地将数据包往其目标地址方向传送。在如今的计算机时代,

将数据包以最佳路径传送显得更为重要。
在一个现代网络中,每个电子邮件数据都被分割为许多小块。这些小块被单独

的发送至接收方,当它们到达目标地址时,接收方将其排序进行重组还原。因

为各个被称为分组的数据小块可经由不同的路径传输,这个路径就如同一列火

车经过的一组道岔,这种网络被称为分组交换网络。如此一来,您就不必在外

地的朋友和您之间建立专用的网络链接,而您的电子邮件可能会通过数千个路

由器中的任何一个到达目标地址。
根据每天不同时段以及每周不同的日子,大型公共分组交换网络的某些部分可

能会较其他部分忙碌。当这种情况发生时,构成这一系统的路由器之间会相互

通信,以确保目标地址不是高负载区域的网络流量绕行,而选择走低负载的路

径。这样不会额外的给本已经很忙碌的网络区域造成负载,从而尽可能的利用

了网络资源。在后面的章节中,您将会了解到拒绝服务攻击。在这一过程中,

有人向某一台特定的服务器发送了数以百万的数据包,这将会影响到服务器的

性能以及向其转发数据包的路由器的性能。当这些信息数据累积起来,网络的

多个部分出现阻塞现象时,更多的路由器会发出信息来通告它们的忙碌状态,

结果造成整个网络的所有用户都受到影响。
跟踪数据包
如果您的计算机使用的是微软的Windows系统,那么您可以使用系统自带的一个

程序来查看您的数据在互联网上“游历”了多少个路由器。该程序名为

Traceroute,这个名字已经表明了它的功能,也就是在互联网上跟踪一条从一

台计算机发送到另外一台计算机的数据包所经过的路由器。通过以下方法运行

该程序,先点击“开始”菜单中的“MS-DOS命令提示符”。然后,在

“C:WINDOWS>”命令提示符下键入“tracert www.howstuffworks.com”。在博

闻网的一台办公室机器上做上述操作时,结果如下图所示:
 第一列数字显示当前路由器和这台计算机之间的路由器个数。在这个例子中,

整个过程涉及14个路由器,第15台设备是www.howstuffworks.com的Web服务器

。紧跟着第一列的三列数字显示分组数据包从该计算机传输到当前路由器的时

间以及返回的时间。接着是路由器或是服务器的名字,在这个例子中是从第六

行开始的。这些信息对于那些需要查看这一列表的人会有用处,而对于转发这

些数据的路由器或计算机而言则是没有用处的。最后一列的信息是每台计算机

或路由器的IP地址。这一例子的最后结果显示这台计算机和Web服务器间存在14

台路由器,信息从该计算机传输到服务器再返回的时间平均是2.5秒多一点。
只要知道任何一计算机的域名或是IP地址,您就能使用Traceroute程序来追踪

该计算机与您的计算机之间的路由器个数。用这一方法来查看美国以外的计算

机,结果可能会很有趣。我们用博闻网美国总部的一台电脑作如下测试,首先

查看英国广播公司的Web服务器与这台计算机之间的路由器个数。在C:WINDOWS>

命令提示符下,输入tracert www.bbc.com。结果如下:
 您会发现访问离这台电脑两州之远的某个服务器和访问大西洋另一端的Web服

务器的差别仅仅是多了一站。
在下一页中,我们将会更深层次的讨论到拒绝服务攻击。
拒绝服务攻击
在2000年的第一个季度里,几个热门网站都遭受到了攻击。其中绝大多数是拒

绝服务攻击,这一攻击导致站点的正常读者和用户不能得到请求响应。那些攻

击者是怎么做到这一点的?其实他们就是向服务器和与之相连的路由器以超出

其处理能力的速度发送访问请求来实现的。
绝大部分路由器都在配置表中设定了相应的规则,同一发送地址不得发送数百

万计的访问请求。如果在短时间里接收到同一地址发送的过多的访问请求,路

由器将会直接丢弃数据包,而不会进行转发。攻击者当然知道这些规则,所以

他们不法地在很多台机器上植入程序。当这些程序被激活时,他们便开始对一

个或多个网页站点每分钟发送数以千计的访问请求。而且这些程序还能伪造发

送方的IP地址,为了躲避路由器的安全规则,这些程序会给每个分组数据包加

上一个假的IP地址。
当数据包泛滥的情况发生时,数百万的访问请求开始“命中”目标站点。当这

些访问请求使服务器不堪重负时,真正受影响的是离站点服务器较近的那些路

由器。这些路由器本来性能良好而且能处理一定的网络流量,但是突然之间它

们却要承担起近乎互联网骨干路由器所负载的网络流量。这些路由器当然没有

能力处理如此大量的分组数据包,因而它们开始丢弃分组并且向其他路由器发

送状态信息。这些状态信息告知其他路由器该路由器的链接状态已满。而当接

近服务器的路由器逐级发送链接已满的状态信息时,所有能到达站点服务器的

路径便被一一阻塞,正常的网络流量将无法到达目标地址,这样,攻击者就达

到了他的攻击目的。
如今,网页内容提供商和路由器制造商在配置表中设置了一个新的防止受攻击

的规则,那些计算机曾经被用作发起攻击的公司和大学也都开始采取措施以防

止它们的系统被恶意使用。这些防范措施是否有效,还是犯罪分子设计的新型

攻击更厉害,我们将拭目以待。
互联网的骨干网
即使在一个大型的私有网络中,也要应对有数百万的数据包需要同时发送的情

形。一些超大型路由器是由思科系统公司制造的,该公司专门从事网络硬件产

品研发。思科的吉比特级路由器12000系列被互联网的骨干网所采用。这些路由

器和一些最强大的超级计算机的设计近乎相同,是通过一系列速度非常快的交

换器将许多处理器连接起来。12000系列使用200-MHz MIPS R5000处理器,该处

理器也应用于那些为电影制作计算机动画和特效的工作站。12000系列中的最高

型号是12016,该型号通过使用一系列高速转换器,每秒能处理3200亿比特信息

。满负荷运转时,它每秒能转发六千万个分组数据包。这些大型路由器之所以

能处理如此之多的信息量,除了处理器强大的处理能力之外,还因为这些路由

器都是经过特别设计制造的。如今的处理器和软件处理能力非常强大,尤其是

从显示3-D动画和等待鼠标输入等任务解放出来后,信息吞吐量大大增加。
即使大型路由器拥有如此强大的计算能力,那它如何知道一个特定的分组数据

该使用哪条链路路径进行传输呢?这一问题的答案又要回到先前提过的配置表

。路由器将会在配置表中以一定的准则搜索目标地址并进行匹配。这一准则规

定了特定的地址组发送的数据包应该使用的传输路径,而这些地址组的大小又

取决于路由器的位置所在。接着路由器又使用另外一组准则来检测传输路径的

主连接的性能。如果这一链接性能良好,当前数据包被成功发送,而下一组分

组数据包也被相应处理。如果链接的性能达不到预期的性能指标,则会选择其

他的链路路径,并对新的路径进行检测。最后,在一定的时间内性能最好的一

个链路路径被寻找到,数据包将通过该路径进行传输。所有这些过程都是在瞬

间完成的,而且这一过程每秒要进行数百万次,时时刻刻都在进行着。
路由器的最主要工作是知道如何转发数据包以及转发的路径。一些简单的路由

器只单单实现了这一功能,而其他一些路由器则在该功能的基础上增加了额外

的功能。例如,可以对路由器设定一些规则,以限制公司向外发送信息的目标

地址以及公司可接收的信息来源。有些路由器还能通过设定一定的规则最大限

度地降低拒绝服务攻击造成的损失。在如今的网络(包括互联网)中,路由器

绝对是不可或缺的枢纽。