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

计算机网络-以太网交换基础

一、网络设备的演变

最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部共享再到企业内部局域网,最后实现Internet国际互联。

1、Hub集线器

Hub设备是一种网络连接设备,用于将多个计算机或其他设备连接在一起。它提供了一个中心集线器,以便将所有连接的设备集中在一起并统一管理。Hub设备的功能包括扩大网络的传输距离、将多个节点集中在一起以及提供信号放大和中转的功能。通过使用Hub设备,用户可以将多个计算机或其他设备连接在一起,形成一个网络,以便共享资源、实现信息交换和协同工作。Hub是一个物理层设备,它工作在OSI模型中的第一层,即物理层

2、网桥设备

网桥的作用是连接不同网段,提高带宽和分割冲突域。它可以用来将一个大的局域网分割为多个小的网段,或将两个以上的局域网互联为一个逻辑局域网,使局域网上的所有用户都可访问服务器。

网桥的工作原理是基于数据链路层进行帧的转发。它根据MAC地址分区块,可隔离碰撞。当网桥接收到一个帧时,它会根据帧的目的MAC地址进行查找和转发。如果目的MAC地址与网桥的某个端口匹配,则将帧转发到相应的端口;否则将帧广播到所有端口

3、二层交换机

二层交换机是指工作在OSI模型的第2层(数据链路层)的交换机,它可以识别数据帧中的MAC地址信息,并根据MAC地址进行转发。二层交换机采用硬件转发技术,可以在高速传输线路上实现线速交换,具有很高的数据吞吐能力。二层交换机(一般不能配置多于2个ip,console无):都属于一个广播域,每个接口独立冲突域。交换机端口数量较丰富,常见有8口、16口、24口、48口规格,性能也较hub和网桥大大提升。

交换机主要通过MAC地址表和ARP表进行转发工作,支持划分VLAN进行隔离广播域。

4、路由器 路由器是一种网络设备,工作在网络层,负责在网络间进行数据转发。它是连接不同网络的关键设备,能够在网络层将发送方传输的数据包根据路由表中的信息,正确地转发到接收方所在的网段。

路由器的主要功能包括路由寻址、路由选择、数据传输和差错控制等。具体来说,它可以根据当前网络的状态和环境因素来选择最佳路径,通过寻径的方式确定数据转发的最佳路径。路由器的每个接口都是单独广播域和冲突域,可以单独配置IP地址。

路由器通过路由表和转发表进行转发。

5、三层交换机L3-SW

三层交换机就是具有部分路由器功能的交换机,工作在OSI网络标准模型的第三层:网络层。三层交换机的最重要目的是加快大型局域网内部的数据交换,所具有的路由功能也是为这目的服务的,能够做到一次路由,多次转发。对于数据包转发等规律性的过程由硬件高速实现,而像路由信息更新、路由表维护、路由计算、路由确定等功能,由软件实现。简单来说就是支持部分路由功能加上二层交换机多端口的优点,一般用于中小企业核心设备。

简单讲就是从两台设备间连接到多设备的互联,以及带宽速率的不断升级,最终实现国际互联。

二、以太网协议与工作原理

2.1 冲突域

冲突域是指连接在同一共享介质上的所有节点的集合,冲突域内所有节点竞争同一带宽,一个节点发出的报文(无论是单播、组播、广播),其余节点都可以收到。

冲突域
冲突域

2.2 广播域

广播报文所能到达的整个访问范围称为二层广播域,简称广播域,同一广播域内的主机都能收到广播报文。全1MAC地址FF-FF-FF-FF-FF-FF为广播地址,所有节点都会处理目的地址为广播地址的数据帧,该数据帧所能到达的整个访问范围称为二层广播域,简称广播域。

广播域
广播域

2.3 CSMA/CD

交换机设备工作在二层以太网,需要遵循一定的协议进行传输。以太网是建立在CSMA/CD (Carrier Sense Multiple Access/Collision Detection,载波监听多路访问/冲突检测)机制上的广播型网络。

CSMA/CD是一种媒体访问控制方法,用于解决网络中多个节点同时发送数据时可能发生的冲突。CSMA/CD全称为Carrier Sense Multiple Access with Collision Detection,其中CS表示载波侦听,MA表示多址访问,CD表示冲突检测。

在CSMA/CD协议中,所有节点在发送数据前都会先侦听信道是否空闲。如果信道空闲,节点会发送数据;如果信道忙碌,节点则会等待一段时间后再次侦听。当两个或更多的节点同时发送数据时,会导致信号发生碰撞。当发生碰撞时,节点会检测到冲突并停止发送数据。

