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

文章目录

  • 输入端口处理和基于目的地转发
  • 交换结构
  • 输出端口处理
  • 排队问题
  • 参考资料

image.png
路由器的四个组件

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

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

image.png
输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层
input port的查找转发功能所依据的转发表是来自路由选择处理器
路由选择处理器将转发表复制到线路卡,使得router能够在本地做出转发决策,而不必基于每个分组调用路由选择处理器,避免了集中式处理

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

  1. 路由器用分组目的地址的前缀(prefix)与该表中的表项进行匹配
  2. 为了处理转发表中多项匹配当前目的地址的情况,这里使用最长前缀匹配规则(longest prefix matching rule)

从硬件来说,为了实现足够高速的查找,使用特殊的内存,比如三态内容可寻址存储器(Tenary Content Address Memory, TCAM)来查找

交换结构

image.png
经内存交换
在CPU (路由选择处理器)的直接控制下完成
分组到达input port,向路由器发起中断,分组被复制到处理器内存中,计算output port,再将该分组复制到output port中

经总线交换
输入端口经一根共享总线将分组直接传送到输出端口,不需要路由选择处理器的干预

纵横式交换
并行转发多个分组
非阻塞的(nonblocking):只要没有其他分组当前被转发到该输出端口,转发到输出端口的分组将不会被到达输出端口的分组阻塞

输出端口处理

image.png

排队问题

在输入端口和输出端口处都可以形成分组队列,当router的缓存空间耗尽时,就会出现丢包(packet loss)现象
input排队
交换结构不能快得(相对于输入线路速度而言)使所有到达分组无时延地通过它传送时,在输入端口将岀现分组排队
使用纵横式交换结构进行说明
image.png
这里在输入队列前端的两个分组(带深色阴影)要发往同一个右上角输出端口,出现了线路前部(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) 中文版

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

css写个三角形

点击三角形&#xff0c;展开或者收起内容 <template><div><div class"zhankai" click"btn()">展开 <span :class"{sanjiao:true,rotate:flag}"></span></div><!-- 展示或者收起 --><el-collapse-…

2023大中型企业数字化运营:互联网时代数据中台价值与应用-亿发

在数字化时代背景下&#xff0c;大中型企业通过构建数据中台以提升业务价值的趋势日益明显。作为企业的战略制定者和高层领导&#xff0c;不仅需要认识到数据的价值&#xff0c;还要深入了解实现数据价值化业务的核心技术&#xff0c;即数据中台。 市场环境的变化带来了数字化转…

【WSL 2】Windows10 安装 WSL 2,并配合 Windows Terminal 和 VSCode 使用

【WSL 2】Windows10 安装 WSL 2&#xff0c;并配合 Windows Terminal 和 VSCode 使用 1 安装 Windows Terminal2 安装 WSL 23 在 Windows 文件资源管理器中打开 WSL 项目4 在 VSCode 中使用 WSL 24.1 必要准备4.2 从 VSCode 中 Connect WSL4.3 从 Linux 中打开 VSCode 1 安装 W…

NAT技术与代理服务器

目录 一、NAT与NAPT技术 1.NAT技术 2.NAPT技术 &#xff08;1&#xff09;四元组的唯一性 &#xff08;2&#xff09;数据的传输过程 &#xff08;3&#xff09;NAPT的缺陷 二、代理服务器 1.正向代理和反向代理 2.代理服务器的应用 &#xff08;1&#xff09;游戏加…

Spring Web MVC入门

一&#xff1a;了解Spring Web MVC (1)关于Java开发 &#x1f31f;Java开发大多数场景是业务开发 比如说京东的业务就是电商卖货、今日头条的业务就推送新闻&#xff1b;快手的业务就是短视频推荐 (2)Spring Web MVC的简单理解 &#x1f497;Spring Web MVC&#xff1a;如何使…

2023想入门Web测试,看这篇文章!

今天要谈的是很多软件测试工程师都需要面对的——Web测试 不管你是处在二十不惑的青春有你阶段还是三十而已的乘风破浪阶段我们都需要面对“Web测试”。 Web测试其实有以下几个方面&#xff1a; 1、页面测试 大多数的Web网站的网页都是html语言编写的&#xff0c;测试工程师…

高等数学教材重难点题型总结(七)微分方程

高数上册最后一章&#xff0c;虽然不如积分难&#xff0c;但也颇为恶心&#xff0c;好在套路很固定&#xff0c;重点在于&#xff1a;区分方程类型&#xff0c;记忆求解公式~ 此外&#xff0c;诸如伯努利、欧拉方程等内容&#xff0c;是考研数学一的内容&#xff0c;学校的期末…

UE5实现相机水平矫正

UE5实现相机水平矫正 思路&#xff0c;用HIT获得基于相机视角的 离散采样点&#xff0c;然后根据距离相机距离进行权重分析。 距离越近&#xff0c;采样约中心&#xff0c;即越接近人眼注意点&#xff0c;最后算出加权平均高度&#xff0c;赋予给相机&#xff0c;相机将水平旋…

