1.路由器结构概述
2.输入端口功能
3.交换结构
1.路由器结构概述
csharp
复制代码
简化的通用路由器体系架构
a.路由: 运行路由选择算法/协议(RIP, OSPF, BGP)生成路由表
b.转发: 从输入到输出链路交换数据报 - 根据路由表进行分组的转发
2.输入端口功能
csharp
复制代码
根据数据报头部的信息如: 目的地址, 在输入端口内存中的转发表中查找合适的输出端口
csharp
复制代码
输入端口缓存
a.当交换机构的速率小于输入端口的汇聚速率时, 输入端口可能要排队; 排队延迟以及由于输入缓存溢出造成丢失
b.Head-of-the-Line(HOL) blocking: 排在队头的数据报阻止了队列中其他数据报向前移动
3.交换结构
csharp
复制代码
1).经内存交换
这是最早、最简单的一种方式, 借鉴了传统计算机的设计
a.工作原理:
- 输入端口将到达的数据包通过共享系统总线复制到路由器的主内存中
- CPU从内存中读取数据包, 检查其目标IP地址, 查找路由表, 确定输出端口
- CPU再将数据包从内存中复制到对应的输出端口的缓存中
b.比喻: 就像一个只有一个工作人员的邮局分拣中心, 所有信件(数据包)都要先放到中央工作台(内存)上, 由这个工作人员
(CPU)一件一件地查看地址、分拣到不同的出口信箱
c.特点:
- 优点: 实现简单, 成本低
- 缺点: 速度慢, 吞吐量受限于内存和CPU的速度; 因为同一时间只能有一个数据包(或少量数据包)在内存和CPU之间交换
d.应用: 早期的路由器、现代家用宽带路由器(因为端口少、速度要求不高)
csharp
复制代码
2).经总线交换
a.工作原理:
- 输入端口在收到数据包后, 直接在其前面加上一个内部标签(标识目标输出端口)
- 数据包被放到一条共享的系统总线上
- 所有的输出端口都在监听这条总线, 只有标签与自己端口号匹配的输出端口才会捕获这个数据包, 并将其缓存下来准备发送
b.比喻: 就像一条共享的传送带, 包裹从不同入口放上传送带, 每个出口都有一个人, 只拿写有自己名字的包裹
c.特点:
- 优点: 比经内存交换更快, 因为不需要CPU直接参与每次转发
- 缺点: 总线带宽成为瓶颈, 因为总线是共享的, 在同一时间只能有一个数据包通过总线; 如果多个输入端口同时要发送数
据它们必须排队等待
d.应用: 中低端的企业级路由器
csharp
复制代码
3).经互联矩阵交换
这是现代高性能路由器(如核心路由器)所使用的技术, 旨在克服总线的带宽限制
a.工作原理:
- 交换结构由一组并行的纵横式交换机组成, 形成了多条并行的路径
- 输入端口和输出端口通过这个复杂的交换矩阵直接连接
- 通过精妙的控制, 可以同时让多个输入端口和多个输出端口之间建立临时的、并发的连接, 从而同时传输多个数据包
b.比喻: 就像一个大型的纵横式立交桥, 有多条并行的道路, 可以让多辆汽车从不同的入口同时驶向不同的出口, 而不会相
互阻塞
c.特点:
- 优点: 极高的吞吐量, 可以实现真正的并行交换
- 缺点: 设计非常复杂, 成本高昂
d.应用: 几乎所有的高端核心路由器和数据中心交换机。