基于ping的过程学习二、三层转发之三(ARP表、FDB表、路由表详解)
六、交换机的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表、路由表详解)相关推荐
- PING用一生诠释了TCP/IP(4)------二三层转发为PING劈荆斩棘
作为一个网络使用者,你也许从来没有思考过源及目的主机之间究竟发生了什么,因为网络对用户来说是一个黑匣子,所有的细节都被屏蔽掉了,你只能知道通还是不通,能不能上网?但是作为一个网络设计者,研究者,你就必 ...
- 交换机二三层转发原理简单总结
首先二层转发是基于MAC地址转发,三层转发基于IP地址转发,但是这并不意味着仅仅依靠IP地址就能转发,三层转发是建立在二层的基础上的,而仅仅依靠MAC地址是能够转发的.另外,由于二三层转发基于MAC地 ...
- 71张图详解IP地址、IP 路由、三层转发、ARP、ICMP
71张图详解IP地址.IP 路由.三层转发.ARP.ICMP 架构师之道2021-04-07 13:51:24 https://www.toutiao.com/i6948285918986027531 ...
- SAP UI5 应用开发教程之一百零二 - SAP UI5 应用的打印(Print)功能实现详解试读版
一套适合 SAP UI5 初学者循序渐进的学习教程 作者简介 Jerry Wang,2007 年从电子科技大学计算机专业硕士毕业后加入 SAP 成都研究院工作至今.Jerry 是 SAP 社区导师,S ...
- Django框架学习(一)Django框架安装和项目创建详解
Django框架学习(一)Django框架安装和项目创建详解 文章目录 Django框架学习(一)Django框架安装和项目创建详解 一.简介 1.1介绍 1.2 URL 1.3.框架原理 二.安装 ...
- 【转载】salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解...
salesforce 零基础开发入门学习(四)多表关联下的SOQL以及表字段Data type详解 建立好的数据表在数据库中查看有很多方式,本人目前采用以下两种方式查看数据表. 1.采用schema ...
- Tensorflow 2.x(keras)源码详解之第十二章:keras中的损失函数之BinaryCrossentropy详解
大家好,我是爱编程的喵喵.双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中.从事机器学习以及相关的前后端开发工作.曾在阿里云.科大讯飞.CCF等比赛获得多次Top名次.现 ...
- Flink/Blink 原理漫谈(二)流表对偶性和distinct详解
系列文章目录 Flink/Blink 原理漫谈(零)运行时的组件 Flink/Blink 原理漫谈(一)时间,watermark详解 Flink/Blink 原理漫谈(二)流表对偶性和distinct ...
- 深入学习Linux摄像头(四)三星平台fimc驱动详解
深入学习Linux摄像头系列 深入学习Linux摄像头(一)v4l2应用编程 深入学习Linux摄像头(二)v4l2驱动框架 深入学习Linux摄像头(三)虚拟摄像头驱动分析 深入学习Linux摄像头 ...
最新文章
- hadoop HDFS常用文件操作命令
- 也谈子网划分和子网通信
- TCP连接——三次握手和四次断开
- 各种数据库对应的jar包、驱动类名和URL格式
- oracle函数 MIN([distinct|all]x)
- .Net 1.1下WEB引用Win控件的两个Bug
- 中继承父类实现父类方法的快捷键_关于封装、继承
- Linux 下的几个游戏模拟器
- html/jsp下载Excel文件
- SQL server sysobjects表说明
- Elasticsearch Index Template(索引模板)
- oracle内连接左连接右连接,ORACLE 左连接 右连接 内连接 区别
- 此语言无法安装在此计算机上win10,如何解决Win10换成无法安装英文语言包的问题...
- 毕业设计别再做 XX 管理系统了!!!
- windows10远程桌面 删除IP记录
- 新手试炼:C语言实现加密版2-4阶行列式运算!
- mysql高级教程(一)
- C++:重定义:符号重定义:变量重定义(二):解决变量重定义(const static)
- 蓝桥杯 Beaver's Calculator
- python生成单位矩阵_python 实现一个反向单位矩阵示例