以太网交换机原理

news2025/1/19 6:59:34

没有配置,比较枯燥,二可以认识线缆,

三比较重要,慢慢理解,事半功倍。

        各位老少爷们,在下给大家说段以太网交换机原理,说得不好大家多多包涵,说得好呢,大家叫个好,有钱的帮个钱场,没钱的帮个人场,在下给大家鞠躬了。

一、以太网交换机的发展史

1.1 发展历史

        早在1972年,Robert Metcalfe(被尊称为“以太网之父”)为Xerox公司设计了一套网络,把公司的计算机都连接起来。Metcalfe把这个网络正式命名为以太网(Ethernet),这就是最初的以太网试验原型,该网络运行在粗同轴电缆,速率为2.94Mbp。

        1982年发布的标准,经过长期的发展,以太网已成为应用最为广泛的局域网,包括标准以太网(10 Mbit/s)、快速以太网(100 Mbit/s)、千兆以太网(1000 Mbit/s)和万兆以太网(10 Gbit/s)等。

       在TCP/IP中,以太网的IP数据报文的封装格式由RFC894定义,IEEE802.3网络的IP数据报文封装由RFC1042定义。当今最常使用的封装格式是RFC894定义的格式,通常称为Ethernet_II或者Ethernet DIX。

        上述摘抄自百度百科及华为官网,感兴趣的同学可以自行查询。

二、认识以太网

2.1 OSI参考模型

        互联网发展初期,各个局域网自己玩自己的,语言不互通,所以ISO组织在1985年研究的网络互连模型,制度相关标准,就有OSI(Open System Interconnect),即开放式系统互连。OSI参考模型分为七层。一句话:从下往上-物、数、网、传、会、表、应。

        网络工程师一般常常关注5层:物理层、数据链路层、网络层、传输层、应用层。(这块说法4层也对,不计较太多)

       2.1.1 物理层

        位于OSI参考模型的最底层,它直接承担数据传输的物理介质(即通信通道),物理层的传输单位为比特(bit),即一个二进制位(“0”或“1”)。就是最基本的电信号或光信号,是最基本的物理传输特征。物理层规定了以太网的基本物理属性,如电气特性或机械特性等。

       2.1.2 数据链路层

        OSI参考模型中的第二层,介于物理层和网络层之间。最基本的服务是将源设备网络层转发过来的数据可靠地传输到相邻节点的目的设备网络层。

        由于物理层的不同工作模式,需要提供特定的数据链路层来访问。一些组织和厂家提出把数据链路层再进行分层,分为媒体接入控制子层(MAC)和逻辑链路控制子层(LLC)。

数据链路层

LLC子层

MAC子层
物理层

物理层

        不同的物理层对应不同的MAC子层,LLC子层则可以完全独立。

        网络层、传输层、应用层,就先不说了,这次主要聊聊交换机。每层各自有各自的功能,做不同的事情,总之不同层次定义相关协议,厂商会研制相关设备承载这些协议。

        层次是按照相关协议来划分的,而不是设备。

        以前也写过这类文章,可以看看,不同时期理解不同。 

2.2 了解以太网物理层介质-线缆标准

2.2.1 常见线缆

名称

电缆

有效距离

速率

10BASE-5

粗同轴电缆

500m

10兆

10BASE-2

细同轴电缆

200m

10兆

10BASE-T

双绞线

100m

10兆

10BASE-F

光纤

2000m

10兆

100Base-T4

四对三类双绞线

100m

100兆

100Base-TX

两对五类双绞线

100m

100兆

100Base-FX

单模光纤或多模光纤

2000m

100兆

1000Base-LX

多模光纤和单模光纤

316m

1000兆

1000Base-SX

多模光纤

316m

1000兆

1000Base-TX

超5类双绞线或6类双绞线

100m

1000兆

10GBASE-T

CAT-6A或CAT-7

100m

10000兆

10GBase-LR

单模光纤

10km

10000兆

10GBase-SR

多模光纤

几百米

10000兆

2.2.2 常见光纤接口

2.2.3 认识光电转换器

2.3 CSMA/CD

CSMA/CD(Carrier Sense Multiple Access/Collision Detection),即:载波侦听多路访问/冲突检测。

CS:载波侦听

  • 在发送数据之前进行侦听,以确保线路空闲,减少冲突的机会。

MA:多路访问

  • 每个站点发送的数据,可以同时被多个站点接收。

