路由器的结构以及工作原理

目录

路由器的结构

交换结构三种常用的交换方式

1.通过存储器

2.通过总线

3.通过纵横交换结构(crossbar switch fabric)


路由器的结构

路由器结构可划分为两大部分:路由选择部分,分组转发部分

路由选择部分也叫做控制部分,其核心构件是路由选择处理机。路由选择处理机的任务是根据所选定的路由选择协议构造出路由表,同时经常或定期地和相邻路由器交换路由信息而不断地更新和维护路由表。

分组转发部分,它由三部分组成: 交换结构、一组输入端口和一组输出端口(请注意:这里的端口就是硬件接口)。

交换结构(switching fabric)又称为交换组织,它的作用就是根据转发表(forwarding table)对分组进行处理,将某个输入端口进入的分组从一个合适的输出端口转发出去。交换结构本身就是一种网络,但这种网络完全包含在路由器之中,因此交换结构可看成是“在路由器中的网络”。

注:“转发”和”路由选择“的区别

转发:

•根据转发表将用户的IP 数据报从合适的端口转发出去。
仅涉及到一个路由器。
•转发表是从路由表得出的。
•转发表必须包含完成转发功能所必需的信息,每一行必须包含从要到达的目的网络到输出端口和某些 MAC 地址信息(如下一跳的以太网地址)的映射。

路由选择:

•按照路由选择算法,根据网络拓扑的变化情况,动态地改变所选择的路由,并由此构造出整个的路由表。
•涉及到很多路由器。
•路由表一般仅包含从目的网络到下一跳 (用 IP 地址表示)的映射。

输入端口对线路上收到的分组的处理

•在物理层进行比特的接收

•在数据链路层剥去帧的首部和尾部

•分组接着被送入网络层的处理模块:

(1)若收到的分组时交换路由信息的分组,就交到路由选择处理机。

(2)若收到的是数据分组,就按目的地址查找转发表,根据得出的结果,经交换结构到达合适的输出端口。

若某分组正在查找转发表,该分组排队等待。因而会产生一定的时延,如下图所示:

输入端口中的查找和转发功能在路由器的交换功能中是最重要的。为了使交换功能分散化,往往把复制的转发表放在每一个输入端口中(如图中的虚线箭头所示)。路由选择处理机负责对各转发表的副本进行更新。这些副本常称为“影子副本” (shadow copy)。分散化交换可以避免在路由器中的某一点上出现瓶颈。

输出端口将交换结构传送来的分组发送到线路

•输出端口从交换结构接收分组:

(1)当交换结构传送的分组的速率超过输出链路的发送速率,来不及发送的分组就必须缓存在队列中。

(2)若分组处理的速率赶不上分组进入队列的速率,队列满时,丢弃后面进入的分组。

•分组进入数据链路层后,给分组加上链路层的首部和尾部。

•接着传入物理层,由物理层向输出线路发送分组。

交换结构三种常用的交换方式

1.通过存储器

(1)当路由器的某个输入端口收到一个分组时,就用中断方式通知路由选择处理机。然后分组就从输入端口复制到存储器中。

(2)路由器处理机从分组首部提取目的地址,查找路由表,再将分组复制到合适的输出端口的缓存中。

(3)若存储器的带宽(读或写)为每秒 M 分组,那么路由器的交换速率(即分组从输入端口传送到输出端口的速率)一定小于 M/2。这是因为存储器对分组的读和写需要花费的时间是同一个数量级。

许多现代的路由器也通过存储器进行交换,上图表示分组通过存储器进行交换。与早期的路由器的区别就是,目的地址的查找和分组在存储器中的缓存都是在输入端口中进行的。 Cisco 公司的 Catalyst 8500 系列交换机(有的公司把路由器也称为交换机)和 Bay Network 公司的 Accelar 1200 系列路由器就采用了共享存储器的方法。

2.通过总线

(1)数据报从输入端口通过共享的总线直接传送到合适的输出端口,而不需要路由选择处理机的干预。

(2)当分组到达输入端口时若发现总线忙,则被阻塞而不能通过交换结构,并在输入端口排队等待

(3)因为每一个要转发的分组都要通过这一条总线,因此路由器的转发带宽就受总线速率的限制。

