计算机网络-以太网交换基础
一、网络设备的演变
最初的网络在两台设备间使用传输介质如网线等进行连接就可以进行通信。但是随着数据的传输需求,多个设备需要进行数据通信时就需要另外的设备进行网络互联,并且随着网络传输的需求不断更新升级。从一开始的两台设备互联到企业部门内部共享再到企业内部局域网,最后实现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地址时交换机泛洪发送。 
用于组播泛洪。 
三、交换机工作原理
现在大部分都是已经使用交换机进行网络互联,Hub和网桥已经比较少了,因此主要学习交换机的工作与使用即可。
3.1 交换机工作原理:
-
在第一次通信时,发送端发送数据帧,携带源IP、源MAC、目的IP,目的MAC,然后交换机内部维护一个MAC地址表,将源MAC和入接口进行记录。 -
查询自身MAC地址表,是否有匹配目的MAC地址的表项,有则转发到对应端口,没有则进行泛洪,除了入接口外的所有接口进行泛洪转发。 -
目的主机接收到泛洪广播帧,回复交换机自身MAC,交换机将源MAC也记录到MAC地址表中。 -
将发送端数据帧通过该端口转发,自此两端MAC地址与接口映射关系都存在MAC地址表中,直接从对应端口进行单播帧转发即可。
3.2 交换机报文处理方式
交换机会通过传输介质进入其端口的每一个帧都进行转发操作,交换机的基本作用就是用来转发数据帧。
交换机对帧的处理行为一共有三种:泛洪(Flooding),转发(Forwarding),丢弃(Discarding)。
-
泛洪:交换机把从某一端口进来的帧通过所有其它的端口转发出去(注意,“所有其它的端口”是指除了这个帧进入交换机的那个端口以外的所有端口)。 -
转发:交换机把从某一端口进来的帧通过另一个端口转发出去(注意,“另一个端口”不能是这个帧进入交换机的那个端口)。 -
丢弃:交换机把从某一端口进来的帧直接丢弃。
如果交换机接收到单播帧,查找mac地址表但是mac地址表没有表项就进行泛洪。
如果交换机接收到广播帧直接进行泛洪。
因为交换机学习源mac地址,不可能学习到广播mac地址表项,交换机mac地址表记录是单播的。
如果手动数据帧接收端口和回复端口是相同则丢弃数据帧。默认华为交换机mac老化时间300秒。
3.3 同网段数据通信过程:
-
主机发送数据帧,包含源IP和MAC以及目的IP -
把自己IP地址和将要访问IP地址进行逻辑与运算!判断我们是否属于相同网段?如果网络号一致,说明处于相同网段,直接转发,不需要经过网关;如果网络号不同,说明不是相同网段,不能直接转发,需要经过网关; -
交换机接收到,mac表没有对应记录,从接收端口以外端口泛洪,同时记录源mac和端口 -
目的主机接收到数据帧,发送源和目的IP、MAC,交换机查找mac表项通过指定端口转发,同时记录回复报文的源mac和接口 -
下一次双方直接单播数据帧通信,交换机依据表项转发。
修改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类的数据库高效成千上万倍。 图࿱…...
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,正确的运算方法如下console.log(0.10.2);var x 0.1;var y 0.2;console.log((x*10y*10)/10);</script> </body> 简单数据类型(5种):数字number,字符串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源码:提升技术功底,深度掌握技术框架,快速定位线上问题
为什么要看源码: 1、提升技术功底: 学习源码里的优秀设计思想,比如一些疑难问题的解决思路,还有一些优秀的设计模式,整体提升自己的技术功底 2、深度掌握技术框架: 源码看多了,对于一个新技术…...
寒假前端第一次作业
1、用户注册: <!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(FPGA-RT)举例 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)是一种设备间非常常用的串行通讯方式,因为它简单便捷,因此大部分电子设备都支持…...
Java网络爬虫--HttpClient
目录标题 技术介绍有什么优点?怎么在项目中引入? 请求URLEntityUtils 类GET请求带参数的GET请求POST请求 总结 技术介绍 HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、功能丰富的、支持 HTTP 协议的客户端编程工具包。相…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
AI Agent与Agentic AI:原理、应用、挑战与未来展望
文章目录 一、引言二、AI Agent与Agentic AI的兴起2.1 技术契机与生态成熟2.2 Agent的定义与特征2.3 Agent的发展历程 三、AI Agent的核心技术栈解密3.1 感知模块代码示例:使用Python和OpenCV进行图像识别 3.2 认知与决策模块代码示例:使用OpenAI GPT-3进…...
学校招生小程序源码介绍
基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码,专为学校招生场景量身打造,功能实用且操作便捷。 从技术架构来看,ThinkPHP提供稳定可靠的后台服务,FastAdmin加速开发流程,UniApp则保障小程序在多端有良好的兼…...
从零开始打造 OpenSTLinux 6.6 Yocto 系统(基于STM32CubeMX)(九)
设备树移植 和uboot设备树修改的内容同步到kernel将设备树stm32mp157d-stm32mp157daa1-mx.dts复制到内核源码目录下 源码修改及编译 修改arch/arm/boot/dts/st/Makefile,新增设备树编译 stm32mp157f-ev1-m4-examples.dtb \stm32mp157d-stm32mp157daa1-mx.dtb修改…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...
基于 TAPD 进行项目管理
起因 自己写了个小工具,仓库用的Github。之前在用markdown进行需求管理,现在随着功能的增加,感觉有点难以管理了,所以用TAPD这个工具进行需求、Bug管理。 操作流程 注册 TAPD,需要提供一个企业名新建一个项目&#…...
招商蛇口 | 执笔CID,启幕低密生活新境
作为中国城市生长的力量,招商蛇口以“美好生活承载者”为使命,深耕全球111座城市,以央企担当匠造时代理想人居。从深圳湾的开拓基因到西安高新CID的战略落子,招商蛇口始终与城市发展同频共振,以建筑诠释对土地与生活的…...
【Nginx】使用 Nginx+Lua 实现基于 IP 的访问频率限制
使用 NginxLua 实现基于 IP 的访问频率限制 在高并发场景下,限制某个 IP 的访问频率是非常重要的,可以有效防止恶意攻击或错误配置导致的服务宕机。以下是一个详细的实现方案,使用 Nginx 和 Lua 脚本结合 Redis 来实现基于 IP 的访问频率限制…...
Python网页自动化Selenium中文文档
1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API,让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API,你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