CD:冲突检测

  • 由于两个站点同时发送信号,信号叠加后,会使线路上电压的摆动值超过正常值一倍。据此可判断冲突的产生。
  • 边发送边检测,发现冲突就停止发送,然后延迟一个随机时间之后继续发送。

2.3.1 工作过程

        以太网设计初期,计算机及相关设备是共享一条物理链路连接在一起。

        为避免通信故障,设备不停地检测链路状态,空闲时就进行发送,非空闲状态就等待。

        如果两台/多台终端同时发送数据,必定会发生冲突,导致链路电信号不稳定。

        当设备检测到信号不稳定时,就立即停止发送数据。

        并且设备会发送干扰脉冲,然后等待一段时间(时间是随机的)之后再进行发送数据。

2.3.2 最小帧长

        由于CSMA/CD算法的限制,以太网中,最小帧长为64字节,这是由最大传输距离和冲突检测机制共同决定的。

        规定最小帧长是为了避免这种情况发生:A已经将一个数据包的最后一个Bit发送完毕,但这个报文的第一个Bit还没有传送到距离很远的B。B认为线路空闲继续发送数据,导致冲突。

Ethernet_II帧结构(摘自华为官网)

2.4 双工模式与协商

双工模式:以太网的物理层存在半双工和全双工两种模式。

2.4.1 半双工

代表设备HUB。

  • 任意时刻只能接收数据或者发送数据。
  • 采用CSMA/CD机制。
  • 有最大传输距离的限制。

2.4.2 全双工

代表设备网卡、交换机、路由器等。

  • 同一时刻可以接收和发送数据。
  • 最大吞吐量达双倍速率。
  • 消除了半双工的物理距离限制

        全双工从根本上解决了以太网的冲突问题,以太网由共享式转变为交换式,以太网从此告别CSMA/CD。

2.4.3 协商的由来

        随着互联网的发展,全双工更好的解决CSMA/CD的冲突问题,但是依旧还有很多旧设备使用半双工的工作模式,全双工与半双工如何组网对接?于是,提出了自动协商技术来解决这种矛盾。

  • 自动协商
            使物理链路两端的设备通过信息交互自动选择同样的工作参数。自动协商的内容主要包括双工模式、运行速率以及流控等参数。一旦协商通过,链路两端的设备就锁定在同样的双工模式和运行速率。

2.4.4 自动协商的工作原理

  • 网络设备间建立连接的一种方式,设备双方根据彼此工作模式信息的交集,按照双方都支持的最优工作模式建立连接。

  • 使用双绞线连接的以太网:没有数据传输时,链路不是空闲状态,而是每隔16ms发送一个高脉冲,用来维护链路层的连接,这种脉冲成为NLP(Normal Link Pulse)码流;

        在NLP码流中再插入一些频率更高的脉冲,可用来传递更多的信息,这串脉冲成为FLP(Fast Link Pulse)码流。

        自协商功能的基本机制就是将协商信息封装进FLP码流中,以达到自协商的目的。

  • 对于使用光模块和光纤连接的以太网:也是发送码流来进行自协商的,这种码流称为C码流,也就是配置(Configuration)码流。与电口不同的是,光口一般不协商速率,并且一般工作在双工模式,所以自协商一般只用来协商流控。

    如果协商通过,网卡就把链路置为激活状态,可以开始传输数据了。如果不能通过,则该链路不能使用。

    如果有一端不支持自动协商,则支持自动协商的一端选择一种默认的方式工作,一般情况下是10M半双工模式。

2.4.5 自动协商是一直协商吗?

        自协商完全由物理层芯片设计实现,IEEE 802.3规范要求在下列任一情况下启动自协商:

  • 链路中断后恢复
  • 设备重新上电
  • 任何一端设备复位
  • 有重新自协商(Renegotiation)请求

        除此之外,连接双方并不会一直发送自协商码流。自协商并不使用专用数据包或带来任何高层协议开销。

2.5 冲突域和广播域

2.5.1 冲突域

        电信号冲突的范围。CSMA/CD该技术是个缓解方案,当一个共享带宽域内设备越来越多,冲突无法避免。

        冲突域内所有终端设备竞争同一带宽,一个终端设备发出的报文(无论是单播、组播、广播)域内所有终端都可以收到。

        那么如何解决冲突域?分割冲突域,分割电信号,引入一个设备-网桥。但网桥好是好,就是端口少,那就做个多端口的网桥-交换机,即:每个端口都是不同的冲突域。

        上面说过全双工的工作模式+多端口网桥=现在市面上的最基本的交换机,冲突域拿捏!

