0%

网页打开所经历的过程

1.DNS解析

输入网址后,浏览器会先在自己的缓存中查找网址对应的ip

如果没找到,会从计算机缓存中查找(在host中手动绑定的网址和ip会记录在计算机缓存中)

如果还没找到,会向路由器缓存中查找

如果还没有,就向DNS服务器查找

如果还找不到,会向根域名服务器查找,根域名服务器会根据网址递归地一层一层向下属域名服务器查找,最后将ip返回给客户端

客户端拿到ip后更新自己的缓存并与服务器建立连接

2.网络通信

TCP三次握手建立链接

20211215213744

四次挥手释放链接

20211215213754

为什么“握手”是三次,“挥手”却要四次?

TCP建立连接时之所以只需要”三次握手”,是因为在第二次”握手”过程中,服务器端发送给客户端的TCP报文是以SYN与ACK作为标志位的。SYN是请求连接标志,表示服务器端同意建立连接;ACK是确认报文,表示告诉客户端,服务器端收到了它的请求报文。

即SYN建立连接报文与ACK确认接收报文是在同一次”握手”当中传输的,所以”三次握手”不多也不少,正好让双方明确彼此信息互通。

TCP释放连接时之所以需要“四次挥手”,是因为FIN释放连接报文与ACK确认接收报文是分别由第二次和第三次”握手”传输的。为何建立连接时一起传输,释放连接时却要分开传输?

建立连接时,被动方服务器端结束CLOSED阶段进入“握手”阶段并不需要任何准备,可以直接返回SYN和ACK报文,开始建立连接。释放连接时,被动方服务器,突然收到主动方客户端释放连接的请求时并不能立即释放连接,因为还有必要的数据需要处理,所以服务器先返回ACK确认收到报文,经过CLOSE-WAIT阶段准备好释放连接之后,才能返回FIN释放连接报文。

3.页面渲染

Welcome to my other publishing channels