六、交换机的MAC表(FDB表)

交换机的MAC地址表存有交换机端口与MAC地址的映射,同样分有动态和静态两部分,
当某个端口收到来自于某个MAC地址处发来的帧数据时,会将该MAC地址与端口的映射关系存储在MAC地址表中

6.1 自学习功能

vlan独立学习(IVL)和vlan共享学习(SVL)
IVL:在这种方式下,MAC地址表在逻辑上可以被看成根据VLAN信息分成了很多张表,一个MAC地址可以学习到不同VLAN对应的“地址表”上。
SVL:在这种方式下,MAC地址在整张表中是唯一的,一个MAC地址在地址表中只能有一条记录,一个MAC只能被学习到一个端口上。

两种转发机制的报文转发流程
对于IVL而言,交换机根据目的MAC+VLAN信息一起查MAC地址表,如果打到对应的端口则转发,否则在报文所属VLAN内进行洪泛。
对于SVL而言,交换机先根据目的MAC查MAC表,找到端口之后,然后判断这个端口是否在报文携带的VLAN中,如果在就转发,否则就丢弃。如果根据目的MAC没有找到对应端口,则在报文所属VLAN内进行洪泛。

6.2 交换机的转发机制

交换机的两中端口类型设置:Acess 类型(收发数据帧都不含 VLAN 标记)和 Trunk 类型 (收发数据帧都含有 VLAN 标记)。
锐捷交换机采用IVL转发机制,即交换机的Acess 端口收到一个帧数据时,先打标再查表。
1.基于SMAC的自学习
交换机收到一个帧数据后,通过源MAC+VLAN信息进行FDB表的更新(已存在该表项)或添加(未存在该表项)。
2.基于DMAC的查找
(1)目的MAC为广播地址
交换机将该广播帧从该交换机的所有同VLAN的ACCESS端口和TRUNK(打上tagged)发出(泛洪);
(2)目的MAC为单播地址
通过目的MAC+VLAN信息在交换机FDB中进行匹配查找,若无匹配项,则从所有同VLAN的ACCESS端口和TRUNK(打上tagged)发出(泛洪);若找到匹配项,则从对应端口发出。

Tips:上述过程是结合了vlan的知识,目前工作中的二层转发主要都是基于同一vlan的,可忽略vlan;
上述的过程可以简单理解为基于源MAC的FDB表更新和学习,基于目的MAC的FDB表查询(广播帧直接泛洪,单播帧先查找,若表中无对应项也会泛洪)

实验:通过anysend和wireshark进行上述单播帧和广播帧转发过程的验证

七、路由表

7.1 表的建立

RIB (route information base) 和 FIB (forwarding information base),又称IP路由表和 CEF表,它们之间的关系可以用下面这张图片来高度概括。

本质上,RIB(route information base) 是由节点上各种路由过程通过路由协议(例如OSPF,IS-IS,BGP,甚至是静态路由条目)提供的信息来构建的。从RIB中的所有路由中选出最佳路由后,将它们复制到FIB。因此,RIB包含节点愿意保留的所有路由以及路由协议正在使用的信息,硬件使用FIB来指导转发,物理上将数据包从移入和移出接口。

RIB维护每种协议的网络拓扑和路由表。这将包括许多到达相同目的地前缀的路由;
FIB是从下推的RIB中可能的许多协议到快速转发查找内存的最佳路径的最佳路由。

7.2 IP层转发分组的过程

Tips:
不同的前缀(网络号+掩码,缺一不可),在路由表中属于不同的路由;
默认采用最长匹配原则,匹配(到最长的网段号),转发;无匹配,则找默认路由,默认路由都没有,则丢弃。

