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

计算机网络——交换机和路由器

目录

前言

引言

交换机是用来做什么的?

与路由器有什么区别?

网关

子网掩码

网关、路由


前言

本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。

这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。

可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。

交换机和路由器有什么区别?网关和路由又是什么意思?简单说网络2-交换机与路由器_哔哩哔哩_bilibili

引言

说起来路由器想必大家不会陌生,每个家庭都会至少有一个路由器来连接网络设备。那么交换机、路由器、网关和子网……都是什么?一下进行介绍。

交换机是用来做什么的?

我们先来看一下交换机,它的主要功能就是把数据包发送到正确的位置。

比如当你写了一份信给友人,交换机相当于邮递员,根据数据包中的目标MAC地址找到它对应的物理端口。

一台交换机有很多个端口,他们都有自己的编号。计算机的网卡通过网线连接到交换机的网口上,这个端口就是一个确定的物理位置。只要知道某个网卡的MAC地址在哪个端口上,就能正确的把数据包发给他。

所以在交换机中有一张端口与MAC地址的映射关系表,我们称之为MAC地址表。(交换机具有自学习功能,每次发送会把源地址存在交换表中如果没有的话)

然后要注意的是,为了避免兜圈子的问题,IEEE的802.1D标准制定了一个生成树协议STP。其要点就是不改变网络的实际拓扑,但在逻辑上切断某些链路,使得从一台主机到所有其他主机的路径是无环路的树状结构。

交换机维护这张映射关系想要与某个MAC地址通信时,只需要来查询一下这个MAC地址在哪个端口上,然后从对应的端口发送出去就可以了。

我们知道每一包数据都会有两个MAC地址,一个是发送方的MAC地址,称为源MAC。另一个是接收方的MAC地址,称为目标MAC。

交换机收到一包数据后,首先要把这包数据的源MAC与接收端口进行绑定(如果先前没绑定)。

然后交换机要根据目标MAC查找从哪个端口把数据包发送出去。

这时候就会出现两种情况:

第一种情况是MAC地址表中查询到了关联的端口,则直接从关联端口发出。

第二种情况是MAC地址表中没有查询到关联端口,则向除了接收端口之外的所有端口群发,这种行为称之为泛洪。(按我的理解就是广播帧)。

如果目标MAC地址在这个网络中,则他一定能收到群发的数据包。

如此运行一段时间之后,通过交换机的MAC地址表就可以找到网络中的所有网卡设备。

由此可见,交换机只会关心数据包中的MAC地址,而不会关心IP地址。

MAC地址在TCPIP协议中处于第二层数据链路层,所以交换机通常也被称为二层设备。

与路由器有什么区别?

我们再来看一下路由器,我们知道路由器有两种接口,一种是LAN口,一种是WAN口。

LAN口可以有多个用来接家庭网络设备,比如台式机、手机、笔记本。

其中手机和笔记本是通过wifi连接到路由器的设备,也相当于连接到了LAN口。

WAN口只有一个,用来接入运营商网络,连接到互联网中。如果把路由器的WAN口忽略,只用LAN口,其实路由器就是一台交换机。

网关

那如果考虑到WAN口,这里我们就要引入一个概念就是网关。

子网掩码

为了说明网关的作用,我们需要先了解一下子网是如何划分的。

我们把IP地址和子网掩码按位相与(&)。

我们常用的子网掩码255.255.255.0前三个字节全为1,后八位全为0。

所以按位相与的结果一定是这个IP地址的前三个字节不变,而最后一个字节是零。

比如192.10.18.26与255.255.255.0相与就是192.10.18.0。

我们把IP地址与子网掩码相与之后的结果相同的两个IP认为是在同一个子网中。

也就是说IP为192.10.18.26时,子网掩码为255.255.255.0的这张网卡与另一个192.10 .18.X的网卡一定是在同一个子网之中。

因为子网掩码都是连续的1和连续的0,所以我们通常用1的数量来表示子网掩码。比如255.25.255.0就是24。(前三个字节,一个字节8bit,也就是24位)。

我们用IP斜杠子网掩码来表示一个网络,比如192.168.1.0/24表示的网络中拥有255个IP地址。

所以如果想扩大子网中IP地址的数量,我们只需要把子网掩码调小。比如多加一位,ip数量就会减少;如果想减少子网中IP地址的数量,我们只需要把子网掩码调大就可以了。

