路由器是多个输⼊端⼝和多个输出端⼝的专⽤计算机, 其任务是转发分组(转发给下⼀跳路由器);
路由器分为负责路由选择的控制层面(软件)和分组转发的数据层面(硬件)。
下面我们看看路由器的结构:
转发表和路由表的区别:到达目的网络有很多条路由,这些路由都记录在路由表中,路由表会把去往目的网络最优的一条路由放到转发表。
每个端口都有物理层、链路层和网络层的构建,可以处理比特信号、帧和网络数据报。
路由器会收到两类分组:数据分组和路由控制分组,前者根据转发表转发,后者交由路由选择处理器根据路由选择算法计算路由和更新路由表。
输入端口:
输出端口:
可见其实输入端口和输出端口都会有一个分组缓存队列,输入端口的队列填充情况取决于向路由器发送分组的速度、路由器查表转发的输出端口的速度
输出端口的队列填充情况取决于输出端口向网络链路输出分组的速率(这取决于该链路是否拥塞)和分组进入输出缓冲区的速度。
若路由器处理分组的速率赶不上分组进⼊队列的速率,则 队列的存储空间最终必定减少到零,这就使后⾯再进⼊队 列的分组由于没有存储空间⽽只能被丢弃。
路由器中的输⼊或输出队列产⽣溢出是造成分组丢失的重 要原因,这也是所谓的网络拥塞。
交换结构(了解即可)
第一种是查表后把分组放入存储器中,由路由器的CPU负责把分组拷贝到对应的输出端口。
第二种通过总线传输,总线传输的特点是不能并发的传输信号,一次只能有一个输入端口的分组在总线传输。因此路由器的总线必须足够大。
第三种使用互联网络,他可以并发的转发多个输出接口的分组到多个输出端口,只有在两个输入端口同时转发分组到同一个输出端口才需要等待。