FDB表-ARP表-路由表

article/2025/9/17 14:08:47

简介

  1. 二层转发通过查询FDB表实现,不对报文做任何修改。
  2. 三层转发通过查询路由表和arp表实现,路由表确定出接口,然后以出接口的MAC作为报文的源MAC;以报文的目的IP查询arp表获取下一跳MAC,以该MAC作为报文的目的MAC; 因此三层转发会修改报文的二层地址。

FDB表

一、 简介

  1. FDB表即二层MAC地址表。
  2. 记录MAC、端口、VLAN的对应关系。
  3. 用于二层转发。
  4. FDB表存有交换机发送端口与报文目的MAC地址的映射,有动态和静态两部分,当某个端口收到一个数据帧时,会将该数据帧的源MAC地址与端口的映射关系存储在FDB表中, 如果FDB表中已经存在该表项,更新该表项的老化时间。

二、 类别

  1. 动态地址表项
    最开始的时候,交换机FDB地址表中的所有地址表项都是动态的。如果经过一段时间(老化时间Agingtime)之后,设备没有数据传输,那么该地址表项就会被删除。这样能防止地址表项变得过于庞大,当确信某个设备从网络中去除后,就把该设备的地址表项删除掉。当交换机关机重启动或者reset时,所有的动态地址表项都将被删除。
  2. 固定地址表项
    如果老化时间(Agingtime)被设为0,那么该地址表项将存储在MAC地址表中而不会被动态删除,直到交换机关机或者重启。
  3. 永久地址表项
    永久地址表项将一直保存在MAC地址表中,即使交换机关机或者重启。永久地址表项必须由系统管理员手工设定。一个永久地址表项可以是一个单播地址,也可以是一个组播地址(本系统暂时不支持组播地址)。所有由命令行输入的静态地址表项都将被存储为永久地址表项。永久地址表项一经建立,不会老化,但会随交换机的配置变化而变化。
    在这里插入图片描述

三、生成过程

(一)单个交换机

在这里插入图片描述

  1. 主机A会将一个源MAC地址为自己,目标MAC地址为主机B的数据帧发送给交换机。
  2. 交换机收到此数据帧后,首先将数据帧中的源MAC地址和对应的接口(接口为f 0/1) 记录到MAC地址表中。
  3. 然后交换机会检查自己的MAC地址表中是否有数据帧中的目标MAC地址的信息,如果有,则从MAC地址表中记录的接口发送出去,如果没有,则会将此数据帧从非接收接口的所有接口发送出去(泛洪:也就是除了Ethernet 0/0/1接口)。
  4. 这时,局域网的所有主机都会收到此数据帧,但是只有主机B收到此数据帧时会响应这个报文,并回应一个数据帧,此数据帧源MAC是主机B的MAC地址, 目的MAC是主机A的MAC地址。
  5. 当交换机收到主机B回应的数据帧后,也会记录数据帧中的源MAC地址(也就是主机B的MAC地址)和入接口到FDB表中,这时,再当主机A和主机B通信时,交换机根据MAC地址表中的记录,实现单播了。

(二)多个交换机

在这里插入图片描述

  1. 主机A将一个源MAC地址为自己,目标MAC地址主机C的数据帧发送给交换机1。
  2. 交换机1收到此数据帧后,会学习源MAC地址,并检查MAC地址表,发现没有目标MAC地址的记录,则会将数据帧泛洪出去,主机B和交换机2都会收到此数据帧。
  3. 交换机2收到此数据帧后也会将数据帧中的源MAC地址和对应的入接口记录到MAC地址表中,并检查自己的MAC地址表,发现没有目标MAC地址的记录,则会泛洪此数据帧。
  4. 主机C收到数据帧后,会响应这个数据帧,并回复一个源MAC地址为自己的数据帧,这时交换机2和交换机1都会将主机C的MAC地址和对应入接口记录到自己的MAC地址表中,并且以单播的形式将此数据帧发送给主机A。
  5. 这时,主机A和主机C通信就是一单播的形式传输数据帧了,主机B和主机C通信如上述过程一样,因此交换机2的MAC地址表中记录着主机A和主机B的MAC地址都对应接口Ethernet0/0/1。

