计算机网络——DHCP协议

前言

本博客是博主用于复习计算机网络的博客,如果疏忽出现错误,还望各位指正。

这篇博客是在B站掌芝士zzs这个UP主的视频的总结,讲的非常好。

可以先去看一篇视频,再来参考这篇笔记(或者说直接偷走)。

一条视频讲清楚什么是DHCP协议-电脑是如何自动获取IP的_哔哩哔哩_bilibili

前篇

  1. 计算机网络------MAC地址和IP地址-CSDN博客
  2. 计算机网络------交换机和路由器-CSDN博客
  3. 计算机网络------网络地址转换(NAT)技术-CSDN博客
  4. 计算机网络------TCP和UDP协议-CSDN博客

引言

我们每天都在使用手机、电脑、pad或者是智能电视、游戏机等一系列电子设备连接到网络中。想必大家都知道,网络中的每一个设备都拥有一个子网络中独一无二的IP地址,以用来作为网络中通信的唯一标识。那么你知道每个设备的IP地址是如何得到的吗?他们又是如何保证不冲突的呢?也许有的同学已经知道了是通过DHCP协议得到的,那么DHCP协议又是如何工作的呢?

设置IP地址的两种方式

第一种方式就是手动设置自己指定IP地址、子网掩码、网关等信息。

这种方式的好处就是可以根据自己的规划配置每台设备的固定。IP有利于对网络的统一管理。比如对于一个拥有1000台服务器的集群,网络管理员需要根据设备编号对每台设备设置固定IP。

第二种方式,动态获取的方式。使用手机或者个人电脑的用户根本不需要关心自己的IP地址是什么,自动帮我分配一个可用的IP就好了。

DHCP协议流程

我们就以家庭网络为例,你的电脑通过网线连接到了路由器上当电脑开机进入操作系统后,此时其还没有IP地址。

操作系统会使用UDP协议,通过68端口将67端口广播一包DHCP discover数据包,用来寻找DHCP服务器。

由于这是一个广播数据包,所以网络中的所有设备都会收到这一包数据。但是只有DHCP服务器才会做出响应。

在家庭网络中,路由器就是DHCP服务器的角色。

他收到DHCP discover数据包后,知道网络中有设备需要分配IP地址。所以他需要在自己的IP地址池中拿到一个空闲IP,比如192.168.10,并决定把这个IP地址分配给PC路由器,会把此IP封装成一包DHCP offer包,回复给我们的PC。

PC收到DHCP offer包后,要决定用不用这个IP地址。因为假设网络中有多个DHCP服务器,他们有可能会同时收到多个DHCP discover包,各自分配IP地址后回复DHCP offer包。

此时PC会收到多个Offer包,他要决定用哪一个IP地址。一般情况下都是用收到的第一个IP地址。

决定好后,PC会向网络中广播自己的决定,通知路由器接受了其分配的IP地址。这一包称为DHCP request包,路由器收到request包后会回复给PC一包DHCP ACK包,表示已经接受了PC的选择,可以使用此IP地址。此时PC拥有了自己的IP地址。

以上四步就是DHCP获取IP地址的完整流程。

不过前两步并不是必须的当PC重启后,PC无需重新获取IP地址,只需要再次确认就可以了。

就是从第三步开始发送DHCP request包,直接请求使用此IP。

DHCP服务器需要检查此IP是否可用,若可以使用,则直接回复DHCP ack包,确认PC可以继续使用此IP地址。

若不可用,比如此IP已被其他设备占用,则回复DHCP nack(否定应答(Negative Acknowledgement))包拒绝申请。此时PC需要从DHCP discover开始再来一次完整的申请流程。

家庭网络中的其他设备,包括通过网线连接路由器的电脑,以及通过wifi连接的手机、电视、游戏机等,都是通过以上的步骤获取IP地址的。

获取IP地址后,他们就可以在网络中互相通信了。

相关推荐
朱包林2 小时前
day27-shell编程(自动化)
linux·运维·服务器·网络·shell脚本
SZ1701102313 小时前
IP协议 标识字段 同一个源IP、目的IP和协议号内唯一
网络·网络协议·tcp/ip
狐574 小时前
2025-06-02-IP 地址规划及案例分析
网络·网络协议·tcp/ip
黎茗Dawn5 小时前
5.子网划分及分片相关计算
网络·智能路由器
m0_637146935 小时前
计算机网络基础总结:TCP/IP 模型、TCP vs UDP、DNS 查询过程
笔记·tcp/ip·计算机网络
恰薯条的屑海鸥5 小时前
零基础在实践中学习网络安全-皮卡丘靶场(第十四期-XXE模块)
网络·学习·安全·web安全·渗透测试
科技小E5 小时前
口罩佩戴检测算法AI智能分析网关V4工厂/工业等多场景守护公共卫生安全
网络·人工智能
御承扬5 小时前
从零开始开发纯血鸿蒙应用之网络检测
网络·华为·harmonyos
DevSecOps选型指南14 小时前
2025软件供应链安全最佳实践︱证券DevSecOps下供应链与开源治理实践
网络·安全·web安全·开源·代码审计·软件供应链安全
利刃大大14 小时前
【在线五子棋对战】二、websocket && 服务器搭建
服务器·c++·websocket·网络协议·项目