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

二层、三层交换机之间到底有什么区别?

简单地说

  • 二层交换机,没有充当三层网关角色的能力Capability)。
  • 三层交换机,首先也是二层交换机。但是,它有一个额外的能力Capability),软件配置一下,可以充当三层网关的能力。

何谓三层网关(L3 Gateway)?

使得不同网段(广播域/VLAN)的通信成为可能,换句话说,就是三层网关可以帮助不同的网段主机互相通信。如果没有三层网关,就无法跨网段通信。

---------------------- 分界线---------------------

对于深度理解这两者的区别,可以继续阅读。

如果没有记错,无论是二层交换机还是三层交换机出厂的时候,都是二层交换机,即工作在二楼(层)。

工作在二楼的交换机,收发包裹,只关心有关二层的包裹信息,即

  • 目的MAC地址
  • 源MAC地址
  • Ethertype

干的活也很简单,就是根据包裹的二层信息“目的MAC地址”来寻找对应的出端口,然后把包裹从出端口扔出去,活就算干完了。 (Forwarding)

可是哪里有“目的MAC地址与出端口“的映射表呢?

这个表的名字叫”MAC Address Table”。

MAC Address Table也不可能天生就知道“目的MAC地址与出端口”的绑定关系吧,这个表里的条目是如何生成的?

包裹进入交换机端口的时候,记录其源MAC地址,记录其端口号,然后把两者的绑定关系,生成一个条目,记录在MAC Address Table里。并启动一个倒计时老化定时器(Aging Timer)。一个20分钟的定时器,当定时器归0即删除该条目。如果在归0之前,又有该源MAC地址的流量包裹进入端口,定时器满血复活,可以继续活20分钟。(Learning)

以上就是二层交换机干的活的汇总,准确地说,是一个非网管型二层交换机的干活汇总,非常easy,对吗?

读者可能会有不同意见,一个网管型的二层交换机不是有IP地址的吗?

是的,不光有IP地址,还有默认网关等等。

既然网管型的二层交换机有IP地址,它怎么会不关心包裹里的IP地址?否则它怎么接收属于它的包裹?

无需关心IP地址,只要二层交换机判断一个条件:

目的MAC地址 == 网管型的二层交换机自身的MAC

  • 如果yes,直接将包裹扔给网管型的二层交换机的TCP/IP协议栈。IP判断是否目的IP == 自己的IP地址,如果yes,继续进一步处理(TCP/UDP/ICMP处理流程)如果no,直接扔了
  • 如果no,按照上文的提到的Forwarding流程处理。

梳理一下:

  • 非网管型二层交换机,只有Learning、Forwarding 2个功能。
  • 网管型二层交换机,有Learning、Forwarding 2个功能。还有一个判断逻辑+ TCP/IP。

以上文字尽管是关于二层交换机的,和三层交换机仅有一步之遥。因为三层交换机是在网管型二层交换机的基础上,仅仅修改其判断逻辑,其它的都是一样一样的。

这个判断逻辑是这样的:

上文划线部分的判断逻辑修改为:

目的IP == 自己的IP地址

  • 如果yes,继续进一步处理(本地TCP/UDP/ICMP处理流程)。
  • 如果no,查询路由表,寻找出接口。如果yes,将IP包裹封装一个全新的二层MAC头扔出去。如果no,扔了。

划线加亮部分即为修改之后的逻辑,也是二层交换机与三层交换机的区别。

既然三层交换机仅仅是在二层交换机的基础之上做出的修改,所以三层交换机拥有二层交换机的一切功能。

一个拥有三层交换机功能(capability)的二层交换机在出厂之后,只要一个配置开关“no switchport” 即可将二层交换机端口,修改为三层交换机的接口。

这个命令“no switchport”背后的代码逻辑,就是上文所阐述的修改部分。用户还可以将三层交换机的接口修改回二层交换机的端口,命令是“switchport”,非常简单。

作者|车小胖谈网络|公众号

相关文章:

二层、三层交换机之间到底有什么区别?

简单地说 二层交换机,没有充当三层网关角色的能力(Capability)。三层交换机,首先也是二层交换机。但是,它有一个额外的能力(Capability),软件配置一下,可以充当三层网关…...

【论文阅读】2736. 最大和查询-2023.11.17

题目: 2736. 最大和查询 给你两个长度为 n 、下标从 0 开始的整数数组 nums1 和 nums2 ,另给你一个下标从 1 开始的二维数组 queries ,其中 queries[i] [xi, yi] 。 对于第 i 个查询,在所有满足 nums1[j] > xi 且 nums2[j]…...

2. zk集群部署

简介 上一篇文章我们已经把环境准备好了,jdk也配置好了,下面我们开始把zk部署起来 hadoop环境准备 创建zk用户 useradd zk -d /home/zk echo "1q1w1e1r" | passwd --stdin zk上传zk包 拷贝zk包到/home/zk目录,这里的zk版本为 3.6.3 scp…...

