zoukankan      html  css  js  c++  java
  • 交换机的工作转发原理

    以下内容来自:第一监控

    什么是交换机?

    以太网交换机就是在以太网传输数据的交换机,它的结构形式是每个端口都直接和设备相连,是一种基于MAC地址识别、完成以太网数据帧转发的网络设备。

    交换机通常是运行在网络OSI七层模型的第二层数据链路层,

    如图中,路由器通常运行在第三层网络层,那么三层交换机就是说明交换机具有了路由器的某些功能,但是三层交换机是不能替代路由器

     交换机转发原理:

    交换机既然是利用端口进行网络数据传输,那么它是如何识别数据是谁给谁的呢?

    其实交换机通电后会自动建立一个端口地址表,也叫MAC地址表,它会记录每个设备的MAC地址机和哪个交换机端口连接的,它会有自动学习功能,一开始如果没有地址,每次经过交换机的信息,它都会读取并记录下送信息过来的设备端口MAC地址,如果下次有其他设备送信息给该设备,就直接送达了。

    最普遍的情况下,转发原则是这样的:交换机收到一个以太帧数据,它自己会比对交换机已经学习到的端口地址表,如果表里存在端口地址,直接在对应的端口转发出去。如果表里不存在,则会向剩下的每个端口(除送信息过来的端口)广播发送一条相同的信息。

    方便理解见下图,

    交换机A和交换机B,现在如果从主机01发一个数据到主机03,设定的前提是,交换机A和B的地址表都是空白。

    那么首先,从主机01发数据到交换机A,交换机A在收到数据以后,先识别出主机的MAC地址是01(假设是01因为每台设备都是16进制的唯一地址),端口号是1。

    交换机A查找自己MAC地址表,发现没有(如果有就直接转发),交换机A向其他的所有端口广播。

    交换机B收到数据信息后,识别并学习源地址和过来的端口号。

    交换机B查看地址表,发现没有,记录并向除了端口3以外的两个端口发送广播包。

    最后的情况是,主机02会收到数据一次,不是自己的,丢弃数据;主机03收到数据一次,正好是自己的,接收数据;主机04也收到一次,丢弃。

    整个转发过程就是这样了。

  • 相关阅读:
    SpringBoot中获取上下文
    @Import
    SpringBoot集成Swagger-Bootstrap-UI(已改名为Knife4j)
    SpringFox 3.0.0(包含springfox-swagger2-3.0.0)——无法访问/swagger-ui.html解决方案
    容器编排技术 docker compose 20210816
    SC Nacos 服务注册和发现202107
    GitHub Desktop报错 Authentication failed. Some common reasons include
    arcgis esriGeometryType
    小程序H5接口测试整理(JMeter)
    python+检查图像文件是否损坏,是,删除
  • 原文地址:https://www.cnblogs.com/y4247464/p/12596188.html
Copyright © 2011-2022 走看看