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