计算机网络——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地址后,他们就可以在网络中互相通信了。

相关推荐
CCPC不拿奖不改名5 分钟前
网络与API:从HTTP协议视角理解网络分层原理+面试习题
开发语言·网络·python·网络协议·学习·http·面试
liulilittle31 分钟前
OPENPPP2 网络驱动模式
开发语言·网络·c++·网络协议·信息与通信·通信
tzy23335 分钟前
分享一个 HTTP(S) 代理&抓包工具,拦截和Mock Web客户端请求和服务端响应
前端·网络协议·http
白狐_79835 分钟前
【计网全栈通关】第 1 篇:体系结构从 OSI 到 TCP/IP
计算机网络·智能路由器
Bruce_Liuxiaowei1 小时前
内网探测常用技术方法整理
网络·安全·网络安全
CCPC不拿奖不改名1 小时前
计算机网络:电脑访问网站的完整流程详解+面试习题
开发语言·python·学习·计算机网络·面试·职场和发展
小李独爱秋1 小时前
计算机网络经典问题透视:MD5报文是什么?有什么特点?
网络·网络协议·计算机网络·网络安全·信息与通信·信号处理
June`1 小时前
IO模型全解析:从阻塞到异步(高并发的reactor模型)
linux·服务器·网络·c++
Tao____1 小时前
如何对接Modbus-tcp协议(使用Thinlinks物联网平台)
java·物联网·网络协议·tcp/ip·modbus
乾元2 小时前
如何把 CCIE / HCIE 的实验案例改造成 AI 驱动的工程项目——从“实验室能力”到“可交付系统”的完整迁移路径
大数据·运维·网络·人工智能·深度学习·安全·机器学习