小牛丨软件测试学习小牛丨软件测试学习
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
首页
  • 业务测试面试题
  • 数据库测试面试题
  • Linux测试环境面试题
  • 网络协议测试面试题
  • 中间件测试面试题
  • Java测试开发面试题
  • Python测试开发面试题
  • Python自动化面试题
  • Java自动化面试题
  • 性能测试面试题
  • 手撕代码
  • HR面试题
  • 系列总入口
  • 业务测试理论
  • 数据库测试
  • Linux测试环境
  • 网络协议
  • 中间件测试
  • Python编程
  • Java编程
  • 自动化测试
  • 性能测试
  • AI测试
  • HR面试
  • AI测试学习路线
  • AI测试基础面试题
  • 大模型测试面试题
  • AI自动化测开面试题
  • AI Agent测试面试题
  • AI性能与稳定性测试面试题
  • AI应用安全测试面试题
  • 互联网大厂面试真题
  • 互联网中厂面试真题
  • 手机厂商面试真题
  • 通信厂商面试真题
  • 新能源汽车面试真题
  • 银行金融面试真题
  • 项目说明
  • 电商接口文档
  • 实战项目总入口
  • 测试简历编写指南
  • 20K level 简历打磨指南
  • 测试简历模板参考
  • 简历常见问题与避坑
  • 零基础入行专题路径
  • 初中级进阶高级专题路径
  • 零基础小白入行软件测试保姆级学习路线
  • 初中级测试进阶高级测试全路线
  • 面试必刷

    • 面试题库
    • 业务测试面试题
    • 数据库面试题
    • Linux测试环境面试题
    • 网络协议面试题
    • 中间件面试题
    • java测开面试题
    • Python测开面试题
    • Python自动化测试面试题
    • Java自动化
    • 性能测试面试题
    • 手撕代码
    • HR面试题
⌕
🛒项目实战📦资料包🛠测试神器AIAI路线CV简历测评🧭入行测评🧪测开测评🎯训练营🏆案例❤赞赏我

网络协议面试题

1. 请解释TCP和UDP的主要区别

答案:
TCP(传输控制协议)是面向连接的、可靠的传输协议,提供数据包顺序传输、错误检测和重传机制,保证数据完整送达。它具有流量控制和拥塞控制机制,但开销较大,延迟较高。主要应用于HTTP、FTP、SMTP等需要可靠传输的场景。
UDP(用户数据报协议)是无连接的、不可靠的传输协议,不保证数据包顺序和送达,没有重传机制。但传输效率高、延迟低、开销小。适用于视频流、语音通话、DNS查询、在线游戏等对实时性要求高的应用。


2. 描述TCP三次握手过程及其必要性

答案:
三次握手过程:

  1. 客户端发送SYN包(SYN=1, seq=x)到服务器,进入SYN_SENT状态
  2. 服务器收到SYN后,回复SYN-ACK包(SYN=1, ACK=1, seq=y, ack=x+1),进入SYN_RCVD状态
  3. 客户端收到SYN-ACK后,发送ACK包(ACK=1, seq=x+1, ack=y+1),双方进入ESTABLISHED状态

必要性:

  • 确保双方都具有发送和接收能力
  • 同步序列号,为可靠传输做准备
  • 防止已失效的连接请求突然传到服务器造成错误

3. 描述TCP四次挥手过程

答案:
四次挥手过程:

  1. 主动关闭方发送FIN包(FIN=1, seq=u),进入FIN_WAIT_1状态
  2. 被动关闭方收到FIN后,发送ACK包(ACK=1, ack=u+1),进入CLOSE_WAIT状态
  3. 被动关闭方发送FIN包(FIN=1, seq=v, ack=u+1),进入LAST_ACK状态
  4. 主动关闭方收到FIN后,发送ACK包(ACK=1, ack=v+1),进入TIME_WAIT状态,等待2MSL后关闭

4. 为什么需要TIME_WAIT状态且等待2MSL时间?

答案:
TIME_WAIT状态的作用:

  • 确保最后一个ACK能够到达对方,如果丢失,对方会重传FIN
  • 让本次连接的所有报文都在网络中消失,避免影响后续连接

2MSL等待时间:
MSL(Maximum Segment Lifetime)是报文最大生存时间,2MSL确保:

  • 最后一个ACK在网络中存活的时间足够长
  • 两个方向上的报文都完全消失

5. HTTP和HTTPS的区别是什么?

答案:
主要区别:

  1. 安全性:HTTP是明文传输,HTTPS使用SSL/TLS加密
  2. 端口:HTTP使用80端口,HTTPS使用443端口
  3. 证书:HTTPS需要数字证书来验证服务器身份
  4. 性能:HTTPS由于加密解密操作,性能略低于HTTP
  5. SEO:搜索引擎对HTTPS网站有排名优势

6. 描述HTTPS的SSL/TLS握手过程

答案:
SSL/TLS握手过程:

  1. 客户端发送ClientHello:支持的协议版本、加密套件、随机数
  2. 服务器响应ServerHello:选择的协议版本、加密套件、随机数,发送证书
  3. 客户端验证证书,生成预主密钥,用服务器公钥加密后发送
  4. 服务器用私钥解密获得预主密钥
  5. 双方根据预主密钥和随机数生成会话密钥
  6. 握手完成,开始加密通信

