计算机网络三张表(ARP表、MAC表、路由表)总结

参考:

网络三张表:ARP表, MAC表, 路由表,实现你的网络自由!!_mac表、arp表、路由表-CSDN博客

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

首先要明确一件事,如果一个主机要发送数据,那么必然要先在该主机所在的局域网内流动起来:如果源ip和目标ip处于同一网段,那么就直接在局域网内发送即可,不必先去找到路由器;只有需要将数据发往外网时,才需要通过路由器,也就是说,如果源ip和目标ip不在同一网段,那么第一步就直接去找路由器即可。其实,不管是找另一台主机还是路由器,首先都是处于一个局域网内,不管需不需要发往外网,都需要先经过当前局域网。

从一个局域网到另一个局域网

接下来分别看看这几张表是干嘛的。

ARP 表

ARP表示例

ARP 表即 ARP 缓存表,是用于存储 IP 地址和对应的 MAC 地址之间映射关系的表格。

ARP 表中的每个表项包含两部分信息:IP 地址和对应的 MAC 地址。通常是一个关联数组,以 IP 地址作为键,对应的 MAC 地址作为值,常见的实现方式包括数组、哈希表等。

我们在应用层进行socket编程时,会指定目标的ip和端口,这样,运输层和网络层就会分别对端口和ip进行封装,但是到了链路层,我们要封装源MAC和目标MAC,源MAC可以本机获取,不过我们并没有指定目标MAC,因为局域网内的转发依靠的是MAC地址,所以,必须要获取目标主机的MAC地址,这种情况下,怎么才能知道目标主机的MAC地址呢?

PS:我们这里说的“主机”,可以直接当做网络适配器,也就是网卡来看待,收发网络数据的实体其实就是网卡,MAC地址的唯一性就是跟网卡对应的。

ARP 表中的作用就是解决 IP 地址和 MAC 地址之间的映射关系:在网络通信过程中,当主机需要与其他设备通信时,会根据目标 IP 地址在 ARP 表中查找对应的 MAC 地址,然后使用该 MAC 地址进行数据包的发送。

当然,如果 ARP 表中没有对应的 MAC 地址,则在局域网内通过发送 ARP 请求广播来获取。当主机 A 需要发送数据给主机 B 时,若主机 A 的 ARP 表中没有主机 B 的 MAC 地址,它会发送一个 ARP 请求广播包,该包内含有主机 A 自己的 IP 地址和 MAC 地址,以及目标主机 B 的 IP 地址。局域网内的其他主机都会接收到这个 ARP 请求包,但只有主机 B 会回复一个 ARP 应答包,其中包含了自己的 IP 地址和 MAC 地址。主机 A 收到 ARP 应答包后,将主机 B 的 IP 地址和 MAC 地址添加到自己的 ARP 表中。

ARP 表项会根据一定的策略进行更新和维护。例如,当主机发送 ARP 请求并收到应答后,会更新或添加相应的表项;如果一段时间内没有使用某个表项,可能会将其删除。

有了 ARP 表,主机可以在本地快速查找到目标设备的 MAC 地址,而不需要每次都发送 ARP 请求广播,减少了网络中的广播流量,提高了数据传输的速度和网络的整体效率。

ARP表、ARP协议以及ARP过程总结

ARP协议详解 ------- 一看就懂-CSDN博客

ARP的工作过程(同网段和跨网段时ARP分别都如何工作的,以及二层和三层设备的MAC地址表,ARP表和路由表)_arp,主机与网关-CSDN博客

什么是ARP?
ARP协议是“Address Resolution Protocol”(地址解析协议)的缩写。

ARP的作用
在以太网环境中,数据的传输所依懒的是MAC地址而非IP地址,而将已知IP地址转换为MAC地址的工作是由ARP协议来完成的。

在局域网中,网络中实际传输的是“帧”,帧里面是有目标主机的MAC地址的。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机的MAC地址。但这个目标MAC地址是如何获得的呢?它就是通过地址解析协议获得的。

所谓“地址解析”就是主机在发送帧前将目标IP地址转换成目标MAC地址的过程。ARP协议的基本功能就是通过目标设备的IP地址,查询目标设备的MAC地址,以保证通信的顺利进行。

ARP工作流程
假设主机A和B在同一个网段,主机A要向主机B发送信息,具体的地址解析过程如下:

(1)