网关、路由

TCP/IP协议规定不同子网之间是不可以直接通信的。如果要通信,需要通过网关来进行转达。

网关上有两张网卡,分别配置了属于两个子网的IP地址,可以在两个网络之间转发数据包,这样我们就拥有了一个连接了两个子网的网络。

我们来举一个简单的例子,子网一中的计算机A发送数据包时,首先计算机A会根据目标IP判断是否跟自己处于同一个子网。

如果是同一个子网,则直接从网卡发出。

如果不是同一个子网,则需要把数据包的目标MAC地址改为网关MAC然后发送给网关。网关拿到这一包数据后,再通过路由表查询到这一包数据属于子网二。网关修改目标MAC地址为计算机B的MAC地址,修改源MAC为自己的MAC,然后从子网二的网卡发出。

以上出现了多次根据目标IP判断数据包应该如何发送的行为,我们就称之为路由。

路由器有一个WAN口接入互联网,多个LAN口接入本地网络,它们就分别属于两个不同的子网。所以从内网访问互联网就是跨网络的行为。LAN连家里,WAN连世界!

这时候就需要路由器来担任网关的角色,他的行为也叫路由。

相关文章:

计算机网络——交换机和路由器

目录 前言 引言 交换机是用来做什么的? 与路由器有什么区别? 网关 子网掩码 网关、路由 前言 本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。 这篇博客是在B站掌芝士zzs这个UP主的视频的总结&am…...

Redis Pipelining 底层原理分析及实践

作者:vivo 互联网服务器团队-Wang Fei Redis是一种基于客户端-服务端模型以及请求/响应的TCP服务。在遇到批处理命令执行时,Redis提供了Pipelining(管道)来提升批处理性能。本文结合实践分析了Spring Boot框架下Redis的Lettuce客户端和Redisson客户端对P…...

milvus各组件的结构体分析

milvus各组件的结构体分析 各组件启动,需要构建各组件的结构体,一共8个。 runComponent(ctx, localMsg, wg, components.NewRootCoord, metrics.RegisterRootCoord) runComponent(ctx, localMsg, wg, components.NewProxy, metrics.RegisterProxy) run…...

vue2和vue3 全选

vue3 <template><input type"checkbox" v-model"selectAll" />全选<ul><li v-for"item in list" :key"item.id">{{ item.value }} <input type"checkbox" v-model"item.check" />…...

Java中的Set、List、Map的区别及主要实现类方法

Java中的Set、List、Map的区别 数组是大小固定的&#xff0c;并且同一个数组只能存放类型一样的数据&#xff08;基本类型/引用类型&#xff09;&#xff0c;JAVA集合可以存储和操作数目不固定的一组数据。 所有的JAVA集合都位于 java.util包中&#xff01; JAVA集合只能存放引…...

gitignore:常用说明

示例&#xff1a; Java HELP.md target/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/** !**/src/test/**### IntelliJ IDEA.idea *.iws *.iml *.ipr### NetBeans/nbproject/private/ /nbbuild/ /dist/ /nbdist/ /.nb-gradle/ build/ logs/### VS Code.vscode/ 说明&#…...

HarmonyOS NEXT应用开发—在Native侧实现进度通知功能

介绍 本示例通过模拟下载场景介绍如何将Native的进度信息实时同步到ArkTS侧。 效果图预览 使用说明 点击“Start Download“按钮后&#xff0c;Native侧启动子线程模拟下载任务Native侧启动子线程模拟下载&#xff0c;并通过Arkts的回调函数将进度信息实时传递到Arkts侧 实…...

水利自动化控制系统平台介绍

水利自动化控制系统平台介绍 在当今社会&#xff0c;水资源的管理和保护日益成为全球关注的重要议题。随着科技的进步和信息化的发展&#xff0c;水利监测系统作为一种集成了现代信息技术、自动化控制技术以及环境监测技术的综合性平台&#xff0c;正在逐步改变传统的水利管理模…...

flask后端+网页前端:基于 socket.io 的双向通信和服务器部署

我想实现的效果是&#xff0c;我的服务器提供两个路由网址&#xff0c;网页A用于拍照、然后录音&#xff0c;把照片和录音传给服务器&#xff0c;服务器发射信号&#xff0c;通知另一个路由的网页B更新&#xff0c;把刚刚传来的照片和录音显示在网页上。 然后网页B用户根据这个…...