基于ping的过程学习二、三层转发之三(ARP表、FDB表、路由表详解)相关推荐

  1. PING用一生诠释了TCP/IP(4)------二三层转发为PING劈荆斩棘

    作为一个网络使用者,你也许从来没有思考过源及目的主机之间究竟发生了什么,因为网络对用户来说是一个黑匣子,所有的细节都被屏蔽掉了,你只能知道通还是不通,能不能上网?但是作为一个网络设计者,研究者,你就必 ...

  2. 交换机二三层转发原理简单总结

    首先二层转发是基于MAC地址转发,三层转发基于IP地址转发,但是这并不意味着仅仅依靠IP地址就能转发,三层转发是建立在二层的基础上的,而仅仅依靠MAC地址是能够转发的.另外,由于二三层转发基于MAC地 ...

  3. 71张图详解IP地址、IP 路由、三层转发、ARP、ICMP

    71张图详解IP地址.IP 路由.三层转发.ARP.ICMP 架构师之道2021-04-07 13:51:24 https://www.toutiao.com/i6948285918986027531 ...

  4. SAP UI5 应用开发教程之一百零二 - SAP UI5 应用的打印(Print)功能实现详解试读版

    一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...

  5. Django框架学习(一)Django框架安装和项目创建详解

    Django框架学习(一)Django框架安装和项目创建详解 文章目录 Django框架学习(一)Django框架安装和项目创建详解 一.简介 1.1介绍 1.2 URL 1.3.框架原理 二.安装 ...

  6. 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...

    salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...

  7. Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解

      大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...

  8. Flink/Blink 原理漫谈(二)流表对偶性和distinct详解

    系列文章目录 Flink/Blink 原理漫谈(零)运行时的组件 Flink/Blink 原理漫谈(一)时间,watermark详解 Flink/Blink 原理漫谈(二)流表对偶性和distinct ...

  9. 深入学习Linux摄像头(四)三星平台fimc驱动详解

    深入学习Linux摄像头系列 深入学习Linux摄像头(一)v4l2应用编程 深入学习Linux摄像头(二)v4l2驱动框架 深入学习Linux摄像头(三)虚拟摄像头驱动分析 深入学习Linux摄像头 ...

最新文章

  1. hadoop HDFS常用文件操作命令
  2. 也谈子网划分和子网通信
  3. TCP连接——三次握手和四次断开
  4. 各种数据库对应的jar包、驱动类名和URL格式
  5. oracle函数 MIN([distinct|all]x)
  6. .Net 1.1下WEB引用Win控件的两个Bug
  7. 中继承父类实现父类方法的快捷键_关于封装、继承
  8. Linux 下的几个游戏模拟器
  9. html/jsp下载Excel文件
  10. SQL server sysobjects表说明
  11. Elasticsearch Index Template(索引模板)
  12. oracle内连接左连接右连接,ORACLE 左连接 右连接 内连接 区别
  13. 此语言无法安装在此计算机上win10,如何解决Win10换成无法安装英文语言包的问题...
  14. 毕业设计别再做 XX 管理系统了!!!
  15. windows10远程桌面 删除IP记录
  16. 新手试炼:C语言实现加密版2-4阶行列式运算!
  17. mysql高级教程(一)
  18. C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)
  19. 蓝桥杯 Beaver's Calculator
  20. python生成单位矩阵_python 实现一个反向单位矩阵示例

热门文章

  1. win7共享服务是哪个?win7 共享需要开启哪些服务?
  2. 存储器空间或者桌面堆_这款 Windows 桌面整理软件,让电脑充满高级感!
  3. 公布一年前发现阿里旺旺的一个xss漏洞的细节。
  4. Android多线程的四种方式:Handler、AsyncTask、ThreadPoolExector、IntentService
  5. even parity
  6. 汤晓丹的第四版计算机操作系统--第五章总结概述
  7. IDEA使用Maven常见的问题及快捷键使用
  8. 怎样获取商品历史价格信息API接口
  9. 产品说明文档 BlackBerry 9930 用户手册:用户指南,此处开始(快速入门)
  10. 点击链接弹出qq对话框