计算机网络基础

OSI 七层模型、TCP/IP 五层模型、与 TCP/IP 四层模型

七层、五层、四层模型

数据传递时,每层都会在上一层的报文添加自己的头部

应用层

HTTP、FTP、SMTP、DNS

传输层

TCP、UDP

网络层

IP、ICMP(Internet 控制报文协议)

ping 使用的是 ICMP 协议

链路层

ARP、RARP

ARP:IP 地址 -> MAC 地址
RARP:MAC 地址 -> IP 地址

问:ARP 属于哪一层

TCP/IP 模型中,它所有定义的协议是在网络层上的

按照 OSI 的标准,数据在传递时每层会加上自己的信息。当网络层的 IP 包进入链路层时,链路层通过 ARP 协议添加链路信息,因此属于链路层

在 OSI 七层模型中 ARP 协议属于链路层;而在 TCP/IP 模型中,ARP 协议属于网络层

问:当在浏览器中输入 www.baidu.com 的时候发生了什么

一、DNS 域名解析
先查本地 hosts 文件,如果没命中则主机会向 DNS 服务器发送一条 DNS 查询报文以查询该域名对应的 IP

注意,该报文是 UDP 报文,不需要与 DNS 服务器建立 TCP 连接;我们这台主机本来就知道 DNS 服务器的 IP 地址,要么是写好的静态 IP,要么是路由器动态分配的 IP,不是域名,所以 DNS 查询这个过程也不需要去解析域名

二、建立 TCP 连接
传输层拿到了应用层解析到的 IP 地址,开始与服务器进行三次握手,建立 TCP 连接

三、发送 HTTP 请求
建立连接后,应用层开始向服务器发送请求,服务器返回相应的结果

四、关闭 TCP 连接
为了避免服务器与客户端双方的资源占用和损耗,当双方没有请求或响应传递时,任意一方都可以发起关闭请求。与创建 TCP 连接的 3 次握手类似,关闭 TCP 连接,需要 4 次握手。

五、浏览器解析 HTML、JS、CSS、Json
Dom 数、CSS 规则集、Render 树

Webkit 主流程

  1. OSI 七层模型、TCP/IP 五层模型、与 TCP/IP 四层模型
  2. 数据传递时,每层都会在上一层的报文添加自己的头部
  3. 应用层
  4. 传输层
  5. 网络层
  6. 链路层
    1. 问:ARP 属于哪一层
    2. 问:当在浏览器中输入 www.baidu.com 的时候发生了什么