【Docker】解决 docker build 提示 `Wrong architecture ‘amd64‘`

解决 docker build 提示 Wrong architecture amd64 使用 securify2 的 docker 版本进行 sc 安全扫描 执行语句 RUN wget https://github.com/souffle-lang/souffle/releases/download/1.6.2/souffle_1.6.2-1_amd64.deb -O /tmp/souffle.deb &&\ gdebi --n /tmp/souff…...

机器学习_XGBoost模型_用C++推理示例Demo

1. 需求 将 python 训练好的 xgboost 模型, 使用C 进行加载并进行推理(预测) 2. 代码实现 #include <iostream> #include <fstream> #include <sstream> #include <vector> #include <string> #include <xgboost/c_api.h>const char *m…...

C语言 | Leetcode C语言题解之第21题合并两个有序链表

题目&#xff1a; 题解&#xff1a; /*** Definition for singly-linked list.* struct ListNode {* int val;* struct ListNode *next;* };*/typedef struct ListNode ListNode; struct ListNode* mergeTwoLists(struct ListNode* list1, struct ListNode* list2) {/…...

2024考研调剂须知

----------------------------------------------------------------------------------------------------- 考研复试科研背景提升班 教你快速深入了解掌握考研复试面试中的常见问题以及注意事项&#xff0c;系统的教你如何在短期内快速提升自己的专业知识水平和编程以及英语…...

PCIE协议版--M.2接口规范V1.0中文版1——电气规格篇

3.电气规范 3.1 Connectivity Socket 1 系统接口信号 表15适用于Socket 1-SD和Socket 1-DP输出版本。 3.1.1.补充NFC信号 当一个SIM设备被用作安全元素时&#xff0c;NFC解决方案可以与表16中列出的附加信号相结合。 3.1.2.电源和地 PCI Express M.2 Socket 1使用一个3.3 V…...

【JVM】JVM堆占用情况分析(频繁创建的对象、内存泄露等问题)、jmap+jhat、jvisualvm工具使用

文章目录 一. 相关命令1. 查看进程堆内存整体使用情况&#xff1a;OOM的可能2. 统计类的对象数量以及内存占用&#xff1a;定位内存泄漏 二. 分析内存占用1. 使用 jhat 排查对象堆占用情况1.1. 排查步骤1.2. 具体分析例子a. 分析频繁创建对象导致的OOM 1.3. OQL查看某一个对象的…...

【蓝桥杯每日一题】4.11 更小的数(不用区间DP)

题目来源&#xff1a; 蓝桥杯 2023 省 A]更小的数 - 洛谷 这题只需要用到双指针就OK~ 思路1&#xff1a; 翻转数组的子数组&#xff0c;然后进行比较大小将翻转后的数组存储在字符串 k k k中&#xff0c;然后将字符串 k k k与字符串 a a a进行逐一元素比较&#xff08;因为…...

【线段树】2276. 统计区间中的整数数目

算法可以发掘本质&#xff0c;如&#xff1a; 一&#xff0c;若干师傅和徒弟互有好感&#xff0c;有好感的师徒可以结对学习。师傅和徒弟都只能参加一个对子。如何让对子最多。 二&#xff0c;有无限多1X2和2X1的骨牌&#xff0c;某个棋盘若干格子坏了&#xff0c;如何在没有坏…...

ChatGPT 写作利器:探索ChatGPT在论文写作中的应用

ChatGPT无限次数:点击直达 ChatGPT 写作利器&#xff1a;探索ChatGPT在论文写作中的应用 引言 ChatGPT是一种强大的自然语言处理工具&#xff0c;能够为我们提供高效、准确的文本生成功能。在论文写作领域&#xff0c;ChatGPT的应用也逐渐受到关注。本文将探讨ChatGPT在论文写…...

从 SQLite 3.4.2 迁移到 3.5.0(二十)

返回&#xff1a;SQLite—系列文章目录 上一篇:SQLite---调试提示&#xff08;十九&#xff09; 下一篇&#xff1a;SQLite—系列文章目录 ​ SQLite 版本 3.5.0 &#xff08;2007-09-04&#xff09; 引入了一个新的操作系统接口层&#xff0c; 与所有先前版本的 SQLi…...

