浅谈路由器基本结构与工作原理

news2024/11/16 9:30:01

目录

一、结构

1.1 输入端口

1.2 交换结构

1.3 输出端口

1.4 路由选择处理器

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

三、交换

四、输出端口处理

五、何时出现排队

5.1 输入排队

5.2 输出排队


一、结构

        下图是一个通用路由器体系结构的总体试图视图,其主要由输入端口、交换结构、输出端口和路由选择处理器四个组件构成。

1.1 输入端口

        输入端口(input port)执行几项重要功能。它在路由器中执行终结入物理链路的物理层功能(输入端口中最左侧的方框),它还要与位于入链路远端的数据链路层交互来执行数据链路层功能(中间的方框),也许更为重要的是,在输入端口还要执行查找的功能(最右侧的方框)。正是在这里,通过在查询转发表决定路由器的输出端口,到达的分组通过路由器的交换结构转发到输出线口。控制分组(如携带路由选择协议信息的分组)从输入端口转发到路由选择处理器。注意这里的"端口"一词,指的是路由器的物理输入和输出接口,这完全不同于与网络应用程序和套接字相关联的软件端口。在实践中,一台路由器所支持的端口数量范围较大,从企业路由器具有数量相对少的端口,到位于某ISP边缘的路由器具有数以百计10Gbps端口(其中入线路的数量趋于最大)。

1.2 交换结构

        交换结构将路由器的输人端口连接到它的输出端口。这种交换结构完全包含在路由器之中,即它是一个网络路由器中的网络!

1.3 输出端口

        输出端口存储从交换结构接收的分组,并通过执行必要的链路层和物理层功能在输出链路上传输这些分组。当一条链路是双向的时(即承载两个方向的流量),输出端口通常与该链路的输入端口成对出现在同一线路卡上。

1.4 路由选择处理器

        路由选择处理器执行控制平面功能。在传统的路由器中,它执行路由选择协议,维护路由选择表与关联链路状态信息,并为该路由器计算转发表。在SDN路由器中,路由选择处理器(在其他活动中)负责与远程控制器通信,目的是接收由远程控制器计算的转发表项,并在该路由器的输入端口安装这些表项。路由选择处理器还执行网络管理功能。

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

         输入端口的线路端接功能与链路层处理实现了用于各个输入链路的物理层和链路层。在输入端口中执行的查找对于路由器运行是至关重要的。正是在这个地方,路由器使用转发表来查找输出端口,使得到达的分组能经过交换结构转发到该输出端口。转发表是由路由选择处理器计算和更新的(使用路由选择协议与其他网络路由器中的路由选择处理器进行交互),或者转发表接收来自远程SDN 控制器的内容。转发表从路由选择处理器经过独立总线(例如一个PCI总线)复制到线路卡,使用在每个输入端口的影子副本,转发决策能在每个输入端口本地做出,无须基于每个分组调用集中式路由选择处理器,因此避免了集中式处理的瓶颈。

        假设转发表已经存在,在概念上讲查表是简单的,硬件逻辑只搜索转发表查找匹配字段。但是在吉比特速率下,这种查找必须在纳秒级执行。因此,不仅必须要用硬件执行查找, 而且需要对大型查找表使用超出线性搜索的技术。同时必须对内存访问时间给与特别关注,这导致用嵌入式片上DRAM和更快的SRAM(用作一种DRAM缓存)内存来设计。实践中也经常使用三态内容可寻址存储器(TCAM)来查找。

        一旦通过查表找到了某个分组的输出端口,则该分组就能够发送进入交换结构。在某些设计中,如果来自其他输入端口的分组正在使用该交换结构,一个分组可能会在进入交换结构时被暂时阻塞。因此,一个被阻塞的分组必须在输入端口处排队,并等待稍后被及时调度以通过交换结构。

三、交换

        交换结构位于一台路由器的核心部位,因为正是通过这种交换结构,分组才能实际地从一个端口交换(转发)到一个输出端口。常见的交换方式如下:

  • 经内存交换
  • 经总线交换
  • 经互联网络交换

        关于路由器的交换结构详细内容,可以阅读:

浅谈路由器交换结构icon-default.png?t=N7T8https://ztzhang.blog.csdn.net/article/details/136078726?spm=1001.2014.3001.5502

四、输出端口处理

        与输入端口类似。

五、何时出现排队

        在输入端口和输出端口处都可以形成分组队列。排队的位置和程度(或者在输入端口排队,或者在输出端口排队)将取决于流量负载、交换结构的相对速率和线路速率。我们现在更为详细一点考虑这些队列,因为随着这些队列的增长,路由器的缓存空间最终将会耗尽,并且当无内存可用于存储到达的分组时将会出现丢包(packet loss)。我们说有时候会说:分组"在网络中丢失"或"被路由器丢弃"。正是在一台路由器的这些队列中,这些分组被实际丢弃或丢失。

        假定输入线路速度与输出线路速度(传输速率)是相同的,均为Rline (单位为每秒分组数),并且有N个输入端口和N个输出端口。为进一步简化讨论,假设所有分组具有相同的固定长度,分组以同步的方式到达输入端口。这就是说,在任何链路发送分组的时间等于在任何链路接收分组的时间,在这样的时间间隔内,在一个输入链路上能够到达0个或1个分组。定义交换结构传送速率Rswitch 为从输入端口到输出端口能够移动分组的速率。如果Rswitch Rline 快N倍,则在输入端口处仅会出现微不足道的排队。这是因为即使在最坏情况下,所有N条输入线路都在接收分组,并且所有的分组将被转发到相同的输出端口,每批N个分组(每个输入端口一个分组)也能够在下一批到达前通过交换结构。

