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

news2025/1/24 16:18:04

参考:

网络三张表: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 请求广播,减少了网络中的广播流量,提高了数据传输的速度和网络的整体效率。

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” 命令查看本地计算机上的路由表。主机的路由表用于决定本地计算机产生的数据包如何通过网络接口发送到目标网络或主机。

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

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

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

相关文章

cursor重构谷粒商城04——vagrant技术快速部署虚拟机

前言:这个系列将使用最前沿的cursor作为辅助编程工具,来快速开发一些基础的编程项目。目的是为了在真实项目中,帮助初级程序员快速进阶,以最快的速度,效率,快速进阶到中高阶程序员。 本项目将基于谷粒商城…

【玩转全栈】----Django连接MySQL

阅前先赞,养好习惯! 目录 1、ORM框架介绍 选择建议 2、安装mysqlclient 3、创建数据库 4、修改settings,连接数据库 5、对数据库进行操作 创建表 删除表 添加数据 删除数据 修改(更新)数据: 获取数据 1、OR…

Jmeter使用Request URL请求接口

简介 在Jmeter调试接口时,有时不清楚后端服务接口的具体路径,可以使用Request URL和cookie来实现接口请求。以下内容以使用cookie鉴权的接口举例。 步骤 ① 登录网站后获取具体的Request URL和cookie信息 通过浏览器获取到Request URL和cookie&#…

mock可视化生成前端代码

介绍:mock是我们前后端分离的必要一环、ts、axios编写起来也很麻烦。我们就可以使用以下插件,来解决我们的问题。目前支持vite和webpack。(配置超级简单!) 欢迎小伙伴们提issues、我们共建。提升我们的开发体验。 vi…

输入网址到网页显示,发生了什么--讲述

输入www.baidu.com作为网址, 孤身的人-HTTP 浏览器要做的第一步就是 解析URL,根据url里面的资源路径,确认服务器资源和路径,生成http请求消息,包括请求消息(请求行 消息头 请求体) 举例&am…

1.CSS的三大特性

css有三个非常重要的三个特性&#xff1a;层叠性、继承性、优先级 1.1 层叠性 想通选择器给设置想听的样式&#xff0c;此时一个样式就会覆盖&#xff08;层叠&#xff09;另一个冲突的样式。层叠性主要是解决样式冲突的问题。 <!DOCTYPE html> <html lang"en&…

Lock和Synchronized的区别,源码分析

Lock和Synchronized的区别&#xff0c;源码分析 探究Lock锁&#xff08;指实现Lock接口的锁&#xff0c;比如是ReentrantLock锁&#xff09;与Synchronized的区别。 以上区别都体现在Lock接口里定义的方法&#xff0c;以及实现Lock接口的类&#xff08;比如ReentrantLock&#…

如何把jupyter的一个.ipynb文件的多个单元格cell合并为1个cell

1 jupyter的一个.ipynb文件的多个单元格cell合并为1个cell 步骤 1&#xff1a;打开 your_notebook.ipynb 文件 启动 Jupyter Notebook。 导航到你的工作目录&#xff08;例如 F:\main&#xff09;。 打开 your_notebook.ipynb 文件。 步骤 2&#xff1a;选择所有单元格 点击…

Linux中的几个基本指令(二)

文章目录 1、cp指令例一&#xff1a;例二&#xff1a;例三&#xff1a;例四&#xff1a;例五&#xff1a; 2、mv 指令例一&#xff1a;例二&#xff1a; 3、cat指令例一&#xff1a; 4、tac指令5、which指令6、date指令时间戳&#xff1a;7、zip指令 今天我们继续学习Linux下的…

SSM开发(一)JAVA,javaEE,spring,springmvc,springboot,SSM,SSH等几个概念区别

目录 JAVA 框架 javaEE spring springmvc springboot SSM SSH maven JAVA 一种面向对象、高级编程语言&#xff0c;Python也是高级编程语言&#xff1b;不是框架(框架&#xff1a;一般用于大型复杂需求项目&#xff0c;用于快速开发)具有三大特性&#xff0c;所谓Jav…

GS论文阅读--GeoTexDensifier

前言 本文是一个关于高斯致密化策略对高斯地图进行优化&#xff0c;他主要关注了几何结构和纹理信息。我最近对于高斯点的分布比较感兴趣&#xff0c;因为高斯点的分布决定了之后重建质量的好坏&#xff0c;初始化高斯很重要&#xff0c;但之后的维护需要致密化与修建策略&…

计算机视觉算法实战——无人机检测

✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连 ✨ ✨个人主页欢迎您的访问 ✨期待您的三连✨ ​ ​ 1. 引言✨✨ 随着无人机技术的快速发展&#xff0c;无人机在农业、物流、监控等领域的应用越来越广泛。然而&#xff0c;无人机的滥用也带…

2025/1/21 学习Vue的第四天

睡觉。 --------------------------------------------------------------------------------------------------------------------------------- 11.Object.defineProperty 1.在我们之前学习JS的时候&#xff0c;普通得定义一个对象与属性。 <!DOCTYPE html> <h…

软件测试 —— Postman(断言)

软件测试 —— Postman&#xff08;断言&#xff09; 断言示例断言检查状态码验证响应体中的特定字段检查响应时间验证响应头检查响应体中的字符串验证JSON数组长度 使用环境变量运行集合并查看结果 检查状态码检查响应体中的字符串检查响应体字符串是否相等验证响应头字段检查…

高并发处理 --- 超卖问题+一人一单解决方案

在高并发场景下&#xff0c;超卖和一人一单是两个典型的并发问题。为了解决这两个问题&#xff0c;我们可以使用乐观锁&#xff08;CAS&#xff09;和悲观锁&#xff0c;这两者分别有不同的实现方式和适用场景。下面我们详细介绍如何通过 乐观锁&#xff08;CAS&#xff09; 和…

汇编实验·分支程序设计

一、实验目的: 1.能够熟练的进行分支程序的编写,掌握条件语句对应的汇编语言指令的实现 2.掌握多个条件的分支语句的实现原理,理解C语言中的逻辑运算“短路”特征 二、实验内容 1.对2和3任务中的C代码在VS2022中运行,设置生成对应的汇编代码,观察生成代码的不同,着重…

智能风控 数据分析 groupby、apply、reset_index组合拳

目录 groupby——分组 本例 apply——对每个分组应用一个函数 等价用法 reset_index——重置索引 使用前​编辑 注意事项 groupby必须配合聚合函数、 关于agglist 一些groupby试验 1. groupby对象之后。sum&#xff08;一个列名&#xff09; 2. groupby对象…

第11篇:vue3 中 props 的使用

第一步&#xff1a;App.vue 中发送数据&#xff1a; <template> <Person :list"persons"/> //注意多个的话 中间是没有 , // <Person a "哈哈中" :list persons /> </template> let persons reactive([ {id:e98219e12,n…

AIGC视频生成模型:Stability AI的SVD(Stable Video Diffusion)模型

大家好&#xff0c;这里是好评笔记&#xff0c;公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Stability AI的视频生成模型SVD(Stable Video Diffusion)模型&#xff0c;这家公司在图像生成领域富有盛名&#xff0c;开发并维护了知名开源项目SD系列…

编程题-两数相加(中等)

题目&#xff1a; 给你两个 非空 的链表&#xff0c;表示两个非负的整数。它们每位数字都是按照 逆序 的方式存储的&#xff0c;并且每个节点只能存储 一位 数字。 请你将两个数相加&#xff0c;并以相同形式返回一个表示和的链表。 你可以假设除了数字 0 之外&#xff0c;这…