当前位置: 首页 > news >正文

初识交换机和路由器

目录

  • 初识交换机和路由器
    • 交换机
    • 路由器
    • 主要区别
    • 工作流程
      • 如果是交换机:
      • 如果是路由器

初识交换机和路由器

在这里插入图片描述

左为路由器,右为交换机

交换机

交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息给计算机B,消息到达集线器,集线器就无脑把信息广播给所有连接它的计算机BCDEF…然后由计算机们自行筛选信息,是给自己的就接收,不是发给自己的就丢弃。

这样造成了网络资源的浪费。如果集线器能智能一点,把信息只发给对的计算机就好了,于是发明了交换机,交换机就是在集线器的基础上更加智能一点了,能把信息只发给对应的 计算机。又因为它这一点智能,所以它在数据链路层

交换机能够连接多个设备并构建一个局域网

交换机内部维护着一张MAC地址表,记录了MAC地址与端口的对应关系。

数据包携带两个MAC地址:源MAC和目标MAC。交换机接收数据包后,首先会将源MAC与接收端口绑定,并查找目标MAC对应的端口。若找到对应端口,则直接发送;若未找到,则向除接收端口外的所有端口群发(泛洪)。通过这一过程,交换机能逐渐构建完整的网络设备地图。

值得注意的是,交换机仅关注MAC地址,而忽略IP地址

在这里插入图片描述

当有几十台电脑的时候可以设置很多台交换机,这时交换机还能应付,如果有几百台电脑的话,交换机记录不了如此多的映射关系,就捉襟见肘了。

所以又有了路由器

路由器

路由器台独立拥有MAC地址的设备,并且可以帮我把数据包做一次转发,把它定义在了网络层路由器的每一个端口,都有独立的MAC地址。

在这里插入图片描述

路由器有两种接口,一种是wan口,一种是lan口。

lan口可以有多个,用来连接家庭网络设备,比如台式机,手机,笔记本,其中手机和笔记本是通过WiFi连接到路由器的设备,也相当于连接到了lan口上。wan口只有一个 ,用来接入运营商网络,以连接到互联网中。

在这里插入图片描述

如果把路由器的wan口忽略,只用lan口,其实路由器就是一台交换机;

主要区别

1、路由器在网络层,路由器根据IP地址寻址,路由器可以处理TCP/IP协议,交换机不可以,交换机根据MAC地址寻址。交换机在数据链路层。

2、路由器可以把一个IP分配给很多个主机使用,这些主机对外只表现出一个IP。交换机可以把很多主机连起来,这些主机对外各有各的IP。

3、交换机分割冲突域,但不分割广播域,而路由器分割广播域。由交换机连接的网段,仍属于同一个广播域,广播数据包会在交换机连接的所有网段上传播,这时会导致广播风暴和安全漏洞。而连接在路由器上的网段会被分配到不同的广播域。路由器不会转发广播数据。

4、路由器提供防火墙的服务,交换机不能提供该功能。集线器、都是做端口扩展的,就是扩大局域网(通常都是以太网)的接入点,也就是能让局域网可以连进来更多的电脑。路由器是用来做网间连接,也就是用来连接不同的网络。

5.交换机是用来连接局域网的,路由器是用来连接互联网的(也可以连接多个局域网)

工作流程

真实情况下,两个主机不是通过网线直连的,而是通过一系列的交换机或路由器来进行数据转发的。

在这里插入图片描述

经过交换机或者路由器,都要涉及到封装分用【五层网络协议(封装和分用)-CSDN博客】

只不过,封装分用的程度不一定是到应用层

经典交换机来说,就只需要封装分用到数据链路层即可(交换机需要通过以太网帧头中的目的mac来知道接下来如何转发)

经典的路由器来说,就只需要封装分用到网络层即可(路由器需要通过IP报头中的目的IP来知道具体接下来如何转发)

如果是交换机:

A发送消息,到达交换机。交换机就会把光电信号转换成以太网数据帧二进制数据,交给数据链路

1.取出光电信号转成以太网数据帧

在这里插入图片描述

2.交换机的数据链路层会对数据进行解析

这个解析过程,一方面要取出载荷部分,另一方面,就要解析到帧头中的关键信息

在这里插入图片描述

3.根据帧头中的信息,决定下一步把数据往哪里进行发送。根据这个情况再进一步的构造出新的以太网数据帧

在这里插入图片描述

4.把这个新的数据继续通过物理层发送出去

如果是路由器

情况稍微复杂一点点,就是封装分用到网络层

1.先是物理层拿到光电信号,转成二进制数据交给数据链路层

在这里插入图片描述

2.路由器的数据链路层对上述数据进行解析,拿到载荷,交给网络层(IP协议)

在这里插入图片描述

3.IP协议又会进一步对这个数据进行解析,取出载荷,也要解析这里的报头

取出数据,IP协议重新进行封装

在这里插入图片描述

4.继续交给数据链路层,继续加上帧头帧尾

在这里插入图片描述

5.这个数据再交给物理层,转成光电信号,继续传输

