开始—>浏览器URL 地址栏中输入了www.baidu.com
- step1: DNS缓存查询
- 1 浏览器查找浏览器缓存(DNS 缓存)
+ chrome 使用 chrome://net-internals/#dns 可查看浏览器DNS缓存
+ mac 使用 nslookup 命令来查找DNS缓存
+ DNS(Domain Name System) 是一个用于维护 URL 和 IP 映射关系的分布式数据库- 2 浏览器缓存未查询到时查询操作系统缓存(getHostName)
- 3 操作系统缓存未查询到时查询路由器缓存
- 4 路由器缓存未查询到时查询本地通信服务商的缓存(ISP)
- 5 如果以上4个缓存均未查询到时,则会发起DNS查询。
- step2: 发起 DNS 查询
- DNS 解析器通过向网络中其他 DNS 服务器询问正确的 IP 地址
- step3: ARP 请求
- 1 浏览器会首先查询 ARP 缓存表,如果缓存命中,我们返回结果:目标 IP = MAC
- 2 如果未命中,则进行ARP请求和应答进行MAC地址的获取,以建立TCP连接
- step4: 封装 TCP 数据包