深入了解路由器工作原理:从零开始的简单讲解


简介

在现代网络中,路由器扮演着至关重要的角色。它不仅连接了不同的设备,还确保数据能够准确地传输到目的地。本文将带你深入探讨路由器的工作原理,帮助网络基础小白们理解这一重要设备的基本功能。


路由器的构成

路由器是一种具有多个输入端口和多个输出端口的专用计算机,其任务是转发分组。当路由器从某个输入端口收到分组后,会根据分组的目的地(即目的网络),将该分组从某个合适的输出端口转发给下一跳路由器,直到该分组到达终点。这一过程称为分组转发,是网络层的主要工作。


路由器的两大部分

整个路由器可以划分为路由选择部分分组转发部分

  1. 路由选择部分:属于控制平面,其核心是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,并定期更新和维护它。
  2. 分组转发部分:属于数据平面,由输入端口、交换结构和输出端口组成。

输入端口

输入端口的主要职责是接收和处理分组。这个过程包括以下几层处理:

  • 物理层:负责接收比特。
  • 数据链路层:按照协议接收并传送分组的帧,将帧的首部和尾部剥去后,分组被送入网络层。
  • 网络层:根据分组的目的地址查找转发表,将分组转发到合适的输出端口。

重点路由选择分组转发的区别在于,前者涉及多个路由器协同工作,而后者仅涉及单个路由器根据转发表进行数据转发。


转发表与路由表

在讨论路由选择的原理时,我们往往使用路由表这个名词来描述,但实际上,转发表路由表是有区别的。

  • 路由表:包含从目的网络到下一跳(用IP地址表示)的映射,是多个路由器协同工作的结果。
  • 转发表:依据路由表计算出来,必须包含完成转发功能所需的信息,如目的网络与相应输出端口和某些MAC地址信息的映射关系。转发表的结构应当使查找过程最优化,而路由表则需要对网络拓扑变化的计算最优化。

实现方式:路由表总是用软件实现的,但转发表可以用特殊的硬件来实现。


分组转发的高效处理

为了使分组转发更高效,通常会将转发表的副本放在每一个输入端口中,这些副本常称为“影子副本(Shadow Copy)”。这种分散化交换可以避免在路由器中的某一点上出现瓶颈。

线速处理:理想情况下,输入端口的处理速率能够跟上线路传送分组到路由器的速率,这种速率称为线速(Line Speed或Wire Speed) 。例如,对于OC-48链路(速率2.5Gbit/s),线速应当达到每秒处理100万以上的分组。


交换结构

交换结构是路由器的关键部分,它负责将分组从输入端口转发到合适的输出端口。为了提高路由器的转发速度,交换结构通常采用以下三种方式之一:

  1. 通过存储器:分组被复制到存储器中,再从存储器转发到输出端口。
  2. 通过总线:分组通过共享的总线直接传送到输出端口。
  3. 通过纵横交换结构:利用交叉结点控制纵横总线的接通或断开,将分组转发到输出端口。

举例:像Cisco公司的Catalyst 12000系列路由器就是采用纵横交换结构,其速率高达60Gbit/s。


输出端口

输出端口负责从交换结构接收分组并将其发送到外部线路上。当交换结构传送过来的分组速率超过输出链路的发送速率时,分组会暂时存放在输出端口的队列中。

重点:分组在路由器的输入端口和输出端口都可能会排队等候处理,提高查表和交换的性能可以避免这一问题。


路由器与交换机的比较

虽然路由器交换机都是基于存储转发的分组交换设备,但它们的工作原理和应用场景各有不同。

  1. 交换机:优点是即插即用,分组过滤和转发速度快。缺点是维护大的MAC地址表和ARP表,且对广播风暴无保护措施。
  2. 路由器:优点是能提供智能的路由选择和隔离广播域。缺点是配置复杂,处理时间较长。

应用场景:小网络用交换机,大网络则需结合路由器以提供更好的流量隔离和控制。


三层交换机

