浏览器输入一个地址的过程分析

浏览器输入一个地址的过程分析?

  • DNS解析过程,寻找对应的服务器ip地址 (应用层)
    可能会有一次向外部DNS的请求
    (参照 DNS过程分析)
  • 建立TCP连接,利用这个连接发送数据 (传输层)
    三次握手
  • 封装HTTP请求包,HTTP或HTTPS,添加相应的协议内容 (应用层)
    HTTP头
  • 封装TCP请求包,TCP或UDP,添加相应的协议内容(传输层
    TCP头
  • 封装IP请求包,添加IP协议相应内容 (网络层
    IP头
  • 封装ARP请求包,添加ARP协议相应内容 (网络层
    网卡发出去封装好的mac包,到达网关
    MAC头
  • 请求包打包完毕,通过网络,到达网络上,添加相应的以太网头 (数据链路层)
    以太网头
  • 请求包根据路由协议(相关路由表),传输网络包 (网络层)
  • 网络包根据RARP协议,找到目标服务器的IP地址 (网络层
  • 目标服务器发现MAC地址对的上,交给操作系统的网络层 (网络层 传输层
    网络层发现IP对的上,交给传输层TCP(TCP都会发送回复包,用于消息确认)
    通过TCP包中的端口号,交给正在监听此端口号的进程
    假设是Nginx,处理完成后,将相关数据打包,经过数据包的流转,回复给浏览器

应用层协议:DNS HTTP HTTPS
传输层协议:TCP UDP
网络层协议:IP ARP RARP

参考资料

网络协议 1 - 概述
一次完整的HTTP请求过程
图解TCP/IP
github参考
一个完整的web请求

posted @ 2019-01-09 13:35  糖糖果  阅读(272)  评论(0编辑  收藏  举报