DHCP
DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。
计算机默认都会安装dhcp客户端软件,dhcp服务器默认在路由器上,一开机dhcp客户端就会默认向dhcp服务器申请ip地址。
计算机与外界通信四要素:
本机的ip地址
子网掩码
网关ip地址
DNSip地址 可以设置为网关的ip地址,网关会自动给你找dns服务器(后面将会有DNS详细介绍)
获取这四要素分两种方式
1.静态获取
即手动配置
2动态获取
由图可见,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地址
递归查询:
迭代查询:
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
可以在hosts文件中修改域名对应的ip地址
几条相关命令:
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变啦