为了2026年春招!
文章目录
- [TCP/IP 网络模型 / OSI模型](#TCP/IP 网络模型 / OSI模型)
- 从输入URL到页面展示发生了什么
TCP/IP 网络模型 / OSI模型
-
OSI模型
OSI模型是国际标准化组织制定的一个用于计算机或通信系统间互联的标准体系,将计算机网络通信划分成七个不同层级,每个层级都负责特定功能。每一层都构建在其下一层的层级之上,并为上一层提供服务。7层模型由下至上分别为:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。
- 物理层:
- 传输原始比特流(0和1)
- 定义物理设备标准,如网线接口类型、光纤接口类型、传输速率等
- 设备:集线器、中继器
- 数据链路层:
- 将比特组合成帧,提供节点到节点的传输
- 错误检测和纠正(CRC校验)
- 设备:交换机、网桥
- 网络层:
- 选择最佳路径将数据从源主机传输到目标主机
- 路由选择和拥塞控制
- 协议:IP、ICMP
- 设备:路由器
- 传输层:
- 负责端到端的数据传输,提供可靠的、无连接的数据传输服务
- 主要协议有TCP和UDP。TCP提供可靠的数据传输,确保数据的正确性和完整性;UDP是无连接的,适用于不要求可靠性的传输,如实时音频和视频流
- 会话层:建立、管理和终止应用程序之间的会话;
- 表示层:
- 数据格式转换(如加密解密、压缩解压缩、编码转换)
- 确保一个系统的应用层发送的数据能被另一个系统的应用层读取
- 应用层:
- 为用户应用程序提供网络服务
- 协议:HTTP、FTP、SMTP、DNS等
- 物理层:
-
TCP/IP网络模型
TCP/IP网络模型有4层
- 网络接口层:对应OSI模型的物理层和数据链路层,负责在物理网络上传输数据
- 网络层:对应OSI模型的网络层,负责将数据包从源主机发送到目的主机(IP、ICMP、ARP协议)
- 传输层:对应OSI模型的传输层,提供端到端通信
- 应用层:对应OSI模型的会话层、表示层和应用层,提供各种网络服务
-
二者对比
OSI模型是先设计模型后制定协议,TCP/IP模型是先有协议后有模型;虽然OSI模型在理论上更全面,但在实际网络通信中,TCP/IP模型更为实用。
从输入URL到页面展示发生了什么
- 输入网址,解析URL信息,准备发送HTTP请求;
- 先检查浏览器缓存里是否缓存过该资源,如果有则直接返回,没有的话则进行下一步网络请求;
- DNS域名解析:网络请求前,进行DNS解析,以获取请求域名的IP地址。DNS解析按照先检查 本地路由是否有缓存 --> 本地host文件 --> 路由器缓存 --> DNS服务器 --> 根DNS服务器 的顺序查询域名对应IP,直到找到为止;
- 浏览器与服务器IP,通过TCP三次握手建立连接;
- 客户端发送HTTP请求:连接建立后,浏览器段会构建请求行、请求头等信息,并把和该域名相关的Cookie等数据附加到请求头中,向服务器构建请求信息。如果是HHTPS的话,还涉及到HTTPS的加解密流程;
- 服务器收到请求信息生成响应数据,并返回HTTP资源;
- 浏览器与服务器IP进行四次挥手断开TCP连接;
- 浏览器解析响应并渲染页面:浏览器解析响应头,如果响应头是301或者302,重定向到新地址;若响应数据类型是字节流类型,一般会将请求提交给下载管理器;如果是HTML类型,则会进入下一步渲染流程。浏览器解析HTML文件,创建DOM树,解析CSS进行样式计算,然后将CSS和DOM合并,构建渲染树;最后布局和绘制渲染树,完成页面展示。