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

本文介绍了网络通讯中的核心知识,特别是网络三张表——ARP表、MAC表和路由表。ARP表用于根据IP地址获取MAC地址,MAC表是交换机用于数据转发的依据,而路由表则是路由器进行跨子网路由的关键。通过详细解释这三张表的作用、结构和使用过程,文章帮助读者深入理解网络通讯的底层机制。

背景说明:

网络的知识,是大家开发过程中,非常重要也是非常底层的知识。所以网络知识是一个非常、非常核心的面试知识点

在40岁老架构师 尼恩的读者交流群(50+)中,其相关面试题是一个非常、非常高频的交流话题。社群中,还遇到过大概的变种:

形式1:聊聊ARP地址解析协议?

形式2:在浏览器地址栏输入一个 URL 后回车,背后发生了什么?

形式3:…非常多

这些问题,都和三张表有关。

可以说,掌握了三张表,就掌握了网络通讯的核心。

这里尼恩给大家 把网络三张表,做一下系统化、体系化的梳理,使得大家可以充分展示一下大家雄厚的 “技术肌肉”,让面试官爱到 “不能自已、口水直流”

也一并把这个相关题目以及参考答案,收入咱们的《尼恩Java面试宝典》,供后面的小伙伴参考,提升大家的 3高 架构、设计、开发水平。

注:本文以 PDF 持续更新,最新尼恩 架构笔记、面试题 的PDF文件,请从这里获取:码云

首先,说一下网络中的数据包

首先我们需要知道,网络上传输的东西是什么?

在使用TCP/IP协议传输时,网络上的数据,是以二进制数据包的形式传输的,核心的三个部分,如下:

这个数据包,其中有这么几个字段很重要:

  • 源 IP 地址
  • 源 MAC 地址
  • 目标 IP 地址
  • 目标 MAC 地址

这些都是和地址相关的, 就像寄送快递,这就是里边的 收件人电话,收件人地址,有了这个地址信息,对方才能收到这个包。

在网络中,每一台计算机,每一个通讯设备,都有自己的地址,包含 IP 地址和 MAC 地址。

注意: MAC地址 又称为 硬件地址 、 物理地址 (因为这种地址用在MAC帧中)。

为什么需要那么多地址呢?

一个ip地址,还要一个mac地址。

原因是,网络协议是分层的。 不同的地址,给不同的层使用。

  • ip地址,网络层使用,
  • mac地址, 数据链路层使用。

什么是网络层,什么是链路层?

请参见TCP/IP协议与七层ISO模型的对应关系,大致如下图所示:

图:TCP/IP协议与七层ISO模型的对应关系

网络三张表1:ARP表

网络中的三张表ARP表, MAC表, 路由表

先看第一个 ARP表。 提起ARP表必然先想起ARP(address resolution protocol)协议,地址解析协议。

为什么需要 ARP 协议?

链路层中,同一局域网中的一台主机要和另一台主机进行通信,需要通过 MAC 地址进行定位,然后才能进行数据包的发送。

而在网络层中,计算机之间是通过 IP 地址定位目标主机,对应的数据报文只包含目标主机的 IP 地址,而没有 MAC 地址

因此,在发送之前,需要做个翻译的工作:根据 IP 地址获取 MAC 地址。

只有翻译成功,才能将数据包发送到正确的目标主机,而这个获取过程是通过 ARP 协议完成的。

网关设备上的ARP表项

在日常维护工作中,在华为的网关设备上,可以执行display arp相关命令,查看设备上的ARP表项信息。

通过在网关设备上查看ARP表项,网络管理员可以查看下挂用户的IP地址、MAC地址和接口等信息

例如,当网络管理员知道某个用户的IP地址,想查询该用户的MAC地址时,可以通过查看ARP表项信息获取。

用户可以执行display arp all.看到IP-MAC的表项,我们可以看到已知的IP地址的MAC地址是什么,这样很方便我们排查故障

上述回显中,每行ARP表项的具体含义如下:

