一个浏览器请求到目标服务器的路途

  • 浏览器请求途径大概步骤

    1. 浏览器点击请求后,先通过本地或在线 dns,找到对方 ip 地址,然后将数据与 http 协议封装为 HTTP 头,应用层
    2. 数据包通过 TCP 或 UDP 协议将浏览器监听的端口和目标服务器的端口封装 TCP 头,传输层
    3. 浏览器将包交给操作系统,操作相同将浏览器所在 IP 地址和目标服务器 IP 地址封装为 IP 头,网络层
    4. 操作系统通过本地默认网关的 IP 地址得知网关 MAC 地址,然后将本地机器的 MAC 地址和网关 MAC 地址封装为 MAC 头1552273032879
    5. 网关往往是一个路由器,当这个数据包到达第一个网关后,拿出自己 IP 头,通过本地的 MAC 地址询问这个 IP 怎么走,然后路由器告诉下一个网关,一次类推
    6. 到达最后一个网关后,这个路由器知道这个 IP 地址,就会在这个路由器所覆盖的局域网中寻找,然后目标服务器返回 MAC 地址,通过这个地址就可以找到目标服务器
    7. 目标服务器校验这个数据包的 MAC 地址是当前局域网中网关的 MAC 地址,就会取下 MAC 头
    8. IP 对上后,就会取下 IP 头,交给传输层,即 TCP 层,这个时候,传输层就会向请求浏览器本地发送一个回复包,表明已接收。如果一段时间后,发送端一直没有收到目标端的回复包,发送端会重新发送请求,知道接受到回复包
    9. 请求包到达 TCP 层即传输层,通过 TCP 头中的端口号,找到目标服务进程,比如 Tomcat
    10. Tomcat 中将请求包中 HTTP 头中内容告诉相应服务,处理完后,通过另一个相同的请求通过相同的途径步骤发送给发送端
  • 当网络包到达一个城关的时候,可以通过路由表得到下一个城关的IP 地址,直接通过 IP 地址找就可以了,为什么还要通过本地的 MAC 地址呢?

    1. MAC 地址的唯一性

      路由器的网关 IP 地址可能会改变,但 MAC 地址不会改变,如果途中其中一个网关的 IP 地址发送改变,就会出现找不到的情况

    2. IP 地址会动态改变

# ARTS 

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×