文章目录
- 输入端口处理和基于目的地转发
- 交换结构
- 输出端口处理
- 排队问题
- 参考资料
路由器的四个组件
- 输入端口(input port):执行物理层功能(input port 左边方框、output port 右边方框)、数据链路层功能(input/output port 中间方框)、查找功能(input port右边方框)
- 交换结构:将路由器的输入端口连接到它的输岀端口
- 输出端口:存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组
- 路由选择处理器:执行控制平面功能。在传统路由中执行路由选择协议,在SDN路由器中与远程控制器通信
输入端口处理和基于目的地转发
输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层
input port的查找转发功能所依据的转发表是来自路由选择处理器
路由选择处理器将转发表复制到线路卡,使得router能够在本地做出转发决策,而不必基于每个分组调用路由选择处理器,避免了集中式处理
一个基于目的地转发的路由表简单实现:
- 路由器用分组目的地址的前缀(prefix)与该表中的表项进行匹配
- 为了处理转发表中多项匹配当前目的地址的情况,这里使用最长前缀匹配规则(longest prefix matching rule)
从硬件来说,为了实现足够高速的查找,使用特殊的内存,比如三态内容可寻址存储器(Tenary Content Address Memory, TCAM)来查找
交换结构
经内存交换
在CPU (路由选择处理器)的直接控制下完成
分组到达input port,向路由器发起中断,分组被复制到处理器内存中,计算output port,再将该分组复制到output port中
经总线交换
输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预
纵横式交换
并行转发多个分组
非阻塞的(nonblocking):只要没有其他分组当前被转发到该输出端口,转发到输出端口的分组将不会被到达输出端口的分组阻塞
输出端口处理
排队问题
在输入端口和输出端口处都可以形成分组队列,当router的缓存空间耗尽时,就会出现丢包(packet loss)现象
input排队
交换结构不能快得(相对于输入线路速度而言)使所有到达分组无时延地通过它传送时,在输入端口将岀现分组排队
使用纵横式交换结构进行说明
这里在输入队列前端的两个分组(带深色阴影)要发往同一个右上角输出端口,出现了线路前部(HOL)阻塞
output排队
假定 R s w i t c h R_{switch} Rswitch比 R l i n e R_{line} Rline快N倍,并且到达N个输入端口的每个端口的分组,其目的地是相同的输出端口,在这样的情况下,output port即会出现排队情况
参考资料
- James F.Kurose&Keith W.Ross Computer Networking A Top-Down Approach(7th ed) 中文版