IP地址为172.16.10.3,MAC地址为0025-9efb-be55,TYPE字段为S(代表该ARP表项为静态ARP表项)。这条静态ARP表项出接口为GE1/0/6,VLAN编号为100。

IP地址为172.16.20.3,MAC地址为0200-0000-00e8,TYPE字段为S(代表该ARP表项为静态ARP表项)。这条静态ARP表项出接口为GE1/0/19。

IP地址为172.16.10.1,MAC地址为0025-9ef4-abcd,TYPE字段为I(代表该ARP表项为接口本身的ARP表项)。这条ARP表项代表IP地址172.16.10.1是接口Vlanif100的IP地址。

IP地址为172.16.10.2,MAC地址为0025-9efb-be55,TYPE字段为D(代表该ARP表项为动态ARP表项)。这条动态ARP表项是从接口GE1/0/6动态学习到的,VLAN编号为100,剩余存活时间为20分钟。

IP地址为172.16.20.1,MAC地址为0025-9ef4-abcd,TYPE字段为I(代表该ARP表项为接口本身的ARP表项)。这条ARP表项代表IP地址172.16.20.1是接口GE1/0/19的IP地址。

IP地址为172.16.20.2,MAC地址为0200-0000-00e8,TYPE字段为D(代表该ARP表项为动态ARP表项)。这条动态ARP表项是从接口GE1/0/19动态学习到的,剩余存活时间为18分钟。
代码转自,华为企业技术文档。

ARP表的使用过程

由于IP协议使用了ARP协议,

### 计算机网络中的三张及其作用 在计算机网络领域,“三张”通常指的是 **路由表(Routing Table)**、**ARP (Address Resolution Protocol Table)** 和 **MAC 地址MAC Address Table 或 Forwarding Table)**。这些格在网络设备中起到至关重要的作用,用于指导数据包的传输和转发。 #### 路由表(Routing Table) 路由表存储了网络路径的信息,主要用于决定数据包如何从源地址到达目标地址。它包含了以下几个关键字段: - **Destination Network**: 目标网络地址。 - **Subnet Mask**: 子网掩码,用于区分网络部分和主机部分。 - **Next Hop**: 下一跳地址,即数据包离开当前设备后应该发送到的目标地址。 - **Interface**: 出接口,指明通过哪个物理或逻辑接口发送数据包。 当路由器接收到一个数据包时,它会查找路由表以确定下一跳地址以及出接口[^1]。如果没有匹配项,则可能触发默认路由或将数据包丢弃。 #### ARP (Address Resolution Protocol Table) ARP 的作用是维护 IP 地址与 MAC 地址之间的映射关系。由于网络通信基于第三层(IP 层),而实际的数据帧传递依赖于第二层(链路层)的 MAC 地址,因此需要一种机制将高层协议地址转换为低层硬件地址。这个过程由 ARP 完成,并将其结果缓存至 ARP 中。 例如,在同一局域网内的两台主机 A 和 B 进行通信前,A 需要知道 B 的 MAC 地址才能封装正确的以太网帧。此时 A 发送 ARP 请求广播询问谁拥有特定 IP 地址;一旦获得响应,就会把该对应关系加入本地 ARP 缓存以便后续快速访问[^1]。 #### MAC 地址MAC Address Table 或 Forwarding Table) 此主要存在于交换机内部,用来记录各个端口所连接设备的 MAC 地址信息。每当有新设备接入某个端口或者发生流量活动时,交换机会学习并更新其对应的 MAC 地址条目。这样做的目的是为了减少不必要的洪泛行为——只有那些确实需要接收某份报文的目的地才会被单独寻址而不是整个广播域都被涉及其中[^1]。 总结来说,这三种类型的各自承担着不同层面的功能职责:路由表负责跨网络间的选择最优路径决策;ARP 实现了三层到二层地址解析功能;最后则是依靠 MAC 地址完成精确高效的局域内终端定位服务。 ```sql -- 查询示例 (仅作示意用途) SELECT * FROM routing_table; SELECT ip_address, mac_address FROM arp_cache; SELECT port_number, associated_mac_addresses FROM mac_forwarding_table; ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值