5.1 输入排队

        如果交换结构不能快得(相对于输入线路速度而言)使所有到达分组无时延地通过它传送,会发生什么情况呢?在这种情况下,在输入端口也将出现分组排队,因为到达的分组必须加入输入端口队列中,以等待通过交换结构传送到输出端口。为了举例说明这种排队的重要后果,考虑纵横式交换结构,并假定:①所有链路速度相同;②一个分组能够以一条输入链路接收一个分组所用的相同的时间量,从任意一个输入端口传送到给定的输出端口;③分组按照FIFO方式,从一指定输入队列移动到要求的输出队列中。只要其输出端口,多个分组可以被并行传送。然而,如果位于两个输入队列前端的两个分组是发往 同一输出队列的,则其中的一个分组将被阻塞,并必须在输入队列中等待,因为交换结构每一次只能传送一个分组到指定端口。

5.2 输出排队

        我们接下来考虑在交换机的输出端口是否会出现排队。再次假定RswitchRline 快N倍,并且到达N个输入端口的分组,其目的地是相同的输出端口。在这种情况下,在向输出链路发送一个分组的时间内,将有N个新分组到达该输出端口(N 个输入端口每个都到达1个)。因为输出端口在一个单位时间(该分组的传输时间) 内仅能传输一个分组,这N个到达分组必须排队(等待)经输出链路传输。在正好传输 N 个分组(这些分组是前面正在排队的)之一的时间中,可能又到达N个分组,等等。所以,分组队列能够在输出端口形成,即使交换结构比端口线路速率快N倍。最终,排队的分组数量能够变得足够大,耗尽输出端口的可用内存。

        当没有足够的内存来缓存一个入分组时,就必须做出决定:要么丢弃到达的分组(采用一种称为弃尾(drop-tail) 的策略),要么删除一个或多个已排队的分组为新来的分组腾出空间。在某些情况下,在缓存填满之前便丢弃一个分组(或在其首部加上标记)的做法是有利的,这可以向发送方提供一个拥塞信号。已经提出和分析了许多分组去弃与标记策略,这些策略统称为主动队列管理(Active Queue Manage ment,AQM)算法。随机早期检测(Random Early Detection, RED)算法是得到最广泛研究和实现的AQM 算法之一。

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

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

相关文章

mysql中动态行转列

场景:不确定转换完有多少列且转换完以后要存入临时表以供其他查询使用。 原始数据如下: 一张生产卡号对应多种添加剂,有多少种添加剂就有多少行数据 转换后数据如下: 一张生产卡号对应多种添加剂,有多少种添加剂就有…

2023版IDEA永久破解教程带patch.exe破解程序

2023版IDEA永久破解教程带patch.exe破解程序 第零步:百度云盘获取程序第一步:关闭电脑的病毒和危险防护(目的是避免电脑自动清除破解程序)1.找到电脑的 病毒和威胁防护2.蓝色按钮表示防护处于开启状态3.关闭成功会展示“实时保护已…

聊聊vue的nextTick方法

前言 nextTick是面试常考的vue中的一个重要知识点,但是很多小伙伴常常无法真正的理解nextTick的执行机制,并且背后包含的许多vue的重要知识。本文会把nextTick聊的非常细,让大家彻底搞懂它。 正文 那么在nextTick正式登场之前呢&#xff0…

深度解析Elasticsearch索引数据量过大的优化与部署策略

✨✨谢谢大家捧场,祝屏幕前的小伙伴们每天都有好运相伴左右,一定要天天开心哦!✨✨ 🎈🎈作者主页: 喔的嘛呀🎈🎈 目录 引言 1. 分片和副本策略 1.1分片策略 1.1.1 数据量 1.1.…

Gitee 服务器

Git 服务器集成 1. 创建仓库 2. 远程仓库简易操作指令 # Git 全局设置,修改成自己的信息 git config --global user.name "Muko" git config --global user.email "txk0x7d2163.com" # 创建 git 仓库,基本操作指令和其他远程仓库一…

边缘计算与物联网的核心 —— 低功耗芯片

一、低功耗芯片 在边缘计算与物联网(IoT)中,低功耗芯片扮演了至关重要的角色,主要体现在以下几个方面: 延长设备寿命:物联网设备通常需要部署在难以更换电池或不方便进行频繁维护的环境中,比如…