7. HTTP/1.1和HTTP/2的主要区别

答案:
主要改进:

  1. 多路复用:HTTP/2允许同时通过单一连接发送多个请求和响应
  2. 头部压缩:使用HPACK算法压缩头部,减少开销
  3. 服务器推送:服务器可以主动向客户端推送资源
  4. 二进制格式:HTTP/2使用二进制格式而非文本格式
  5. 流优先级:可以设置请求的优先级

8. 什么是HTTP状态码?列举常见的状态码及其含义

答案:
常见状态码:

  • 1xx(信息性):100 Continue(继续)
  • 2xx(成功):200 OK(成功),201 Created(已创建),204 No Content(无内容)
  • 3xx(重定向):301 Moved Permanently(永久移动),302 Found(临时移动),304 Not Modified(未修改)
  • 4xx(客户端错误):400 Bad Request(错误请求),401 Unauthorized(未授权),403 Forbidden(禁止),404 Not Found(未找到)
  • 5xx(服务器错误):500 Internal Server Error(内部错误),502 Bad Gateway(网关错误),503 Service Unavailable(服务不可用)

9. 什么是DNS?描述DNS解析过程

答案:
**DNS(域名系统)**是将域名转换为IP地址的分布式数据库系统。

解析过程:

  1. 浏览器检查缓存 → 系统缓存 → 路由器缓存
  2. 查询本地DNS服务器
  3. 本地DNS服务器查询根域名服务器
  4. 根域名服务器返回顶级域名服务器地址
  5. 查询顶级域名服务器,返回权威域名服务器地址
  6. 权威域名服务器返回对应的IP地址
  7. 本地DNS服务器缓存结果并返回给客户端

10. 什么是CDN?它的工作原理是什么?

答案:
**CDN(内容分发网络)**是分布式服务器网络,用于高效地向用户交付内容。

工作原理:

  1. 用户请求资源时,DNS解析将用户引导到最近的CDN节点
  2. 如果节点有缓存资源,直接返回给用户
  3. 如果没有缓存,CDN节点向源服务器请求资源并缓存
  4. 返回资源给用户,后续请求可直接从CDN节点获取

11. 什么是WebSocket?与HTTP有什么区别?

答案:
WebSocket是建立在TCP上的全双工通信协议,提供持久连接。

与HTTP区别:

  1. 连接方式:WebSocket是持久连接,HTTP是无状态短连接
  2. 通信模式:WebSocket支持双向实时通信,HTTP是请求-响应模式
  3. 头部开销:WebSocket建立连接后头部开销小
  4. 适用场景:WebSocket适用于实时应用(聊天、游戏),HTTP适用于传统Web应用

12. 什么是RESTful API?它的特点是什么?

答案:
RESTful API是基于REST架构风格的API设计。

特点:

  1. 无状态:每个请求包含所有必要信息
  2. 统一接口:使用标准HTTP方法(GET、POST、PUT、DELETE)
  3. 资源导向:使用URI标识资源
  4. 可缓存:响应应标注是否可缓存
  5. 分层系统:客户端不需要知道是否连接到最终服务器

13. 什么是MAC地址和IP地址?它们的区别是什么?

答案:
MAC地址是硬件地址,用于局域网内设备识别,48位长度,固化在网卡中。
IP地址是逻辑地址,用于网络层路由,32位(IPv4)或128位(IPv6),可配置。

区别:

  1. 层次:MAC是数据链路层,IP是网络层
  2. 作用范围:MAC用于局域网,IP用于跨网络通信
  3. 分配方式:MAC由厂商分配,IP由网络管理员或DHCP分配
  4. 可变性:MAC通常固定,IP可以变化

14. 什么是子网掩码?它的作用是什么?

答案:
子网掩码用于区分IP地址中的网络部分和主机部分。

作用:

  1. 划分子网:将大网络划分为小网络
  2. 路由选择:路由器使用子网掩码确定目标网络
  3. 广播控制:限制广播域范围
  4. 安全性:隔离不同子网的通信

15. 什么是OSI七层模型?各层功能是什么?

答案:
OSI七层模型:

  1. 物理层:传输原始比特流,定义电气、机械特性
  2. 数据链路层:提供节点到节点的传输,错误检测
  3. 网络层:提供寻址和路由功能(IP、ICMP)
  4. 传输层:提供端到端的连接(TCP、UDP)
  5. 会话层:建立、管理、终止会话
  6. 表示层:数据格式转换、加密解密
  7. 应用层:为用户提供网络服务(HTTP、FTP、SMTP)

16. TCP/IP四层模型与OSI七层模型的对应关系

答案:
对应关系:

  • 网络接口层 → 物理层 + 数据链路层
  • 网际层 → 网络层(IP、ICMP)
  • 传输层 → 传输层(TCP、UDP)
  • 应用层 → 会话层 + 表示层 + 应用层

