路由器整体结构
路由转发
路由表:从目的IP和对应下一跳IP的映射关系
转发表:转发表是从路由表得出,包含转发需要的必须信息,比如MAC地址(ARP协议:ip to mac)。
影子副本(shadow copy):转发表都会在每一个输入端口放一个copy。直接在输入端口进行使用,避免了路由表的单点集中式处理的瓶颈。
输入端口
物理层收到比特;数据链路层按照链路层协议接收传输分组的帧,把帧的首部和尾部剥去;分组进入网络层,网络层按照分组首部的地址(IP地址)查找转发表,得到输出端口,最终数据通过交换结构到达到最终的输出端口。
当交换结构正在被使用的时候,则数据会被暂时阻塞,在输入端口进行排队。如果排队过多,则会导致路由器内存耗尽,出现丢包。
输出端口
输出端口从交换结构接收分组,然后通过网络层,链路层以及物理层最终把数据交给输出线路。如果交换结构的发送速度大于输出链路的发送速度,数据会在输出链路进行缓存排队,最终如果排队过多,也会导致路由器缓存耗尽,出现丢包。
交换结构
交换结构把分组从一个输入端口转移到某个合适的端口,主要有三种方法:
- 经过内存(存储器)交换
- 经过总线进行交换
- 经过互联网络进行交换
经过内存(存储器)交换
输入输出端口的功能类似于操作系统的IO设备,当分组到达接收端口后,该端口会以中断的方式向路由选择处理器发出信号,下一步,分组会被复制到路由器的内存,然后继续装备找到输出端口,并将分组最终复制到输出端口,一次同时只能转发一个分组,即使是发往不同端口的分组,因为最终要经过一个共享的系统总线,一次仅能执行一个内存的读写
经过总线进行交换
输入输出端口通过共享的总线直接传输,无需路由选择处理器的干预,一次只有一个分组能够跨越总线,同时到达需要等待。
经过互联网络进行交换
为了克服单一、共享式总线带宽的限制,使用更为复杂的互联网络,有2N条总线,可以使得N个输入端口和N个输出端口相互连接。