DNS:
domain name system:域名系统
DNS 是指用户在浏览器中输入 baibu.com 回车,这个域名会先问浏览器有没有DNS缓存,如果没有缓存就会问操作系统有没有DNS缓存,如果还没有,则向ISP(移动、联通、电信等网络运营商)发送请求,运营商会返回一个对应的 IP,浏览器拿到这个 IP 就可以开始建立 TCP 连接了。
通过域名拿到对应的 IP,着整个流程就是 DNS。
hosts:
Host 指的就是操作系统中的 DNS 缓存。
TCP之三次握手:
假设 A 是浏览器,B 是服务器。SYN 指的是 synchronize(同步)的缩写,ACK 是 acknowledge(获悉)的缩写,x 和 y 一般是从 0 开始的。
A到 B:SYN(x):我要向你发送连接。
B到 A:ACK(x+1), SYN(y):我收到了,并且我需要确认你也收到了。
A再到 B:ACK(y+1):好的,我也收到了,我们开始通话吧。
为什么要第三次握手?
是为了防止一些TCP错误情况,如果没有第三次握手,B 不能判断 A 能接收 信息。
TCP 之四次挥手:
同样,假设 A 是浏览器,B 是服务器。FIN 指的是 finish(关闭)的缩写,TCP关闭时的 x 和 y 通常都不是 0。
A到 B: FIN(x):我说完了。
B到 A:ACK(x+1):哦。
······(B 向 A 说话)
B再到 A:FIN(x):我也说完了。
A到 B:哦。
为什么二次挥手和第三次挥手不能合并呢?
因为第二次挥手与第三次挥手之间会通常会传递信息,所以不能合并。