计算机网络——面试问题

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()时,将触发三次握手.

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

相关推荐
流浪0012 天前
计算机网络篇23:数据链路层——以太网帧格式与 MAC 地址,MTU 牵住 UDP 和 TCP,ARP 拿 IP 换 MAC
计算机网络·mac·数据链路层·arp·mtu·局域网通信
老秦包你会3 天前
计算机网络第二课 ----Socket(套接字)编程预备
开发语言·计算机网络·php
say_fall4 天前
【Linux网络编程】计算机网络基础:局域网与广域网、OSI七层模型与TCP/IP五层模型、封装解包与MAC/IP地址、端口号与socket编程接口
linux·网络·tcp/ip·计算机网络·信息与通信
流浪0014 天前
计算机网络篇21:网络层——网段划分与子网掩码,从分类地址到 CIDR 与可用主机数
计算机网络·子网划分·nat·子网掩码·cidr·网络层协议
咔_4 天前
有IPv6地址,为什么外面还是连不进来?让同一台服务分别卡在四个位置
linux·计算机网络
流浪0014 天前
计算机网络篇22:网络层——公网的三级地址划分与逐跳转发,从私网出口替换到 IP 分片组装
tcp/ip·计算机网络·路由器·公网搭建·报文分篇
Java成神之路-4 天前
TCP Socket 与 UDP Socket
tcp/ip·计算机网络·udp
流浪0016 天前
计算机网络篇20:网络层——IP 协议的定位与 IPv4 报头字段,从 20 字节首部到 TTL 防环
tcp/ip·计算机网络·ttl·网络层协议·ip报头
流浪0017 天前
计算机网络篇17:传输层——TCP 超时重传、三次握手与四次挥手,TIME_WAIT 为什么要等 2MSL
网络协议·tcp/ip·计算机网络·三次握手·四次挥手·超时重传
流浪0017 天前
计算机网络篇16:传输层——TCP 报头属性字段:16 位窗口大小撑起流量控制,六个标志位标识报文类型
网络协议·tcp/ip·计算机网络·urg紧急指针·tcp报头