2.4 以太网数据帧

以太网属于数据链路层,传输数据帧。以太网技术所使用的帧称为以太网帧 (Ethernet Frame),或简称以太帧。以太帧的格式有两个标准:Ethernet_II格式和IEEE 802.3格式。

以太网数据帧 Ethernet II 的type字段标识上层协议 ARP(0x0806) IPV4(0x0800)

主要通过源MAC和目的MAC进行识别别传输。

2.5 MAC地址

MAC (Medium Access Control)地址在网络中唯一标识一个网卡,每个网卡都需要并拥有有唯一的一个MAC地址。正常情况下一块网卡的MAC地址是具有全球唯一性的。

MAC地址格式:MAC地址由48比特(6个字节)长,12位的16进制数字组成。

MAC地址格式
MAC地址格式

MAC地址构成及分类:

MAC
MAC

单播帧在知道具体源目MAC地址时直接转发。 单播帧

广播帧用于在不知道具体MAC地址时交换机泛洪发送。 广播帧

用于组播泛洪。 组播帧

三、交换机工作原理

现在大部分都是已经使用交换机进行网络互联,Hub和网桥已经比较少了,因此主要学习交换机的工作与使用即可。

3.1 交换机工作原理:

  • 在第一次通信时,发送端发送数据帧,携带源IP、源MAC、目的IP,目的MAC,然后交换机内部维护一个MAC地址表,将源MAC和入接口进行记录。
  • 查询自身MAC地址表,是否有匹配目的MAC地址的表项,有则转发到对应端口,没有则进行泛洪,除了入接口外的所有接口进行泛洪转发。
  • 目的主机接收到泛洪广播帧,回复交换机自身MAC,交换机将源MAC也记录到MAC地址表中。
  • 将发送端数据帧通过该端口转发,自此两端MAC地址与接口映射关系都存在MAC地址表中,直接从对应端口进行单播帧转发即可。
数据帧转发
数据帧转发
MAC地址表
MAC地址表

3.2 交换机报文处理方式

交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。

交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。

  • 泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。
  • 转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。
  • 丢弃:交换机把从某一端口进来的帧直接丢弃。
交换机报文处理方式
交换机报文处理方式

如果交换机接收到单播帧,查找mac地址表但是mac地址表没有表项就进行泛洪。

如果交换机接收到广播帧直接进行泛洪。

因为交换机学习源mac地址,不可能学习到广播mac地址表项,交换机mac地址表记录是单播的。

如果手动数据帧接收端口和回复端口是相同则丢弃数据帧。默认华为交换机mac老化时间300秒。

3.3 同网段数据通信过程:

  1. 主机发送数据帧,包含源IP和MAC以及目的IP
  2. 把自己IP地址和将要访问IP地址进行逻辑与运算!判断我们是否属于相同网段?如果网络号一致,说明处于相同网段,直接转发,不需要经过网关;如果网络号不同,说明不是相同网段,不能直接转发,需要经过网关;
  3. 交换机接收到,mac表没有对应记录,从接收端口以外端口泛洪,同时记录源mac和端口
  4. 目的主机接收到数据帧,发送源和目的IP、MAC,交换机查找mac表项通过指定端口转发,同时记录回复报文的源mac和接口
  5. 下一次双方直接单播数据帧通信,交换机依据表项转发。

修改mac表老化时间:

# 查询老化时间
dis mac-address aging-time
# 修改
mac-address aging-time 300

总结:

网络设备从Hub集线器到交换机的发展是不断提高速率和传输效率的过程。现在大部分使用交换机进行终端接入,使用路由器进行路由寻址。交换机工作在数据链路层,通过数据帧进行数据传输,通过维护MAC地址表进行数据转发,有三种处理方式:转发、泛洪、丢弃。有三种数据帧类型:单播帧、广播帧、组播帧。简单了解了交换机工作原理,根据MAC地址表进行转发、泛洪或者丢弃动作。

本文由 mdnice 多平台发布

相关文章:

计算机网络-以太网交换基础

一、网络设备的演变 最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部…...

C++系列十六:枚举

枚举 一、C枚举基础 在C中,枚举(Enumeration)是一种用户定义的数据类型,它包含一组整数值,每个值都与一个标识符关联。通过使用枚举,我们可以使代码更加清晰易懂,避免使用魔术数字或字符串。 …...

flask web学习之flask与http(四)