抖音快手判断性别、年龄自动关注脚本,按键精灵开源代码!

这个是支持抖音和快手两个平台的,可以进入对方主页然后判断对方年龄和性别,符合条件的关注,不符合条件的跳过下一个ID,所以比较精准,当然你可以二次开发加入更多的平台,小红书之类的,仅供学习&a…...

IDEA软件使用步骤

1.IDEA概述 IDEA全称InelliJ IDEA,是用于java语言开发的集成环境,它是业界公认的目前用于Java程序开发最好的工具。 集成环境:把代码编写,编译,执行,调试扽过多种功能综合到一起的开发工具。 下载:https…...

设计模式-11-模板模式

经典的设计模式有23种,但是常用的设计模式一般情况下不会到一半,我们就针对一些常用的设计模式进行一些详细的讲解和分析,方便大家更加容易理解和使用设计模式。 1-什么是模板模式 模板模式,全称是模板方法设计模式,英…...

【技术分享】EIGRP stub实验

【赠送】IT技术视频教程,白拿不谢!思科、华为、红帽、数据库、云计算等等https://xmws-it.blog.csdn.net/article/details/117297837?spm1001.2014.3001.5502【微/信/公/众/号:厦门微思网络】 拓扑图: R1配置: route…...

Python 爬虫 AES DES加密反爬

当你遇到需要处理 AES 或 DES 加密的反爬虫机制时,Python 可以通过使用相应的库来解决这类问题。首先,我们需要理解 AES 和 DES 加密是什么: AES (Advanced Encryption Standard):一种广泛使用的对称加密算法,它使用相…...

(论文阅读30/100)Convolutional Pose Machines

30.文献阅读笔记CPMs 简介 题目 Convolutional Pose Machines 作者 Shih-En Wei, Varun Ramakrishna, Takeo Kanade, and Yaser Sheikh, CVPR, 2016. 原文链接 https://arxiv.org/pdf/1602.00134.pdf 关键词 Convolutional Pose Machines(CPMs)…...

vue3实现数据大屏内数据向上滚动,鼠标进入停止滚动 vue3+Vue3SeamlessScroll

1.效果图 2.npm下载依赖及main.js文件配置 npm install vue3-seamless-scroll --saveimport vue3SeamlessScroll from vue3-seamless-scroll;app.use(vue3SeamlessScroll) 3.html代码 <!-- scrollFlag为true时再渲染,vue3只要涉及到传值子页面需要加flag判断&#xff0c;否…...

WPF显示3D图形

C# 中的 WPF (Windows Presentation Foundation) 支持显示3D图形。WPF 使用 DirectX 作为底层图形引擎&#xff0c;这意味着它可以处理包括3D图形在内的复杂渲染任务。 在 WPF 中&#xff0c;你可以使用一些内置的类和控件来创建和显示3D对象。这包括 Viewport3D, Camera, Mod…...

Xrdp+Cpolar实现远程访问Linux Kali桌面

XrdpCpolar实现远程访问Linux Kali桌面 文章目录 XrdpCpolar实现远程访问Linux Kali桌面前言1. Kali 安装Xrdp2. 本地远程Kali桌面3. Kali 安装Cpolar 内网穿透4. 配置公网远程地址5. 公网远程Kali桌面连接6. 固定连接公网地址7. 固定地址连接测试 前言 Kali远程桌面的好处在于…...

赚钱

《赚钱》 作者&#xff0f;罗光记 赚钱劳身影未安&#xff0c; 岁月匆匆易逝难。 银钱到手笑颜开&#xff0c; 酒醉灯昏影独寒。 花前月下欢声起&#xff0c; 万金财富待来年。 诗酒飘香梦中笑&#xff0c; 人生何求更多钱。...

Django command执行脚本

python web项目中经常会使用到脚本&#xff0c;一般来说有两种很简单的方法&#xff0c;一种是直接python function&#xff0c;另一种就是 django 自定义command。 对比常规脚本 这里举个简单的例子&#xff0c;比如初始化数据、文件名称为initialize_data.py &#xff08;1…...

GLSL: Shader cannot be patched for instancing.

最近在 unity 里碰到了这么一个错误&#xff0c;只有这么点信息&#xff0c;让人看着挺懵逼的&#xff0c;后来发现&#xff0c;是因为 unity 的 terrain 组件在设置里勾了 Draw Instanced 选项导致的&#xff0c;感觉应该是 unity 的 bug。 因为错出在 2021&#xff0c;2022就…...

Django测试环境搭建及ORM查询(创建外键|跨表查询|双下划线查询 )

