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也收到一次,丢弃。

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

  • 相关阅读:
    20120109_1
    .NET(C#)开源代码分析
    Vue filter API All In One
    js 千位分隔符 All In One
    css fontfeaturesettings All In One
    vue 子组件不使用 watch 如何更新组件 All In One
    miro whiteboard All In One
    转载:sql注入的危害(登陆并获取数据库的名字,表的名称和字段)
    Windows 7/windows server 2008 R2 64位版IIS不能连接Access数据库,80004005报错的解决办法
    LINQ如何做SELECT TOP操作
  • 原文地址:https://www.cnblogs.com/y4247464/p/12596188.html
Copyright © 2011-2022 走看看