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

相关推荐
Bruce_Liuxiaowei1 小时前
全面TCP端口扫描:Nmap高级扫描技术与实战应用
网络·tcp/ip·网络安全·php
sailing-data2 小时前
【SE 网络】无线物联网络如何选
网络
skyyx20022 小时前
写给网工新手:子网掩码基本概念和一些计算方法
运维·网络
JY.yuyu2 小时前
OSPF路由协议
网络
kiiila2 小时前
【网络】网络通信模型
网络
2501_915918412 小时前
TCP 抓包分析在复杂网络问题中的作用,从连接和数据流层面理解系统异常行为
网络·网络协议·tcp/ip·ios·小程序·uni-app·iphone
while(1){yan}3 小时前
基础IP协议知识
网络·网络协议·tcp/ip
爱尔兰极光3 小时前
计算机网络--可靠传输的实现机制
计算机网络
车载测试工程师4 小时前
CAPL学习-AVB交互层-功能函数-控制类函数
学习·tcp/ip·以太网·capl·canoe
Turboex邮件分享4 小时前
邮件系统中的消息排队与调度机制分析
网络