DHCP

DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。

计算机默认都会安装dhcp客户端软件,dhcp服务器默认在路由器上,一开机dhcp客户端就会默认向dhcp服务器申请ip地址。

计算机与外界通信四要素:

本机的ip地址

子网掩码

网关ip地址

DNSip地址 可以设置为网关的ip地址,网关会自动给你找dns服务器(后面将会有DNS详细介绍)

获取这四要素分两种方式

1.静态获取

即手动配置

day09_dns服务器

2动态获取

day09_网络协议_02


由图可见,dhcp获取需UDP协议

(1)最前面的以太网标头,设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址: FF-FF-FF-FF-FF-FF.

(2)后面的IP标头, 设置发出方的IP地址和接收方的IP地址。这时对于这两者,本机都不知道。于是发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。

(3)最后的"UDP标头",设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的, 发出方是68端口,接收方是67端口。这个数据包构造完成后,就可以发出了。以太网是广播发送,同-个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0, 接收方是255.255.255.255,于是DHCP服务器知道这个包是发给我的,而其他计算机就可以丢弃这个包。接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去个DHCP响应数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255 (接收方),UDP标头的端口是67 (发出方)和68 (接收方) 分配给请求端的IP地址和本网络的具体参数则包含在Data部分。

DNS

什么是DNS?

domain name server 域名解析服务 负责把域名解析成ip地址

递归查询:

day09_DNS_03


迭代查询:

day09_DNS_04

DNS缓存

DNS缓存指DNS返回了正确的IP之后,系统就会将这个结果临时储存起来。并且它会为缓存设定一个失效时间(例如N小时),在这N小时之内,当你再次访问这个网站时,系统就会直接从你电脑本地的DNS缓存中把结果交还给你,而不必再去询问DNS服务器,变相加速了网址的解析。当然,在超过N小时之后,系统会自动再次去询问DNS服务器获得新的结果。所以,当你修改了DNS服务器,并且不希望电脑继续使用之前的DNS缓存时,就需要手动去清除本地的缓存了。

浏览器DNS查找顺序

浏览器DNS缓存->本地系统DNS缓存->本地计算机HOSTS文件->本地DNS缓存->递归or迭代搜索,期间如果查询到了,也就直接访问ip地址了,这个就像三级缓存原理一样, 例如,能够在hosts文件中找到就不会再去查其他的。

hosts文件: /etc/hosts C: \Windows\ System32 \drivers\etc

day09_网络协议_05


可以在hosts文件中修改域名对应的ip地址

day09_DNS_06


几条相关命令:

C:< Users>ipconfig /all 查看ip地址信息

C:< Users>ipconfig /displaydns 查看操作系统dns缓存

C:< Users>ipconfig /flushdns 清理操作系统的dns缓存

针对谷歌浏览器

谷歌浏览器清除方法如下:打开浏览器,访问如下地址

chrome: //net-internala/ tdne

点击clear host cache, 就清楚了浏览器的dns缓存,再访问绑hosts的域名,就会发现ip变啦