【计算机网络】路由器的工作原理

文章目录


路由器的四个组件

  1. 输入端口(input port):执行物理层功能(input port 左边方框、output port 右边方框)、数据链路层功能(input/output port 中间方框)、查找功能(input port右边方框)
  2. 交换结构:将路由器的输入端口连接到它的输岀端口
  3. 输出端口:存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组
  4. 路由选择处理器:执行控制平面功能。在传统路由中执行路由选择协议,在SDN路由器中与远程控制器通信

输入端口处理和基于目的地转发

输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层

input port的查找转发功能所依据的转发表是来自路由选择处理器

路由选择处理器将转发表复制到线路卡,使得router能够在本地做出转发决策,而不必基于每个分组调用路由选择处理器,避免了集中式处理

一个基于目的地转发的路由表简单实现:

  1. 路由器用分组目的地址的前缀(prefix)与该表中的表项进行匹配
  2. 为了处理转发表中多项匹配当前目的地址的情况,这里使用最长前缀匹配规则(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即会出现排队情况

参考资料

  1. James F.Kurose&Keith W.Ross Computer Networking A Top-Down Approach(7th ed) 中文版
相关推荐
bantinghy2 小时前
Linux系统TCP/IP网络参数优化
linux·网络·tcp/ip
wanhengidc3 小时前
云手机可以息屏挂手游吗?
运维·网络·安全·游戏·智能手机
一只小白菜~3 小时前
实战记录:H3C路由器IS-IS Level-1邻居建立与路由发布
运维·网络·计算机网络·智能路由器
kenwm3 小时前
家庭网络异常降速问题排查处理方案
网络·智能路由器
研梦非凡3 小时前
CVPR 2025|基于粗略边界框监督的3D实例分割
人工智能·计算机网络·计算机视觉·3d
搬码临时工4 小时前
使用自定义固定公网URL地址远程访问公司内网OA办公系统,本地无需公网IP和专线让外网访问
网络·网络协议·tcp/ip
星马梦缘6 小时前
计算机网络6 第六章 应用层——解决“怎么发请求、怎么回响应”的问题(邮件整体传输流程)
网络·计算机网络·域名·ftp·dns·dhcp
@CLoudbays_Martin116 小时前
为什么动态视频业务内容不可以被CDN静态缓存?
java·运维·服务器·javascript·网络·python·php
东哥说-MES|从入门到精通7 小时前
Mazak MTF 2025制造未来参观总结
大数据·网络·人工智能·制造·智能制造·数字化
sheepwjl7 小时前
《嵌入式硬件(三):串口通信》
网络·嵌入式硬件·网络协议·串口通信