目录
OSI七层模型与TCP/IP五层模型
TCP与UDP协议
TCP三次握手与四次挥手
HTTP与HTTPS
DNS解析过程
网络层协议
ARP协议
负载均衡与CDN
网络安全
经典面试场景题
OSI七层模型与TCP/IP五层模型
分层对比
| OSI七层模型 | TCP/IP五层模型 | 核心协议/设备 | 功能描述 |
|---|---|---|---|
| 应用层 | 应用层 | HTTP, DNS, FTP | 提供用户接口与服务 |
| 表示层 | SSL/TLS, 加密算法 | 数据格式转换与加密 | |
| 会话层 | SIP, RPC | 建立/管理会话连接 | |
| 传输层 | 传输层 | TCP, UDP | 端到端数据传输控制 |
| 网络层 | 网络层 | IP, ICMP, 路由器 | 路由选择与IP寻址 |
| 数据链路层 | 数据链路层 | Ethernet, MAC, 交换机 | 帧传输与MAC地址管理 |
| 物理层 | 物理层 | 光纤, 双绞线, 集线器 | 物理介质传输比特流 |
关键记忆点:
路由器工作在网络层(处理IP地址)
交换机工作在数据链路层(处理MAC地址)
TCP/IP模型将会话层、表示层合并到应用层
TCP与UDP协议
核心区别
| 特性 | TCP | UDP |
|---|---|---|
| 连接方式 | 面向连接(需握手) | 无连接 |
| 可靠性 | 可靠传输(确认/重传机制) | 尽最大努力交付 |
| 流量控制 | 滑动窗口机制 | 无 |
| 拥塞控制 | 慢启动/快重传/快恢复 | 无 |
| 传输速度 | 较慢 | 较快 |
| 首部开销 | 20-60字节 | 8字节 |
| 应用场景 | 文件传输、Web浏览 | 视频流、DNS查询、实时游戏 |
TCP可靠性保障机制
序列号与确认应答(ACK)
每个报文段携带唯一序列号
接收方返回ACK确认收到数据
超时重传
RTT(Round Trip Time)动态计算超时阈值
未收到ACK时触发重传
滑动窗口协议
窗口大小决定无需等待ACK可连续发送的数据量
动态调整窗口实现流量控制
拥塞控制算法
慢启动:初始窗口=1 MSS,指数增长直到阈值
拥塞避免:达到阈值后线性增长
快重传:收到3个重复ACK立即重传丢失包
快恢复:将阈值设为当前窗口一半,直接进入拥塞避免阶段
TCP三次握手与四次挥手
三次握手过程(建立连接)
关键问题:
为什么需要三次握手?
防止历史连接请求被误认为有效请求(如客户端发送多个SYN时,服务端能确认最新请求)
四次挥手过程(断开连接)
关键问题:
TIME_WAIT状态的作用
确保最后一个ACK到达服务器(等待2MSL时间)
允许旧数据包在网络中消散
大量TIME_WAIT的解决方案
调整内核参数:net.ipv4.tcp_tw_reuse 或设置SO_REUSEADDR选项
HTTP与HTTPS
HTTP核心特性
无状态协议:通过Cookie/Session维持状态
请求方法:GET(幂等)、POST、PUT、DELETE
状态码:
200 OK
301/302 重定向
304 Not Modified(缓存生效)
400 Bad Request
403 Forbidden
404 Not Found
500 Internal Server Error
503 Service Unavailable
HTTPS加密流程
SSL/TLS握手
客户端发送支持的加密套件列表
服务端返回证书与选择的加密套件
客户端验证证书合法性(CA链验证)
生成会话密钥(非对称加密交换对称密钥)
混合加密机制
非对称加密交换对称密钥(RSA/ECDHE)
对称加密传输数据(AES)
HTTP与HTTPS区别:
HTTPS默认端口443,HTTP端口80
HTTPS需要CA证书,HTTP无加密
HTTPS防止中间人攻击,保障数据完整性
DNS解析过程
递归查询流程
浏览器缓存 → 2. 本地hosts文件 → 3. 本地DNS服务器 → 4. 根DNS → 顶级域DNS → 权威DNS
记录类型
A记录:域名→IPv4
AAAA记录:域名→IPv6
CNAME:域名别名
MX:邮件服务器记录
TXT:文本验证信息
DNS劫持与防御
攻击方式:篡改DNS响应或污染本地缓存
防御方案:使用HTTPDNS(通过API直接获取IP)
网络层协议
IP协议
IPv4 vs IPv6:
IPv4地址长度32位,IPv6为128位
IPv6取消广播,改进组播支持
NAT转换:解决IPv4地址短缺,通过端口映射实现内网访问
ICMP协议
常见类型:
0/8:Ping请求与响应(Echo Request/Reply)
3:目的不可达
11:TTL超时
ARP协议
功能:通过IP地址查询MAC地址
工作流程:
检查ARP缓存
广播ARP请求
目标主机单播响应
负载均衡与CDN
负载均衡算法
轮询(Round Robin)
加权轮询
最少连接数
IP哈希
CDN原理
边缘节点缓存:用户访问最近的CDN节点
回源机制:缓存未命中时向源服务器请求数据
网络安全
常见攻击类型
DDoS:通过僵尸网络发起流量洪泛攻击
XSS:注入恶意脚本到用户浏览器
CSRF:诱导用户执行非预期操作
中间人攻击:劫持通信链路窃取数据
防御措施
防火墙:过滤非法流量
HTTPS:加密传输数据
验证码:防止自动化攻击
CSP策略:限制脚本执行来源
经典面试场景题
输入URL到页面显示的全过程
DNS解析 → TCP握手 → HTTPS协商 → HTTP请求 → 服务器处理 → 浏览器渲染
TCP粘包/拆包问题
原因:TCP是字节流协议,无消息边界
解决方案:固定长度头部声明包长度
如何检测网络拥塞?
观察丢包率与RTT波动
使用traceroute分析路径节点延迟
TIME_WAIT过多如何优化?
调整net.ipv4.tcp_max_tw_buckets
启用tcp_tw_recycle(谨慎使用)
> 此总结覆盖计算机网络面试90%以上的高频考点,建议结合具体协议抓包分析(Wireshark)和Linux网络命令(netstat、tcpdump)进行实践加深理解。



















暂无评论内容