主机A首先查看自己的ARP表,确定其中是否包含有主机B对应的ARP表项。如果找到了对应的MAC地址,则主机A直接利用ARP表中的MAC地址,对IP数据包进行帧封装,并将数据包发送给主机B。

(2)

如果主机A在ARP表中找不到对应的MAC地址,则将缓存该数据报文,然后以广播方式发送一个ARP请求报文。

ARP请求报文中的发送端IP地址和发送端MAC地址为主机A的IP地址和MAC地址,目标IP地址和目标MAC地址为主机B的IP地址和全0的MAC地址。

由于ARP请求报文以广播方式发送,该网段上的所有主机都可以接收到该请求,但只有被请求的主机(即主机B)会对该请求进行处理。

(3)

主机B比较自己IP地址和ARP请求报文中的 目标IP 地址,当两者相同时进行如下处理:将ARP请求报文中的发送端(即主机A)的IP地址和MAC地址存入自己的ARP表中。

之后以单播方式发送ARP响应报文给主机A,其中包含了自己的MAC地址。

(4)

主机A收到ARP响应报文后,将主机B的MAC地址加入到自己的ARP表中以用于后续报文的转发,同时将IP数据包进行封装后发送出去。

抓包分析
图中一对ARP请求和ARP应答


ARP请求报文


ARP应答报文


ARP表
设备通过ARP解析到目的MAC地址后,将会在自己的ARP表中增加IP地址到MAC地址的映射表项,以用于后续到同一目的地报文的转发。

MAC表

MAC表示例

MAC 表即 MAC 地址表,是网络设备中用于存储 MAC 地址与接口对应关系的数据表。以下是关于 MAC 表的详细介绍:

基本概念

在以太网等局域网环境中,每个网络设备都有一个唯一的 MAC 地址,类似于设备的 “身份证号码”。当设备之间进行通信时,数据包会根据目的 MAC 地址被发送到目标设备。而 MAC 表就是帮助网络设备快速找到目标设备 MAC 地址对应的接口,从而实现数据的高效转发。

建立过程

初始状态:当交换机刚刚启动时,它的 MAC 地址表是空的。

学习过程:当交换机从某个端口收到数据帧时,会读取数据帧中封装的源 MAC 地址信息,并将该 MAC 地址与接收数据帧的端口对应起来,记录在 MAC 地址表中。如果收到的数据帧的目的 MAC 地址在 MAC 表中已经存在,交换机就会根据表中的对应关系,直接将数据帧从相应的端口转发出去;如果目的 MAC 地址不在 MAC 表中,交换机就会将该数据帧向除了接收端口之外的所有端口进行转发,这个过程称为泛洪。随着网络中设备之间的通信不断进行,交换机逐渐学习到更多设备的 MAC 地址和对应的端口,MAC 地址表也就不断地完善。

作用

提高转发效率:通过查找 MAC 地址表,交换机可以快速确定数据帧应该从哪个端口转发出去,避免了对同一局域网中的所有设备都进行广播,大大减少了网络中的冗余流量,提高了数据传输的效率。

实现定向传输:使得交换机能够根据数据帧中的目的 MAC 地址,准确地将数据帧发送到目标设备所在的端口,实现了数据的定向传输,保证了数据能够正确地到达目标设备。

类型

静态 MAC 表项:由网络管理员手工配置,将特定的 MAC 地址与某个接口绑定在一起。这种配置方式可以保证某些重要的设备或用户始终能够通过固定的接口进行通信,增加了网络的安全性和可控性。例如,在企业网络中,为了防止非法用户接入服务器,可以将服务器的 MAC 地址配置为静态 MAC 表项。

动态 MAC 表项:由交换机通过自动学习的方式建立,即交换机在接收到数据帧时,根据源 MAC 地址和接收端口的对应关系自动生成 MAC 表项。动态 MAC 表项会随着网络中设备的连接和通信情况而不断变化。

综上所述,MAC表作为网络设备的核心组件之一,对于提升网络性能、保障网络安全以及实现高效的网络通信至关重要。

MAC 表主要存在于链路层设备上,如交换机、网桥等。以下是具体介绍:

交换机:

交换机是局域网中的核心设备之一,其主要工作在数据链路层。它通过记录端口所连接设备的源 MAC 地址和端口对应关系来建立 MAC 地址表,从而实现数据帧的快速转发。当交换机接收到一个数据包时,会查找数据包中的目标 MAC 地址,并在 MAC 地址表中查找相应的条目。如果找到了匹配,交换机就知道应该将数据包发送到与目标 MAC 地址关联的相应物理端口;如果找不到匹配,交换机会将数据包广播到所有连接的端口,以确保目标设备能够接收到。通过维护 MAC 地址表,交换机可以提高局域网中数据包的传输效率,避免将数据包发送到不必要的端口,从而优化网络性能。

网桥:

网桥也是一种常见的链路层设备,它的工作原理与交换机类似,也是通过学习来自不同物理端口的 MAC 地址,并在其内部维护一个 MAC 地址表来进行数据帧的转发决策。当网桥接收到一个数据帧时,它会查找数据帧中的目标 MAC 地址,并检查 MAC 地址表以确定应该将数据帧转发到哪个物理端口。如果目标 MAC 地址在表中,网桥知道该数据帧只需在特定端口转发;如果目标 MAC 地址不在表中,网桥会将数据帧广播到所有其他端口,以确保目标设备能够接收到。

总之,MAC表作为链路层设备的核心组件,对于提升网络性能、保障网络安全以及实现高效的网络通信至关重要。

路由表

简易路由表示例

可以看到,路由表的目标是网络号,而不会管主机号,只有到了目标网络之后,才会在目标局域网内根据目标ip去找到目标MAC,然后找到对应的主机。

一个局域网如果想要把数据发往另一个局域网,那么就需要经过若干级路由,在路由过程中,到达目标局域网之前,数据会通过存储转发等策略在不同路由器上一直向前发送。

路由表是路由器或其他联网设备中存储路由信息的电子表格或类数据库,以下是关于它的详细介绍:

基本概念

在计算机网络中,路由表用于指导数据包的转发路径选择,它记录了去往不同目的 IP 地址或网络的下一跳信息、出接口等关键内容,类似于人们出行时所依赖的地图或导航系统。

主要作用

路径决策:当路由器接收到一个数据包时,它会解析出数据包的目的 IP 地址,然后根据路由表中的信息,按照一定的规则和算法,如最长掩码匹配原则,找到与目的 IP 地址最匹配的路由条目,从而确定数据包的转发路径。

数据转发:通过查找路由表,路由器能够将数据包准确地发送到下一个路由器或目标主机,确保数据包在网络中的正确传输,实现不同网络之间的通信。

常见类型

静态路由表:由系统管理员手动配置,明确了数据包到达目的地所需经过的固定路径,不会随网络结构的变化而自动改变。适用于网络拓扑结构简单、稳定,且无需频繁调整路由的情况。

动态路由表:由路由器根据网络系统的运行情况和路由协议自动学习和调整。路由器会定期交换路由信息,更新路由表,以适应网络拓扑的变化,如链路故障、新设备的加入等。常见的动态路由协议有 RIP、OSPF、BGP 等。

主要内容

目的网络/掩码:也称为路由前缀,用于标识 IP 包的目的地址或目的网络。一个路由条目通常包含网络地址和子网掩码,两者共同确定了目的主机或路由器所在的网段。

下一跳:指数据包从当前路由器转发到下一个路由器的 IP 地址。当下一跳字段代表路由器时,其值为路由的 IP 地址;如果是直连网络,则下一跳为对应的接口。

出接口:说明 IP 包将从该路由器的哪个接口转发出去。

协议类型:表示该路由条目是通过何种路由协议学习到的,如直连路由、静态路由、RIP、OSPF、BGP 等。

优先级:标识路由加入 IP 路由表的优先级,优先级值越小则路由越优。当存在多条到达同一目的地的路由时,路由器会优先选择优先级高的路由。

开销:路由的度量值,用于衡量到达目的地的路径成本。不同的路由协议计算开销的方法可能不同,一般来说,开销越小的路径越优先被选择。

标志:用于标记路由的一些特殊属性,如是否是迭代路由等。

应用场景

路由器:路由器是使用路由表的核心设备,它根据路由表中的信息将数据包从一个网络转发到另一个网络,实现不同局域网、广域网之间的通信。无论是企业级网络、互联网服务提供商的网络,还是小型家庭或办公室网络中的路由器,都需要依靠路由表来正确地转发数据包。