文章目录 一、表查询数据准备及测试环境搭建模型层前期准备测试环境搭建代码演示 二、ORM操作相关方法三、ORM常见的查询关键字四、ORM底层SQL语句五、双下划线查询数据查询&#xff08;双下划线&#xff09;双下划线小训练Django ORM __双下划线细解 六、ORM外键字段创建基础表…...

css 设置网页最小字体为12px

谷歌浏览器默认最小字体为12px&#xff0c;但保不准万一有一天谷歌取消这个默认设置&#xff0c;或者一些人在设置中改了最小字体&#xff0c;为了防止万一&#xff0c;故系统设置了最小字体&#xff0c;主要利用了min和var的特性 :root {--responsive-font-size-primary: max…...

Failed to restart networking.service: Unit networking.service not found.

虚拟机Vmware中的Ubuntu20.0没有网络,ifconfig命令没有IP 如果在VMware中运行的Ubuntu 20.04虚拟机没有网络,并且ifconfig命令没有显示IP地址,你可以采取以下几个步骤来诊断和解决问题: 确认虚拟机网络设置: 确保虚拟机的网络适配器是开启的,并且配置正确。确认是否选择…...

基于单片机设计的水平仪(STC589C52+MPU6050)

一、前言 【1】项目背景 水平仪是一种常见的测量工具&#xff0c;用于检测物体或设备的水平姿态。在许多应用中&#xff0c;如建筑、制造和航空等领域&#xff0c;保持设备的水平姿态是非常重要的。为了实现实时的水平检测和显示&#xff0c;基于单片机设计的水平仪是一个常见…...

射频与微波综合测试仪-4958手持式微波综合测试仪

4958 微波综合测试仪 频率范围&#xff1a;1MHz&#xff5e;20GHz 4958手持式微波综合测试仪测量频率范围可达1MHz~20GHz&#xff0c;集电缆和天线驻波比测试、不连续点故障定位测试、插入损耗和增益测试、频谱分析、功率测量等多种功能于一体&#xff0c;携带方便&…...

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器的上位机配置操作说明

LBE-LEX系列工业语音播放器|预警播报器|喇叭蜂鸣器专为工业环境精心打造&#xff0c;完美适配AGV和无人叉车。同时&#xff0c;集成以太网与语音合成技术&#xff0c;为各类高级系统&#xff08;如MES、调度系统、库位管理、立库等&#xff09;提供高效便捷的语音交互体验。 L…...

龙虎榜——20250610

上证指数放量收阴线&#xff0c;个股多数下跌&#xff0c;盘中受消息影响大幅波动。 深证指数放量收阴线形成顶分型&#xff0c;指数短线有调整的需求&#xff0c;大概需要一两天。 2025年6月10日龙虎榜行业方向分析 1. 金融科技 代表标的&#xff1a;御银股份、雄帝科技 驱动…...

【Linux】C语言执行shell指令

在C语言中执行Shell指令 在C语言中&#xff0c;有几种方法可以执行Shell指令&#xff1a; 1. 使用system()函数 这是最简单的方法&#xff0c;包含在stdlib.h头文件中&#xff1a; #include <stdlib.h>int main() {system("ls -l"); // 执行ls -l命令retu…...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

Java + Spring Boot + Mybatis 实现批量插入

在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法&#xff1a;使用 MyBatis 的 <foreach> 标签和批处理模式&#xff08;ExecutorType.BATCH&#xff09;。 方法一&#xff1a;使用 XML 的 <foreach> 标签&#xff…...

JS设计模式(4):观察者模式

JS设计模式(4):观察者模式 一、引入 在开发中&#xff0c;我们经常会遇到这样的场景&#xff1a;一个对象的状态变化需要自动通知其他对象&#xff0c;比如&#xff1a; 电商平台中&#xff0c;商品库存变化时需要通知所有订阅该商品的用户&#xff1b;新闻网站中&#xff0…...

Windows安装Miniconda

一、下载 https://www.anaconda.com/download/success 二、安装 三、配置镜像源 Anaconda/Miniconda pip 配置清华镜像源_anaconda配置清华源-CSDN博客 四、常用操作命令 Anaconda/Miniconda 基本操作命令_miniconda创建环境命令-CSDN博客...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

Leetcode33( 搜索旋转排序数组)

题目表述 整数数组 nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c;nums 在预先未知的某个下标 k&#xff08;0 < k < nums.length&#xff09;上进行了 旋转&#xff0c;使数组变为 [nums[k], nums[k1], …, nums[n-1], nums[0], nu…...

协议转换利器,profinet转ethercat网关的两大派系,各有千秋

随着工业以太网的发展&#xff0c;其高效、便捷、协议开放、易于冗余等诸多优点&#xff0c;被越来越多的工业现场所采用。西门子SIMATIC S7-1200/1500系列PLC集成有Profinet接口&#xff0c;具有实时性、开放性&#xff0c;使用TCP/IP和IT标准&#xff0c;符合基于工业以太网的…...