计算机网络——面试问题

1 从输⼊ URL 到⻚⾯展示到底发⽣了什么?

  1. 先检查浏览器缓存 ⾥是否有缓存该资源,如果有直接返回;如果没有进⼊下⼀ 步**⽹络请求**。
  2. ⽹络请求前,进⾏ DNS 解析,以获取请求域名的 IP地址
  3. 浏览器与服务器IP建⽴TCP连接 。 如果请求协议是 HTTPS ,那么还需要 建⽴ TLS 连接。 连接建⽴后,向服务器构建请求信息
  4. 服务器**⽣成响应数据**。
  5. 浏览器解析响应头。
  6. 如果是HTML文件, 解析 HTML ⽂件, 构建渲染树并渲染。

2 DNS域名解析

DNS服务器保存域名与IP地址的对应关系。

域名的层级关系类似⼀个树状结构:
根 DNS 服务器( . ) 根域的 DNS 服务器信息 保存在互联⽹中 所有的 DNS 服务器中。
顶级域 DNS 服务器( .com )
权威 DNS 服务器( server.com

过程:查询 浏览器缓存------本地host文件------本地DNS服务器

1.客户端首先向本地DNS服务器 发出请求

2.本地DNS服务器首先查询缓存 ,若有,则返回;否则,本地DNS服务器向根域名服务器 查询;

3.根域名服务器将对应的顶级域名服务器 (.com)的地址传递给本地DNS服务器;

4.本地DNS服务器向顶级域名服务器 查询;

5.顶级域名服务器将对应权威域名服务器www.server.com)地址传给本地域名服务器;

6....

3 三次握手

  • 第一次握手(SYN):随机初始化一个序号,将SYN标志位置为1。发送后,客户端处于SYN_SENT状态
  • 第二次握手(SYN+ACK):服务端收到客户端的SYN报文,随机初始化序号,并将确认应答号置为客户端序号+1.将SYN和ACK标志位都置为1.发送后,服务端处于SYN_RCVD状态
  • 第三次握手(ACK):确认应答号置为服务端序号+1,ACK置为1.不携带数据,序号和第一次握手相同;携带数据,序号增加。发送完,客户端处于ESTABLISHED状态。
  • 服务端收到第三次握手,处于ESTABLISHED状态,连接建立完成。

第三次握手可携带数据,前两次不行。

在socket编程中,客户端执行connect()时,将触发三次握手.

为什么要三次握手?不是两次,四次?

相关推荐
明月看潮生2 小时前
编程与数学 03-002 计算机网络 11_域名系统(DNS)
计算机网络·青少年编程·编程与数学
默默敲代码的徐哥儿14 小时前
八股文整理——计算机网络
服务器·网络·计算机网络
明月看潮生16 小时前
编程与数学 03-002 计算机网络 12_网络安全基础
计算机网络·安全·web安全·青少年编程·编程与数学
DBWYX19 小时前
计算机网络五层模型
网络·计算机网络
卸载引擎2 天前
【计算机网络】OSI七层模型
计算机网络
卸载引擎2 天前
【计算机网络】计算机网络中光猫、交换机、路由器、网关、MAC地址是什么?两台电脑是如何联通的?
网关·计算机网络·电脑·路由器·光猫·交换机·mac地址
SHtop112 天前
计算机网络(基础篇)
计算机网络
Changerone2 天前
计算机网络面经
计算机网络·四非保研面经
shinelord明3 天前
【计算机网络架构】网状型架构简介
大数据·分布式·计算机网络·架构·计算机科学与技术
xzkyd outpaper3 天前
QUIC协议如何在UDP基础上解决网络切换问题
网络·计算机网络·udp·quic