主机:除了路由器,普通主机也可以有路由表。例如,在 Windows 系统中,可以通过 “route print” 命令查看本地计算机上的路由表。主机的路由表用于决定本地计算机产生的数据包如何通过网络接口发送到目标网络或主机。

总之,路由表是网络通信中不可或缺的一部分,无论是对于专业的网络设备如路由器,还是普通的主机,都起着至关重要的作用。

总结 

通常交换机上只有MAC表

交换机上存在 MAC 表,用于记录设备的 MAC 地址与端口的对应关系,以便在转发数据时根据目的 MAC 地址快速找到对应的端口。

通常路由器上有ARP表和路由表

ARP 表:路由器在进行 IP 转发时,可能需要通过 ARP 获取下一跳网关的 MAC 地址,因此在处理 ARP 请求和响应时会短暂地使用 ARP 表来缓存相关信息。

路由表:是路由器的核心数据结构之一,用于存储到达不同网络的路径信息,包括目的网络地址、子网掩码、下一跳地址、出接口等,以指导数据包的转发。

通常计算机上主要有ARP表

MAC 表:网卡等网络接口设备中会维护一个小型的 MAC 地址缓存表,用于记录最近与之通信的设备的 MAC 地址,以提高通信效率,但这个表通常不是用户可直接查看和管理的完整意义上的 MAC 表。

ARP 表:操作系统会维护一个 ARP 缓存表,用于存储本地网络中已知设备的 IP 地址与 MAC 地址的映射关系,当需要向某个 IP 地址发送数据时,首先会在 ARP 缓存表中查找对应的 MAC 地址。

路由表:计算机的操作系统会维护一个路由表,用于确定数据包的转发路径,可以根据网络配置自动生成直连路由和默认路由,也可以由用户手动添加静态路由。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/66943.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Nomoto 船舶模型】

【Nomoto 船舶模型】 1. Nomoto 船舶模型简介2. 来源及发展历程3. 构建 一阶模型Nomoto 船舶模型3.1 C 实现3.2 Python 实现3.3 说明 5. 参数辨识方法5.1 基于最小二乘法的参数辨识5.2 数学推导5.3 Python 实现5.4 说明 4. 结论参考文献 1. Nomoto 船舶模型简介 Nomoto 模型是…

差分进化算法 (Differential Evolution) 算法详解及案例分析

差分进化算法 (Differential Evolution) 算法详解及案例分析 目录 差分进化算法 (Differential Evolution) 算法详解及案例分析1. 引言2. 差分进化算法 (DE) 算法原理2.1 基本概念2.2 算法步骤3. 差分进化算法的优势与局限性3.1 优势3.2 局限性4. 案例分析4.1 案例1: 单目标优化…

深入理解GPT底层原理--从n-gram到RNN到LSTM/GRU到Transformer/GPT的进化

从简单的RNN到复杂的LSTM/GRU,再到引入注意力机制,研究者们一直在努力解决序列建模的核心问题。每一步的进展都为下一步的突破奠定了基础,最终孕育出了革命性的Transformer架构和GPT大模型。 1. 从n-gram到循环神经网络(RNN)的诞生 1.1 N-gram 模型 在深度学习兴起之前,处理…

【JWT】jwt实现HS、RS、ES、ED签名与验签

JWT 实现 HS、RS、ES 和 ED 签名与验签 签名方式算法密钥类型签名要点验签要点HSHMAC-SHA256对称密钥- 使用 crypto/hmac 和对称密钥生成 HMAC 签名- 将 header.payload 作为数据输入- 使用同一密钥重新计算 HMAC 签名- 比较计算结果与接收到的签名是否一致RSRSA-SHA256公钥 …

地址栏信息location

获取信息 页面跳转 location.href当前地址栏信息 location.assign()设置跳转新的页面 location.replace() location.reload()刷新页面

程序员转型测试:解锁漏洞挖掘新旅程

前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏关注哦 💕 目录 程序…

StarRocks常用命令

目录 1、StarRocks 集群管理&配置命令 2、StarRocks 常用操作命令 3、StarRocks 数据导入和导出 1、StarRocks 集群管理&配置命令 查询 FE 节点信息 SHOW frontends; SHOW PROC /frontends; mysql -h192.168.1.250 -P9030 -uroot -p -e "SHOW PROC /dbs;"…

08-ArcGIS For JavaScript-通过Mesh绘制几何体(Cylinder,Circle,Box,Pyramid)