(三)总结

  1. 从上面的两幅图可以看出,交换机具有动态学习源MAC地址的功能,并且交换机的一个接口可以对应多个MAC地址,但是一个MAC地址只能对应一个接口。
  2. 交换机动态学习的MAC地址默认只有300S的有效期,如果300S内记录的MAC地址没有通信,则会删除此记录。
  3. 报文经过交换机时只查FDB表进行转发,查不到则泛洪,不会修改报文内容。

ARP表

一、简介

  1. 记录IP与MAC的对应关系。
  2. 每台主机中保留着一张ARP表。
  3. ARP协议是工作在网络层的协议,它负责将IP地址解析为MAC地址。
  4. 用于三层路由转发时查询目的IP的下一跳MAC,填充为报文的目的MAC。

二、生成过程

在这里插入图片描述

  1. 如果主机A想发送数据给主机B,主机A首先会检查自己的ARP缓存表,查看是否有主机B的IP地址和MAC地址的对应关系,如果有,则会将主机A的MAC地址作为源MAC地址,ARP表中B的IP地址对应的MAC作为目的MAC封装到数据帧中。如果没有,主机A则会发送一个ARP请求信息,请求的目标IP地址是主机B的IP地址,目标MAC地址是MAC地址的广播帧(即FF-FF-FF-FF-FF-FF),源IP地址和MAC地址是主机A的IP地址和MAC地址。
  2. 当交换机接受到此数据帧之后,发现此数据帧是广播帧,因此,会将此数据帧从非接收的所有接口发送出去。
  3. 当主机B接受到此数据帧后,会校对IP地址是否是自己的,如果不是,丢包。如果是,将主机A的IP地址和源MAC地址的对应关系记录到自己的ARP缓存表中,同时会发送一个ARP应答,源IP和MAC是自己的地址。
  4. 主机A在收到这个回应的数据帧之后,在自己的ARP缓存表中记录主机B的IP地址和MAC地址的对应关系。而此时交换机已经学习到了主机A和主机B的MAC地址了(FDB表)。
  5. 如果一段时间,ARP中的表项没有用的,则回老化掉,再次使用时需要再次ARP请求。

三、免费ARP

(一)简介

  1. 免费 ARP(Gratuitous ARP)包是一种特殊的 ARP 请求,它并非期待得到 IP 对应的 MAC 地址,而是当主机启动的时候,发送一个 Gratuitous ARP 请求,即宣告自己的 IP 地址的 MAC 地址。
  2. 免费 ARP 报文与普通 ARP 请求报文的区别在于报文中的目标 IP 地址。普通 ARP 报文中的目标 IP 地址是其他主机的 IP 地址;而免费 ARP 的请求报文中,目标 IP 地址是自己的 IP 地址。

(二)作用

  1. 该类型报文起到一个宣告作用。它以广播的形式将数据包发送出去,不需要得到回应,只为了告诉其他计算机自己的 IP 地址和 MAC 地址。
  2. 可用于检测 IP 地址冲突。当一台主机发送了免费 ARP 请求报文后,如果收到了 ARP 响应报文,则说明网络内已经存在使用该 IP 地址的主机。
  3. 可用于更新其他主机的 ARP 缓存表。如果该主机更换了网卡,而其他主机的 ARP 缓存表仍然保留着原来的 MAC 地址。这时,可以发送免费的 ARP 数据包。其他主机收到该数据包后,将更新 ARP 缓存表,将原来的 MAC 地址替换为新的 MAC 地址。

路由表

一、简介

  1. 路由器负责不同网络之间的通信,它是当今网络中的重要设备,可以说没有路由器就没有当今的互联网。在路由器中也有一张表,这张表叫路由表,记录着到不同网段的信息。路由表中的信息分为直连路由和非直连路由。
  2. 直连路由:是直接连接在路由器接口的网段,由路由器自动生成 通过接口的IP和掩码生成。
  3. 非直连路由:就是不是直接连接在路由器接口上的网段,此记录需要手动添加或者是使用动态路由。
  4. 路由表中记录的条目有的需要手动添加(称为静态路由),有的动态获取的(称为动态路由)。直连路由属于静态路由。
  5. 路由器是工作在网络层的,在网络层可以识别IP地址。当路由器的某个接口收到一个包时,路由器会读取包的目的IP,然后在路由表中进行查找。如果在路由表中找到目标地址的路由条目,则把包转发到路由器的相应接口,如果在路由表中没有找到目标地址的路由条目,那么,如果路由配置默认路由,就科举默认路由的配置转发到路由器的相应接口;如果没有配置默认路由,则将该包丢弃,并返回不可到达的信息。