神经网络与深度学习第四章前馈神经网络习题解答

[习题4-1] 对于一个神经元 &#xff0c;并使用梯度下降优化参数时&#xff0c;如果输入恒大于0&#xff0c;其收敛速度会比零均值化的输入更慢。 首先看一下CSDN的解释&#xff1a; 如果输入x恒大于0&#xff0c;使用sigmoid作为激活函数的神经元的输出值将会处于饱和状态&a…

强大易于编辑的流程图组织图绘制工具draw.io Mac苹果中文版

draw.io可以绘制多种类型的图表&#xff0c;包括但不限于流程图、组织结构图、网络图、UML图、电气工程图等。draw.io提供了丰富的图形元素和编辑功能&#xff0c;使用户能够轻松地创建和编辑各种复杂的图表。同时&#xff0c;该软件还支持多种导出格式&#xff0c;方便用户在不…

3D网页游戏外包开发引擎

3D网页开发引擎是用于创建具有三维图形、虚拟现实和交互性的网页应用程序的工具。以下是一些常用的3D网页开发引擎以及它们的主要特点&#xff0c;希望对大家有所帮助。北京木奇移动技术有限公司&#xff0c;专业的软件外包开发公司&#xff0c;欢迎交流合作。 1.Three.js&…

微服务-统一网关Gateway

网关的作用 对用户请求做身份认证、权限校验将用户请求路由到微服务&#xff0c;并实现负载均衡对用户请求做限流 搭建网关服务 创建新module&#xff0c;命名为Gateway&#xff0c;引入依赖&#xff08;1.SpringCloudGateway依赖&#xff1b;2.Eureka客户端依赖或者nacos的服…

《C和指针》(5)操作符和表达式

问题 下面这个表达式的类型和值分别是什么? 答&#xff1a;该值为2.0&#xff0c;如果要进行浮点除法&#xff0c;请使用以下表达式 下面这个程序的结果是什么&#xff1f; 答&#xff1a;这是一个狡猾的问题。比较明显的回答是-10(2-3 *4),但实际上它因编译器而异。乘法运…

IPv6+ 3.0关键技术解析与应用实践探索

IPv6作为面向5G和云计算的智能IP技术&#xff0c;其核心是以IPv6技术架构为底座&#xff0c;并基于用户的新兴业务进行创新发展而来的。任何一项技术创新的背后都有一只看不见的推手-用户的需求&#xff0c;也就是用户的业务发展所需&#xff0c;进一步来说是用户的应用系统在驱…

Ubuntu 诞生 19 年

导读2004 年 10 月 20 日&#xff0c;Ubuntu 4.10 正式发布&#xff0c;代号‘Warty Warthog’。 作为 Ubuntu 第一个版本&#xff0c;4.10 问世后立刻受到广大 Linux 用户欢迎。它搭载了当时最新的 GNOME 2.8 桌面环境&#xff0c;以及一系列实用软件&#xff0c;比如 Mozilla…

小程序开发——小程序项目的配置与生命周期

1.app.json配置属性 app.json配置属性 2.页面配置 app的页面配置指的是pages属性&#xff0c; pages数组的第一个页面将默认作为小程序的启动页。利用开发工具新建页面时&#xff0c;则pages属性对应的数组将自动添加该页面的路径&#xff0c;若是在硬盘中添加文件的形式则不…

通过servlet设计一个博客系统

博客系统 准备工作servlrt依赖mysql依赖jackson依赖 服务器和数据库的交互设计数据库/数据表封装DBUtil,实现建立连接和断开连接创建实体类bloguser 编写Dao类BlogDaoUserDao 前端和服务器的交互功能一:博客列表页约定格式后端代码前端代码 功能二:实现博客详情页约定格式后端代…

CAD需要学c语言嘛?

CAD需要学c语言嘛&#xff1f; AutoCAD 和 C 语言没有关系的。 如果非要说是 AutoCAD 和哪个编程语言有关系&#xff0c;那应该是 VBA, 可以通过 VBA 编程&#xff0c;最近很多小伙伴找我&#xff0c;说想要一些c语言资料&#xff0c;然后我根据自己从业十年经验&#xff0c;熬…

MySQL扩展语句和约束条件

MySQL扩展语句 create TABLE if not exists ky32 (id int(4) zerofill primary key auto_inc rement&#xff0c; #表示该字段可以自增长&#xff0c;默认从1开始每条记录会自动递增1name varchar(10) not null,cradid int(10) not null unique key,hobby varchar (50))&#x…

自学C语言的最恐怖的地方是什么?

自学C语言的最恐怖的地方是什么&#xff1f; 当年在网吧学C&#xff0c;人家在玩游戏&#xff0c;我在敲代码&#xff0c;基本上从9点敲到1点&#xff0c;然后再开始玩游戏。。。当时不是装逼&#xff0c;就是觉得有意思&#xff0c;而且当时计算机的确是一门很高大上的职业。…