2、网络层

厨子大约 3 分钟计算机网络网络层协议原创面试题网络层程序员技术解析

网络层

23. 通过 IP 地址发送请求的过程

TCP 层发送每一个报文的时候,都需要加上自己的地址(即源地址)和它想要去的地方(即目标地址)。

将这两个信息放到 IP 头里面,交给 IP 层进行传输。IP 层需要查看目标地址和自己是否是在同一个局域网。如果是,就发送 ARP 协议来请求这个目标地址对应的 MAC 地址,然后将源 MAC 和目标 MAC 放入 MAC 头,发送出去即可;如果不在同一个局域网,就需要发送到网关,还要需要发送 ARP 协议,来获取网关的 MAC 地址,然后将源 MAC 和网关 MAC 放入 MAC 头,发送出去。网关收到包发现 MAC 符合,取出目标 IP 地址,根据路由协议找到下一跳的路由器,获取下一跳路由器的 MAC 地址,将包发给下一跳路由器。

24. IP 协议与 ARP 协议的关系

IP 协议工作在网络层,负责基于 IP 地址的数据包路由和转发;ARP 协议(地址解析协议)工作在数据链路层和网络层之间,用于将网络层的 IP 地址解析为数据链路层的 MAC 地址。二者紧密协作,IP 协议确定数据包的传输路径依赖于 IP 地址,但在实际的物理网络传输中,数据链路层的设备(如网卡)是通过 MAC 地址来识别和传输数据帧的,所以需要 ARP 协议来实现 IP 地址到 MAC 地址的转换

image-20250601161918436

25. 🌟有了 IP 地址,为什么还要用 MAC 地址?

简而言之,标识网络中的一台计算机,比较常用的就是 IP 地址和 MAC 地址,但计算机的 IP 地址可由用户自行更改,管理起来就相对困难,而 MAC 地址不可更改,所以一般会把 IP 地址和 MAC 地址组合起来使用。

那只使用 MAC 地址不用 IP 地址行不行呢?不行的!因为最早就是 MAC 地址先出现的,并且当时并不用 IP 地址,只用 MAC 地址,后来随着网络中的设备越来越多,整个路由过程越来越复杂,便出现了子网的概念。对于目的地址在其他子网的数据包,路由只需要将数据包送到那个子网即可。

那为什么要用 IP 地址呢?是因为 IP 地址是和地域相关的,对于同一个子网上的设备,IP 地址的前缀都是一样的,这样路由器通过 IP 地址的前缀就知道设备在在哪个子网上了,而只用 MAC 地址的话,路由器则需要记住每个 MAC 地址在哪个子网,这需要路由器有极大的存储空间,是无法实现的。

IP 地址可以比作为地址,MAC 地址为收件人,在一次通信过程中,两者是缺一不可的。