17. 什么是DDoS攻击?常见类型有哪些?

答案:
DDoS(分布式拒绝服务)攻击:利用多个 compromised 系统向目标发动攻击。

常见类型:

  1. ** volumetric**:消耗带宽(UDP Flood、ICMP Flood)
  2. 协议攻击:消耗资源(SYN Flood、Ping of Death)
  3. 应用层攻击:针对特定应用(HTTP Flood、Slowloris)
  4. 反射放大:利用反射服务器放大流量(DNS amplification、NTP amplification)

18. 什么是负载均衡?常见的算法有哪些?

答案:
负载均衡:将流量分发到多个服务器,提高性能和可靠性。

常见算法:

  1. 轮询:依次分发到每个服务器
  2. 加权轮询:根据服务器权重分配
  3. 最少连接:分发到当前连接数最少的服务器
  4. IP Hash:根据客户端IP分配,保持会话粘性
  5. 响应时间:分发到响应时间最短的服务器

19. 什么是反向代理?它的作用是什么?

答案:
反向代理:代表服务器接收客户端请求,转发到后端服务器。

作用:

  1. 负载均衡:分发请求到多个后端服务器
  2. 安全:隐藏后端服务器信息,提供额外安全层
  3. 缓存:缓存静态内容,减轻后端负载
  4. SSL终止:处理SSL加解密,减轻后端压力
  5. 压缩:压缩响应内容,减少带宽使用

20. 什么是Web缓存?它的工作原理是什么?

答案:
Web缓存:存储Web内容的副本,提高访问速度。

工作原理:

  1. 检查缓存:收到请求时先检查是否有缓存副本
  2. 新鲜度验证:检查缓存是否过期(Expires、Cache-Control)
  3. 条件请求:如果缓存过期,发送条件请求验证(If-Modified-Since、If-None-Match)
  4. 更新缓存:根据服务器响应更新或使用缓存

21. 什么是Cookie和Session?它们的区别是什么?

答案:
Cookie:存储在客户端的小段文本数据。
Session:存储在服务器端的用户状态信息。

区别:

  1. 存储位置:Cookie在客户端,Session在服务器端
  2. 安全性:Session更安全,Cookie可能被窃取
  3. 容量限制:Cookie有大小限制(4KB),Session无硬性限制
  4. 性能影响:Session占用服务器资源
  5. 生命周期:Cookie可设置过期时间,Session通常依赖Cookie

22. 什么是长连接和短连接?它们的优缺点是什么?

答案:
长连接:建立连接后多次通信,保持连接不立即关闭。
短连接:每次通信建立新连接,完成后立即关闭。

优缺点:

  • 长连接:减少连接建立开销,但占用资源,需要保活机制
  • 短连接:资源使用更高效,但连接建立开销大

23. 什么是API网关?它的功能是什么?

答案:
API网关:所有API请求的统一入口和管理点。

功能:

  1. 路由转发:将请求路由到相应服务
  2. 认证授权:验证API调用权限
  3. 限流熔断:控制访问频率,防止过载
  4. 监控日志:记录API访问日志
  5. 协议转换:处理不同协议间的转换

24. 什么是消息队列?它的应用场景是什么?

答案:
消息队列:异步通信机制,存储和转发消息。

应用场景:

  1. 解耦:分离生产者与消费者
  2. 异步处理:非实时处理任务
  3. 削峰填谷:缓冲突发流量
  4. 顺序保证:确保消息处理顺序
  5. 最终一致性:实现分布式系统数据一致性

25. 什么是分布式追踪?它的原理是什么?

答案:
分布式追踪:追踪请求在分布式系统中的流转路径。

原理:

  1. Trace ID:为每个请求生成唯一标识
  2. Span:记录每个服务处理单元的信息
  3. 上下文传播:在服务间传递追踪上下文
  4. 数据收集:收集Span数据到中央存储
  5. 可视化:展示请求完整调用链

26. 什么是混沌工程?它的原则是什么?

答案:
混沌工程:通过故意注入故障来验证系统韧性。

原则:

  1. 假设稳态:定义系统正常行为指标
  2. 多样化实验:模拟真实世界可能发生的故障
  3. 生产环境:尽可能在生产环境进行实验
  4. 自动化:自动化实验过程
  5. 最小影响:控制实验范围,减小影响

相关推荐

下一步可以看这些

面试通关软件测试面试通关系列精华文章

把面试题、项目、简历和训练营串成一套求职准备路径。

入行路线零基础入行软件测试专题路径

从测评、学习路线、项目、简历到面试,按顺序入行。

进阶路线初中级测试进阶高级专题路径

接口自动化、性能测试、CI/CD、复杂业务质量保障进阶路线。

AI 方向AI 测试学习路线专题页

大模型评测、RAG 测试、Agent 测试和 AI 自动化路线。

求职结果Offer 案例 / 学员案例展示

看看真实学员 Offer 案例,判断目标和学习投入是否匹配。

资料 / 交流群添加小牛微信

备注:资料、简历、AI 或找工作,领取对应资料或进交流群。

添加小牛微信
Prev
Linux测试环境面试题
Next
中间件面试题