什么是通讯地址,一文带你了解( 二 )


除了命令行配置外,我们应该始终使用“带入”进行 IP 分配 。无论是在学校还是在办公室,都会有网络管理员给你分配的IP,你可以直接使用 。但是有时候我很好奇,网管是怎么分配IP的?是否可以通过命令行一一配置?这是使用动态主机配置协议 (DHCP) 的地方 。
动态主机配置协议
此协议如何工作?让我们以一台新机器加入网络为例,来了解一下 DHCP 的工作流程 。
当一台机器加入一个新的网络时,它肯定是一头雾水,不知道发生了什么,只知道自己的MAC地址 。如果没有人关心你怎么办?那不管怎样,先吼一声,告诉大家,我来了,有人吗?这时候的交流基本都是靠“吼”的 。这一步,我们称之为 DHCP 。
新机器发送了一个IP地址为0.0.0.0的广播包,目的IP地址为255.255.255.255 。广播包封装在UDP中,UDP封装在BOOTP中 。在这个广播包中,新人喊道:我是新人(Boot),我的MAC地址是xxx,我还没有IP,谁能给我一个IP地址?格式如下:
此时网络中的DHCP就相当于局域网的管理员 。他知道一个“新人”来了,需要分配一个IP地址,而这个过程就是一个DHCP Offer 。同时,DHCP 会保留为本机提供的 IP 地址,因此不会将相同的 IP 地址分配给其他机器 。DHCP Offer的格式如下图所示,里面包含了分配给新人的地址 。
DHCP 仍然使用广播地址作为目标地址,因为此时请求分配的新人还没有自己的 IP 地址 。如果局域网中有多个 DHCP,这台新机器会收到多个 DHCP Offer 。
它将选择 DHCP Offer 之一,通常是最先到达的那个,并将 DHCP 广播数据表发送到网络,其中包含客户端的 MAC 地址、接受分配的 IP 地址和 DHCP 服务器提供了IP 。地址等,并告诉所有 DHCP 服务器它将接受哪个 IP 地址,并告诉其他 DHCP 服务器撤销它们提供的 IP 地址,以便将它们提供给下一个 IP 请求分配者 。新人广播包格式如下:
此时新机仍然使用0.0.0.0作为源IP地址,255.255.因为还没有收到来自 DHCP 的最终确认 @>255.255 是广播的目标地址 。
当DHCP收到新机器的DHCP后,会向新机器广播一个DHCP ACK报文,表示已经接受新机器的选择,并将IP地址分配信息等配置信息放入广播包,发送到新机器 。DHCP ACK格式如下:
新机收到DHCP ACK后,会检查分配的IP地址是否可以适配 。如果不能使用,会向DHCP发送DHCP报文,通知DHCP禁用IP地址,然后新机开始新的地址申请流程 。
当新机器使用超过50%的IP租用期时,DHCP会以单播形式向DHCP发送DHCP报文以更新IP地址 。如果 DHCP 成功接收到 DHCP 发送的 DHCP ACK 报文,则根据相应的时间延长 IP 地址租用期限;如果没有收到DHCP发送的DHCP ACK报文,DHCP会继续使用这个IP地址 。
当新机器使用的IP租用期超过87.5%时,DHCP会以广播的形式向DHCP发送消息更新IP地址 。如果 DHCP 成功接收到 DHCP 发送的 DHCP ACK 报文,则会根据相应的时间延长 IP 地址租期;如果没有收到 DHCP 发送的 DHCP ACK 报文,DHCP 会继续使用这个 IP 地址,直到 IP 地址租约到期 。期限到期后,DHCP会向DHCP发送DHCP报文,释放IP地址,开始新的IP地址申请流程 。
MAC 地址
在我们查询 IP 地址的输出中,有一行:
这叫做MAC地址,是网卡的物理地址,用十六进制表示,6个字节 。
MAC 地址是一个容易被误解的地址 。因为据说MAC地址在世界上是唯一的,所以不会有MAC地址相同的网卡 。这让我们很容易想到,既然是世界上独一无二的,网络通讯就不能直接使用MAC地址吗?为什么要加一个IP地址,再封装一层,然后通信呢?
【什么是通讯地址,一文带你了解】当然不是 。我们要将一个网络数据包从一个地方传送到另一个地方,除了有明确的地址外,还需要有定位功能 。就像你去广州找博主一样,我只告诉你我的身份证号码,你在广州能找到我吗?这种搜索就像大海捞针 。但是如果我告诉你我的完整地址,你可以直接导航到相应的地址然后找到我 。