集群开发学习(一)(安装GO和MySQL,K8S基础概念)

完成gin小任务 参考文档&#xff1a; https://www.kancloud.cn/jiajunxi/ginweb100/1801414 https://github.com/hanjialeOK/going 最终代码地址&#xff1a;https://github.com/qinliangql/gin_mini_test.git 学习 1.安装go wget https://dl.google.com/go/go1.20.2.linu…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

解决本地部署 SmolVLM2 大语言模型运行 flash-attn 报错

出现的问题 安装 flash-attn 会一直卡在 build 那一步或者运行报错 解决办法 是因为你安装的 flash-attn 版本没有对应上&#xff0c;所以报错&#xff0c;到 https://github.com/Dao-AILab/flash-attention/releases 下载对应版本&#xff0c;cu、torch、cp 的版本一定要对…...

企业如何增强终端安全?

在数字化转型加速的今天&#xff0c;企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机&#xff0c;到工厂里的物联网设备、智能传感器&#xff0c;这些终端构成了企业与外部世界连接的 “神经末梢”。然而&#xff0c;随着远程办公的常态化和设备接入的爆炸式…...

A2A JS SDK 完整教程:快速入门指南

目录 什么是 A2A JS SDK?A2A JS 安装与设置A2A JS 核心概念创建你的第一个 A2A JS 代理A2A JS 服务端开发A2A JS 客户端使用A2A JS 高级特性A2A JS 最佳实践A2A JS 故障排除 什么是 A2A JS SDK? A2A JS SDK 是一个专为 JavaScript/TypeScript 开发者设计的强大库&#xff…...

【p2p、分布式,区块链笔记 MESH】Bluetooth蓝牙通信 BLE Mesh协议的拓扑结构 定向转发机制

目录 节点的功能承载层&#xff08;GATT/Adv&#xff09;局限性&#xff1a; 拓扑关系定向转发机制定向转发意义 CG 节点的功能 节点的功能由节点支持的特性和功能决定。所有节点都能够发送和接收网格消息。节点还可以选择支持一个或多个附加功能&#xff0c;如 Configuration …...

2025-06-01-Hive 技术及应用介绍

Hive 技术及应用介绍 参考资料 Hive 技术原理Hive 架构及应用介绍Hive - 小海哥哥 de - 博客园https://cwiki.apache.org/confluence/display/Hive/Home(官方文档) Apache Hive 是基于 Hadoop 构建的数据仓库工具&#xff0c;它为海量结构化数据提供类 SQL 的查询能力&#xf…...

智能问数Text2SQL Vanna windows场景验证

架构 Vanna 是一个开源 Python RAG&#xff08;检索增强生成&#xff09;框架&#xff0c;用于 SQL 生成和相关功能。 机制 Vanna 的工作过程分为两个简单步骤 - 在您的数据上训练 RAG“模型”&#xff0c;然后提出问题&#xff0c;这些问题将返回 SQL 查询&#xff0c;这些查…...

MATLAB生成大规模无线通信网络拓扑(任意节点数量)

功能&#xff1a; 生成任意节点数量的网络拓扑&#xff0c;符合现实世界节点空间分布和连接规律 效果&#xff1a; 30节点&#xff1a; 100节点&#xff1a; 500节点&#xff1a; 程序&#xff1a; %创建时间&#xff1a;2025年6月8日 %zhouzhichao %自然生长出n节点的网络% …...

服务器中僵尸网络攻击是指什么?

随着网络业务的不断发展&#xff0c;网络攻击的手段也变得越来越多&#xff0c;各个企业都会受到网络攻击的威胁&#xff0c;其中常见的网络攻击主要有DDOS攻击和CC攻击等类型&#xff0c;今天小编则为大家来介绍僵尸网络攻击是指什么&#xff01; 僵尸网络主要是指采用一种或者…...

Spark 写文件

Repartition Spark 输出文件数量 假设每个 Task 的输出数据都包含了全部 8 个分区值,那么最终的文件生成情况如下: 总文件数 = Task 数量 分区组合数 假设: ​Task 数量​:200 ​分区组合数​:8 个 (from_cluster 和 ds 的组合) 则: ​总文件数​:200 8 = ​1600 …...