路由器与交换机基本原理

2023-11-12

路由器工作原理

定义

路由器是一种实现网络互联的设备,作为三层网络层设备提供路由与转发两种机制,可以决定数据包从源端到目的端的经过路径(路由),以及将路由器输入端的数据包送到适当的路由器输出端(内部转发);
可以看作路由器在两个方面控制层面和转发层面的作用;

基本作用

路由器工作过程
在这里插入图片描述
收到数据包后拆包到网络层进行路由选择,将其从合适的端口发出(需进行封装),可实现异种网络的互联;主要有以下作用:

  • 路由 :使用路由表来实现,包括路由表的建立、更新、维护、查找
    使用静态路由和动态路由协议来获知远端网络构建路由表
  • 子网间速率适配
  • 隔离子网,防止广播蔓延,指定访问规则 不同类型网络互联
    路由器经常会收到以某种类型的数据链路帧封装的数据包,当转发这种数据包时,路由器可能需要将其封装为另一种类型的数据链路帧。数据链路封装取决于路由器接口的类型及其连接的介质类型。

典型的路由器的结构

在这里插入图片描述
整个路由器可划分为两部分,路由选择部分及分组转发部分【控制平面与数据平面】;
路由选择部分主要是根据路由协议生成路由表,交由转发引擎生成转发表,数据进入路由器后查找转发表进行转发;

报文处理路径

在这里插入图片描述

  • 控制路径:主要是路由器的控制信息转发的路径,包括各类路由协议报文,负责完成各类信息的交互;
  • 数据路径:主要是接受到的数据转发的路径,根据转发表规定的路径转发;

路由表与转发表

路由表:由链路层发现,静态路由,动态路由协议生成,主要信息有IP、下一跳、度量值、优先级等等;
转发表:转发表是基于路由生成的,路由器实际转发时使用转发表(只包括IP地址/IP子网和下一跳/出接口);高性能路由器转发表通常都用硬件来实现,有利于高速查找。
如果在查询转发表过程中出现多个匹配时,路由器使用最长匹配原则;
RIB维护每种协议的网络拓扑和路由表。这将包括许多到达相同目的地前缀的路由。
FIB是从下推的RIB中可能的许多协议到快速转发查找内存的最佳路径的最佳路由。

CAM和TCAM用于大型表的快速查询。
• CAM执行二元运算
– 基于0或1匹配;所有比特都必须匹配
– “命中”将返回结果(出接口)
– 用于MAC地址查询
• TCAM执行三元运算
– 基于0、1或X(不关心)匹配
– 最长匹配返回“命中”
- 适用于并非所有值都需要精确匹配的查询(ACL或IP路由表)。

交换机工作原理

基本作用

交换机工作在二层,可以用来隔离冲突域,在OSI参考模型中,二层的作用是寻址,这边寻址指的是MAC地址,而交换机就是对MAC地址进行转发,在每个交换机中,都有一张MAC地址表,这个表是交换机自动学习的,所以,总得来说交换机的作用是寻址和转发;

交换机为数据链路层设备,可以将电流与二进制转换,实现了以下功能:
1、 无限的传输距离
2、 彻底解决了冲突—所有的接口可以同时收发数据
3、 二层单播—物理寻址,在一个交换网络内,实现一对一通讯,保障了数据的安全,减少了垃圾数据量,降低的转发延时;
4、 提高端口密度—可以增加更多的接口

工作原理

交换机对流量的转发机制:流量进入交换机后,先识别数据帧中的源MAC地址,然后将该MAC地址与该流量的进入接口进行绑定、记录,生成MAC地址表—再转换为CAM表
之后查看数据帧中的目标MAC地址,在CAM表中寻找对应的记录,若存在记录,按记录接口单播转发;
若没有记录将洪泛该流量; 洪泛—除流量的入口外其他所有出口复制;
默认CAM在一个mac最后出现的后300s将被删除;

MAC地址表和CAM的区别— CAM是将MAC表中的MAC地址+接口编号+vlanid转换为hash值,再转换为二进制格式;意义在于识别更快;