三层交换机在逻辑上等同于一个路由器加上支持VLAN的二层交换机。它能方便地在IP层进行多个VLAN的互连,处理速度快,但接口类型单一,支持的路由选择协议较少。

三层交换机的工作原理

当一台主机通过三层交换机与另一个VLAN中的主机进行通信时,三层交换机会在处理第一个IP数据报时,完全与一个普通路由器一样,根据目的IP地址使用最长前缀匹配算法查找路由表,获得下一跳IP地址,并使用ARP获取下一跳IP地址对应的MAC地址,然后将IP数据报转发出去。

重点:三层交换机会将目的IP地址与下一跳MAC地址的映射关系记录在高速缓存中,当后续IP数据报到达时,就不再通过复杂的算法查找路由表,而是直接从缓存中查找相应的下一跳MAC地址进行转发。这种过程被称为“一次路由,多次转发/交换”。


实际应用中的选择

在实际应用中,典型的做法是:

  • 局域网内部:使用三层交换机实现广播域的隔离和VLAN间的路由。
  • 局域网与广域网互连:使用普通路由器实现不同网络类型的互连。

结论:虽然三层交换机的转发性能比普通路由器要高,但其接口类型单一,支持的协议较少。因此,在需要互连不同类型的异构网络时,仍需使用普通路由器。


结论

本文对路由器的工作原理进行了简明扼要的介绍,帮助基础小白们理解这一关键设备的基本构成和功能。通过对输入端口、交换结构、输出端口以及路由器与交换机的比较的详细讲解,读者可以更清晰地理解路由器在现代网络中的重要作用。


希望这篇文章对你有所帮助,如果你有任何问题或建议,欢迎在评论区留言。感谢你的阅读!
图文来源:《计算机网络教程》第六版微课版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/49511.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

纷享AI | AI技术在销售场景的应用与实践

AI高速发展的今天,各行业都经历着深刻变革。但机遇与挑战总相伴相生,各企业负责人事实上也正面临着如何有效利用AI以完成赋能销售业务的难题。 毋庸置疑,跟上技术潮流,通过落实AI在销售场景中的应用进而取得卓越赋能成果必然是行…

Android TabLayout的简单用法

