【概述】
路由器是网络层的核心设备,其是一种具有多个输入输出端口的计算机,用来连接异构网络并完成路由转发,尤其是在具有不同广播域的多个逻辑网络互联时,必须使用路由器
此外,路由器也可以作为最基础的包过滤防火墙应用
在源主机与目的主机通信时,IP 数据报的交付分为直接交付、间接交付两种
- 直接交付:源主机、目的主机在同一网络,无须通过路由器可直接交付
- 间接交付:源主机、目的主机不在同一网络,需要利用路由器,查找转发表来转发到下一路由器
在进行间接交付时,路由器主要完成两个功能,一个是路由选择,通过与其他路由器进行基于路由协议的交互,完成路由表的计算;另一个是分组转发,通过处理路由器的数据流,来进行转发表的查询、转发、相关的队列管理、任务调度等
需要注意的是,路由表是根据路由选择算法得出的,转发表是从路由表得出的
【路由器结构】
从结构上看,路由器由进行路由选择和分组转发的两部分组成,下图展示了路由器的基本结构
路由选择处理机部分用来进行路由选择,其根据路由选择协议来构建路由表,同时定期与相邻路由交换路由信息,来维护路由表
交换结构与输入输出端口部分用来进行分组转发
其中,交换结构中的转发表是核心部分,对于输入端口的数据流,通过查询转发表,选择合适的端口进行转发
对于交换结构本身来说,其就是一个网络,有三种常见的交换方法:通过存储器交换、通过总线交换、通过互联网络交换
对于输入端口来说,通过物理层、链路层、网络层的逐层处理,以及网络层的排队、查表、转发,会产生一定的等待时延
对于输出端口来说,其会将交换结构传过来的分组进行缓存,然后通过网络层、链路层、物理层逐层处理,这同样会产生一定的等待时延
当路由器处理分组的速率赶不上分组进入队列的速率时,会造成路由器的输入或输出队列产生溢出,从而造成分组丢失
【路由表与转发表】
路由表
路由表是根据路由选择算法得出的,主要用途是路由选择
一般的路由表通常具有四个项目:<目的网络地址>, <子网掩码>, <下一跳路由地址>, <接口>
在上图所给出的网络拓扑结构图中,R1 的路由表见下表
目的网络地址 | 子网掩码 | 下一条路由地址 | 接口 |
---|---|---|---|
202.114.1.0 |
255.255.255.0 |
直连 | E1 |
202.114.2.0 |
255.255.255.0 |
直连 | L0 |
202.114.3.0 |
255.255.255.0 |
202.114.2.2 |
L0 |
0.0.0.0 |
0.0.0.0 |
202.114.2.2 |
L0 |
转发表
转发表是从路由表中得出的,其表项与路由表表项有直接对应关系,但转发表的格式与路由表不同,其结构应使查找过程最优化,而路由表需要对网络拓扑变化计算最优化
一般的路由表通常具有两个项目:<目的网络地址>, <下一跳>
此外,为减少转发表的重复项目,通常使用一个默认路由来代替所有相同的下一跳,同时设置该默认路由优先级比其他项目优先级低
如下图所示,给出了使用默认路由和未使用默认路由的转发表的对比