1. DNS解析流程
- windows host文件是否配置域名对应的ip
- 查询本地DNS缓存是否有这个域名对应的ip
- 询问本地DNS(网卡配置的)是否知晓域名对应的ip
- 本地DNS访问根域名解析服务器,但是根DNS只有顶级域名的记录,根告诉我们.cn顶级域名的DNS地址
- 本地DNS访问顶级域名的DNS,询问是否知晓域名对应的IP,但是告诉我们二级域名对应的DNS
- 本地DNS访问二级域名的DNS,询问我们的域名对应的IP地址,IP返回给本地的DNS
- 本地DNS把域名与IP对应关系给浏览器/命令行
2. 面试题:用户访问www.baidu.com整个过程
- dns解析,www.baidu.com解析得到ip
-
- 访问host文件,本地nds缓存
- 访问本地dns服务器
- 访问根域名解析服务器,得到顶级域
- 访问顶级域DNS,得到二级域
- 访问二级域,得到三级域名的IP
- 返回本地DNS缓存,再给用户
- tcp 3次握手:通过ip+端口,与服务器建立连接
-
- 客户端-->服务端:发出SYN建立连接请求,seq随机数
- 服务端-->客户端:发出ACK确认,SYN建立连接,ack=seq + 1,seq随机
- 客户端-->服务端:发出ACK确认,ack=seq + 1,seq=ack
- 连接建立
- 用户-->服务器:发出请求(http)请求报文
- 网站处理用户的请求
- 服务器-->用户:发出响应(http),响应报文
- tcp 4次挥手:断开连接
-
- 服务端-->客户端:断开连接请求FIN,ack=1000,seq=2000
- 客户端-->服务端:发出ACK确认,ack=1001,seq=000
- 客户端-->服务端:发出FIN断开连接请求,ack=1001,seq=1000
- 服务端-->客户端:发出ACK确认,ack=100,seq
- 连接断开
3. ARP协议
ARP:地址解析协议 IP-->MAC地址
1️⃣发出arp请求,发送广播谁知道10.0.0.2的MAC地址,请告诉10.0.0.200
2️⃣所有局域网的设备都收到广播,只有10.0.0.2这个机器进行响应:我是10.0.0.2,我的MAC地址是xx:xx:xx:xx:xx:xx
3️⃣缓存MAC地址
4. ICMP协议
internet控制报文协议,ping使用的就是icmp协议
#临时禁止ping,重启后恢复
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
sysctl -w net.ipv4.icmp_echo_ignore_all=1#允许ping
echo 0 > /proc/sys/net/ipv4/icmp_echo_ignore_all
sysctl -w net.ipv4.icmp_echo_ignore_all=0#永久生效
echo 'net.ipv4.icmp_echo_ignore_all=1' >> /etc/sysctl.conf
#立即生效
sysctl -p#检测主机是否存活
[root@ky201 ~]# fping www.baidu.com
www.baidu.com is alive