目录 概述代码实现1、Mesh.createBox2、createPyramid3、Mesh.createSphere4、Mesh.createCylinder 完整代码 概述 对于三维场景而言,二位的点、线、面,三维的圆、立方体、圆柱等都是比较常见的三维对象,在ArcGIS For JavaScript中我们知道点…

Linux中page、buffer_head、bio的关系

在Linux中,page、buffer_head、bio这三个概念紧密相关,共同构成了块设备I/O和内存管理的重要部分,它们的联系主要体现在以下方面: page与buffer_head 基于page构建:buffer_head通常是基于page来构建的,一…

直线拟合例子 ,岭回归拟合直线

目录 直线拟合,算出离群点 岭回归拟合直线: 直线拟合,算出离群点 import cv2 import numpy as np# 输入的点 points np.array([[51, 149],[122, 374],[225, 376],[340, 382],[463, 391],[535, 298],[596, 400],[689, 406],[821, 407] ], dtypenp.float32)# 使用…

SpringCloud两种注册中心

SpringCloud 基本概念 系统架构 我们之前做的所有的项目都属于单体架构,下面我们将要学习更适合大型项目的分布式架构 单体架构: 将业务的所有功能几种在一个项目中开发,打成一个包部署。 优点:架构简单、部署成本低 缺点&am…

SpringAI 搭建智能体(二):搭建客服系统智能体

在现代人工智能应用中,智能体(Agent) 是一个重要的概念,它的核心能力是自主性与灵活性。一个智能体不仅能够理解用户的需求,还能拆解任务、调用工具完成具体操作,并在复杂场景中高效运行。在本篇博客中&…

SVN客户端使用手册

目录 一、简介 二、SVN的安装与卸载 1. 安装(公司内部一般会提供安装包和汉化包,直接到公司内部网盘下载即可,如果找不到可以看下面的教程) 2. 查看SVN版本 ​编辑 3. SVN卸载 三、SVN的基本操作 1. 检出 2. 清除认证数据 3. 提交…

HTML 文本格式化详解

在网页开发中,文本内容的呈现方式直接影响用户的阅读体验。HTML 提供了多种文本格式化元素,可以帮助我们更好地控制文本的显示效果。本文将详细介绍 HTML 中的文本格式化元素及其使用方法,帮助你轻松实现网页文本的美化。 什么是 HTML 文本格…

衡量算法性能的量级标准:算法复杂度

今天开始数据结构的学习!作为一大重点,拿出态度很重要,想要真实掌握,博客笔记自然少不了!重点全部上色!避免疏忽 下面我们从0基础开始学习今天的第一节!不用担心看不懂,拒绝枯燥的理…

Spring Boot Starter介绍

前言 大概10来年以前,当时springboot刚刚出现并没有流行,当时的Java开发者们开发Web应用主要是使用spring整合springmvc或者struts、iBatis、hibernate等开发框架来进行开发。项目里一般有许多xml文件配置,其中配置了很多项目中需要用到的Be…

Java面试题2025-Spring

讲师:邓澎波 Spring面试专题 1.Spring应该很熟悉吧?来介绍下你的Spring的理解 1.1 Spring的发展历程 先介绍Spring是怎么来的,发展中有哪些核心的节点,当前的最新版本是什么等 通过上图可以比较清晰的看到Spring的各个时间版本对…

Linux 切换到 Root 用户的方式及差异详解

在 Linux 系统中,切换到 root 用户进行管理和操作是常见需求。不同的切换方法会影响环境变量、工作目录以及加载的配置文件。本文将介绍几种常用的切换方式及它们的特点。 切换到 Root 用户的主要方式 1. sudo su 这是通过 sudo 提权后调用 su 切换到 root 用户的…

虹科分享 | 汽车NVH小课堂之听音辨故障

随着车主开始关注汽车抖动异响问题,如何根据故障现象快速诊断异响来源,成了汽修人的必修课。 一个比较常用的方法就是靠“听”——“听音辨故障”。那今天,虹科Pico也整理了几个不同类型的异响声音,一起来听听看你能答对几个吧 汽…

浅谈Redis

2007 年,一位程序员和朋友一起创建了一个网站。为了解决这个网站的负载问题,他自己定制了一个数据库。于2009 年开发,称之为Redis。这位意大利程序员是萨尔瓦托勒桑菲利波(Salvatore Sanfilippo),他被称为Redis之父,更…