浏览器 URL 中输入网址后回车,浏览器在此就会对网址进行一个解析,国内大部分第三方浏览器(IE 基础上加壳)会将地址栏输入关键词后跳转必应搜索的 URL 劫持掉;然后会对本地 host 文件进行一个判断。
此时浏览器会将打包成报文的形式,以 UDP 数据报的格式发送给本地域名解析服务器(DNS),然后本地 DNS 服务器将会检查缓存,缓存中存在对应的 IP 地址则会将 IP 地址返回给浏览器,如果缓存中不存在或者已过期将会发送 URL 到跟域名解析服务器,从根域名解析服务器获得对应的 IP 地址后返回给浏览器。
浏览器通过该 IP 地址找到到服务器的路径,发起一个 HTTP 回话到该地址,然后通过传输层 TCP 协议封装数据包,传输层会把 HTTP 回话请求分成报文段,添加源端口和目的端口,比如服务器用80端口监听客户端请求,客户端由系统随机选择一个端口,服务器将会把响应的请求返回给客户端该端口。
随后进入网络层,使用 IP 协议查找服务器,网络层主要通过查找路由表确定如何到达服务器,中间可能会经过多个路由器。
客户端的链路层,包通过链路层发送到路由器,通过邻居协议查找给定的ip地址和MAC地址,然后发送ARP请求查找目的地址,如果得到回应后就可以使用ARP的请求应答交换的ip数据包现在就可以传输了,然后发送Ip数据包到达服务器的地址。