背景说明:
网络的知识,是大家开发过程中,非常重要也是非常底层的知识。所以网络知识是一个非常、非常核心的面试知识点。
在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协议,

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





