计网第三章(数据链路层)(五)

目录

一、以太网交换机自学习和转发帧的过程

1.两层交换机和三层交换机

2.以太网交换机的基本原理

3.具体实现过程


一、以太网交换机自学习和转发帧的过程

1.两层交换机和三层交换机

大家可能注意到平常做题时有叫两层交换机,或者三层交换机的。

两层交换机就是第四节(计网第三章(数据链路层)(四)_永无魇足的博客-CSDN博客)所讲的交换机,即工作在数据链路层(包括物理层)的交换机。

实际上,也有包含网络层部分功能的交换机,叫做三层交换机

2.以太网交换机的基本原理

以太网交换机收到帧后,在帧交换表中查找帧的目的MAC地址所对应的接口号,然后通过该接口转发帧。

以太网交换机是一种即插即用设备,刚上电启动时,内部的帧交换表是空的。随着网络主机之间的通信,以太网交换机通过自学习算法自动逐渐建立起帧交换表。

以太网交换机的帧交换表主要记录对应目的地址的MAC地址和对应的接口。

这里要注意:第四节所说的ARP高速缓存表是主机的,而交换机的是帧交换表。两者不一样,不能搞混。

ARP高速缓存表的类型有两种,即静态和动态。交换机的帧交换表也同样有静态和动态两种,可以由管理员手动配置或者通过自学习完成。

3.具体实现过程

如图:

假设各主机知道网络上其他主机的MAC地址(无需进行ARP)。各主机的MAC地址用字母代替。 

 

 现在,主机A想给主机D发送帧

A的帧从交换机1的接口1进入,交换机1会先进行登记,将主机A的MAC地址和所在接口记录到帧转换表中(这个过程就是以太网交换机的自学习过程)。随后在帧转换表中查找主机D的记录,发现没有后,向除源接口外的所有接口发送(即盲目转发,称为泛洪)。

帧从交换机1的接口4转发给交换机2的接口3,随后交换机2继续和前述一样的操作,登记(注意对于交换机2来说,主机A对应的是它的接口3)然后查找主机D的记录,发现没有(因为现在交换机2还没学习到D的记录),随后也进行泛洪。

除了主机D之外,其余的主机在检查该帧的目的地址后知道不是发送给自己的,将其丢弃。

而主机D知道这是给自己的帧,随即接受。

 

 注意:这不是ARP协议,所以也不会有主机D收到后,又给主机A一个响应报文这种操作。

因为A已经在帧交换表中有记录了,所以下一次发送帧,只要主机A是目的主机,就不会有泛洪这种情况出现。

假设现在主机F给主机A发送帧。同样地,交换机2先进行登记,随后在帧交换表里面查找,找到A的记录,随即从接口3转发出去;交换机1收到后,登记F的记录,随后在帧交换表里面查找,找到A的记录,随即从接口1转发出去,最终传给主机A。

 如果现在主机C想给主机B发送帧呢?

其实和主机A给主机D发送帧的过程是一样的,但是博主想要强调的是虽然B和C在同一个交换机连着,但是因为帧转换表里没有C的记录,所以仍然会泛洪,所以交换机2也会收到该帧。希望大家能注意到里面的小细节。

还有需要注意的是:帧交换表中的记录并不是永久性的,有效时间过后就会自动删除。原因是因为MAC地址和交换机的接口对应的关系不是永久的,比如某个交换机的某个接口所连接的主机换成另外一个等等。

最后就是交换机的一个特点,这点实际已经在第四节有提到过,就是如果发送接口和源接口一样的话,交换机就会丢弃该帧。

如图:假设主机G要向主机A发送帧,帧通过总线传送给主机A和交换机1,交换机1进行登记,并在帧交换表中进行查找,发现发送该帧的接口也是接口1,随机对其进行丢弃。

 注意:实际上主机A接收到该帧了,因为是在总线上进行传输的,所以不要以为主机A没有接收到该帧。

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

html表格中加入斜线,使用css给table表格表头单元格添加斜线

背景:业务给了90张word电子表格,需要用html设计出来。 如图所示,红色区域的下斜线如何实现? 先说结论:html中table没有直接的斜线表头标签,但结合css、svg之类的可以实现。 #lineTd{ background:#FFFFFF u…

UG\NX二次开发 创建中心线

文章作者:里海 来源网站:王牌飞行员_里海_里海NX二次开发3000例,C\C++,Qt-CSDN博客 简介: 下面是在制图模块创建中心线的例子,用的是ufun函数。 效果: 代码: #include "me.hpp"#include <stdio.h> #include <string.h> #include <uf.h>…

Qt关于hex转double,或者QByteArray转double

