zoukankan      html  css  js  c++  java
  • Mininet实验 MAC地址学习分析

    拓扑图

    学习过程分析

    • 首先交换机A和交换机B一开始的MAC地址表都是空的。
    • 此时主机11向主机33发送一个数据帧。
      • 数据帧会先到达交换机A,交换机A会获得主机11的MAC地址和端口号。(此时交换机A的地址表中只有一条关于11的地址信息)
      • 此时查看MAC地址表,如果其中有目的主机的MAC地址则直接进行转发,但是很可惜现在没有。
      • 此时交换机A会向除了源数据端口(端口1)外的其他所有端口(端口2和端口3)发送广播(都发送一个数据帧),这被称之为泛洪(flooding)。
      • 主机22接收到数据帧确认完发现不是发送给自己的,就会丢弃掉这个数据帧。
    • 此时交换机B会接收到这个数据帧
      • 此时交换机B会学习到源MAC地址和端口号,分别为11和端口3。(此时交换机B中只有一条关于11的地址信息)
      • 查看自己的地址表,没有符合条件的。
      • 向除了源数据发送端口外所有端口发送广播。
      • 主机33会接收这个数据帧,主机44会丢弃这个数据帧。
    • 正常情况下,主机33会回复主机11,发送一个数据帧。
      • 此时按照之前的逻辑,交换机B接收到主机33发送的数据帧,得到主机33的MAC地址和端口号。(此时B拥有两条信息,分别为11和33的,端口号分别为3和1)
      • 查看自己的地址表,发现目标11存在于自己的地址表中,所以直接定向向端口3发出数据帧(单播转发)。
      • 交换机A接收到交换机B发来的数据帧,然后更新了主机33的MAC地址和端口号。(此时A中也有两条信息,关于11和33的,端口号分别为1和3)
      • 然后根据自己的地址表单播转发给主机11.
      • 主机11就会接收到这个地址帧。
  • 相关阅读:
    mysql之旅【第一篇】
    初探psutil
    Android的ListView分页功能
    Android中用PULL解析XML
    HTTPClient模块的HttpGet和HttpPost
    PB11.5创建及调用WebService
    Android平台使用SQLite数据库存储数据
    高通mm-camera平台 Camera bring up基本调试思路
    在Linux中使用crontab
    Linux 修改 hostname
  • 原文地址:https://www.cnblogs.com/pullself/p/10318999.html
Copyright © 2011-2022 走看看