路由器配置新手上路----桥接与路由( 二 )


帧经网桥转发或过滤处理后,会在它们收到后被正确地发送出去 。在图2中,自与主机2连接的那个接口,帧被原封不动地转发出去 。注重网桥并未专门定址,它是“透明”的 。主机1根本不知道那里存在一个网桥 。也要注重的是,两个LAN的网络地址都是相同的 。两个物理LAN被作为一个统一的逻辑LAN对待 。
现在,假定同一LAN内的两个主机需要通信,网桥了解到它们都来自相同的接口 。此时,网桥会将它从主机会话中收到的帧过滤掉(图1的14号框) 。换言之,网桥不会将帧传给其他接口 。这样一来,就可保证会话通信任本地进行,防止本地会话干扰其他I‘AN网段上进行的会话 。
当然,桥接也有缺点 。首次引用一个MAC地址时,网桥肯定会对其进行扩散处理 。但这还不是最严重的;最严重的问题是,网桥也会扩散所有广播帧及所有多播帧 。假若一个网络应用严重依靠广播或多播定址,就会造成可观的网络通信负担,因为所有广播及多播帧都会出现于所有LAN网段上 。
路由
所谓“路由”、“路由选择”、或者“路由发送”(Routing),是指依据网络消息之第3层头内的一个地址,对消息进行转发的过程 。然而,除了简单地读取那个第3层地址之外,此时要做的事情还很多 。现在,让我们逐步探讨一个路由器转发网络消息时经历的各个基本步骤 。
在图3中,我们展示了一条消息从主机1传到主机2的过程 。封装的级别与头均进行了最大程度的简化,使我们能将重点放在网络消息的定址,以及它对路由的影响上 。第2层地址用自A到D的十六进制数位表示 。要记住的是,MAC地址相当于在LAN内漫游的一个“航标” 。假如主机想从同一个LAN内的另一个主机获取消息,那么始发主机就会将目标主机的MAC地址放在帧头内 。否则,始发主机就会将消息发给一个路由器,以便路由到目标网络中去 。路由器收到直接发给自己某个接口的一个帧时,就知道自己应当试着对帧内的消息进行路由 。注重在图3中,由主机1发出的帧的目标MAC地址是B,亦即路由器的地址 。帧内封装的是一个第3层头,其中包含了目标网络和目标主机地址 。
若消息预备交给路由器处理,路由器必须先知道主机采用的是何种通信协议,才能决定如何对消息加以控制 。在1.1.2小节中,我们已经提到过,每一层的头都必须包含一些值,指出下一层封装的是什么东西 。路由器必须检查帧头的这些值,判定帧内封装的是何种协议 。
在帧头内,这要么是一个“协议类型”字段,要么是一个“服务接入点”(Service Access Point,SAP)字段 。苦协议类型或SAP字段指出帧内包含的数据适用于正在由路由器路由的一种协议(图1的3号框),路由器就会删除帧头,开始处理剩下的东西——用一个第3层头起始的数据包(图l的4,5号框) 。在路由器上,针对其路由的每种协议,都运行着一个独立的程序 。我们将这种程序称为“路由进程”(Routing ProCss) 。
路由进程会检查包头内的目标网络地址(这是第3层),并在一张非凡的表格里查找相符的记录(条目或入口) 。这张表格就是“路由表”(Routing Table),如图1的9号框所示 。针对路由的每一种协议,路由器都会为其设置一张路由表 。在路由表内,包含了路由器已知全部网络及其方向的一个列表 。若路由器未在路由表内发现与目标网络地址相符的一个条目,就会将这个数据包丢弃(图1的8号框) 。反之,假若路由器找到了与目标网络地址相符的一个表格条目,就会利用表中提供的信息,判定将数据包转发到哪个接口 。
由于消息在网络中必须以“帧”的形式出现,所以路由器现在必须对包加以封装,亲自创建一个帧 。换句话说,路由器必须在包内放置一个新的帧头和帧尾(图1 。4,12号框) 。注重在图1中,包本身的内容并不改变 。由于存在着多种不同的帧头格式,所以路由器要根据在路由表中找到的接口名以及封装方式,来决定包的新帧头格式 。

推荐阅读