2.5.2 广播域

        一个广播数据所能传递的范围。因为网络中使用了广播,会占用带宽,降低设备的处理效率,必须对广播加以限制。

        交换机很好,但解决不了广播,最经典的(搞不定全1,mac地址为FFFF-FFFF-FFFF的广播地址)即:默认情况下交换机所有接口都属于一个广播域。

        那么如何解决广播域?路由器能隔离广播域,即: 每个端口都是不同的广播域。但是路由器成本高-贵、转发性能不高,那又有什么物美价廉的技术呢?VLAN 技术 (virtual local area network):虚拟局域网,分割广播源,广播域拿捏!

三、交换机的工作原理

3.1 二层交换机

        我们知道交换机工作在OSI参考模型的第二层-数据链路层,它对数据包的转发是建立在MAC(Media Access Control )地址基础之上,交换机每个端口都是不同的冲突域,所以可以隔离冲突域。

        交换机通过学习以太网帧的源MAC来维护MAC地址与接口的对应关系(保存MAC与接口对应关系的表称为MAC表),通过其目的MAC来查找MAC表决定向哪个接口转发。

解释一下:

        形成MAC地址表【依靠的是源MAC】

  •         交换机任意时刻在任何一个端口上,接收到数据。都会将该数据的源MAC地址,和数据入端口的对应关系记录下来,形成MAC地址表。
  •         即:MAC地址 — 端口

        查找MAC地址表【依靠的是目标MAC】

  •         交换机在处理完源MAC地址,就会继续查看目的MAC地址,同时去MAC地址表中确认一下是否存在 目的MAC地址对应的条目。
  •         查到该条目,则从端口发送出去;
  •         没查到该条目,则进行广播/洪泛/泛洪;即,将数据从除了 入端口外 的 其他所有端口 都发送出去。

        交换机核心工作表,就是维护MAC地址表,完成数据交换的工作。

3.2 三层交换机

       三层交换机一般是通过VLAN来划分二层网络并实现二层交换,同时能够实现不同VLAN间的三层IP互访。 

        三层交换机并不路能完全替代路由器,由器所具备的丰富的接口类型、良好的流量服务等级控制、强大的路由能力等仍然是三层交换机的薄弱环节。

        三层交换机维护MAC地址表、ARP表、三层转发信息表、直连路由表,完成数据交换工作。

        源主机在发起通信之前,将自己的IP与目的主机的IP进行比较(用网络掩码计算后具有相同的网络号),会出现两种情况:

        1.源主机IP与目的主机IP同一网段:

        那么源主机直接向目的主机发送ARP请求,在收到目的主机的ARP应答后获得对方的物理层(MAC)地址,然后用对方MAC地址作为报文的目的MAC地址进行报文发送。

        2.源主机IP与目的主机IP不同网段:

        会通过网关(Gateway)来传递报文,即发送ARP请求来获取网关IP地址对应的MAC,在得到网关的ARP应答后,用网关MAC作为报文的目的MAC发送报文。此时发送报文的源IP是源主机的IP,目的IP仍然是目的主机的IP。

解释:

1与3.1二层交换机原理过程一样,源MAC学习,目的MAC查表,有则转发,无则除入端口之外广播所有接口。

