DHCP|青训营笔记

93 阅读2分钟

这是我参加「第五届青训营」伴学笔记活动的第12天

DHCP:Dynamic Host Configuration Protocol,动态主机配置协议。
工作原理:
向某个管ip分配的服务器,也就是DHCP服务器,申请IP地址。一般家里用的路由器就自带这个功能。整个操作流程分为4个阶段。

1.DHCP Discover: 在联网时,本机由于没有ip,也不知道DHCP服务器的IP地址是多少,所以根本不知道该向谁发起请求,于是选择广播,向本地网段内所有人发送消息。
2.DHCP Offer:不是DHCP服务器的机子会忽略你的广播消息,而DHCP服务器收到消息后,会在自己维护的一个IP池里面拿出一个空闲IP,通过广播的形式返回你的电脑。
3.DHCP Request:你的电脑在拿到IP后,再次发起广播,说我需要这个IP
4.DHCP ACK:DHCP服务器此时再回复你一个ACK,表示确认,这样就建立连接了。

为什么要有Request和ACK:
因为在本地网段内,可能有不止一台DHCP服务器,在你广播之后,每个DHCP服务器都有可能给你发Offer。我的电脑一般会对第一个到的offer响应DHCP Request, 目的是为了确认offer,在确认offer的期间,DHCP服务器确认这个ip还没被分出去,你才可以安心使用这个ip。

为什么DHCP用UDP,而不能用TCP
TCP:面向连接的;UDP:无连接的。
连接:只有一个发送端和对应的接收端。
DHCP为广播的形式,所以无连接。\

应用层向TCP层发送用于网间传输的、用8位字节表示的数据流,然后TCP把数据流分区成适当长度的报文段(通常受该计算机连接的网络的数据链路层的最大传输单元(MTU)的限制)。之后TCP把结果包传给IP层,由它来通过网络将包传送给接收端实体的TCP层。TCP为了保证不发生丢包,就给每个包一个序号,同时序号也保证了传送到接收端实体的包的按序接收。然后接收端实体对已成功收到的包发回一个相应的确认(ACK);如果发送端实体在合理的往返时延内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。