正常的00 ae 02 33这种类型的hex数据类型可以直接通过以下代码进行转换 double QDataConversion::hexToDouble(QByteArray p_buf) {double retValue 0;if(p_buf.size()>4){QString str1 byteArrayToHexStr(p_buf.mid(0,1));QString str2 byteArrayToHexStr(p_buf.mid(1,…

如何使用CSS实现一个响应式视频播放器?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 使用CSS实现响应式视频播放器⭐ 写在最后 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 记得点击上方或者右侧链接订阅本专栏哦 几何带你启航前端之旅 欢迎来到前端入门之旅&#xff01;这个专栏是为那些对Web开发感兴趣…

数字孪生流域共建共享相关政策解读

当前数字孪生技术在水利方面的应用刚起步&#xff0c;2021年水利部首次提出“数字孪生流域”概念&#xff0c;即以物理流域为单元、时空数据为底座、数学模型为核心、水利知识为驱动&#xff0c;对物理流域全要素和水利治理管理活动全过程的数字映射、智能模拟、前瞻预演&#…

志凌海纳 SmartX 携手灵雀云推出全栈云原生联合解决方案

近日&#xff0c;北京志凌海纳科技有限公司&#xff08;以下简称“SmartX”&#xff09;与北京凌云雀科技有限公司&#xff08;以下简称“灵雀云”&#xff09;联合推出全栈云原生联合解决方案&#xff0c;为客户提供从基础设施到容器云平台的一站式服务&#xff0c;加速客户云…

七夕情侣飞行棋游戏限定版本源码/解锁版

七夕情侣飞行棋限定版本源码已经发布&#xff01;这是一款专为情侣打造的桌游&#xff0c;让您与您的另一半一起感受浪漫的体验。 更为重要的是&#xff0c;这个版本已经移除了路由器限制&#xff0c;解锁了全部功能&#xff0c;而且没有任何加密措施&#xff0c;您只需将源码…

英伟达™(NVIDIA®)535.98 Linux 图形驱动程序发布

导读英伟达™&#xff08;NVIDIA&#xff09;公司近日发布了适用于 Linux、FreeBSD 和 Solaris 系统的 NVIDIA 535.98 图形驱动程序&#xff0c;作为其生产分支的维护更新&#xff0c;解决了各种错误和问题。 在英伟达™&#xff08;NVIDIA&#xff09;535.86.05 版本发布仅三周…

阿里云100元预算可选的云服务器配置2核2G3M带宽

阿里云服务器100元可以买到哪些配置&#xff1f;如果是一年时长&#xff0c;轻量应用服务器2核2G3M带宽一年108元&#xff0c;系统盘为50GB高效云盘。以前阿里云服务器ECS卖过35元一年、69元、88元、89元和99元的都有过&#xff0c;但是现在整体费用上涨&#xff0c;入门级云服…

Mac下Jmeter安装及基本使用

本篇文章只是简单的介绍下Jmeter的下载安装和最基本使用 1、初识Jmeter 前一段时间客户端app自测的过程中&#xff0c;有偶现请求某个接口返回数据为空的问题&#xff0c;领导让我循环100次请求这个接口&#xff0c;看看有没有结果为空的问题。听同事说有Jmeter的专业测试工具…

c语言(11)

第一题 第二题 第三题 第四题 第五题 第六题 第七题

第3步---MySQL的DDL和DML操作

第3步---MySQL的DDL和DML操作 1.DDL操作 Data Defination Language 数据定义语言。创建数据库和表的不涉及到数据的操作。 1.1DDL基本操作 1.1.1数据库相关操作 ddl&#xff1a;创建数据库&#xff0c;创建和修改表 对数据库常见的操作&#xff1a; 操作数据库 -- 展示数据…

基于JJWT理解JWT,JWS,JWE

JWT &#xff0c; 全写JSON Web Token, 是开放的行业标准RFC7591&#xff0c;用来实现端到端安全验证. 从开发者理解的角度来说&#xff1a; JWT 是一个定义传递信息的标准JWT 的Token是一个Base64编码的字符串&#xff0c; 类似 eyJhbGciOiJIUzI1NyJ9.eyJzdWIiOiJvc2NhciJ9.…

ARM开发(cortex-A7核,UART总线实验)

1.目标&#xff1a;键盘输入一个字符a,串口工具显示b&#xff1b; 键盘输入一个字符串"nihao",串口工具显示"nihao"&#xff1b; 2.框图分析&#xff1a; 3.代码&#xff1a; ---.h头文件--- #ifndef __UART4_H__ #define __UART4_H__#include "st…

关于ubuntu下面安装cuda不对应版本的pyTorch

最近换了台新的linux的ubuntu的服务器&#xff0c;发现其实际安装的cuda版本为11.4&#xff0c;但是pytorch官方给出的针对cuda 11.4并没有具体的pytorch的安装指令&#xff0c;于是采用不指定pytorch版本直接安装让其自动搜索得到即可 直接通过&#xff1a; pip3 install tor…

卷积神经网络——上篇【深度学习】【PyTorch】【d2l】

文章目录 5、卷积神经网络5.1、卷积5.1.1、理论部分5.1.2、代码实现5.1.3、边缘检测 5.2、填充和步幅5.2.1、理论部分5.2.2、代码实现 5.3、多输入多输出通道5.3.1、理论部分5.3.2、代码实现 5.4、池化层 | 汇聚层5.4.1、理论部分5.4.2、代码实现 5、卷积神经网络 5.1、卷积 …

Redis系列(四):哨兵机制详解

首发博客地址 https://blog.zysicyj.top/ 前面我们说过&#xff0c;redis采用了读写分离的方式实现高可靠。后面我们说了&#xff0c;为了防止主节点压力过大&#xff0c;优化成了主-从-从模式 思考一个问题&#xff0c;主节点此时挂了怎么办 这里主从模式下涉及到的几个问题&a…

thinkphp6.0 配合shell 脚本 定时任务

1. 执行命令&#xff0c;生成自定义命令 php think make:command Custom<?php declare (strict_types 1);namespace app\command;use app\facade\AdmUser; use think\console\Command; use think\console\Input; use think\console\input\Argument; use think\console\i…

操作系统-笔记-第四章-文件管理

目录 四、第四章——文件管理 1、文件管理——基础概念 &#xff08;1&#xff09;文件结构 &#xff08;2&#xff09;操作系统提供的接口 &#xff08;3&#xff09;总结 2、文件的逻辑结构 &#xff08;1&#xff09;有结构文件&#xff08;类似SQL表文件&#xff09…

无涯教程-PHP - preg_match()函数

preg_match() - 语法 int preg_match (string pattern, string string [, array pattern_array], [, int $flags [, int $offset]]]); preg_match()函数在字符串中搜索pattern&#xff0c;如果存在pattern&#xff0c;则返回true&#xff0c;否则返回false。 如果提供了可选…