现代的技术已经可以将总线的带宽提高到每秒吉比特的速率,因此许多的路由器产品都采用这种通过总线的交换方式。例如, Cisco 公司的 Catalyst 1900 系列交换机就使用了带宽达到 1 Gbit/s 的总线(叫做 Packet Exchange Bus)。

3.通过纵横交换结构(crossbar switch fabric)

也常被称为互连网络(interconnection network)

(1)它有 2N 条总线,控制交叉节点可以使 N 个输入端和 N 个输出端口相连接,这取决于相应的交叉结点是使水平总线和垂直总线接通还是断开。

(2)当输入端口收到一个分组时,就将它发送到水平总线上。

(3)

若通向输出端口的垂直总线空闲,则将垂直总线与水平总线接通,然后将该分组转发到这个输出端口。

但若该垂直总线已被占用(有另一个分组正在转发到同一个输出端口),则后到达的分组就被阻塞,必须在输入端口排队。采用这种交换方式的路由器例子是 Cisco 公司的12000 系列交换路由器,它使用的互连网络的带宽达 60 Gbit/s。

特点:一种无阻塞的交换结构,分组可以转发到任何一个输出端口,只要这个输出端口没有被别的分组占用。

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

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

相关文章

java高并发系列-第2天:并发级别

这是java高并发系列第2篇文章,一个月,咱们一起啃下java高并发,欢迎留言打卡,一起坚持一个月,拿下java高并发。 由于临界区的存在,多线程之间的并发必须受到控制。根据控制并发的策略,我们可以把…

P6入门:项目初始化7-项目详情之代码/分类码Code

前言 使用项目详细信息查看和编辑有关所选项目的详细信息,在项目创建完成后,初始化项目是一项非常重要的工作,涉及需要设置的内容包括项目名,ID,责任人,日历,预算,资金,分类码等等&…

排序算法之-快速

