交换机Switch

news/2024/12/23 4:32:01/

交换机的工作原理:

交换机通过数据帧的源MAC地址进行学习,把MAC地址添加到MAC地址/CAM表。然后通过数据帧的目的MAC地址来进行转发数据帧。相对于集线器,交换机可以认为是集线器的替代品,工作是全双工模式,用于隔离冲突域。

Switch#show mac-address-table       //查看交换机MAC地址表

交换机对比集线器,除了学习功能以外,还有数据帧的过滤,和环路的防止。

交换机的过滤:

  1. 当收到一个单播帧的时候,集线器会进行泛洪转发,而交换机会进行单播转发,从而过滤掉其他接口的转发。
  2. 交换机收到一个数据帧的时候,如果这个数据帧的目的MAC,对应的出接口正好是这个接收到数据帧的接口,那么交换机也会把这个数据给过滤掉。

交换机的类型:基于转发方式

  1. 直通转发:当交换机检测到目的MAC的时候就立刻进行转发。
  2. 存储转发:当交换机收到完整的数据帧的时候,并检查无错后才进行转发。
  3. 片段转发:当交换机收到数据帧后检测到前64个字节后进行转发。

比喻理解:

寄快递:

  1. 直通转发:看到收件人地址立即寄出去
  2. 存储转发:将快递拆开检查里面的完整无缺才寄出去
  3. 片段转发:查看外包装有没有损坏以及一些信息没出错后就寄出去,不拆包装

哪个相对较好?这些转发方式,在交换机出产的时候已经固定好了,没办法通过命令修改。在不同的网络环境下使用不同类型的交换机才是最适合的。

在以太网中,小于64个字节的数据会被认为无用数据,那么直通转发可以很好的提高网络运作的效率,但是不能确保数据的完整,而存储转发可以很好的确保数据的完整性,但是又相对地牺牲了运作效率,片段转发属于两种转发方式的折中点。

交换机转发(只看目的MAC)数据帧的时候有以下三种方式:

  1. 单播:当数据帧的目的MAC,存在于MAC地址表的时候,交换机会执行单播。
  2. 泛洪:当交换机收到未知单播帧(MAC地址表中查不到数据帧中的目的MAC地址)的时候会泛洪,目的MAC为FF-FF-FF-FF-FF-FF或组播地址的时候会泛洪。
  3. 过滤:当交换机收到的数据帧又从收到的这个接口发出的时候会过滤。    

交换机总结:

-- 交换机和网桥的MAC地址表存储一个MAC地址到端口映射,以便它能够确定连接的设备的位置

-- 当一个帧要传送到一个已知的目的地址,它仅在连接要接受帧的目的端口进行转发

-- 当一个帧要传送到一个未知的目的地址,它将泛宏该帧

-- 以太网交换机和网桥使用三种操作模式来传输帧:直通转发,存储转发,片段转发


http://www.ppmy.cn/news/424612.html

相关文章

switch语句查询水果价格

语法 switch(n) { case 1:执行代码块 1break; case 2:执行代码块 2break; default:没有匹配的case时默认执行的代码 } demo <html> <head><meta charset"UTF-8"><title>Document</title><script>window.onload function (){v…

C语言switch开关查询价格的问题.查询绿茶、可乐、芬达、矿泉水、爆米花、瓜子的价格,这些东西价格分别是4、3.5、3、1.5、5、2.5;在键盘输入序号,得到价格

#include<stdio.h> int main() { int x, y;//x为输入的序号&#xff1b;y为查询目录的价格 printf("1.绿茶\n");//打印序号的名称。 printf("2.可乐\n"); printf("3.芬达\n"); printf("4.矿泉水\n"); p…

switch...case

switch…case 基本结构&#xff1a; switch(key) { case value :break;default :break; }实际事例 int weekday 3;switch (weekday) {case 1:System.out.println("星期一");break;//中断 终止 case 2:System.out.println("星期二");b…

switch-case

switch-case 1.格式 2.说明&#xff1a; 根据switch表达式中的值&#xff0c;依次匹配各个case中的常量。一旦匹配成功&#xff0c;则进入相应case结构中&#xff0c;调用其执行语句。 当调用完执行语句以后&#xff0c;则仍然继续向下执行其他case结构中的执行语句&#xff…

switch 计算器?!

(用switch语句编程设计一个简单的计算器程序&#xff0c;要求根据用户从键盘输入的表达式&#xff1a; 操作数1 运算符op 操作数2 计算表达式的值&#xff0c;指定的算术运算符为加&#xff08;&#xff09;、减&#xff08;-&#xff09;、乘&#xff08;*&#xff09;、除&am…

switch计算器

#include <stdio.h> int main() { int a, b,c,d; printf("1.加法\n2.减法\n3.乘法\n4.除法\n0.退出\n请输入你的选择&#xff1a;"); scanf_s("%d",&c); switch (c) { case(1): printf("你选择的是加法&#xff0c;请输…

阿里云国际站:阿里云服务器安全性如何?有哪些安全措施和防护机制?

阿里云国际站&#xff1a;阿里云服务器安全性如何&#xff1f;有哪些安全措施和防护机制&#xff1f;   阿里云服务器安全性简介   作为全球领先的云计算服务提供商&#xff0c;阿里云始终注重保障用户数据安全。在面对各种网络攻击和安全威胁时&#xff0c;阿里云积极构建…

2023年最新React面试题

以下是一些常见的React面试题&#xff0c;包括代码详解。这些问题涵盖了React的基础知识和常见的开发场景。请注意&#xff0c;这些问题的答案可能有多种方式&#xff0c;下面给出的是其中一种解决方案。 1. 什么是React&#xff1f; React是一个用于构建用户界面的JavaScrip…