【计算机网络 - 基础问题】每日 3 题(四十二)

✍个人博客:https://blog.csdn.net/Newin2020?type=blog

📣专栏地址:http://t.csdnimg.cn/fYaBd

📚专栏简介:在这个专栏中,我将会分享 C++ 面试中常见的面试题给大家~

❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

📝推荐参考地址:https://www.xiaolincoding.com/(这个大佬的专栏非常有用!)

124. 什么是 ARP 代理?

ARP 代理(ARP Proxy)是一种网络设备或服务的功能,用于帮助处理计算机网络中的 ARP 请求和响应。它在两个或多个网络子网之间起到中介或桥接的作用,帮助实现不同子网之间的通信。

在一个局域网中,当主机需要与其他主机通信时,它会通过 ARP 协议来获取目标主机的 MAC 地址。通常,主机在同一个子网内的 ARP 请求可以直接通过广播发送到局域网中的其他主机,并接收到目标主机的 MAC 地址。

然而,在两个不同的网络子网之间进行通信时,主机无法直接获取目标主机的 MAC 地址。这时,ARP 代理就可以发挥作用。ARP 代理位于两个子网之间,它会接收来自一个子网的 ARP 请求,并代表源主机向另一个子网发送对应的 ARP 请求。当接收到另一个子网的 ARP 响应后,ARP 代理将响应的 MAC 地址返回给源主机,使源主机能够与目标主机进行通信。

简而言之,ARP 代理通过协助子网之间的 ARP 请求和响应,实现了不同子网之间的通信。它在两个子网之间起到了桥接的作用。

ARP 代理的使用可以解决跨子网的通信问题,提高网络的扩展性和灵活性。它常见于路由器、交换机等网络设备上,用于支持不同子网之间的通信。甚至,ARP 还可以更改原本发送的地址,更改了目标对象。

125. DHCP 是什么?

DHCP 在生活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。

接下来,我们来看看我们的电脑是如何通过 4 个步骤的过程,获取到 IP 的。

  • 客户端首先发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,由于客户端没有 IP 地址,也不知道 DHCP 服务器的地址,所以使用的是 UDP 广播通信,其使用的广播目的地址是 255.255.255.255(端口 67) 并且使用 0.0.0.0(端口 68) 作为源 IP 地址。DHCP 客户端将该 IP 数据报传递给链路层,链路层然后将帧广播到所有的网络中设备。
  • DHCP 服务器收到 DHCP 发现报文时,用 DHCP 提供报文(DHCP OFFER) 向客户端做出响应。该报文仍然使用 IP 广播地址 255.255.255.255,该报文信息携带服务器提供可租约的 IP 地址、子网掩码、默认网关、DNS 服务器以及 IP 地址租用期。
  • 客户端收到一个或多个服务器的 DHCP 提供报文后,从中选择一个服务器,并向选中的服务器发送 DHCP 请求报文(DHCP REQUEST)进行响应,回显配置的参数。
  • 最后,服务端用 DHCP ACK 报文对 DHCP 请求报文进行响应,应答所要求的参数。

一旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租用期内使用 DHCP 服务器分配的 IP 地址。

如果租约的 DHCP IP 地址快期后,客户端会向服务器发送 DHCP 请求报文:

  • 服务器如果同意继续租用,则用 DHCP ACK 报文进行应答,客户端就会延长租期。
  • 服务器如果不同意继续租用,则用 DHCP NACK 报文,客户端就要停止使用租约的 IP 地址。

可以发现,DHCP 交互中,全程都是使用 UDP 广播通信。

126. 用的是广播,那如果 DHCP 服务器和客户端不是在同一个局域网内,路由器又不会转发广播包,那不是每个网络都要配一个 DHCP 服务器?

所以,为了解决这一问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同网段的 IP 地址分配也可以由一个 DHCP 服务器统一进行管理。

  • DHCP 客户端会向 DHCP 中继代理发送 DHCP 请求包,而 DHCP 中继代理在收到这个广播包以后,再以单播的形式发给 DHCP 服务器。
  • 服务器端收到该包以后再向 DHCP 中继代理返回应答,并由 DHCP 中继代理将此包广播给 DHCP 客户端 。

因此,DHCP 服务器即使不在同一个链路上也可以实现统一分配和管理 IP 地址。

相关推荐
向阳12181 分钟前
使用Java Socket实现简单版本的Rpc服务
java·开发语言·rpc
红烧小肥杨6 分钟前
javaWeb项目-Springboot+vue-车辆管理系统功能介绍
java·前端·vue.js·spring boot·后端·mysql·毕业设计
奥特曼狂扁小怪兽8 分钟前
关于QT cmake项目添加了.ui文件build未自动生成ui_xxx.h,错误提示找不到这个头文件问题处理
开发语言·qt·ui
我只会Traceroute23 分钟前
域1:安全与风险管理 第2章-人员安全与风险管理
网络·网络安全·cissp认证
科技探秘人23 分钟前
如何选择安全的谷歌浏览器插件
网络·安全
customer0826 分钟前
【开源免费】基于SpringBoot+Vue.JS音乐分享平台(JAVA毕业设计)
java·vue.js·spring boot·后端·开源
域智盾软件31 分钟前
【新手小白都能看懂!】电脑怎么禁用软件?这5个方法速成!
网络
customer0831 分钟前
【开源免费】基于SpringBoot+Vue.JS渔具租赁系统(JAVA毕业设计)
java·vue.js·spring boot·后端·spring cloud·开源
fmc12110435 分钟前
【前端】如何制作一个自己的网页(6)
开发语言·php
荣世蓥36 分钟前
1.计算机网络_基本知识
计算机网络