浏览器输入一个地址的过程分析?
- 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