网络分层模型
问题
OSI 七层模型和 TCP/IP 四层模型是什么?每层的作用和常见协议?
答案
OSI 七层 vs TCP/IP 四层
| 层 | 作用 | 协议 | 传输单位 |
|---|---|---|---|
| 应用层 | 为应用提供服务 | HTTP、DNS、FTP、SMTP | 报文 |
| 传输层 | 端到端可靠(或不可靠)传输 | TCP、UDP | 段/数据报 |
| 网络层 | 路由和转发,跨网段通信 | IP、ICMP、ARP | 数据包 |
| 数据链路层 | 相邻节点间的可靠传输 | Ethernet、PPP | 帧 |
| 物理层 | 比特流在物理介质上传输 | 光纤、网线 | 比特 |
数据封装与解封装
发送方:
[HTTP 数据] → [TCP头 + 数据] → [IP头 + TCP头 + 数据] → [MAC头 + IP头 + TCP头 + 数据]
接收方(逐层拆包):
[MAC头 | IP头 | TCP头 | HTTP 数据] → 逐层向上传递
常见面试问题
Q1: 浏览器输入 URL 到页面展示的过程?
答案:
- DNS 解析:域名 → IP 地址(先查缓存:浏览器 → OS → hosts → DNS 服务器)
- TCP 三次握手:建立 TCP 连接
- TLS 握手:如果是 HTTPS,协商加密套件和密钥
- 发送 HTTP 请求:GET / HTTP/1.1
- 服务端处理:Nginx 反向代理 → 应用服务器 → 数据库
- 返回 HTTP 响应:状态码 + 响应头 + HTML
- 浏览器解析渲染:构建 DOM → CSSOM → 布局 → 绘制 → 合成
- TCP 四次挥手:关闭连接(如果不是 Keep-Alive)
Q2: ARP 协议的作用?
答案:
ARP(地址解析协议)将 IP 地址解析为 MAC 地址。在同一局域网内,设备通信需要知道对方的 MAC 地址。
工作流程:
- 主机 A 广播 ARP 请求:"谁的 IP 是 192.168.1.2?"
- 主机 B 回复:"我是 192.168.1.2,我的 MAC 是 xx:xx:xx"
- 主机 A 缓存 IP → MAC 映射
Q3: IP 地址和 MAC 地址的区别?
答案:
| 维度 | IP 地址 | MAC 地址 |
|---|---|---|
| 层 | 网络层 | 数据链路层 |
| 变化 | 可变(DHCP 分配) | 固定(硬件烧录) |
| 作用 | 定位网络中的位置 | 标识网卡的物理身份 |
| 范围 | 跨网段寻址 | 同一局域网内 |
类比:IP 地址像你的通讯地址(可以搬家),MAC 地址像你的身份证号(出厂不变)。