简单了解一个数据包在网络的一生
在主题之前,我想先谈谈目前计算机的网络模型,主要谈谈 TCP/IP 模型:
应用层:产生最原始的数据,常见协议如 http、ftp、websocket、DNS、QUIC
传输层:传递应用层的数据给网络层,必要时进行切割,常见协议如 TCP、UDP
网络层:目标寻址,常见协议如 IP、ARP、ICMP
网络接入层:通过物理链路传输比特流到目标主机
接下来就正式进入主题了
1.查看浏览器缓存
没有缓存的话才会继续往下走,否则直接使用缓存的资源
2.解析URL和DNS解析
解析URL,如果应用层协议使用http,默认端口号是80
DNS解析:
- 第一步,先查询本地DNS缓存,如果没有这个域名对应的IP,再进行下一步
- 第二步,先询问本地的DNS服务器,交给本地的DNS服务器去解析这个域名,他会逐级找比较厉害的DNS服务器,最后找到域名对应的IP,比如对于www.baidu.com,他会先找.com,再找baidu.com,最后找到www.baidu.com
3.考虑TCP和TLS握手
对于一些重要的数据(不允许丢失),我们需要先建立TCP连接,他能保证我们的数据安全到达对方,否则可以考虑UDP传输
4.数据包装
网络模型每次往下一层,都会给数据包增加一个头部
- 应用层:HTTP头
- 传输层:TCP头,以及明文数据加密
- 网络层:IP头
- 数据接口层:MAC头
5.数据传输
数据包在网络里被多次转发,最终要到达目的地
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 白兰!