终端在访问其他终端前,通过目标ip地址判断是否与本地处于同一网段;
同一网段—ARP 获取对端MAC 若成功–单播通讯;若失败–放弃通讯
不同网段–IP地址正常源、目填写,但目标MAC需要本地所在网段网关地址;然后将流量传递给路由器来处理;(正常使用ARP通过网关的IP地址来获取网关的MAC地址)

交换机的工作特性

1.交换机的每一个端口所连接的网段都是一个独立的冲突域。
2.交换机所连接的设备仍然在同一个广播域内,也就是说,交换机不隔绝广播(惟一的例外是在配有VLAN的环境中)。
3.交换机依据帧头的信息进行转发,因此说交换机是工作在数据链路层的网络设备(此处所述交换机仅指传统的二层交换设备)。

交换机的分类

依照交换机处理帧时不同的操作模式,主要可分为两类:

a – 存储转发

   交换机在转发之前必须接收整个帧,并进行错误校检,如无错误再将这一帧发往目的地址。帧通过交换机的转发时延随帧长度的不同而变化。

b – 直通式

  交换机只要检查到帧头中所包含的目的地址就立即转发该帧,而无需等待帧全部的被接收,也不进行错误校验。由于以太网帧头的长度总是固定的,因此帧通过交换机的转发时延也保持不变。

二层、三层、四层交换机

二层交换机 基于MAC地址
三层交换机 具有VLAN功能 有交换和路由 //基于IP
四层交换机 基于端口,就是应用

1、二层交换技术

由其工作原理可知以下:

  • 交换机对多数端口的数据同时进行交换,这就要求具有很宽的交换总线带宽,如果二层交换机有N个端口,每个端口的带宽是M,交换机总线带宽超过N*M,那么此交换机就可以实现线速交换,即能够按照网络通信线上的数据传输速度实现无瓶颈的数据交换;
  • 学习端口连接的机器的MAC地址,写入地址表,地址表的大小影响交换机的接入容量
  • 二层交换机一般都含有专门处理数据包转发的ASIC芯片,因此转发速度非常快,由于各个厂家采用的ASIC不同,产品性能也有所差异;

2、三层交换技术

在这里插入图片描述
主机A要给B发送数据,已知B的IP,不知B的MAC,需要先发送ARP;
1)如果A、B在同一网段,A发送一个ARP,B回一个ARP应答,A用B的MAC封装数据包并发送给交换机,交换机起用二层交换模块,查找MAC地址表,将数据转发;
2)若果A、B不再一个网段,A需要给网关发送一个ARP,交换机的三层模块接收到此包,需要查询路由表以确定B的路由,构造一个新的帧头,发送给B,通过一定的识别触发机制,确立主机A与B的MAC地址及转发端口的对应关系,并记录进流缓存条目表,以后A到B的数据,就直接交由二层交换模块完成,即一次路由,多次转发

三层交换的特点:

  • 由硬件结合实现数据的高速转发。
  • 这就不是简单的二层交换机和路由器的叠加,三层路由模块直接叠加在二层交换的高速背板总线上,突破了传统路由器的接口速率限制,速率可达几十Gbit/s。算上背板带宽,这些是三层交换机性能的两个重要参数。
  • 简洁的路由软件使路由过程简化。
  • 大部分的数据转发,除了必要的路由选择交由路由软件处理,都是又二层模块高速转发,路由软件大多都是经过处理的高效优化软件,并不是简单照搬路由器中的软件。

二层交换机用于小型局域网络,路由器适用于大型的网络间的路由选择,三层交换机的最重要的功能是加快大型局域网内部的数据转发,加入路由功能也是为此服务的。

3、四层交换技术

第四层交换的一个简单定义是:它是一种功能,它决定传输不仅仅依据MAC地址(第二层网桥)或源/目标IP地址(第三层路由),而且依据TCP/UDP(第四层)应用端口号。 第四层交换功能就象是虚IP,指向物理服务器。它传输的业务服从的协议多种多样,有HTTP、FTP、NFS、Telnet或其他协议。这些业务在物理服务器基础上,需要复杂的载量平衡算法。在IP世界,业务类型由终端TCP或UDP端口地址来决定,在第四层交换中的应用区间则由源端和终端IP地址、TCP和UDP端口共同决定。