文章目录 一、重定向进阶功能1.1 重定向回上一个页面1.2 对URL进行安全验证 二、使用Ajax技术发送异步请求2.1 什么是Ajax2.2使用jQuery发送Ajax请求 三、服务器推送四、web安全规范1. 注入攻击2. XSS攻击3. CSRF攻击 一、重定向进阶功能 1.1 重定向回上一个页面 有时候&#…...

电子签章Java后端与前端交互签名位置计算

电子签章过程中存在着在网页上对签署文件进行预览、指定签署位置、文件签署等操作,由于图片在浏览器上的兼容性和友好性优于PDF文件,所以一般在网页上进行电子签章时,会先将PDF文件转换成图片,展示给用户。用户在页面上确定好签署…...

为什么选择嬴图?

图数据库、图计算、图中台都是用图论的方式去构造实体间的关联关系,实体用顶点来表达,而实体间的关系用边来表达。图数据库的这种简洁、自由、高维但100%还原世界的数据建模的方式让实体间的关联关系的计算比SQL类的数据库高效成千上万倍。 图&#xff1…...

Python学习之路-编码风格

Python学习之路-编码风格 设计哲学 Python的设计哲学是“优雅”、“明确”、“简单”。它的重要准则被称为“Python之禅”。Python之禅又名PEP 20,在Python解释器内运行import this可以获得完整的列表,下面是我的翻译与解读: 提姆彼得斯&a…...

权威认可!甄知科技猪齿鱼产品荣获信创产品评估证书

近日,依据《信息技术应用创新产品评估规范 第1部分:应用软件》(T/SSIA 2001-2022),经过严格评估,甄知科技旗下自主研发的猪齿鱼数智化开发管理平台 V2.0.0,通过信创测试认证,获得上海…...

9. 回文数(Java)

题目描述: 给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。 回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。 例如,121 …...

Python(30):非对称加密算法RSA的使用(openssl生成RSA公私钥对)

Python(30):非对称加密算法RSA的使用(openssl生成RSA公私钥对) 1、openssl生成RSA公私钥对 1.1、生成RSA公私钥对命令 [rootloaclhost ~]# openssl OpenSSL> genrsa -out rsa_private_key.pem 1024 Generating RSA private key, 1024 bit long modulus .. ...…...

Java学习笔记-day04-NIO核心依赖多路复用小记

NIO允许一个线程同时处理多个连接,而不会因为一个连接的阻塞而导致其他连接被阻塞。核心是依赖操作系统的多路复用机制。 操作系统的多路复用机制 多路复用是一种操作系统的 I/O 处理机制,允许单个进程(或线程)同时监视多个输入…...

Java+springboot+vue智慧校园源码,数据云平台Web端+小程序教师端+小程序家长端

技术架构: Javaspringbootvue element-ui小程序电子班牌:Java Android演示自主版权。 智慧校园电子班牌人脸识别系统全套源码,包含:数据云平台Web端小程序教师端小程序家长端电子班牌 学生端。 电子班牌系统又称之为智慧班牌&am…...

算法日志的存在核心在于搭建自检系统

"相信每一个人执行与日志有关的任务都会遇到这样难题吧?长达几万行的日志,如果我们单纯用肉眼去一个个排查,那么恐怕所耗费的时间是以天为计量单位了。当然这是一种比较夸张的情况,根据我的项目经验,正常情况是十…...

【2023开发组一等奖】定位家乡味——北京市老乡探店寻味系统

作品介绍 1 需求分析 中国人的身上都系着两根线,一条线牵引着我们去远方,一条线牵引着我们归故乡。在当今社会,我们因为各种各样的原因背起行囊远离故乡去往千里之外的远方,而那暗涌在血脉的乡愁总会使我们在看到家乡菜的时候,心底溢出一种不可言说的温暖。那么,当你在异…...

37-数据类型,一元运算符typeof,字符串string,布尔Boolean,未定义undefined,空null,数组Array

<body><script>// 0.1加0.2不等于0.3&#xff0c;正确的运算方法如下console.log(0.10.2);var x 0.1;var y 0.2;console.log((x*10y*10)/10);</script> </body> 简单数据类型&#xff08;5种&#xff09;&#xff1a;数字number&#xff0c;字符串s…...

zabbix部署

zabbix部署 部署zabbix服务被监测主机部署zabbix-agent2 使用版本 组件版本centos7.9zabbix5.0php7.2.24MariaDB5.5.68 部署zabbix服务 关闭防火墙和selinux [rootnode ~]# systemctl status firewalld ● firewalld.service - firewalld - dynamic firewall daemonLoaded: …...