上述过程是经典的交换机和路由器,如果是现实中的情况就更加复杂

相关文章:

初识交换机和路由器

目录 初识交换机和路由器交换机路由器主要区别工作流程如果是交换机:如果是路由器 初识交换机和路由器 左为路由器,右为交换机 交换机 交换机的前身是集线器,集线器是物理层的设备,有很多接口,当一台计算机A想发消息…...

SQL面试题——滴滴SQL面试题 取出累计值与1000差值最小的记录

滴滴SQL面试题 取出累计值与1000差值最小的记录 今天的题目来自滴滴出行 已知有表cost_detail包含id和money两列,id为自增,请累加计算money值,并求出累加值与1000差值最小的记录。 +-----+--------+ | id | money | +-----+--------+ | 1 | 200 | | 2 | 300 …...

openEuler 22.03 使用cephadm安装部署ceph集群

目录 目的步骤规格步骤ceph部署前准备工作安装部署ceph集群ceph集群添加node与osdceph集群一些操作组件服务操作集群进程操作 目的 使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported 在openEuler上实现以cephadm安装部…...

C++哈希(一)

1.底层结构 顺序结构以及平衡中,元素关键码与其存储位置之间没有相对应的关系,因此在查找一个元素时,要经过关键码的多次比较。顺序查找的时间复杂度为O(N)。 理想的搜索方法:可以不经过比较,依次直接从表中直接搜索…...

阿拉丁论文助手:一键点亮学术之路

在学术研究的海洋中,每一位学者都渴望拥有一盏能够照亮前行道路的神灯。阿拉丁论文助手,正是这样一盏神奇的灯,它以其先进的人工智能技术和丰富的学术资源,为学者们的学术写作提供了全方位的支持。 一、阿拉丁论文助手简介 阿拉丁…...

视频码率到底是什么?详细说明

视频码率(Video Bitrate)是指在单位时间内(通常是每秒)传输或处理的视频数据量,用比特(bit)表示。它通常用来衡量视频文件的压缩程度和质量,码率越高,视频质量越好&#…...

嵌入式学习(17)-stm32F407串口使用注意事项

一、概述 配置串口时串口的接收一直不好使,对比例程发现了问题: 在网上也找了一些资料供参考“STM32F4的串口RX引脚不能被设置为输入是因为串口的接收(RX)功能是由硬件电路实现的,无法通过软件配置来控制。串口接收功…...

汽车48V电气系统

汽车48V电气系统 汽车48V电气系统汽车48V电气系统设计汽车48V电气系统测试汽车48V系统是48V供电和12V供电共存的么?48V供电系统是如何与12V供电系统共存的?48V电气系统测试的难点有哪些?在汽车48V电气系统通信测试中,如何向12V的控制器和48V的控制器供电?汽车48V电气系统通…...

【人工智能基础05】决策树模型习题

文章目录 1. 归一化对决策树的影响2. 选择决策树模型3. 决策树计算4. 基尼系数的优势5. 在叶子上使用线性模型的优缺点 1. 归一化对决策树的影响 题目:对于一些机器学习模型(例如,神经网络),对特征进行归一化(normaliz…...

rockit 学习、开发笔记(六)(VENC)

前言 上节我们讲到了VDEC解码模块,那当然少不了VENC编码模块了,一般有编解码的需求都是为了压缩视频的大小,方便减少传输所占用的带宽。 概述 VENC 模块,即视频编码模块。本模块支持多路实时编码,且每路编码独立&am…...

spring技术点

引入对象 Autowired 和 Resource的区别 Autowired 和 Resource的区别 valid 参数校验 jarkata进行SpringMVC校验 常规当前进行校验的配置操作,参考文档如下进行操作。 SpringMVC校验注解不生效 List类型参数校验 由于list类型默认不能进行标注校验实现&#x…...

R语言使用“纽约市数据集中的优步皮卡”数据创建不同年度时间范围的可视化

一、项目背景 为了分析纽约市优步(https://baike.baidu.com/item/Uber/14900884)皮卡在不同年度的使用情况,需要利用R语言进行数据可视化。通过对比不同年度的数据,可以揭示出优步皮卡使用的趋势和变化。 二、数据准备 数据集&a…...

电阻计RM3544、RM3545的使用

目录: 一、电阻计与PC通讯 1、硬件连接 2、RmLogger.exe的使用 二、RM3545测量35uΩ电阻 一、电阻计与PC通讯 1、硬件连接 可以设置USB或COM口(串口)连接PC,也可以设置为“打印”输出。 1)使用USB连接PC 2)使用串口连接PC …...

Unity 策略游戏地图上的网格是如何实现的

在Unity中实现策略游戏地图上的网格,主要涉及到地图数据的处理、地图的加载与渲染、以及玩家在地图上的移动与碰撞检测等关键步骤。以下是对这些步骤的详细解释: 一、地图数据的处理 收集地图数据:这包括地形高度、地形纹理、建筑物、树木等…...

《鸟哥的Linux私房菜基础篇》---4 Linux档案的压缩与打包