二、生成过程

在这里插入图片描述

  1. HostA在网络层将来自上层的报文封装成IP数据包,其中源IP地址为自己,目标IP地址是HostB,HostA会用本机配置的24位子网掩码与目标地址进行“与”运算,得出目标地址与本机不是同一网段,因此发送HostB的数据包需要经过网关路由AR1的转发。
  2. HostA通过ARP请求获取网关路由AR1的E0口的MAC地址,并在链路层将E0接口的MAC地址封装成目标MAC地址,源MAC地址是自己。
  3. 路由器A从E0接口接收到数据帧,把数据链路层的封装去掉,并检查路由表中是否有目标IP地址网段(即192.168.2.2的网段)相匹配的的项,根据路由表中记录到192.168.2.0网段的数据请发送给下一跳地址10.1.1.2,出接口时E1,因此数据在路由器A的E1口重新封装,此时,源MAC地址是路由器A的E1接口的MAC地址,封装的目标MAC地址则是路由器AR2的E0接口的MAC地址。
  4. 路由AR2从E0口接收到数据帧,同样会把数据链路层的封装去掉,对目标IP地址进行检测,并与路由表进行匹配,此时发现目标地址的网段正好是自己E1口的直连网段,出接口是E1口,路由器AR2通过ARP广播,获知HostB的MAC地址,此时数据包在路由器AR2的E1接口再次封装,源MAC地址是路由器AR2的E1接口的MAC地址,目标MAC地址是HostB的MAC地址。封装完成后直接从路由器AR2的E1接口发送给HostB。
  5. 此时HostB才会收到来自HostA发送的数据。

三、总结

  1. 路由表负责记录一个网络到另一个网络的路径,因此路由器是根据路由表工作的。

总结

  1. 三层转发先调用路由表查询路由信息,获取出接口;然后查询arp表获取下一跳mac。
  2. FDB表:MAC,PORT,VLAN的对应。
  3. ARP表:IP与MAC的对应。
  4. 路由表:IP网段与IP网段的对应。

http://chatgpt.dhexx.cn/article/ZJu7yFN1.shtml

相关文章

转发表(MAC表)、ARP表、路由表总结

全文概要 计算机网络中一个关键步骤在于通信路径上不同节点对于流经本节点的数据包转发,常见的交换设备主要是交换机(第二层、三层)和路由器(第三层),在实际运行时,它们各自维护一些表结构帮助完成数据包的正确寻址与转发,本文详…

Mac地址表、ARP表、路由表

一、Mac地址表。 Mac地址表记录了Mac地址和对应接口的关系,如图1-1所示。 图1-1 Mac地址表代表了交换机从某个接口学习到了它的Mac地址并记录下来,后续交换机如果要转发数据则可通过报文的Mac地址对应Mac地址表来转发数据。 二、ARP表。 ARP表记录着路…

ARP表、MAC表、路由表是什么

最近学习网络知识,租了一个3A服务器用来做实验,很方便,有兴趣后台私信我 1、ARP表 提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。 在实际应用中,我们经常遇到这样的…

MAC地址表、ARP表和路由表详解

一:MAC地址表详解 说到MAC地址表,就不得不说一下交换机的工作原理了,因为交换机是根据MAC地址表转发数据帧的。在交换机中有一张记录着局域网主机MAC地址与交换机接口的对应关系的表,交换机就是根据这张表负责将数据帧传输到指定的…

网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!

背景说明: 网络的知识,是大家开发过程中,非常重要也是非常底层的知识。所以网络知识是一个非常、非常核心的面试知识点。 在40岁老架构师 尼恩的读者交流群(50)中,其相关面试题是一个非常、非常高频的交流话题。社群中&#xff…

路由表(RIB表、FIB表)、ARP表、MAC表整理

在一些常见的网络设备中(如交换机、路由器),为了实现网络转发功能,各自通过维护一些表项来完成路由寻址及快速转发功能,其中比较重要的表项有: 路由表转发表Mac表ARP表 本文对这网络中的最关键的四个表项做一个详细介绍。 目录…

MAC表,ARP表,路由表总结

全文概要 计算机网络中一个关键步骤在于通信路径上不同节点对于流经本节点的数据包转发,常见的交换设备主要是交换机(第二层、三层)和路由器(第三层),在实际运行时,它们各自维护一些表结构帮助完成数据包的正确寻址与转发,本文详细…