「Paraverse平行云」受邀参与编写国内首个3D数字内容生产技术白皮书

1月26日,2024中关村论坛系列活动——数据(数字)资产高质量发展大会在银保国际会议中心成功举办。本届数据(数字)资产高质量发展大会由市科委中关村管委会、市经济和信息化局、石景山区人民政府主办,3D/XR产…

【算法与数据结构】深入解析二叉树(一)

文章目录 📝数概念及结构🌠 树的概念🌉树的表示🌠 树在实际中的运用(表示文件系统的目录树结构) 🌉二叉树概念及结构🌠概念🌉数据结构中的二叉树🌠特殊的二叉…

uniapp实现页面固定区域转为base64图片预览并手动保存本地

uniapp实现页面固定区域转为base64图片预览并手动保存本地 声明:H5目前没有实现直接长按保存到手机图库(浏览器可以直接保存为图片),所以将过程中得到的base64转为真实图片地址用a标签click的方式实现预览,并手动长按…

微服务分布式springcloud的体育场地预约系统演kdm1z

体育场馆设施预约系统是在实际应用和软件工程的开发原理之上,运用java语言以及Springcloud框架进行开发。首先要进行需求分析,分析出体育场馆设施预约系统的主要功能,然后设计了系统结构。整体设计包括系统的功能、系统总体结构、系统数据结构…

node.js入门—day02

个人名片: 😊作者简介:一名大二在校生 🤡 个人主页:坠入暮云间x 🐼座右铭:给自己一个梦想,给世界一个惊喜。 🎅**学习目标: 坚持每一次的学习打卡 文章目录 什么是单线程…

NVIDIA vGPU三种授权方式(个人玩家版)

NVIDIA vGPU三种授权方式(个人玩家版) 旧版本的License Server搭建(比较推荐)说明搭建所需文件创建一个Linux虚拟机(我创建的是Ubuntu 18.04.06)修改虚拟机的MAC地址关闭虚拟机的时间同步及修改系统时间安装java安装Apache Tomcat安装许可证服务器软件上传授权文件新版本…

HarmonyOS NEXT应用开发—翻页动效案例

介绍 翻页动效是应用开发中常见的动效场景,常见的有书籍翻页,日历翻页等。本例将介绍如何通过ArkUI提供的显示动画接口animateTo实现翻页的效果。 效果图预览 使用说明 本例通过setInterval函数每秒调用一次翻页动画,实现连续翻页效果。 …

【OpenCV】手写字符分割

OpenCV 是一个开源的计算机视觉(Computer Vision)与机器学习软件库,提供了多种图像处理算法与接口。在 OCR 技术中,字符分割用于提取图像中的文字信息,可以应用于车牌识别、身份证识别、文档扫描等场景。本文主要记录如…

基于单片机的家庭防盗报警系统

摘 要 随着社会的发展,人们生活水平的不断提高和家居用品的高档化,家庭安全隐患也随之增加,所以人们便进一步提高了对家庭的保护意识。因此,这就不得不促使安全防盗报警系统的普及与推广。 然而传统的防盗措施难以实现人们的需求…

Tomcat下载安装及纯手动发布一个应用

文章目录 javaWeb介绍一. 下载tomcat二、部署Web项目准备三. 验证tomcat配置是否成功四、安装包中各个文件的解释与用途五、纯手动部署web项目 javaWeb介绍 1、什么是JavaWeb? JavaWeb是一种使用Java语言编写的基于Web的应用程序开发技术。它是通过Java的Web开发框…

Web框架开发-Django的视图层

一、视图函数 一个视图函数,简称视图,是一个简单的Python 函数,它接受Web请求并且返回Web响应。响应可以是一张网页的HTML内容,一个重定向,一个404错误,一个XML文档,或者一张图片. . . 是任何东西都可以。无论视图本身包含什么逻辑,都要返回响应。代码写在哪里也无所谓…

某狗网翻译接口逆向之webpack扣取

​​​​​逆向网址 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20 逆向链接 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vdGV4dA 逆向接口 aHR0cHM6Ly9mYW55aS5zb2dvdS5jb20vYXBpL3RyYW5zcGMvdGV4dC9yZXN1bHQ 逆向过程 请求方式:POST 参数构成: 【s】 1b921dbefaa8d939afca…

网络编程套接字(4)——Java套接字(TCP协议)

目录 一、Java流套接字通信模型 二、TCP流套接字编程 1、ServerSocket ServerSocket构造方法: ServerSocket方法: 2、Socket Socket构造方法: Socket方法: 三、代码示例:回显服务器 1、服务器代码 代码解析 2、客户端…

谁将主导未来AI市场?Claude3、Gemini、Sora与GPT-4的技术比拼

【最新增加Claude3、Gemini、Sora、GPTs讲解及AI领域中的集中大模型的最新技术】 2023年随着OpenAI开发者大会的召开,最重磅更新当属GPTs,多模态API,未来自定义专属的GPT。微软创始人比尔盖茨称ChatGPT的出现有着重大历史意义,不亚…