目录 一、常见的压缩包的扩展名 二、常见的压缩和解压指令 1、tar 2、tar gzip(.tar.gz) (或 .tgz) 3、tar bzip2(.tar.bz2) 4、zip 5、gzip 6、bzip2 7、xz 8、rar 9、7z 三、安装解压工具 一、常见的压缩包的扩展…...

Springboot 2.7+解决跨域问题,到底是在SpringBoot中添加拦截器还是修改Nginx配置

文章目录 1摘要2 核心代码2.1 SpringBoot 全局跨域拦截器2.2 Nginx 配置跨域处理2.3 Nginx 和 SpringBoot 同时添加允许跨域处理会怎么样? 3 推荐参考资料 1摘要 跨域问题报错信息: Referrer Policy:strict-origin-when-cross-origin跨域问题是在前后端分离的情况…...

Spring中Bean的作用域深入剖析与技术实践

前言 Spring框架作为Java企业级应用开发中的中流砥柱,提供了强大的依赖注入(DI)和面向切面编程(AOP)等功能。在Spring框架中,Bean的作用域(Scope)是一个非常重要的概念,…...

Python爬虫实战:抓取拼多多商品详情数据(基于pdd.item_get接口)

在当前的电商市场中,拼多多以其独特的拼团模式和优惠价格吸引了大量用户,成为继淘宝、京东之后的又一大电商平台。对于数据分析和市场研究者来说,获取拼多多的商品详情数据显得尤为重要。本文将介绍如何使用Python爬虫技术,通过调…...

工具类-列表请求工具 useList

useList 用于列表请求的基于 vue 3 的 hooks,接收请求函数、请求参数等数据,自动生成请求请求函数,分页信息等 本文有涉及到 http 请求工具和接口返回格式的内容: http 工具:一个基于 axios 封装的请求工具Response…...

Scala中的正则表达式01

规则类型具体规则示例说明单字符大多数字符匹配自身正则表达式 abc,文本 abca 匹配 a,b 匹配 b,c 匹配 c方括号 [ ][ ] 定义字符集,匹配其一[abc],文本 a、b 或 c[abc] 匹配 a、b 或者 c排除字符集 [^ ][^ ] 开头加 ^&…...

PHP和Node.js哪个更爽?

先说结论,rust完胜。 php:laravel,swoole,webman,最开始在苏宁的时候写了几年php,当时觉得php真的是世界上最好的语言,因为当初活在舒适圈里,不愿意跳出来,就好比当初活在…...

【JVM】- 内存结构

引言 JVM:Java Virtual Machine 定义:Java虚拟机,Java二进制字节码的运行环境好处: 一次编写,到处运行自动内存管理,垃圾回收的功能数组下标越界检查(会抛异常,不会覆盖到其他代码…...

数据链路层的主要功能是什么

数据链路层(OSI模型第2层)的核心功能是在相邻网络节点(如交换机、主机)间提供可靠的数据帧传输服务,主要职责包括: 🔑 核心功能详解: 帧封装与解封装 封装: 将网络层下发…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...

vue3+vite项目中使用.env文件环境变量方法

vue3vite项目中使用.env文件环境变量方法 .env文件作用命名规则常用的配置项示例使用方法注意事项在vite.config.js文件中读取环境变量方法 .env文件作用 .env 文件用于定义环境变量,这些变量可以在项目中通过 import.meta.env 进行访问。Vite 会自动加载这些环境变…...

Linux --进程控制

本文从以下五个方面来初步认识进程控制: 目录 进程创建 进程终止 进程等待 进程替换 模拟实现一个微型shell 进程创建 在Linux系统中我们可以在一个进程使用系统调用fork()来创建子进程,创建出来的进程就是子进程,原来的进程为父进程。…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观,可持续性好高效率高复用,可移植性好高内聚,低耦合没有冗余规范性,代码有规可循,可以看出自己当时的思考过程特殊排版,特殊语法,特殊指令,必须…...

android RelativeLayout布局

<?xml version"1.0" encoding"utf-8"?> <RelativeLayout xmlns:android"http://schemas.android.com/apk/res/android"android:layout_width"match_parent"android:layout_height"match_parent"android:gravity&…...

Linux安全加固:从攻防视角构建系统免疫

Linux安全加固:从攻防视角构建系统免疫 构建坚不可摧的数字堡垒 引言:攻防对抗的新纪元 在日益复杂的网络威胁环境中,Linux系统安全已从被动防御转向主动免疫。2023年全球网络安全报告显示,高级持续性威胁(APT)攻击同比增长65%,平均入侵停留时间缩短至48小时。本章将从…...

【若依】框架项目部署笔记

参考【SpringBoot】【Vue】项目部署_no main manifest attribute, in springboot-0.0.1-sn-CSDN博客 多一个redis安装 准备工作&#xff1a; 压缩包下载&#xff1a;http://download.redis.io/releases 1. 上传压缩包&#xff0c;并进入压缩包所在目录&#xff0c;解压到目标…...