代码随想录 | 八股-网络模型

OSI 模型和 TCP/IP 模型

OSI 模型

开放式系统互联模型 七层 概念框架

  • 物理层:光纤,电缆等传输信号的物理通道
  • 数据链路层:通过物理层网络连接两台计算机 管理数据帧:封装在数据包中的电子信号 示例:以太网
  • 网络层:多个互联网络的路由,转发和寻址 示例:IPv4, IPv6
  • 传输层:传输控制,例如确保数据包以正确的顺序到达 示例:TCP,UDP
  • 会话层:负责会话中两个独立应用程序之间的网络协调,管理一对一应用程序连接的开始和结束以及同步冲突。网络文件系统(NFS)和服务器消息块(SMB)是会话层的常用协议。
  • 表示层:主要关注应用程序发送和使用的数据本身的语法。例如,超文本标记语言(HTML)、JavaScript 对象标记(JSON)和逗号分隔值(CSV)
  • 应用层:关注应用程序本身的特定类型及其标准化通信方法。例如,浏览器可以使用超文本传输安全协议(HTTPS)进行通信,而 HTTP 和电子邮件客户端可以使用 POP3(邮局协议版本 3)和 SMTP(简单邮件传输协议)进行通信。

TCP/IP 模型

TCP/IP模型分为四个层级

  • 网络接口层:该层对应OSI模型的数据链路层和物理层。它负责物理传输媒介的传输,例如以太网、Wi-Fi等,并提供错误检测和纠正的功能。此外,网络接口层还包含硬件地址(MAC地址)的管理。
  • 网络层:该层对应OSI模型的网络层。主要协议是IP,它负责数据包的路由和转发,选择最佳路径将数据从源主机传输到目标主机。IP协议使用IP地址来标识主机和网络,并进行逻辑地址寻址。
  • 传输层:对应OSI模型的传输层。服务应用。主要的传输层协议有TCP和UDP。TCP提供可靠的数据传输,确保数据的正确性和完整性;而UDP则是无连接的,适用于不要求可靠性的传输,如实时音频和视频流。
  • 应用层:对应OSI模型的应用层和表示层以及会话层,面向用户,示例:电子邮件(SMTP)、网页浏览(HTTP)、文件传输(FTP)等。

从输入 URL 到页面展示到底发生了什么?

  1. 输入网址,解析URL信息,准备发送HTTP请求
  2. 检查浏览器缓存里是否有缓存该资源,如果有直接返回;如果没有进入下一步网络请求。
  3. DNS域名解析:网络请求前,进行DNS解析,以获取请求域名的IP地址。DNS解析时会按本地浏览器缓存->本地Host文件->路由器缓存->DNS服务器->根DNS服务器的顺序查询域名对应IP,直到找到为止。
  4. TCP三次握手建立连接:浏览器与服务器IP建立TCP连接。
  5. 客户端发送HTTP请求:连接建立后,浏览器端会构建请求行、请求头等信息,并把和该域名相关的Cookie等数据附加到请求头中,向服务器构建请求信息。如果是HTTPS的话,还涉及到HTTPS的加解密流程。
  6. 服务器处理请求并返回HTTP资源:服务器接收到请求信息,根据请求生成响应数据。
  7. TCP四次挥手断开连接:浏览器与服务器IP断开TCP连接。
  8. 浏览器解析响应并渲染页面:
    1. 浏览器解析响应头。若响应头状态码为301、302,会重定向到新地址;若响应数据类型是字节流类型,一般会将请求提交给下载管理器;若是HTML类型,会进入下一部渲染流程。
    2. 浏览器解析HTML文件,创建DOM树,解析CSS进行样式计算,然后将CSS和DOM合并,构建渲染树;最后布局和绘制渲染树,完成页面展示。