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

文章目录


路由器的四个组件

  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) 中文版
相关推荐
Wang's Blog31 分钟前
Linux小课堂: 网络配置详解之DHCP动态分配与静态IP地址设置
linux·网络·tcp/ip
fat house cat_5 小时前
【netty】基于主从Reactor多线程模型|如何解决粘包拆包问题|零拷贝
java·服务器·网络·netty
天***88965 小时前
HTTP 协议的常用方法有哪些?(GET、POST、PUT、DELETE、PATCH)各自的作用和区别是什么?
网络·网络协议·http
xixixi777776 小时前
信息安全和网络安全的区分在哪
网络·安全·web安全·信息安全
上海云盾第一敬业销售7 小时前
游戏盾和高防IP的差异与选择
网络·tcp/ip·游戏
程序员大柱8 小时前
推荐一个免费的IP地址库:纯真社区版IP库
网络·网络协议·tcp/ip
Tony Bai8 小时前
【Go 网络编程全解】14 QUIC 与 HTTP/3:探索下一代互联网协议
开发语言·网络·后端·http·golang
colus_SEU9 小时前
【计算机网络笔记】第一章 计算机网络导论
笔记·计算机网络·1024程序员节
德迅云安全杨德俊10 小时前
SCDN:互联网时代网站安全的安全保障
网络·安全·ddos
移远通信11 小时前
QuecPython蜂窝网卡特有机制
网络