2

  • 首先源主机A发现自己与目标主机B不是一个网段,那么主机A就会向网关(也就是三层交换机)发送ARP请求。
  • 当三层交换机收到ARP请求后,检查报文发现是自己的三层接口IP,所以就发送一个ARP应答给主机A,应答里面包含自己三层接口的MAC地址。与此同时,三层交换机将主机A的IP与MAC地址记录在自己的ARP表项中。
  • 主机A收到三层交换机的ARP应答报文,开始正式封装ICMP请求报文,该报文包含目的MAC地址(三层交换机的)、源MAC(主机A)、源IP(主机A)、目的IP(主机B)。
  • 三层交换机收到报文后,首先根据报文的源MAC+VLAN ID更新MAC表。然后,根据报文的目的MAC+VLAN ID查找MAC地址表,发现匹配了自己三层接口MAC的表项,说明需要作三层转发,于是继续查找交换芯片的三层表项;
  • 交换芯片根据报文的目的IP去查找其三层表项,由于之前未建立任何表项,因此查找失败,于是将报文送到CPU去进行软件处理;
  • CPU根据报文的目的IP去查找其软件路由表,发现匹配了一个直连网段(主机B对应的网段),于是继续查找其软件ARP表,仍然查找失败。然后三层交互机会在目的网段对应的VLAN下的所有接口发送请求主机B对应MAC的ARP请求;
  • 当主机B收到三层ARP请求报文后,检查发现是自己的IP地址, 那么就会回复一个ARP应答报文给到三层交换机,该报文包含主机B的MAC地址。
  • 三层交换机收到主机B的ARP应答后,将其主机B的IP和MAC对应关系记录到自己的ARP表中,并将主机A的ICMP请求报文发送给主机B,报文的目的MAC修改为主机B的MAC,源MAC修改为自己的三层接口MAC。同时,在交换芯片的三层表项中添加表项三层转发信息(内容包括IP、MAC、出口VLAN、出接口),这样后续的主机A与主机B的报文就可以通过该硬件三层表项直接转发了;
  • 主机B收到三层交换机转发过来的ICMP请求报文以后,将ICMP应答报文发送给主机A。ICMP应答报文的转发过程与前面类似,只是由于三层交换机在之前已经得到主机A的IP和MAC对应关系了,也同时在交换芯片中添加了相关三层表项,因此这个报文直接由交换芯片硬件转发给主机A;
  • 即“一次路由(首包CPU转发并建立三层硬件表项)、多次交换(后续包芯片硬件转发)”

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

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

相关文章

【每日一练】python运算符