TabLayout 注意这里添加tab,使用binding.tabLayout.newTab()进行创建 private fun initTabs() {val tab binding.tabLayout.newTab()tab.text "模板库"binding.tabLayout.addTab(tab)binding.tabLayout.addOnTabSelectedListener(object : TabLayout.On…

深度学习系列一

激活函数 sigmod 梯度消失问题: sigmoid函数的导数在输入值较大或较小时接近于0。在反向传播过程中,这些小梯度会相乘,导致深层网络的梯度变得非常小。结果是,深层网络的参数几乎不会更新,训练变得非常困难。这就是为…

Passing output of 3DCNN layer to LSTM layer

题意:将3DCNN(三维卷积神经网络)层的输出传递给LSTM(长短期记忆网络)层 问题背景: Whilst trying to learn Recurrent Neural Networks(RNNs) am trying to train an Automatic Lip Reading Model using 3…

2024年上半年主要游戏安全风险,该如何应对?

随着游戏行业的蓬勃发展,安全问题也日益成为行业关注的焦点。面对 2024 年上半 年的游戏安全风险挑战,游戏行业需要不断加强技术能力,完善安全策略,与各方共 同努力,打造一个更加安全、公平的游戏环境。 游戏安全解…

前端程序员会演化出类TA岗位吗?

前端开发领域确实在不断演化,随着技术的进步和行业的需求变化,前端程序员的角色和职责也在拓展,这自然催生了一系列相关的专业岗位。以下是一些从前端开发领域分化出来的专业角色,我们可以称之为“类TA”(Technical Ad…

BGP之选路MED

原理概述 当一台BGP路由器中存在多条去往同一目标网络的BGP路由时,BGP协议会对这些BGP路由的属性进行比较,以确定去往该目标网络的最优BGP路由。BGP路由属性的比较顺序为Preferred Value属性、Local Preference属性、路由生成方式、AS_Path属性、Origin属…

学习记录——day18 数据结构 树

树的存储 1、顺序存储 对于普通的二叉树,不适合存储普通的二叉树顶序存储,一般用于存储完全二叉树而言,如果使用顺序存储,会浪费大量的存储空间,因为需要给没有节点的位置留出空间,以便于后期的插入。 所以…

20分钟上手新版Skywalking 9.x APM监控系统

Skywalking https://skywalking.apache.org/ Skywalking是专为微服务、云原生和基于容器的(Kubernetes)架构设计的分布式系统性能监控工具。 Skywalking关键特性 ● 分布式跟踪 ○ 端到端分布式跟踪。服务拓扑分析、以服务为中心的可观察性和API仪表板。…

兼容浏览器,切换PC端显示PC端,切换H5端显示H5端

兼容浏览器,切换PC端显示PC端,切换H5端显示H5端 Uniapp vue3 Uview 项目 Vue3 Vite Ts ElementPlus PC端 (在浏览器PC端,切换H5端兼容显示H5端页面) 浏览器H5端 (在浏览器H5端,切换PC端兼容显示PC端…

CSS实现的扫光效果组件

theme: lilsnake 图片和内容如有侵权,及时与我联系~ 详细内容与注释: CSS实现的扫光效果组件 代码 技术栈与框架 Vue3 CSS 扫光效果的原理 扫光效果的原理就是从左到右无限循环的一个位移动画 实现方式 适配文字扫光效果的css .shark-box { …

Stable Diffusion基本原理通俗讲解

Stable Diffusion是一种基于深度学习的图像生成技术,它属于生成对抗网络(GANs)的一种。简单来说,Stable Diffusion通过训练一个生成器(Generator)和一个判别器(Discriminator)&#…

【linux】Shell脚本三剑客之sed命令的详细用法攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

【OSS对象存储】Springboot集成阿里云OSS + 私有化部署Minio

【OSS对象存储】Springboot集成阿里云OSS 私有化部署Minio 一、摘要二、POM依赖三、配置文件四、表结构设计五、代码实现5.1 代码包结构5.2 API封装5.3 增删改查 六、扩展6.1 Minio配置https访问 一、摘要 掌握阿里云OSS、私有化部署Minio两种对象存储的使用方式运用工厂策略…

Blender 4.2 安装GIS插件步骤

Blender 4 更新以后插件安装变得复杂,插件界面的安装按钮不显示,界面布局改变,怎么安装插件: 1. 在线安装: “编辑”(Edit)>进入偏好设置(Preferences setting)>…

机械学习—零基础学习日志(高数10——函数图形)

零基础为了学人工智能,真的开始复习高数 函数图像,开始新的学习!本次就多做一做题目! 第一题: 这个解法是有点不太懂的了。以后再多研究一下。再出一道题目。 张宇老师,比较多提示了大家,一定…

设计模式12-构建器

设计模式12-构建器 由来和动机原理思想构建器模式的C代码实现构建器模式中的各个组件详解1. 产品类(Product)2. 构建类(Builder)3. 具体构建类(ConcreteBuilder)4. 指挥者类(Director&#xff0…

kettle从入门到精通 第七十九课 ETL之kettle kettle读取数据库BLOB字段转换为文件

上一课我们讲解了如何将文件以二进制流的方式写入数据库,本节课我们一起学习下如何将二进制数据读取为文件。 1、将二进制流转换为文件这里主要用到了步骤【文本文件输出】。表输入步骤从表中读取blob字段,java代码定义二进制流转换为文件的全路径&#…

Apache Tomcat文件包含漏洞复现(详细教程)

1.漏洞原理 Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,其安装后会默认开启ajp连接器,方便与其他web服务器通过ajp协议进行交互。属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和…

设计模式13-单件模式

设计模式13-单件模式 写在前面对象性能模式典型模式1. 单例模式(Singleton Pattern)2. 享元模式(Flyweight Pattern)3. 原型模式(Prototype Pattern)4. 对象池模式(Object Pool Pattern&#xf…