一、冲突域与广播域
这里的“域”表示冲突或广播在其中发生并传播的区域。
1. 冲突域
冲突域是指连接到同一物理介质上的所有结点的集合,这些结点之间存在介质争用的现象(能产生冲突的所有设备的集合)。也就是说,若这些设备同时发送数据,则会发生信号干扰和冲突。冲突域的大小取决于网络拓扑和设备类型。
在 OSI 参考模型中,冲突域被视为第 1 层的概念,像集线器、中继器等简单无脑复制转发信号的第 1 层设备所连接的结点都属于同一个冲突域,也就是说它们不能划分冲突域。而第 2 层(网桥、交换机)、第 3 层(路由器)设备都可以划分冲突域。
2. 广播域
广播域是指接收同样广播消息的结点集合。也就是说,在该集合中的任何一个结点发送一个广播帧,其他能收到这个帧的结点都被认为是该广播域的一部分。
在 OSI 参考模型中,广播域被视为第 2 层的概念,像第 1 层(集线器等)、第 2 层(交换机等)设备所连接的结点都属于同一个广播域。而路由器,作为第 3 层设备,则可以划分广播域,即可以连接不同的广播域。
通常所说的局域网(LAN)特指使用路由器分割的网络,也就是广播域。
路由器通过以下方式隔绝广播域:
I、网络层分隔:路由器工作在网络层(第三层),它能够识别和处理 IP 地址。每个广播域通常对应一个子网,路由器不转发广播包,因此不同子网之间的广播不会相互影响。
II、广播包的处理:当设备发送广播包时,路由器会接收到这个包,但不会将其转发到其他接口。这样,广播包只会在同一子网内传播,而不会跨越到其他子网。
III、子网划分:通过将网络划分为多个子网(使用子网掩码),路由器可以有效地管理和隔离不同的广播域。每个子网内的设备可以进行广播,但这些广播不会影响到其他子网。
IV、VLAN(虚拟局域网):在交换机中配置 VLAN 可以进一步隔绝广播域。路由器可以连接到多个 VLAN ,并且只会转发特定 VLAN 内的广播流量。
通过这些机制,路由器能够有效地隔绝不同广播域之间的通信,减少网络拥塞,提高网络性能。
二、路由器的组成和功能
1. 路由器的结构(重要)
路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是连接不同的网络(连接异构网络)并完成分组转发。在多个逻辑网络(即多个广播域)互连时必须使用路由器。
当源主机向目标主机发送数据报时,路由器先检查源主机与目标主机是否连接在同一个网络上。若源主机和目标主机在同一个网络上,则直接交付而无须通过路由器。若源主机和目标主机不在同一个网络上,则路由器按照转发表(由路由表得出)指出的路由将分组转发给下一个路由器,这称为间接交付。路由器的转发分组正是网络层的主要工作。
可见,在同一个网络中传递数据无须路由器的参与,而跨网络通信必须通过路由器进行转发。例如,路由器可以连接不同的 LAN ,连接不同的 VLAN ,连接不同的 WAN ,或者把 LAN 和 WAN 互连起来。路由器隔离了广播域。
从结构上看,路由器由路由选择和分组转发两部分构成,如下图所示(一种典型的路由器的构成框图)。而从模型的角度看路由器是网络层设备,它实现了网络模型的下三层,即物理层、数据链路层和网络层。
路由器实现了物理层、数据链路层、网络层,这句话的含义是什么?
第 1 章中提到了网络中的两个通信结点利用协议栈进行通信的过程。发送方一层一层地把数据“包装”,接收方一层一层地把“包装”拆开,最后上交给用户。
路由器实现了物理层,数据链路层和网络层的含义是指路由器有能力对这三层协议的控制信息进行识别、分析以及转换,直观的理解是路由器有能力对数据“包装”这三层协议或者“拆开“这三层协议。自然,路由器就有能力互连这三层协议不同的两个网络。
【注意】:若一个存储转发设备实现了某个层次的功能,则它可以互连两个在该层次上使用不同协议的网段(网络)。若网桥实现了物理层和数据链路层,则网桥可以互连两个物理层和数据链路层不同的网段;但中继器实现了物理层后,却不能互连两个物理层不同的网段,这是因为中继器不是存储转发设备,它属于直通式设备。
-
路由选择部分也叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。
-
分组转发部分由三部分组成:交换结构、一组输入端口和一组输出端口(请注意:这里的端口就是硬件接口)。下面分别讨论每一部分的组成。
① 交换结构(switching fabric)又称为交换组织,它的作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一种网络,但这种网络完全包含在路由器之中,因此交换结构可看成是“在路由器中的网络”。
② 在上图中,路由器的输入和输出端口里面都各有三个方框,用方框中的 1, 2 和 3 分别代表物理层、数据链路层和网络层的处理模块。物理层进行比特的接收;数据链路层则按照链路层协议接收传送分组的帧,在把帧的首部和尾部剥去后,分组就被送入网络层的处理模块。
需要注意以下三点:
-
端口在网络层的处理模块中都设有一个缓冲队列,用来暂存等待处理或已处理完毕待发送的分组,还可用来进行必要的差错检测。若分组处理的速率赶不上分组进入队列的速率,就会使后面进入队列的分组因缓冲区满而只能被丢弃。
-
若接收到的分组是路由器之间交换路由信息的分组(如 RIP 或 OSPF 分组等),则把这种分组送交路由器的路由选择部分中的路由选择处理机。若接收到的是数据分组,则按照分组首部中的目的地址查找转发表,根据得出的结果,分组就经过交换结构到达合适的输出端口。一个路由器的输入端口和输出端口就做在路由器的线路接口卡上。
-
输入端口中的查找和转发功能在路由器的交换功能中是最重要的。为了使交换功能分散化,往往把复制的转发表放在每一个输入端口中(如上图中的虚线箭头所示)。路由选择处理机负责对各转发表的副本进行更新。这些副本常称为“影子副本”(shadow copy)。分散化交换可以避免在路由器中的某一点上出现瓶颈。
【拓展】:
当一个分组正在查找转发表时,后面又紧跟着从这个输入端口收到另一个分组。这个后到的分组就必须在队列中排队等待,因而产生了一定的时延。下图给出了在输入端口的队列中排队的分组的示意图。
我们再来观察在输出端口上的情况(如下图所示) 。输出端口从交换结构接收分组,然后把它们发送到路由器外面的线路上。在网络层的处理模块中设有一个缓冲区,实际上它就是一个队列。当交换结构传送过来的分组的速率超过输出链路的发送速率时,来不及发送的分组就必须暂时存放在这个队列中。数据链路层处理模块把分组加上链路层的首部和尾部,交给物理层后发送到外部线路。
从以上的讨论可以看出,分组在路由器的输入端口和输出端口都可能会在队列中排队等候处理。若分组处理的速率赶不上分组进入队列的速率,则队列的存储空间最终必定减少到零,这就使后面再进入队列的分组由于没有存储空间而只能被丢弃。以前我们提到过的分组丢失就是发生在路由器中的输入或输出队列产生溢出的时候。当然,设备或线路出故障也可能使分组丢失。
因为路由器是网络层设备,在路由器上实现了物理层、数据链路层和网络层的功能,所以路由器的传输延迟时间最长。
【分析】:路由器具有较大的传输时延,因为它需要根据所接收的每个分组报头中的 IP 地址决定是否转发分组。这种处理分组报头的任务一般由软件完成,将带来较长的处理时间,也会增加每个分组的传输时延。因为局域网交换机和网桥通常都由硬件进行帧的转发,而且不关心数据链路层以上的数据,所以都具有比路由器要小得多的传输时延。从数量级上看,若局域网交换机的传输时延为几十微秒,则网桥的传输时延为几百微秒,而路由器的传输时延为几千微秒。集线器的每个接口都具有收发功能,当某个接口收到信号时,立即向所有其他接口转发,因此其传输时延最小。
2. 交换结构【拓展】
交换结构是路由器的关键构件。正是这个交换结构把分组从一个输入端口转移到某个合适的输出端口。
实现这样的交换有多种方法,下图给出了三种常用的交换方法。这三种方法都是将输入端口 I1 收到的分组转发到输出端口 O2 。下面简单介绍它们的特点。
最早使用的路由器就是利用普通的计算机,用计算机的 CPU 作为路由器的路由选择处理机。路由器的输入和输出端口的功能和传统的操作系统中的 I/O 设备一样。当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。若存储器的带宽(读或写)为每秒 M 个分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2 。这是因为存储器对分组的读和写需要花费的时间是同一个数量级。
许多现代的路由器也通过存储器进行交换,上图(a)的示意图表示分组通过存储器进行交换。与早期的路由器的区别就是,目的地址的查找和分组在存储器中的缓存都是在输入端口中进行的。
上图(b)是通过总线进行交换的示意图。采用这种方式时,数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。但是,由于总线是共享的,因此在同一时间只能有一个分组在总线上传送。当分组到达输入端口时若发现总线忙(因为总线正在传送另一个分组),则被阻塞而不能通过交换结构,并在输入端口排队等待。因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。
上图(c)画的是通过纵横交换结构(crossbar switch fabric)进行交换。这种交换机构常称为互连网络(interconnection network),它有 2N 条总线,可以使 N 个输入端口和 N 个输出端口相连接,这取决于相应的交叉结点是使水平总线和垂直总线接通还是断开。当输入端口收到一个分组时,就将它发送到与该输入端口相连的水平总线上。若通向所要转发的输出端口的垂直总线是空闲的,则在这个结点将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。
三、路由表与分组转发
路由表是根据路由选择算法得出的,主要用途是路由选择。标准的路由表有 4 个项目:目的网络 IP 地址、子网掩码、下一跳 IP 地址、接口。在下图所示的网络拓扑中,R1 的路由表见下表,该路由表包含到互联网的默认路由。
转发表是从路由表得出的,其表项和路由表项有直接的对应关系。但转发表的格式和路由表的格式不同,其结构应使查找过程最优化(而路由表则需对网络拓扑变化的计算最优化)。转发表中含有一个分组将要发往的目的地址,以及分组的下一跳(即下一步接收者的目的地址,实际为 MAC 地址)。为了减少转发表的重复项目,可以使用一个默认路由代替所有具有相同“下一跳”的项目,并将默认路由设置得比其他项目的优先级低,如下图所示。路由表总是用软件来实现的;转发表可以用软件来实现,甚至也可以用特殊的硬件来实现。
【注意】:
“转发”和“路由选择”是有区别的。在互联网中,“转发”就是路由器根据转发表把收到的 IP 数据报从路由器合适的端口转发出去,“转发”仅仅涉及到一个路由器。但“路由选择”则涉及到很多路由器,路由表则是许多路由器协同工作的结果。这些路由器按照复杂的路由算法,得出整个网络的拓扑变化情况,因而能够动态地改变所选择的路由,并由此构造出整个的路由表。
路由表一般仅包含从目的网络到下一跳(用 IP 地址表示)的映射,而转发表是从路由表得出的。转发表必须包含完成转发功能所必需的信息。这就是说,在转发表的每一行必须包含从要到达的目的网络到输出端口和某些 MAC 地址信息(如下一跳的以太网地址)的映射。将转发表和路由表用不同的数据结构实现会带来一些好处,这是因为在转发分组时,转发表的结构应当使查找过程最优化,但路由表则需要对网络拓扑变化的计算最优化。路由表总是用软件实现的,但转发表则甚至可用特殊的硬件来实现。
路由表不等于转发表,分组的实际转发是靠直接查找转发表,而不是查找路由表。在讨论路由选择的原理时,往往不去区分转发表和路由表的区别,而可以笼统地都使用路由表这一名词。
四、例题
① 下列关于冲突域的叙述中,正确的是( C )。
A. 能接收到同一广播帧的所有设备的集合
B. 能发送同一广播帧的所有设备的集合
C. 能产生冲突的所有设备的集合
D. 能隔离冲突的所有设备的集合
② 关于路由器的下列说法中,正确的是( C )。
A. 路由器处理的信息量比交换机少,因而转发速度比交换机快
B. 对于同一目标,路由器只提供延迟最小的最佳路由
C. 通常的路由器可以支持多种网络层协议,并提供不同协议之间的分组转发
D. 路由器不但能够根据IP地址进行转发,而且可以根据物理地址进行转发
I、路由器是第三层设备,要处理的内容比第二层设备交换机更多,因而转发速度比交换机慢。
II、虽然一些路由协议也将延迟等作为参数进行路由选择,但路由协议使用得最多的参数是传输距离,此外还有一些其他参数。
III、路由器只能根据 IP 地址进行转发。
③ 下列关于路由器交付的说法中,错误的是( B )。
I. 路由选择分直接交付和间接交付
II. 直接交付时,两台机器可以不在同一个物理网段内
III. 间接交付时,不涉及直接交付
IV. 直接交付时,不涉及路由器
A. I 和 II
B. II 和 III
C. III 和 IV
D. I 和 IV
④ (未使用 CIDR )当一个 IP 分组进行直接交付时,要求发送方和目的站具有相同的( D )。
A. IP 地址
B. 主机号
C. 端口号
D. 子网地址
【将该分组的源 IP 地址和目的 IP 地址分别与子网掩码进行 “与” 操作,若得到的子网地址相同,则该分组就采用直接交付方式,否则采用间接交付方式。】
⑤ 一个路由器的路由表通常包含( C )。
A. 需要包含到达所有主机的完整路径信息
B. 需要包含所有到达目的网络的完整路径信息
C. 需要包含到达目的网络的下一跳路径信息
D. 需要包含到达所有主机的下一跳路径信息
【路由表中包含到目的网络的下一跳路径信息。路由表也不可能包含到达所有主机的下一跳信息,否则路由转发将是不可想象的。】
⑥ 决定路由器转发表中的值的算法是( C )。
A. 指数回退算法
B. 分组调度算法
C. 路由算法
D. 拥塞控制算法
⑦ 路由器中计算路由信息的是( D )。
A. 输入队列
B. 输出队列
C. 交换结构
D. 路由选择处理机
【路由选择处理机的任务是根据所选定的路由选择协议构造路由表,同时经常或定期地与相邻路由器交换路由信息而不断地更新和维护路由表。】
⑧ 路由表的分组转发部分由( D )组成。
A. 交换结构
B. 输入端口
C. 输出端口
D. 以上都是
分组转发部分包括 3 部分:
①交换结构:根据转发表对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。
②输入端口:包括物理层、数据链路层和网络层的处理模块。
③输出端口:负责从交换结构接收分组,再将其发送到路由器外面的线路上。
⑨ 路由器的路由选择部分包括( D )。
A. 路由选择处理机
C. 路由表
B. 路由选择协议
D. 以上都是
⑩ 在路由表中设置一条默认路由,则其目的地址和子网掩码应分别置为( C )。
A. 192.168.1.1、255.255.255.0
B. 127.0.0.0、255.0.0.0
C. 0.0.0.0、0.0.0.0
D. 0.0.0.0、255.255.255.255
【路由表中默认路由的目的地址和子网掩码都是 0.0.0.0 。】
(11) 路由器转发分组(在路由表中已找到匹配的条目)时,会根据路由表中的( D )字段来确定输出端口。
A. 目的网络地址
B. 下一跳地址
C. 距离度量值
D. 接口标识符
【输出端口就是路由器的接口,每个接口都有一个标识符。路由表中的每个条目都会指定一个接口标识符,路由器转发分组时,根据路由表中的接口标识符来确定输出端口。】
(12) 【2010统考真题】下列网络设备中,能够抑制广播风暴的是( D )。
I. 中继器 II. 集线器 III. 网桥 IV. 路由器
A. 仅 I 和 II
B. 仅 I
C. 仅 II 和 IV
D. 仅 IV
(13) 【2012统考真题】下列关于 IP 路由器功能的描述中,正确的是( C )。
I. 运行路由协议,设置路由表
II. 监测到拥塞时,合理丢弃 IP 分组
III. 对收到的 IP 分组头进行差错检验,确保传输的 IP 分组不丢失
IV. 根据收到的 IP 分组的目的 IP 地址,将其转发到合适的输出线路上
A. 仅 III、IV
B. 仅 I、II、III
C. 仅 I、II、IV
D. I、II、III、IV
【I 和 IV 显然是路由器的功能。对于 II ,当路由器监测到拥塞时,可合理丢弃 IP 分组,并向发出该 IP 分组的源主机发送一个源点抑制的 ICMP 报文;对于 III ,路由器对收到的 IP 分组首部进行差错检验,丢弃有差错首部的报文,但不保证 IP 分组不丢失。】
(14) 【2020统考真题】下图所示的网络中,冲突域和广播域的个数分别是( C )。
A. 2, 2
B. 2, 4
C. 4, 2
D. 4, 4