路由器的组成

通用路由器体系架构:

image-20230421100136022

  • 路由:运行路由选择算法/协议(RIP, OSPF, BGP)生成路由表
  • 转发:从输入到输出链路交换数据报-根据路由表进行分组的转发

输入端:

  1. 接收物理层的Bit级数据
  2. 链路层协议动作、解封装
  3. 会进入队列(匹配瞬间的输入速率和输出速率的不一致性,但有可能遇到队头阻塞导致丢失),队头根据数据报头部的信息如:目的地址,在输入端口内存中的转发表中查找合适的输出端口

中间交换过程:

将分组从输入缓冲区传输到合适的输出端口,有三种典型的交换机构:

  • 通过内存交换

    在CPU直接控制下的交换,采用传统的计算机

    image-20230421102850313

    • 转发速率被内存的带宽限制(数据报通过BUS两遍)
    • 一次只能转发一个分组
  • 通过总线交换

    数据报通过共享总线,从输入端口转发到输出端口

    image-20230421102914223
    • 交换速度受限于总线带宽
    • 1次处理一个分组
  • 通过互联网络(crossbar等)的交换

    Banyan(榕树)网络,crossbar(纵横)和其它的互联网络被开发,将多个处理器连接成多处理器

    image-20230421103013081
    • 同时并发转发多个分组,克服总线带宽限制

输出端:

  1. 接收输出端口转发过来的分组;(当数据报从交换机构的到达速度比传输速率快就需要输出端口缓存,但是数据报(分组)由于拥塞可能会被丢弃)
  2. 根据调度规则将不同分组交由下一层处理,并不一定完全按照先后顺序。

调度规则:

  • FIFO (first in first out) scheduling:按照分组到来的次序发送
    • 丢弃策略:
      • tail drop: 丢弃刚到达的分组
      • priority: 根据优先权丢失/移除分组
      • random: 随机地丢弃/移除
  • 优先权调度:发送最高优先权的分组
  • Round Robin (RR) scheduling:循环扫描不同类型的队列, 发送完一类的一个分组,再发送下一个类的一个分组,循环所有类
  • Weighted Fair Queuing (WFQ):一般化的Round Robin,给一类型的分组加上权重,让每个类在每一个循环中获得不同权重的服务量