深信服 技术研发工程师 AI 潜力 一面凉经

深信服技术研发岗一面面经(项目深挖)
一、项目经历与分布式限流

  1. 你做过的项目中,哪个最有成就感?为什么?
  2. 项目中采用了什么限流方案?为什么选择这个方案?
  3. 为什么没有使用 Redis 实现分布式限流?
  4. 如果让你使用 Redis 实现分布式限流,你会如何设计?

二、线上问题排查与并发安全

  1. 项目中遇到过哪些线上问题?如何定位和解决?
  2. 介绍一下线上 Crash 问题的排查过程。
  3. 从发现问题到最终修复,你的完整排查流程是什么?

三、TCP 协议与网络编程

  1. 为什么要手写 TCP 协议栈?做这个项目的目的是什么?
  2. 如果用一个词概括 TCP 最核心的特点,你会选择什么?为什么?
  3. UDP 有什么特点?
  4. TCP 和 UDP 分别适用于什么场景?
  5. 如果让你设计一个网络应用,你会如何选择 TCP 或 UDP?
  6. 画出你实现的 TCP 协议栈架构图,介绍各个模块的职责。
  7. 结合架构图,讲解 TCP 数据从发送端到接收端的完整流动过程。
  8. TCP 的滑动窗口、确认机制和快速重传是如何实现的?结合数据流进行说明。

四、Web Server 项目

  1. 画出 Web Server 的整体架构图。
  2. 介绍主线程、工作线程、线程池以及任务队列之间的关系。
  3. Web Server 如何处理客户端连接和网络 IO?
  4. 为什么使用 epoll?ET、非阻塞 IO 和 EPOLLONESHOT 在项目中分别起什么作用?