1. 算术运算符 编写一个Python程序,要求用户输入两个数,并执行以下运算:加法、减法、乘法、求余、除法、以及第一个数的第二个数次方。将结果打印出来。 a input("请输入第一个数:") b input("请输入第二个数&…

诊断知识:UnconfirmedDTCLimit的使用

文章目录 前言UnconfirmedDTCLimit的含义UnconfirmedDTCLimit的使用UnconfirmedDTCLimit和Failed limit相等UnconfirmedDTCLimit小于Failed limit 总结 前言 在某OEM基础技术规范中,诊断需求经常会出现UnconfirmedDTCLimit这个词汇,但基础技术规范中并没…

菲尔兹奖得主测试GPT-4o,经典过河难题未能破解!最强Claude 3.5回答离谱!

目录 01 大言模型能否解决「狼-山羊-卷心菜」经典过河难题? 02 加大难度:100只鸡、1000只鸡如何? 01 大言模型能否解决「狼-山羊-卷心菜」经典过河难题? 最近,菲尔兹奖得主Timothy Gowers分享了他测试GPT-4o的经历&a…

入门JavaWeb之 JDBC 连接数据库

JDBC:Java Database Connectivity,Java 数据库连接 需要 jar 包支持: java.sql javax.sql mysql-connector-java(连接驱动,必须导入) 在 MySQL 先建个 jdbc 数据库后 USE jdbc; 执行后再 CREATE TABLE…

DIY智能小车:基于STM32的蓝牙遥控实战教程(附代码)

摘要: 本文将带你从零开始,使用STM32单片机打造一辆炫酷的蓝牙遥控小车。文章将详细讲解硬件选型、电路连接、软件设计以及代码实现,并提供丰富的Mermaid图表和代码示例,助你轻松完成自己的遥控小车项目。 关键词: STM32, 蓝牙遥控, 遥控小车…

苹果笔记本能玩网页游戏吗 苹果电脑玩steam游戏怎么样 苹果手机可以玩游戏吗 mac电脑安装windows

苹果笔记本有着优雅的机身、强大的性能,每次更新迭代都备受用户青睐。但是,当需要使用苹果笔记本进行游戏时,很多人会有疑问:苹果笔记本能玩网页游戏吗?苹果笔记本适合打游戏吗?本文将讨论这两个话题&#…

携手亚马逊云科技,维塑科技推出运动健康领域首个AI大模型

导读:生成式AI运动健康,将如何改变我们的生活? 人工智能技术正不断重塑着我们的工作、生活方式。那么,AI能否改善我们的健康状况呢?AI大模型在运动健康领域的探索为我们带来新的想象。 2023年,全球领先的AI…

Android常用加解密算法总结

Android开发中对于数据的传输和保存一定会使用加密技术,加密算法是最普遍的安保手段,多数情况数据加密后在需要使用源数据时需要再进行解密,但凡是都有例外。下面从可逆加密、不可逆、不纯粹加密三种方式记录一下常见的加解密算法。 加密技术…

线程的调度

线程的执行总是趋向于CPU受限或IO受限 一些线程需要花费一定的时间使用CPU进行计算,而另外一些线程则会花费一些时间等待相对较慢的I/O操作的完成 一个用于计算16位整数的14次方根的线程属于前者,而一个等待人类用户通过敲击键盘提供输入数据的线程则属…

Bytebase 2.20.0 - 支持为工单事件配置飞书个人通知

🚀 新功能 支持 Databricks。支持 SQL Server 的 TLS/SSL 连接。支持为工单事件配置飞书个人通知。支持限制用户注册的邮箱域名。 🔔 重大变更 将分类分级同步设置从数据库配置移至工作空间的全局配置。 SQL 编辑器只读模式下只允许执行 Redis 的只读…

Java SE入门及基础(60) 线程的实现(下) 线程的同步(synchronized 和 Lock 的实现) 线程通信 线程状态

目录 线程 (下) 4. 线程同步-synchronized 同步方法语法 示例 同步代码块语法 示例 synchronized锁实现原理 5. 线程同步-Lock 示例 6. 线程通信 Object类中的通信方法 案例 分析 代码实现 7. 线程状态 线程状态转换图 线程 &#xff08…

老师如何将期末成绩单独发给家长?

老师们,期末季又到了,又要面临一个重要而微妙的任务——发放期末成绩。在这个信息爆炸的时代,如何安全、高效、又充满人情味地将成绩单送到家长手中,成了我们的一项挑战。今天,我就来和大家分享一些小技巧,…

Wp-scan一键扫描wordpress网页(KALI工具系列三十二)

目录 1、KALI LINUX 简介 2、Wp-scan工具简介 3、信息收集 3.1 目标IP(服务器) 3.2kali的IP 4、操作实例 4.1 基本扫描 4.2 扫描已知漏洞 4.3 扫描目标主题 4.4 列出用户 4.5 输出扫描文件 4.6 输出详细结果 5、总结 1、KALI LINUX 简介 Kali Linux 是一…

LeetCode 算法:二叉树的右视图 c++

原题链接🔗:二叉树的右视图 难度:中等⭐️⭐️ 题目 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 1: 输入: [1,2,3,null,5,null,4…

某易六月实习笔试

第一题 下面代码需要更改的地方已指出。 解题思路 模拟题,用双指针记录双方当前式神,再记录一下当前谁先手,直到有一方指针越界。 把下面代码now1变为now(now1)%2就行。 第二题 解题思路 01背包变种,只是背包的容量变为多个维度…

清华大学世界排名:2025QS世界大学排名第20名

近日,国际高等教育研究机构QS Quacquarelli Symonds正式发布了2025QS世界大学排名,其中麻省理工学院连续第13年蝉联榜首,北京大学排名由去年的全球第17上升至全球第14名,清华大学位列2025QS世界大学排名第20名,以下是查…

【高级篇】分区与分片:MySQL的高级数据管理技术(十三)

引言 在上一章,我们探讨了MySQL的主从复制与高可用性,这是构建健壮数据库架构的基石。现在,让我们深入到更高级的主题——分区与分片,这些技术对于处理大规模数据集和提升数据库性能至关重要。我们将详细介绍表分区的概念、类型及分片技术的应用,为下一章讨论MySQL集群与…

【硬件视界2】CPU和GPU:计算机架构的双子星

名人说:莫听穿林打叶声,何妨吟啸且徐行。—— 苏轼《定风波莫听穿林打叶声》 本篇笔记整理:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、CPU (中央处理器)①主要作用②特点 2、 GPU (图形处理…

架构师篇-9、从事件风暴到微服务设计的落地过程

用户付款功能第二个版本的设计实现 单一职责原则(SRP) 软件系统中的每个元素只完成自己职责内的事,将其他的事交给别人去做“职责”通常人理解为一个事情,与该事情相关的事都是它的责任 一个职责是软件变化的一个原因 第二次需求…

2024年06月CCF-GESP编程能力等级认证Scratch图形化编程二级真题解析

本文收录于《Scratch等级认证CCF-GESP图形化真题解析》专栏,专栏总目录:点这里,订阅后可阅读专栏内所有文章。 一、单选题(共 10 题,每题 3 分,共 30 分) 第1题 小杨父母带他到某培训机构给他报名参加 CCF 组织的 GESP 认证考试的第 1 级,那他可以选择的认证语言有几…