浏览器输入URL后发生了什么
- 浏览器输入 URL 地址
- 根据地址簿协议DNS 查找对应IP,或者更精确的HTTPDNS 查找
- 找到公网IP 106.114.138.24
- 找到目标地址,浏览器开始打包请求,普通会使用HTTP 协议请求,涉及加密传输的用HTTPS 协议 (应用层)
- 经过应用层封装,浏览器会将应用层的包交给下一层(传输层)去完成,使用TCP 或者UPD协议
- 传输层封装完毕后,会交给操作系统的网络层(IP 协议,会有源IP和目标IP)。
- 操作系统知道了目标IP,会判断是局域网IP 还是公网IP
- 操作系统在启动时候会被DHCP 协议配置IP 地址
- 以及默认网关的IP地址192.168.1.1
- 然后通过ARP协议去找到网关的MAC 地址
- 找到了网关的MAC 地址后,操作系统就将IP 包交给下一层MAC 层,因为有MAC地址,所以会找到网关。
- 网关通常是一个路由器,通过路由表找到去某个IP地址怎么走。
- 路由表记录着网关内所有的MAC 地址,同一个网关下的系统可以通过MAC 地址进行通信(局域网)
- 网关也会经常沟通,沟通协议为路由协议,常用的OSPF和BGP
- 数据包通过一层一层的网关。。。
- 最后一个网关会通过ARP 协议去询问目标IP 的MAC地址
- 通过目标MAC 地址会找到目标服务器
- 之后一层一层解析
- 请求到达传输层TCP 协议,这时会回复一个数据包,这个数据包会说明目标地址收到数据(只是说明)
- TCP 层会有一个端口号,通过端口号去找到服务器的目标进程
- 目标进程的服务处理完后,会再发送一个应用层的HTTP数据包,回复源浏览器,该数据包会原路返回。