当前位置: 首页 > news >正文

计算机网络自顶向下方法33——网络层 路由器工作原理 输入端口处理和基于目的地转发 交换 输出端口处理

网络层深度解析(二):路由器工作原理详解

路由器是互联网的“交通枢纽”,其核心任务是以极高的速度将数据包从输入链路移动到正确的输出链路。理解其内部工作机制是理解网络层的关键。

一、路由器总体架构

一台路由器的核心组件可以抽象为四个部分,它们共同协作完成包转发任务:

  • 输入端口:数据包进入的入口,执行关键的转发查找。

  • 交换结构:连接输入和输出端口的“网络”,负责在路由器内部传输数据。

  • 输出端口:数据包离开的出口,执行排队和发送。

  • 路由选择处理器:运行控制平面功能,计算并维护路由表/转发表。

二、输入端口处理与基于目的地的转发

输入端口的处理流程决定了数据包的“下一跳”命运。

1. 输入端口处理流程

  • 物理层和链路层处理:负责信号的接收、比特流的恢复以及数据链路层帧的解封装,最终将IP数据包提取出来。

  • 查找与转发:这是输入端口最核心、要求速度最高的任务。

2. 基于目的地的转发详解

  • 转发表:存在于每个输入端口。它包含一系列 (目的网络前缀, 输出链路接口) 的映射关系。

  • 最长前缀匹配规则

    • 问题:一个IP地址可能匹配转发表中的多个网络前缀。

    • 规则:在所有匹配的表项中,选择网络前缀最长的那一个。

    • 逻辑:更长的前缀意味着更具体的网络范围,因此是更精确的路由。

3. 转发示例

假设转发表如下:

目的网络前缀输出接口
192.168.1.0/241
192.168.0.0/162
0.0.0.0/0 (默认路由)3

当一个目的IP地址为 192.168.1.10 的数据包到达时:

  • 它与 192.168.1.0/24 匹配(前24位相同)。

  • 它与 192.168.0.0/16 匹配(前16位相同)。

  • 它与 0.0.0.0/0 匹配(总是匹配)。

  • 根据最长前缀匹配,选择前缀长度为24的表项,因此该数据包将从接口1转发出去。

4. 实现技术
为了在纳秒级完成查找,现代路由器通常使用专用硬件(如三态内容可寻址存储器,TCAM)来实现转发表。

三、交换结构

交换结构是路由器的“背板网络”,负责在输入和输出端口之间搬运数据。主要有三种类型:

1. 经内存交换

  • 最早期的路由器结构,CPU直接参与转发。

  • 工作方式:输入端口先将包复制到处理器内存中,处理器提取目的地址并查找转发表,然后将包复制到输出端口的缓存中。

  • 特点:转发速率受内存带宽限制(通常较慢)。

2. 经总线交换

  • 工作方式:输入端口通过一条共享总线将数据包直接传输到输出端口。数据包上带有一个标签,指示输出端口。

  • 特点

    • 优点:结构简单,不需要处理器干预。

    • 缺点:总线带宽成为瓶颈,因为一次只能传输一个数据包。

3. 经互联网络交换

  • 工作方式:使用一个更复杂的交换矩阵,由多条并行的总线构成,允许多个数据包同时通过交换结构。

  • 特点

    • 优点:克服了总线带宽的限制,极大地提高了路由器的吞吐量。

    • 实现:例如,纵横式交换器可以在所有输入和输出端口之间建立并行的连接。

  • 应用:现代高性能核心路由器普遍采用此种方式。

四、输出端口处理

输出端口负责接收从交换结构送来的数据包,并准备将其发送到链路上。

1. 输出端口处理流程

text

从交换结构接收数据包 -> [ 缓存/排队 ] -> [ 链路层处理(封装成帧) ] -> [ 物理层处理(发送比特流) ] -> 输出链路

2. 核心挑战:分组调度
当多个数据包同时指向同一个输出端口时,就发生了竞争。输出端口必须决定发送数据包的顺序,这就是分组调度。

  • 调度算法

    • 先进先出:最简单的算法,按到达顺序发送。

    • 优先级排队:将流量分类到不同的优先级队列,高优先级队列总是优先发送。

    • 轮询:在所有非空队列间轮流服务。

    • 加权公平排队:为每个队列分配一个权重,从而保证每条流量都能获得公平的带宽份额。

3. 缓存管理与丢包

  • 缓存:输出端口设有缓存(队列),以应对短时间内数据包到达速率超过发送速率的情况。

  • 丢包:当缓存被完全填满时,新到达的数据包将因无处存放而被丢弃,这称为丢包缓冲区溢出

  • 主动队列管理:为了避免“锁死”现象,可以使用像随机早期检测这样的算法,在队列满之前就概率性地丢弃或标记数据包,以此来向发送方提供早期的拥塞信号

总结

路由器的工作原理是一个精妙的系统工程:

  1. 输入端口通过最长前缀匹配算法,以硬件速度决定数据包的出口。

  2. 交换结构作为内部高速公路,决定了路由器的内部交换能力。

  3. 输出端口通过排队和调度算法,管理着数据包的发送顺序,并在拥塞时执行丢包策略。

  4. 路由选择处理器在后台运行控制平面协议,为所有端口的转发表提供“导航数据”。

这四个部分各司其职、紧密协作,共同保证了全球互联网数据洪流的顺畅流动。

http://www.dtcms.com/a/574158.html

相关文章:

  • [RE2] Regexp对象 | shared_ptr | AST树
  • Redis Desktop Manager(Redis可视化工具)安装
  • 家务机器人
  • yolo 获取异常样本 yolo 异常
  • 解析几何——求点A到点B和C组成直线的垂线的距离,以及点到线段的距离
  • 网校 039 网站建设多少钱济南做微网站推广
  • 一台云服务器可以做多少个网站国外网站在国内备案
  • 应用案例实践 | 基于“隐语SecretFlow”多方安全分析的智能化理赔
  • 北京做erp报价的网站做网站用vue吗
  • 大话大模型应用(二)--让大模型听话:Prompt EngineeringContext Engineering
  • 中国古建筑网站高清视频网络服务器免费
  • 自适应网站做多大尺寸的开网站做淘宝客
  • 朝阳网站推广企业网站模板价格
  • ControlNet:Adding Conditional Control to Text-to-Image Diffusion Models
  • 网站维护的方法asp.net 4.0网站开发实例教程
  • web前端 DSL转换技术
  • 有什么好的网站推荐一下成都网页制作要多少钱
  • 厦门建设厅网站站长工具seo综合查询官网
  • 灯塔工厂:如何通过数字化实现制造升级
  • 电商网站 内容优化哪一个网站有做实验的过程
  • 电商平台数据分析市场洞察:API 技术如何打通数据价值闭环
  • 网站设计O2O平台小学学校网站
  • 做企业网站需要准备什么材料手机网站成功案例
  • gitLab如何新建分支(根据某个分支)
  • WEEX平台安全验证技术规范与实践
  • C++ opencv简化轮廓
  • 网站服务器租用和托管wordpress 个人国内收款
  • Java中将System.out内容写入Tomcat日志
  • 做国外的营销的网站官方网站撰写策划书
  • dmp导出到asm可以吗?