在第四层交换中为每个供搜寻使用的服务器组设立虚IP地址(VIP),每组服务器支持某种应用。在域名服务器(DNS)中存储的每个应用服务器地址是VIP,而不是真实的服务器地址。

当某用户申请应用时,一个带有目标服务器组的VIP连接请求(例如一个TCP SYN包)发给服务器交换机。服务器交换机在组中选取最好的服务器,将终端地址中的VIP用实际服务器的IP取代,并将连接请求传给服务器。这样,同一区间所有的包由服务器交换机进行映射,在用户和同一服务器间进行传输。
  具有第四层功能的交换机能够起到与服务器相连接的“虚拟IP”(VIP)前端的作用。
  在发出一个服务请求时,第四层交换机通过判定TCP开始,来识别一次会话的开始。然后它利用复杂的算法来确定处理这个请求的最佳服务器。一旦做出这种决定,交换机就将会话与一个具体的IP地址联系在一起,并用该服务器真正的IP地址来代替服务器上的VIP地址。

在使用第四层交换的情况下,接入可以与真正的服务器连接在一起来满足用户制定的规则,诸如使每台服务器上有相等数量的接入或根据不同服务器的容量来分配传输流。

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

路由器与交换机基本原理 的相关文章

  • 主板电源开关接口图解_组装电脑时主板跳线如何接?DIY装机主板接线教程

    如今装机不再像以前那么神秘 不用再去电脑城问东问西 只要上天猫或京东等网上商城即可放心买到各种电脑配件 那么 自己组装电脑最难的是什么 CPU 散热器 内存 显卡安装都很简单 很多小伙伴自己组装电脑的难点主要在于主板跳线或者说机箱接线 今天
  • 2022.06.26 华为od机试真题

    华为od机试真题 1 最长连续子串 2 正方形数量 3 二叉树层次遍历 不会做 1 最长连续子串 有N个正整数组成的一个序列 给定一个整数sum 求长度最长的的连续子序列使他们的和等于sum 返回次子序列的长度 如果没有满足要求的序列 返回
  • 2019年广东工业智能机器人产量约占全国29%

    日前发布的 广东省制造业高质量发展 十四五 规划 下称 规划 中 智能机器人是我省 十四五 谋划发展的十大战略性新兴产业之一 战略性新兴产业是科技创新和产业发展的深度融合 规划针对智能机器人的发展提出 重点发展机器人减速器 控制器等关键部件
  • 【计算机视觉

    文章目录 一 PROMISE12 二 BraTS 2015 三 LIP Look into Person 四 BigEarthNet 五 Stanford Background Standford Background Dataset 六
  • win10 powershell无法激活conda v4.9环境

    1 PATH环境变量 把condabin目录添加到环境变量中 2 初始化powershell 2 1 管理员身份运行powershell win x 弹出选项 选中 Windows PowerShell 管理员 2 2 conda init
  • python 替换_Python 实现将numpy中的nan和inf,nan替换成对应的均值

    nan not a number inf infinity 正无穷 numpy中的nan和inf都是float类型 t t 返回bool类型的数组 矩阵 np count nonzero 返回的是数组中的非0元素个数 true的个数 np
  • (python)Hex文件解析和校验

    目录 前言 Hex文件结构分析 1 利用notepad 打开hex文件 2 hex行格式 行开始 数据长度 地址 数据类型 数据 校验和 3 校验和 完整代码 总结 前言 Intel HEX文件是由一行行符合Intel HEX文件格式的文本
  • 数据赋能企服增长,构建“以客户为中心”的数字化经营体系

    目前 中国企服市场数字化需求爆发 主要表现在传统行业数字化转型加速 企服企业的服务能力得到认可 新冠疫情加速数字化进程等方面 神策数据作为大数据分析与营销科技优质服务商 结合自身数字化实践经验 总结出企服数据驱动增长的解决方案 从市场营销
  • mysql查询like多个值

    有个需求是要查询字段中code前缀是H M 81 82开头的 方法一 使用like和or select from zhy where code like H or code like M or code like 81 or code li
  • Java并发包中那些值得学习的并发工具类(空谈误国,实干兴邦,代码示范,抛砖引玉)

    首先我们通常说的并发包就是java util concurrent包及其子包 集中了Java并发的各种基础工具类 一 这个并发包在哪 上面的包就是传说中的并发包 为什么这个并发包就比较流弊呢 原因主要有以下几点 提供了几个比synchron
  • 什么叫临界资源和临界区?

    临界资源是指每次仅允许一个进程访问的资源 属于临界资源的硬件有打印机 磁带机等 软件有消息缓冲队列 变量 数组 缓冲区等 诸进程间应采取互斥方式 实现对这种资源的共享 每个进程中访问临界资源的那段代码称为临界区 显然 若能保证诸进程互斥地进
  • 机器学习源代码_机器学习中程序源代码的静态分析

    机器学习源代码 Machine learning has firmly entrenched in a variety of human fields from speech recognition to medical diagnosin
  • Qt自定义委托

    Qt中的委托通常都是继承自QStyledItemDelegate或者QItemDelegate 二者的区别主要在于绘制方式 QStyledItemDelegate会使用当前样式绘制 并且能够使用qss 因此在在自定义委托时 一般使用 QSt
  • 详解Python视频剪辑第三方库Moviepy的使用

    一 简介 Moviepy是一个用于处理视频的Python第三方库 它提供了简单易用的接口 可以进行视频剪辑 合并 转码以及添加各种效果等操作 本文将介绍如何使用Moviepy库来进行视频剪辑的基本操作 二 安装Moviepy 在开始之前 我
  • 【状态估计】基于FOMIAUKF、分数阶模块、模型估计、多新息系数的电池SOC估计研究(Matlab代码实现)

    欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 数据 讲解 1 概述 准确估计电池的荷电状态 SOC 是
  • 前端Js框架汇总

    前端Js框架汇总 概述 有些日子没有正襟危坐写博客了 互联网飞速发展的时代 技术更新迭代的速度也在加快 看着Java Js Swift在各领域心花路放 也是煞是羡慕 寻了寻 net的消息 也是振奋人心 net core 1 mono xam