深入理解Java源码:提升技术功底,深度掌握技术框架,快速定位线上问题

为什么要看源码&#xff1a; 1、提升技术功底&#xff1a; 学习源码里的优秀设计思想&#xff0c;比如一些疑难问题的解决思路&#xff0c;还有一些优秀的设计模式&#xff0c;整体提升自己的技术功底 2、深度掌握技术框架&#xff1a; 源码看多了&#xff0c;对于一个新技术…...

寒假前端第一次作业

1、用户注册&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>用户注册</title> …...

【LabVIEW FPGA入门】创建第一个LabVIEW FPGA程序

本教程仅以compactRIO&#xff08;FPGA-RT&#xff09;举例 1.系统配置 1.1软件安装 FPGA-RT 1. LabVIEW Development System (Full or Professional) 2. LabVIEW Real-Time Module 3. LabVIEW FPGA Module 4. NI-RIO drivers 1.2硬件配置 1.使用线缆连接CompactRIO至主机…...

【STM32】STM32学习笔记-USART串口数据包(28)

00. 目录 文章目录 00. 目录01. 串口简介02. HEX数据包03. 文本数据包04. HEX数据包接收05. 文本数据包接收06. 预留07. 附录 01. 串口简介 串口通讯(Serial Communication)是一种设备间非常常用的串行通讯方式&#xff0c;因为它简单便捷&#xff0c;因此大部分电子设备都支持…...

Java网络爬虫--HttpClient

目录标题 技术介绍有什么优点&#xff1f;怎么在项目中引入&#xff1f; 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目&#xff0c;用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…...

浏览器访问 AWS ECS 上部署的 Docker 容器(监听 80 端口)

✅ 一、ECS 服务配置 Dockerfile 确保监听 80 端口 EXPOSE 80 CMD ["nginx", "-g", "daemon off;"]或 EXPOSE 80 CMD ["python3", "-m", "http.server", "80"]任务定义&#xff08;Task Definition&…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

连锁超市冷库节能解决方案:如何实现超市降本增效

在连锁超市冷库运营中&#xff0c;高能耗、设备损耗快、人工管理低效等问题长期困扰企业。御控冷库节能解决方案通过智能控制化霜、按需化霜、实时监控、故障诊断、自动预警、远程控制开关六大核心技术&#xff0c;实现年省电费15%-60%&#xff0c;且不改动原有装备、安装快捷、…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

微服务商城-商品微服务

数据表 CREATE TABLE product (id bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 商品id,cateid smallint(6) UNSIGNED NOT NULL DEFAULT 0 COMMENT 类别Id,name varchar(100) NOT NULL DEFAULT COMMENT 商品名称,subtitle varchar(200) NOT NULL DEFAULT COMMENT 商…...

Unit 1 深度强化学习简介

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

【JavaSE】绘图与事件入门学习笔记

-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角&#xff0c;以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向&#xff0c;距离坐标原点x个像素;第二个是y坐标&#xff0c;表示当前位置为垂直方向&#xff0c;距离坐标原点y个像素。 坐标体系-像素 …...

AI病理诊断七剑下天山,医疗未来触手可及

一、病理诊断困局&#xff1a;刀尖上的医学艺术 1.1 金标准背后的隐痛 病理诊断被誉为"诊断的诊断"&#xff0c;医生需通过显微镜观察组织切片&#xff0c;在细胞迷宫中捕捉癌变信号。某省病理质控报告显示&#xff0c;基层医院误诊率达12%-15%&#xff0c;专家会诊…...

上位机开发过程中的设计模式体会(1):工厂方法模式、单例模式和生成器模式

简介 在我的 QT/C 开发工作中&#xff0c;合理运用设计模式极大地提高了代码的可维护性和可扩展性。本文将分享我在实际项目中应用的三种创造型模式&#xff1a;工厂方法模式、单例模式和生成器模式。 1. 工厂模式 (Factory Pattern) 应用场景 在我的 QT 项目中曾经有一个需…...

若依登录用户名和密码加密

/*** 获取公钥&#xff1a;前端用来密码加密* return*/GetMapping("/getPublicKey")public RSAUtil.RSAKeyPair getPublicKey() {return RSAUtil.rsaKeyPair();}新建RSAUti.Java package com.ruoyi.common.utils;import org.apache.commons.codec.binary.Base64; im…...