算法原理 丛待排序的数列中选择一个基准值,通过遍历数列,将数列分成两个子数列:小于基准值数列、大于基准值数列,准确来说还有个子数列:等于基准值即: 算法图解 选出基准元素pivot(可以选择…

P36[11-1]SPI通信协议

SPI相比于IIC的优缺点: 1.SPI传输速度快(IIC高电平驱动能力较弱,因此无法高速传输) 2.使用简单 3.通信线多 SCK(SCLK,CK,CLK):串行时钟线 MOSI(DO):主机输出,从机输入 MISO(DI): 主机输入,从机输出 SS(NSS,CS):从机选择(有多少个从机,主机就要用几根SS分别与从机连接…

Windows环境下ADB调试——安装adb

一、下载 Windows版本:https://dl.google.com/android/repository/platform-tools-latest-windows.zipMac版本:https://dl.google.com/android/repository/platform-tools-latest-darwin.zipLinux版本:https://dl.google.com/android/reposit…

HTTP服务器——tomcat的安装和使用

文章目录 前言下载tomcattomcat 文件bin 文件夹conf 文件lib 文件log 文件temp 文件webapps 文件work 目录 如何使用 tomcat 前言 前面我们已经学习了应用层协议 HTTP 协议和 HTTP 的改进版——HTTPS,这些协议是我们在写与服务器相关的代码的时候息息相关的&#x…

专访|OpenTiny 社区 Mr 栋:结合兴趣,明确定位,在开源中给自己一些技术性挑战

前言 OpenTiny 开源之夏项目终于迎来了圆满的结局。借此机会,我们采访了 TinyReact 的共建者 Mr 栋同学。 Mr 栋同学是一位热衷于前端技术的开发者,对前端开发充满了激情和热爱。同时他也是一位即将毕业的大四在校生。在 OpenTiny 开源项目中&#xff0…

Java18新增特性

前言 前面的文章,我们对Java9、Java10、Java11、Java12 、Java13、Java14、Java15、Java16、Java17 的特性进行了介绍,对应的文章如下 Java9新增特性 Java10新增特性 Java11新增特性 Java12新增特性 Java13新增特性 Java14新增特性 Java15新增特性 Java…

做一个Sprngboot文件上传-阿里云

概述 这个模块是用来上传头像以及文章封面的,图片的值是一个地址字符串,一般存放在本地或阿里云服务中 1、本地文件上传 我们将文件保存在一个本地的文件夹下,由于可能两个人上传不同图片但是却同名的图片,那么就会一个人的图片就…

Mac 本地部署thinkphp8【部署环境以及下载thinkphp】

PHP的安装以及环境变量配置 1 PHP安装:在终端输入brew install php 这里是PHP下载的最新的 如果提示‘brew’找不到,自己搜索安装吧, 不是特别难 2 环境变量配置 终端输入vim ~/.bash_profile 输入export PATH"/usr/local/Cellar/php/8.…

ubuntu18.04安装google浏览器

下载google安装包 wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb 安装google浏览器 sudo dpkg -i google-chrome-stable_current_amd64.deb 执行安装 sudo apt-get -f install 启动浏览器 在应用程序中找到google图标点击运行

安全区域边界(设备和技术注解)

网络安全等级保护相关标准参考《GB/T 22239-2019 网络安全等级保护基本要求》和《GB/T 28448-2019 网络安全等级保护测评要求》 密码应用安全性相关标准参考《GB/T 39786-2021 信息系统密码应用基本要求》和《GM/T 0115-2021 信息系统密码应用测评要求》 1边界防护 1.1应保证跨…

Spark数据倾斜优化

1 数据倾斜现象 1、现象 绝大多数task任务运行速度很快,但是就是有那么几个task任务运行极其缓慢,慢慢的可能就接着报内存溢出的问题。 2、原因 数据倾斜一般是发生在shuffle类的算子,比如distinct、groupByKey、reduceByKey、aggregateByKey…

vue脚手架初始化项目搭建后配置路由【小白易学】

首先这里你已经创建好项目了,这是跑起来的效果 首先第一步,需要下载路由router npm install vue-router4下载好了之后找到main.js页面,加入router import { createApp } from vue; import App from ./App.vue; import router from ./routercreateApp(A…

采集标准Docker容器日志:部署阿里云Logtail容器以及创建Logtail配置,用于采集标准Docker容器日志

文章目录 引言I 预备知识1.1 LogtailII 查询语法2.1 具体查询语法2.2 查询示例2.3 设置token时间(登录过期时间)see also引言 I 预备知识 1.1 Logtail Logtail是日志服务提供的日志采集Agent,用于采集阿里云ECS、自建IDC、其他云厂商等服务器上的日志。本文介绍Logtail的功…

RTOS实时操作系统在嵌入式开发中的应用

随着各种嵌入式系统应用的日益复杂和对实时性要求的提高,使用实时操作系统(RTOS)成为嵌入式开发中的一种重要选择。STM32微控制器作为一种强大的嵌入式处理器,与各种RTOS相结合,能够提供更高效、可靠并且易于维护的系统…

ESP32网络开发实例-BME280传感器数据保存到InfluxDB时序数据库

BME280传感器数据保存到InfluxDB时序数据库 文章目录 BME280传感器数据保存到InfluxDB时序数据库1、BM280和InfluxDB介绍2、软件准备3、硬件准备4、代码实现在本文中,将详细介绍如何将BME280传感器数据上传到InfluxDB中,方便后期数据处理。 1、BM280和InfluxDB介绍 InfluxDB…

postgreSQL中的高速缓存

1. 高速缓存简介 ​如下图所示,当一个postgreSQL进程读取一个元组时,需要获取表的基本信息(例如:表的oid、索引信息和统计信息等)及元组的模式信息,这些信息被分别记录在多个系统表中。通常一个表的模式信…

果园自主跟随碎枝机器人

开发背景 农业扶贫项目—— 开发一款适用于猕猴桃果园的跟随碎枝机器人。 在猕猴桃的种植培育过程中,一项非常重要的环节便是剪枝,通常有冬剪和夏剪。以往果农剪完枝条后要将散落于地的枝条归拢后统一粉碎还田。这需要专门收集地面上的枝条并将其归拢到…

C语言指针进阶

文章目录 1.字符指针1.1字符1.2字符串 2.数组指针2.2数组名和&数组名2.3数组指针的使用2.3.1一维数组例子2.3.2 二维数组传参2.3.2.1参数是数组的形式2.3.2.2参数是指针的形式 3.指针数组4.数组传参和指针传参4.1 一维数组传参4.1.1参数为数组的形式,参数为指针…