随机推荐

  • 通过机器学习识别鸟类_将机器学习带到鸟类

    通过机器学习识别鸟类 Cacophony Project的广阔愿景是使用最新技术来监视新西兰鸟类的数量 并人道地消除危害其的捕食者 该项目始于我们创始人的后院 以评估他保护鸟类财产的努力的有效性 从这个简单的开始 该项目便Swift发展成为
  • MySQL存储引擎MyISAM和InnoDB底层索引结构

    目录 一 存储引擎作用于什么对象 二 MyISAM和InnoDB对索引和数据的存储在磁盘上是如何体现的 三 MyISAM主键索引与辅助索引的结构 1 主键索引 2 辅助 非主键 索引 四 InnoDB主键索引与辅助索引的结构 1 主键索引
  • struts-config.xml的dtd文件的声明方式

    struts config xml 的 dtd 文件的声明方式 第一种 第二种 第一种是 PU
  • 【C++】stack容器

    1 stack基本概念 英st k 美st k n 整齐的 一堆 lt 英 gt 垛 堆 大量 许多 尤指工厂的 大烟囱 图书馆的 藏书架 双面书架 the stacks 定高分层盘旋 等待降落 的机群 计算机 存储 栈 竖着置放的高保真音
  • Android Service两种启动方式详解(总结版)

    1 概念 开始 先稍稍讲一点android中Service的概念和用途吧 Service分为本地服务 LocalService 和远程服务 RemoteService 1 本地服务依附在主进程上而不是独立的进程 这样在一定程度上节约了资源
  • Apache Dril l和 Prestodb是合并多租数据源户统一查询

    通常项目进行多租户管理后 领导又需要有某个用户可以查询所有多租户的信息 为了方便管理和统计分析 因此Apache Drill和 Prestodb 合并多租数据源户统一查询 Apache Drill Apache Drill是一个低延迟的分布
  • 分类算法:Logistic 回归(二分类,多分类)

    关于分类问题 结果常有两个 用 0 1 表示 0表示负类 常表示没有某样东西 1表示正类 表示具有我们要寻找的东西 将线性回归应用到分类问题 运气好的话 可能也会运行的很好 但这取决于数据集 所以将线性回归应用到分类问题并不是一个好的方法
  • 起泡法排序(十个数)

    include
  • 【自然语言处理】BOW和TF-IDF详解

    BOW 和 TF IDF 详解 机器无法处理原始形式的文本数据 我们需要将文本分解成一种易于机器阅读的数字格式 自然语言处理背后的理念 BOW 和 TF IDF 都是帮助我们将文本句子转换为向量的技术 我将用一个流行的例子来解释本文中的 B
  • YUV / RGB 格式及快速转换算法

    RGB TO YUV转换原理及代码示例 转 RGB TO YUV转换原理及代码示例 RGB TO YUV转换原理及代码示例 由于H 264等压缩算法都是在YUV的颜色空间上进行的 所有在进行压缩前 首先要进行颜色空间的转换 如果摄像头采集的
  • 一文弄懂Netty基本架构

    文章目录 Netty简介 Netty结构 Netty线程模型 服务端线程模型 客户端线程模型 NioEventLoop Task Netty中的Channel 工作原理 线程 ChannelPipeline和ChannelHandler C
  • flask连接mysql数据库操作

    Y21 以简单的年级表格模型为例 介绍数据库的增删改查 条件查询等操作 代码 以下 from app import db 定义数据模型 设置表格中各个字段的数据类型 class Grade db Model g id db Column d
  • Linux系统ftp服务设置

    目录 1 FTP服务介绍 1 1 FTP的优缺点 1 2 FTP用户的类型 1 3 常见的FTP服务器程序 1 4 常见的FTP客户端程序 ftp命令 2 vsftpd服务基础 2 1 vsftpd软件包 vsftpd 3 0 2 22 e
  • WebGL three.js学习笔记 创建three.js代码的基本框架

    WebGL学习 Three js学习笔记 1 webgl介绍 WebGL是一种3D绘图协议 它把JavaScript和OpenGL ES 2 0结合在一起 通过增加OpenGL ES 2 0的一个JavaScript绑定 WebGL可以为H
  • CryptoPP使用介绍

    Crypto 是个免费的C 加解密类库 由于资格太老 持续更新 最新版本到了CryptoPP 5 6 对天缘而言 第一眼看到CryptoPP就感觉头大 根目录下放置大量单源文件 编译文件 项目文件 再加上多平台和多编译器支持 文件几乎又多了
  • [C++ Template]深入模板--特化与重载

    目录 第12章 特化与重载 12 2 重载函数模板 12 2 1 签名 12 2 2 重载的函数模板的局部排序 12 2 3 正式的排序原则 12 2 4 模板和非模板 12 3 显式特化 12 3 1 全局的类模板特化 12 3 2 全局
  • 谈一谈,Spring Boot 中的 starter 到底是什么 ?

    1 为什么要用Starter 现在我们就来回忆一下 在还没有Spring boot框架的时候 我们使用Spring 开发项目 如果需要某一个框架 例如mybatis 我们的步骤一般都是 到maven仓库去找需要引入的mybatis jar包
  • SpringMVC处理Put或Delete请求报错及解决方法

    首先先贴原代码和报错提示 1 在web xml配置文件中配置HiddenHttpMethodFilter 它的作用是能把POST请求转换为PUT或DELETE请求
  • Java类的加载过程

    文章目录 一 加载 2 类加载器 启动类加载器 Bootstrap ClassLoader 扩展类加载器 Extension ClassLoader 应用程序类加载器 Application ClassLoader 自定义类加载器 Cust
  • 路由器与交换机基本原理

    路由器工作原理 定义 路由器是一种实现网络互联的设备 作为三层网络层设备提供路由与转发两种机制 可以决定数据包从源端到目的端的经过路径 路由 以及将路由器输入端的数据包送到适当的路由器输出端 内部转发 可以看作路由器在两个方面控制层面和转发