以太网交换机原理

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

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

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

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

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.mzph.cn/pingmian/38068.shtml

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

相关文章

【面试系列】数据分析师高频面试题及详细解答

欢迎来到我的博客,很高兴能够在这里和您见面!欢迎订阅相关专栏: ⭐️ 全网最全IT互联网公司面试宝典:收集整理全网各大IT互联网公司技术、项目、HR面试真题. ⭐️ AIGC时代的创新与未来:详细讲解AIGC的概念、核心技术、…

使用slenium对不同元素进行定位实战篇~

单选框Radio定位: 单选框只能点击一个,并且点击之后并不会被取消,而多选框,能够点击多个,并且点击之后可以取消 import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; imp…

FastAPI教程III

本文参考FastAPI教程https://fastapi.tiangolo.com/zh/tutorial 这部分暂无需求的没有记录,仅放置标题。 依赖项 安全性 中间件 你可以向FastAPI应用添加中间件。 ”中间件“是一个函数,它在每个请求被特定的路径操作处理之前,以及在每个…

PyCharm 2024.1 版本更新亮点:智能编程,高效协作

目录 1. 前言2. 更新内容2.1 智能编码体验2.1.1 Hugging Face 文档预览2.1.2 全行代码补全 2.2 提升编辑器体验2.2.1 粘性行功能2.2.2 编辑器内代码审查 2.3 全新终端体验(测试版)2.3.1 新终端 Beta 2.4 智能助手(特定版本和专业用户&#xf…

短视频矩阵系统:打造品牌影响力的新方式

一、短视频矩阵概念 短视频营销革命:一站式解决策略!短视频矩阵系统是一款专为企业营销设计的高效工具,旨在通过整合和优化众多短视频平台资源,为企业呈现一个全面的短视频营销策略。该系统致力于协助企业以迅速且高效的方式制作…

小白学webgl合集-WebGL中给图片添加背景

一.实现效果 二.逻辑 为了在WebGL中给图片添加背景&#xff0c;主要的逻辑步骤包括初始化WebGL上下文、编写和编译着色器、创建和绑定缓冲区、加载和配置纹理以及绘制场景。以下是代码逻辑的详细说明&#xff1a; 1. 获取WebGL上下文 首先&#xff0c;通过获取<canvas>…

WEB与低代码:B/S架构在开发中的应用与优势

在互联网迅猛发展的今天&#xff0c;WEB应用已经成为人们日常生活和工作中不可或缺的一部分。随着技术的进步和需求的多样化&#xff0c;开发高效、灵活且易于维护的WEB应用变得尤为重要。B/S架构&#xff08;Browser/Server Architecture&#xff09;作为一种常见的WEB应用架构…

天天生鲜数据库设计

目录 1、用户表2、商品表SKU和SPU的概念区分3、商品表改进4、redis实现购物车模块&#xff0c;redis保存用户最近浏览记录5、订单表 设计表时&#xff0c;出现一对多的情况&#xff0c;可以将对应的“多”单独拿出来重新设计一个表 1、用户表 &#xff08;灰色的部分不存在表…

MySQL之如何处理超大分页

如何处理MySQL超发分页&#xff1f; 可以使用覆盖索引解决 【点击进入】 MySQL超大分页处理 在数据量较大时&#xff0c;如果使用limit分页查询&#xff0c;在查询时&#xff0c;越往后&#xff0c;分页查询效率会越低。 示例&#xff1a; select * from user limit 900000…

仓库管理系统带万字文档基于spingboot vue的前后端分离仓库管理系统java项目java课程设计java毕业设计

文章目录 仓库管理系统一、项目演示二、项目介绍三、万字项目文档四、部分功能截图五、部分代码展示六、底部获取项目源码带万字文档&#xff08;9.9&#xffe5;带走&#xff09; 仓库管理系统 一、项目演示 仓库管理系统 二、项目介绍 基于spingboot和vue的前后端分离仓库管…

华测视频RTK,AR实景导航

华测导航视频测量RTK技术,通过融合卫星导航、惯导与视频摄影测量算法,让“所见即所测”成为现实,让测量工作变得更加智能、高效。 视频测量RTK:智能测绘的新里程碑 华测RTK的性能和广泛应用,在市场中获得了用户的认可,平均每10位用户中即有6位推荐。其视频测量功能通过引入自动…

如何用GPT开发一个基于 GPT 的应用?

原文发自博客&#xff1a;GPT应用开发小记 如何开发一个基于 GPT 的应用&#xff1f;答案就在问题里&#xff0c;那就是用 GPT 来开发基于 GPT 的应用。本文以笔者的一个开源项目 myGPTReader 为例&#xff0c;分享我是如何基于 GPT 去开发这个系统的&#xff0c;这个系统的功能…

【Django】网上蛋糕项目商城-关键字搜索,商品详情功能

概念 上文中已经实现热销和新品的商品列表功能&#xff0c;本文篇幅中实现关键字搜索商品&#xff0c;将商品加入购物车&#xff0c;以及查看商品的详情信息等功能 关键字搜索实现步骤 在head.html头部页面中&#xff0c;鼠标移动至搜索图标会显示隐藏的搜索框进行输入关键信…

吉利银河L6(官方小订送的3M) 对比 威固vk70+ks15

吉利送的号称价值2000的3M效果 撕膜重贴 威固vk70ks15 之后的效果 // 忘记测反射的热量了 可以验证金属膜是反射热而不是吸热 金属膜 手机GPS还能用吗 亲测 能用 太阳能总阻隔率 3M貌似20%出头 威固前档55% 侧后挡高一点不超过60% 夏天真实太阳发热能量 即阻隔率55%到60% …

使用Visual Studio Code记笔记

因为学习需要&#xff0c;记笔记是很有必要的&#xff0c;平常发CSDN&#xff08;都让CSDN是很棒的哈&#xff09;&#xff0c;后来使用VS Code的时候发现了很多插件&#xff0c;觉得做笔记还是相对不错的&#xff0c;主要用到的还是Markdown 主要设计的插件包括&#xff1a; …

PL/SQL入门到实践

一、什么是PL/SQL PL/SQL是Procedural Language/Structured Query Language的缩写。PL/SQL是一种过程化编程语言&#xff0c;运行于服务器端的编程语言。PL/SQL是对SQL语言的扩展。PL/SQL结合了SQL语句和过程性编程语言的特性&#xff0c;可以用于编写存储过程、触发器、函数等…

Hallo:分级音频驱动视觉合成肖像动画

团队&#xff1a;百度&#xff08;王井东大佬&#xff09;&#xff0c;复旦&#xff0c;瑞士ETH&#xff0c;南大 文章目录 概要介绍相关工作整体架构流程技术名词解释层次音频驱动的视觉合成训练和推理训练实验设置讨论社会风险和缓解措施小结 概要 肖像图像动画领域&#x…

如何修改PDF文档的作者名称?

要修改一个 PDF 文档的作者名称&#xff0c;你可以按照以下步骤进行操作&#xff1a; 1. **使用 Adobe Acrobat**&#xff08;如果有&#xff09;&#xff1a; - Adobe Acrobat 是一个功能强大的 PDF 编辑工具&#xff0c;支持修改文档属性信息&#xff0c;包括作者名称。打开…

一个用于自动复制文本的小工具:Auto_Copy

自动复制工具 这是一个在 Windows 上用于自动复制选中文本到剪贴板的小工具。该工具还允许通过右键单击粘贴剪贴板内容。 灵感来源: 在使用Mobaxterm时,我注意到其软件中具备选中即自动复制和右键直接粘贴的功能。但是,这种选中自动复制的功能仅在软件内部有效。由于这一功能…

什么是无头浏览器?

简而言之&#xff0c;无头浏览器是没有图形用户界面 &#xff08;GUI&#xff09; 的 Web 浏览器。GUI 包括用户与之交互的数字元素&#xff0c;例如按钮、图标和窗口。但是&#xff0c;关于无头浏览器&#xff0c;您需要了解的还有很多。 在本文中&#xff0c;您将了解什么是…