LINUX下ARP表操作

Linux下操作ARP表项 ARP缓存表arp_tbl由协议栈在运行期间自动维护,包括邻居新建,更新,回收等。同时,TCP/IP协议栈的实现中也提供了三个命令,可以用来由用户维护arp_tbl,这三个命令分别是SIOCDARP(删除arp_t…

ARP协议报文格式及ARP表简述

目录 1 ARP协议报文概述 1.1 ARP/RARP报文格式 1.2 ARP报文抓包 1.2.1 arp请求 1.2.2 arp应答 2 ARP映射表 2.1 动态ARP表项 2.2 静态ARP表项 2.3 短静态ARP表项 2.4 长静态ARP表项 3 ARP攻击(mac地址欺骗) 1 ARP协议报文概述 ARP&#xff0…

ARP表是什么

ARP表    提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。   在实际应用中,我们经常遇到这样的问题:已知一个机器的IP地址,但在实际网络的链路上传送数据帧时,最…

ARP协议报文格式及ARP表

摘自:《深入理解计算机网络》 王达著 机械工业出版社 相关知识链接 IPV4数据报头部格式请点击这里 IPv6数据报头部格式请点击这里 IPv4数据报的封装与解封装请点击这里 IPv4数据报的分段与重组请点击这里 ARP协议报文格式及ARP表 ARP(Address Res…

lwip---(六)ARP表

ARP,全称Address Resolution Protocol,译作地址解析协议,是位于TCP/IP协议栈底层的协议。任何网络的通信都是基于底层硬件链路的,底层的数据链路有着自己的一套寻址机制,在以太网中,往往是通过一个48位的MA…

网络中的三张表——ARP表、MAC表、路由表

1、ARP表 提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。   在实际应用中,我们经常遇到这样的问题:已知一个机器的IP地址,但在实际网络的链路上传送数据帧时,最终还…

java根据前序和中序建树_(Java实现)二叉树---根据前序、中序、后序数组还原二叉树...

概述在上一篇文章中讲到顺序存储二叉树,一般是用于完全二叉树,通过统一的数学公式可以将数组还原成完全二叉树 而对于普通的二叉树来说,也可以根据前序、中序和后序遍历得到的数组,还原二叉树 还原还原的情况分两种,分…

二叉树——前序和中序得到后序

由二叉树的前序和中序如何得到二叉树的后序呢?要给出答案,首先得明白什么是前序、中序、后序。 二叉树前序:遍历顺序为,根节点、左子树、右子树;中序:遍历顺序为,左子树、根节点、右子树&#…

二叉树的遍历|前序、中序、后序、层序遍历

文章目录 6.8 遍历二叉树6.8.1 二叉树遍历原理6.8.2 二叉树遍历方法1.前序遍历2.中序遍历3.后序遍历4.层序遍历 6.8.3 前序遍历算法6.8.4 中序遍历算法6.8.5 后序遍历算法6.8.6 推导遍历结果 6.8 遍历二叉树 6.8.1 二叉…

前序遍历二叉树

package cm.com.algorithm.tree;/*** 前序遍历2叉树* 前序遍历是指,对于树中的任意节点来说,先打印这个节点,然后再打印它的左子树,最后打印它的右子树** author liushuai13meicai.cn* date 2019-06-11 22:14*/ public class DLRT…

java根据前序和中序建树_Java实现根据前序遍历构建二叉树(前序遍历、中序遍历、后序遍历)...

Java实现根据前序遍历构建二叉树(前序遍历、中序遍历、后序遍历),Java关于ACM的代码真的好少,想参考如何用java实现二叉树googl 前言 Java关于ACM的代码真的好少,想参考如何用java实现二叉树google了一上午都没找到资料,只能自己仿…

C实现前序遍历二叉树

1. 实验目的 (1)掌握二叉树的逻辑结构; (2)掌握二叉树的二叉链表存储结构; (3)验证二叉树的二叉链表存储及遍历操作。 2. 实验目的 (1)建立一棵含有n个结…

前序序列创建二叉树

7-9 前序序列创建二叉树 (25 分) 编一个程序,读入用户输入的一串先序遍历字符串,根据此字符串建立一个二叉树(以二叉链表存储)。 例如如下的先序遍历字符串: ABC##DE#G##F### 其中“#”表示的是…