计算机网络是后端、客户端、测试开发几乎所有技术岗位的共同必考科目,也是八股里"每个人都被问过、但每个人都答不深"的一块。问法非常稳定:从"TCP 和 UDP 有什么区别"开头,沿着三次握手、四次挥手、可靠传输、拥塞控制一路往下追,再转到 HTTP 与 HTTPS,最后落到"在浏览器输入网址回车后发生了什么"这个把整张网络知识串起来的终极题。字节、腾讯、美团、百度、阿里换了部门,开头的问题几乎没变,变的是追问到第几层。
这份合集从公开面经里把计算机网络方向反复出现的八股题抽出来重新归类,一共 307 道题,分十五个主题。它收的是网络协议本身,以及紧挨着的 Cookie 与 Session、WebSocket、IO 多路复用、网络攻击;Redis 与 MySQL 的细节请对照 Redis 面试题合集 和 MySQL 面试题合集,后端岗的完整高频清单可以看后端开发高频面试题榜单,C++ 与 Python 方向分别有 C++ 面试题合集 和 Python 面试题合集。
怎么用这份题单:
- 题目后面括号里是近期实际问过这道题的大厂,不代表完整名单,也不代表没标注的公司不问
- 网络八股的追问是一条链:分层模型 → TCP 与 UDP → 握手挥手 → 可靠传输与拥塞控制 → HTTP → HTTPS → 一次完整请求。只背其中一个结论,面试官往下追一层就会卡住
- TCP 与 UDP 的区别、三次握手四次挥手、HTTP 与 HTTPS 的区别、输入网址之后发生了什么,这四块是几乎所有技术岗的公共必考区,时间不够就先把它们吃透
主题导航:网络分层与基础协议 · TCP 连接管理:三次握手与四次挥手 · TCP 可靠传输、流量控制与拥塞控制 · TCP 状态、粘包与线上排查 · UDP 与传输层选型 · HTTP 协议基础、方法与状态码 · HTTP 缓存与长连接 · HTTP 版本演进:HTTP/2、HTTP/3 与 QUIC · HTTPS、TLS 与加密 · DNS、CDN 与一次完整请求 · Cookie、Session、Token 与跨域 · WebSocket、SSE 与长连接通信 · Socket 编程与 IO 多路复用 · 网络安全、RPC 与负载均衡 · 网络相关手撕题
网络分层与基础协议
- OSI 七层模型是什么?(美团 / 字节跳动 / 百度)
- OSI 七层模型和 TCP/IP 五层模型有什么区别?(字节跳动 / 美团 / 百度)
- 说一下计算机网络分层,TCP/IP 四层模型和 OSI 七层模型分别是什么?(腾讯 / 字节跳动 / 百度)
- 五层协议有哪些,各层的作用是什么?(腾讯 / 字节跳动 / 小米)
- TCP/IP 四层网络模型架构是什么?(美团 / 字节跳动 / 小米)
- 网络分层以及每层的代表协议有哪些?(字节跳动 / 小米 / 百度)
- 讲讲 TCP/IP 协议,TCP 和 IP 各自的作用是什么?(美团 / 字节跳动 / 华为)
- HTTP 协议属于哪一层?(美团 / 字节跳动 / 腾讯)
- TCP 和 UDP 分别属于哪一层协议?(美团 / 百度 / 字节跳动)
- HTTP、IP、TCP、UDP、ARP 分别在 OSI 的哪一层?(美团 / 字节跳动 / 百度)
- DNS 在哪一层,基于传输层的哪个协议?(字节跳动 / 美团 / 腾讯)
- ICMP 是哪一层的协议?(华为 / 字节跳动 / 网易)
- 网络层和传输层有什么区别?(字节跳动 / 阿里巴巴 / 华为)
- 传输层的功能是什么,常见的传输层协议有哪些?(字节跳动 / 腾讯 / 百度)
- 有哪些协议是基于 TCP 的?(美团 / 蚂蚁)
- 路由器和交换机分别工作在哪一层?(字节跳动 / 网易 / 拼多多)
- 路由器转发数据包的过程是什么?(百度 / 字节跳动)
- ARP 协议是什么,如何通过 IP 地址获取 MAC 地址?(华为 / 字节跳动 / 美团)
- ARP 攻击的原理是什么?(华为 / 哔哩哔哩 / 字节跳动)
- 子网掩码的作用是什么,在哪一步起作用?(字节跳动 / 哔哩哔哩 / 美团)
- NAT 是做什么的?(字节跳动)
- MTU 是什么?(美团 / 百度)
- 字节序是什么,网络字节序是大端还是小端?(腾讯 / 美团 / 阿里巴巴)
- ping 的原理是什么,基于什么协议,属于哪一层?(字节跳动 / 腾讯 / 美团)
- 数据包在网络中的传输过程是怎样的?(小红书 / 百度)
- 网络包到达网卡之后,是怎么交给用户进程的?(京东 / 字节跳动 / 腾讯)
- 常见的网络协议有哪些?(字节跳动 / 华为)
面试官问「TCP 三次握手为什么是三次,两次不行吗?」,看浮窗当场给你什么
面试官一开口,浮窗就出要点和能直接念的回答,被追问也接得住。共享屏幕时对面看不见。
核心要点 确认双方收发能力、防止历史连接请求造成资源浪费、同步双方初始序列号、两次握手服务端无法确认客户端已收到、四次可以但多余
参考回答 三次握手的本质是让双方都确认自己和对方的收发能力正常,并同步各自的初始序列号。第一次客户端发 SYN,第二次服务端回 SYN+ACK,第三次客户端回 ACK,这样服务端才能确认客户端能收到自己的数据。如果只有两次,一个滞留在网络里的历史 SYN 到达服务端后,服务端就会直接建立连接并等待数据,白白占用资源;三次握手里客户端可以根据序列号判断这是不是历史连接,发 RST 拒绝掉。四次握手也能完成,但第二、三步可以合并,所以三次是最少且足够的次数。
TCP 连接管理:三次握手与四次挥手
- TCP 三次握手的过程是什么?(美团 / 腾讯 / 字节跳动)
- TCP 三次握手为什么是三次?(腾讯 / 字节跳动 / 美团)
- 三次握手可以改成两次吗,两次会有什么问题?(美团 / 字节跳动 / 腾讯)
- 三次握手中 SYN、ACK、seq 是如何交互的,序列号和确认号的作用是什么?(腾讯 / 快手)
- TCP 序列号为什么要随机生成?(字节跳动 / 腾讯)
- TCP 序列号有什么作用?(字节跳动 / 小红书 / 腾讯)
- 第三次握手丢失会发生什么,客户端没有发送 ACK 怎么办?(腾讯 / 华为 / 字节跳动)
- 三次握手中某一次报文丢失会发生什么?(腾讯 / 美团 / 滴滴)
- 三次握手最后一次 ACK 丢失后,客户端继续发数据会怎样?(腾讯 / 字节跳动 / 百度)
- 三次握手哪一次可以携带数据,四次挥手可以吗?(拼多多 / 字节跳动 / 美团)
- 握手少一次会怎么样?(字节跳动 / 百度 / 快手)
- TCP 的半连接队列和全连接队列是什么?(百度 / 美团 / 滴滴)
- 什么是 SYN Flood 攻击,怎么防御?(腾讯 / 小红书 / 美团)
- TCP 的半开连接是什么?(京东)
- TCP 四次挥手的过程是什么?(腾讯 / 字节跳动 / 百度)
- 为什么 TCP 断开连接需要四次挥手?(字节跳动 / 腾讯 / 美团)
- 四次挥手能不能合并成三次,什么时候会是三次?(腾讯 / 美团 / 滴滴)
- 为什么挥手比握手多一次?(腾讯 / 字节跳动 / 华为)
- 四次挥手中间两步为什么不能合并,什么是半关闭状态?(腾讯 / 滴滴 / 快手)
- 三次握手和四次挥手时,连接状态是如何变化的?(腾讯 / 字节跳动 / 小红书)
- 第四次挥手之后,客户端会立刻关闭吗,是什么状态?(美团 / 百度)
- 三次握手和四次挥手分别是什么,为什么握手三次、挥手四次?(腾讯 / 美团 / 字节跳动)
- 已经建立了 TCP 连接,拔掉网线会发生什么?(字节跳动 / 腾讯 / 网易)
- TCP 的保活机制是怎样的?(腾讯 / 阿里巴巴)
- 两台服务器之间可以同时建立多条 TCP 连接吗,怎么实现的?(阿里巴巴 / 快手)
- 一台服务器最多能产生多少个 TCP 连接,怎么知道最大连接数?(字节跳动 / 腾讯 / 哔哩哔哩)
- TCP 连接的四元组和五元组分别是什么?(腾讯)
- TCP 和 UDP 可以使用同一个端口吗?(腾讯 / 百度 / 字节跳动)
- TCP 头部有哪些字段?(腾讯 / 字节跳动 / 美团)
- TCP 的建立过程和传输数据的步骤是什么?(字节跳动 / 百度 / 携程)
TCP 可靠传输、流量控制与拥塞控制
- TCP 如何保证可靠传输?(字节跳动 / 腾讯 / 美团)
- TCP 的可靠性体现在哪些方面?(字节跳动 / 美团 / 腾讯)
- 为什么说 TCP 是可靠的,TCP 为什么比 UDP 可靠?(字节跳动 / 腾讯 / 美团)
- TCP 是怎么知道传输过程中数据丢了的?(美团 / 腾讯 / 字节跳动)
- TCP 接收方如何保证接收到的报文是有序的?(百度 / 字节跳动)
- TCP 是怎么解决包乱序问题的?(美团 / 腾讯 / 字节跳动)
- TCP 有哪些重传机制?(腾讯 / 字节跳动 / 快手)
- 超时重传和快速重传分别是什么?(字节跳动 / 美团 / 携程)
- TCP 传输中出现丢包时怎么办?(腾讯 / 百度 / 字节跳动)
- TCP 一直重传失败会怎样?(腾讯 / 美团)
- TCP 的滑动窗口是什么,解决了什么问题?(字节跳动 / 华为 / 小米)
- TCP 的流量控制是什么,原理是什么?(腾讯 / 美团 / 字节跳动)
- 流量控制具体是怎么实现的,由发送方还是接收方控制?(腾讯 / 字节跳动 / 拼多多)
- TCP 的拥塞控制是什么,原理是什么?(字节跳动 / 腾讯 / 美团)
- TCP 拥塞控制有哪些算法,具体流程是什么?(腾讯 / 字节跳动 / 美团)
- 什么是慢启动,拥塞避免、快重传、快恢复分别是什么?(百度 / 腾讯 / 美团)
- 为什么需要拥塞控制?(腾讯 / 字节跳动)
- 流量控制和拥塞控制有什么区别?(腾讯 / 字节跳动 / 美团)
- TCP 的滑动窗口和拥塞窗口是怎么配合工作的?(华为 / 字节跳动 / 淘天)
- 什么是 TCP 队头阻塞?(小红书 / 腾讯 / 字节跳动)
- TCP 是如何保障连接稳定性的?(腾讯 / 字节跳动 / 华为)
- TCP 的安全性是如何实现的?(字节跳动 / 腾讯 / 阿里巴巴)
- TCP 协议有哪些特点?(腾讯 / 字节跳动 / 美团)
- 怎么优化 TCP?(字节跳动 / 百度)
- TCP 和 HTTP 有什么区别,HTTP 和 TCP 是什么关系?(腾讯 / 百度 / 美团)
- TCP 面向连接而 UDP 不面向连接,具体指什么?(腾讯 / 美团 / 阿里巴巴)
TCP 状态、粘包与线上排查
- TIME_WAIT 状态的作用是什么?(字节跳动 / 腾讯 / 百度)
- 为什么 TCP 关闭前要等待 2MSL,2MSL 由什么决定?(腾讯 / 字节跳动 / 美团)
- TIME_WAIT 状态会持续多久,MSL 的含义是什么?(腾讯 / 字节跳动 / 滴滴)
- TIME_WAIT 发生在连接的哪个阶段、哪一端?(腾讯 / 美团 / 字节跳动)
- 已经有三次握手了,为什么还需要 TIME_WAIT?(字节跳动 / 美团 / 腾讯)
- TIME_WAIT 过多会有什么后果,如何解决?(腾讯 / 字节跳动 / 滴滴)
- 服务器上出现大量 TIME_WAIT,可能是什么原因?(华为 / 腾讯 / 字节跳动)
- CLOSE_WAIT 状态是怎么产生的,有什么用?(腾讯 / 华为 / 字节跳动)
- 服务端大量连接处于 CLOSE_WAIT,可能发生了什么,该怎么处理?(美团 / 携程 / 华为)
- TIME_WAIT 和 CLOSE_WAIT 分别出现在连接的哪一方?(腾讯 / 字节跳动)
- FIN_WAIT2、CLOSE_WAIT、TIME_WAIT 分别表示什么状态?(腾讯 / 字节跳动 / 网易)
- TCP 都有哪些状态?(腾讯)
- 什么是 TCP 粘包,原因是什么?(腾讯 / 快手 / 字节跳动)
- 如何处理粘包和半包问题?(腾讯 / 字节跳动 / 阿里巴巴)
- UDP 会有粘包问题吗?HTTP 为什么没有粘包拆包?(腾讯 / 字节跳动 / 百度)
- Linux 中如何查询端口占用?(百度 / 腾讯 / 字节跳动)
- 如何查看指定进程占用的端口,或某个端口属于哪个进程?(百度 / 腾讯 / 京东)
- Linux 中有哪些网络相关的命令?(百度 / 字节跳动 / 携程)
- Linux 如何抓包,抓包的原理是什么?(腾讯 / 字节跳动 / 京东)
- HTTP 和 HTTPS 的包分别怎么抓?(快手 / 拼多多 / 美团)
- 你用过哪些抓包工具?(小米 / 快手)
- 网络无法访问,应该怎么排查?(百度 / 字节跳动)
- 服务出现网络故障,应该怎么排除?(快手 / 字节跳动)
- 防火墙怎么开启一个端口?(理想)
UDP 与传输层选型
- TCP 和 UDP 有什么区别?(字节跳动 / 腾讯 / 美团)
- TCP 和 UDP 各自的应用场景是什么?(字节跳动 / 美团 / 腾讯)
- 什么时候用 TCP,什么时候用 UDP?(腾讯 / 百度 / 字节跳动)
- UDP 有什么特点,相比 TCP 有哪些优点?(美团 / 字节跳动 / 腾讯)
- 为什么 UDP 比 TCP 快?(字节跳动 / 网易)
- 为什么有些场景选择 UDP,UDP 解决了什么问题?(京东 / 字节跳动 / 携程)
- 如何让 UDP 具备可靠传输能力?(腾讯 / 字节跳动 / 美团)
- 如果用 UDP 传输,不可避免会丢包,怎么办?(华为 / 快手 / 腾讯)
- UDP 的最大包长度是多少?(腾讯 / 百度 / 美团)
- 直播用 UDP 还是 TCP,为什么?(字节跳动 / 快手 / 百度)
- 视频通话和微信通话用 TCP 还是 UDP,为什么?(字节跳动 / 腾讯 / 网易)
- 游戏场景为什么适合用 UDP,TCP 和 UDP 怎么选?(腾讯 / 快手)
- 王者荣耀这类游戏使用 TCP 还是 UDP,技能释放顺序怎么保证?(腾讯 / 字节跳动)
- HTTP 可以基于 UDP 实现吗?(字节跳动 / 腾讯 / 滴滴)
- HTTP 和 UDP 有什么区别?(快手 / 滴滴 / 美团)
- 介绍一下 TCP 和 UDP,HTTP 协议基于哪个?(字节跳动 / 美团 / 腾讯)
HTTP 协议基础、方法与状态码
- 介绍一下 HTTP 协议(字节跳动 / 美团 / 腾讯)
- HTTP 请求报文和响应报文的格式是什么?(字节跳动 / 美团 / 腾讯)
- HTTP 请求头有哪些常见字段,分别起什么作用?(字节跳动 / 美团 / 滴滴)
- HTTP 响应头有哪些常见字段?(腾讯 / 字节跳动 / 百度)
- HTTP 有哪些请求方法?(字节跳动 / 腾讯 / 美团)
- HTTP 1.1 中的 8 种请求方式分别是什么?(哔哩哔哩 / 微软 / 百度)
- GET 和 POST 有什么区别?(美团 / 字节跳动 / 百度)
- GET 的参数放在 header 还是 body 里?(美团 / 小米 / 腾讯)
- 除了 GET 和 POST,还有哪些常用的 HTTP 方法?(字节跳动 / 网易 / 美团)
- OPTIONS 方法的具体应用场景是什么?(得物 / 科大讯飞)
- 什么是 HTTP 请求的幂等性?(字节跳动 / 美团)
- 常见的 HTTP 状态码有哪些,分别表示什么含义?(美团 / 字节跳动 / 百度)
- HTTP 状态码分为哪几类?(美团 / 百度 / 字节跳动)
- 301 和 302 状态码分别代表什么,有什么区别?(腾讯 / 美团 / 字节跳动)
- 301、302、307 状态码的区别是什么?(京东 / 携程 / 百度)
- 304 状态码表示什么,什么场景下出现?(腾讯 / 快手 / 字节跳动)
- 401 和 403 状态码有什么区别?(腾讯 / 字节跳动)
- 500、401、403、404、301、304 分别表示什么?(腾讯 / 美团 / 滴滴)
- 502 和 504 有什么区别,遇到 500 怎么办?(字节跳动 / 腾讯 / 滴滴)
- 4xx 和 5xx 开头的状态码有什么区别?(百度 / 微软)
- HTTP 为什么是无状态的,如何解决无状态?(快手 / 百度 / 腾讯)
- HTTP 是基于 TCP 的吗,底层用的是什么协议?(腾讯 / 字节跳动 / 百度)
- HTTP 和 HTTPS 的默认端口分别是什么?(腾讯 / 字节跳动 / 滴滴)
- 如何利用 HTTP 协议实现断点续传?(字节跳动 / 腾讯)
- HTTP 请求从发送到响应,整个流程里有哪些地方可以优化响应速度?(字节跳动)
- Socket 和 HTTP 有什么区别?(哔哩哔哩 / 字节跳动 / 小米)
- 为什么 HTTP 之外还要用 RPC?HTTP 和 RPC 有什么区别?(快手 / 字节跳动 / 美团)
HTTP 缓存与长连接
- HTTP 缓存是如何工作的?(腾讯 / 美团 / 小米)
- HTTP 缓存策略有哪些?强缓存和协商缓存有什么区别?(美团 / 京东 / 字节跳动)
- 控制 HTTP 缓存的头部字段有哪些?(腾讯 / 淘天)
- 有了 Last-Modified 和 If-Modified-Since,为什么还要有 ETag?(字节跳动 / 小红书 / 百度)
- Cache-Control 有哪些取值,分别控制什么?(华为 / 快手)
- HTTP 缓存时间是怎么控制的?(美团 / 字节跳动 / 小红书)
- HTTP 长连接和短连接有什么区别?(百度 / 腾讯 / 字节跳动)
- HTTP/1.1 长连接的原理是什么?(腾讯 / 字节跳动 / 美团)
- HTTP 的 Keep-Alive 参数和 TCP 的 Keep-Alive 有什么区别?(腾讯 / 字节跳动 / 快手)
- 一个 HTTP 连接可以发送多次请求吗?(腾讯 / 字节跳动)
- TCP 长连接和短连接有什么区别?(字节跳动 / 腾讯)
- 长连接和短连接分别适合什么使用场景?(字节跳动 / 百度 / 腾讯)
- HTTP 是短连接吗?(字节跳动)
HTTP 版本演进:HTTP/2、HTTP/3 与 QUIC
- HTTP/1.1、HTTP/2、HTTP/3 的核心差异是什么?(腾讯 / 字节跳动)
- HTTP 各个版本有哪些区别,分别做了哪些优化?(腾讯 / 美团 / 字节跳动)
- 讲讲 HTTP 的发展历程,从 1.0 到 3.0 是怎么演进的?(快手 / 腾讯 / 百度)
- HTTP/1.0 和 HTTP/1.1 有什么区别?(美团 / 腾讯 / 字节跳动)
- HTTP/1.1 有哪些重要的新特性?(美团 / 小米)
- HTTP/1.1 和 HTTP/2.0 有什么区别,HTTP/2.0 有什么问题?(字节跳动 / 华为 / 哔哩哔哩)
- HTTP/2 相对 HTTP/1.1 做了哪些优化,解决了哪些问题?(字节跳动 / 美团 / 快手)
- HTTP/2 的多路复用是如何工作的?(字节跳动 / 腾讯 / 哔哩哔哩)
- HTTP/2 的头部压缩是做什么的?(字节跳动 / 美团 / 小红书)
- HTTP/2 有哪些关键特性和协议机制?(腾讯 / 字节跳动)
- HTTP/1.1 和 HTTP/2 在连接复用上有什么区别?(字节跳动 / 拼多多)
- HTTP 队头阻塞是什么?(字节跳动 / 快手 / 滴滴)
- HTTP/2 为什么还会有队头阻塞?(腾讯 / 字节跳动 / 美团)
- HTTP/2 和 HTTP/3 有什么区别?(腾讯 / 美团 / 字节跳动)
- HTTP/3 是什么,解决了什么问题?(腾讯 / 字节跳动 / 阿里巴巴)
- HTTP/3 为什么使用 UDP?(腾讯 / 美团 / 京东)
- HTTP/3 如何解决 HTTP/2 基于 TCP 的队头阻塞?(字节跳动 / 携程 / 美团)
- HTTP/3 基于 UDP,怎么保证可靠性?(快手 / 腾讯 / 京东)
- 为什么需要 QUIC 协议,QUIC 有哪些优势?(字节跳动 / 腾讯 / 美团)
- QUIC 是如何保证可靠性的?(拼多多 / 美团)
- 如何用 UDP 实现可靠传输,QUIC 是怎么做的?(腾讯 / 字节跳动 / 百度)
- 工作中用过 HTTP/2 吗,知道 HTTP/3 吗?(美团 / 小红书)
HTTPS、TLS 与加密
- HTTP 和 HTTPS 有什么区别?(字节跳动 / 腾讯 / 美团)
- HTTPS 解决了 HTTP 的什么问题,相比 HTTP 又有哪些缺点?(腾讯 / 京东 / 滴滴)
- HTTPS 为什么更安全,如何保证通信安全?(腾讯 / 字节跳动 / 美团)
- HTTPS 的加密过程是怎样的?(字节跳动 / 美团 / 腾讯)
- HTTPS 在传输数据时用的是对称加密还是非对称加密?(腾讯 / 字节跳动 / 滴滴)
- 为什么 HTTPS 建立连接用非对称加密,传输数据用对称加密?(字节跳动 / 小米)
- 对称加密和非对称加密有什么区别,各有什么特点和应用场景?(字节跳动 / 百度 / 快手)
- 常见的非对称加密算法有哪些?(字节跳动 / 富途)
- SSL/TLS 握手过程是怎样的?(腾讯 / 字节跳动 / 百度)
- HTTPS 的 TLS 握手中,证书、CA、公钥、私钥分别起什么作用?(字节跳动 / OPPO / 小红书)
- HTTPS 如何进行密钥传输和加密?(字节跳动)
- 数字证书的作用是什么,没有证书会怎么样?(字节跳动 / 腾讯 / 哔哩哔哩)
- CA 证书是做什么的,怎么验证证书?(字节跳动 / 百度 / 美团)
- 数字签名的原理是什么?(字节跳动 / 小米)
- HTTPS 的证书校验是怎样的,单向校验和双向校验有什么区别?(腾讯 / 美团)
- HTTPS 绝对安全吗?(腾讯 / 字节跳动 / 滴滴)
- HTTPS 还是会有中间人攻击,是怎么实现的?(腾讯 / 字节跳动 / 美团)
- 什么是中间人攻击,HTTPS 怎么防止?(字节跳动 / 京东 / 腾讯)
- HTTPS 能防止哪些攻击,是如何实现的?(字节跳动 / 腾讯 / 阿里巴巴)
- TLS 1.2 和 TLS 1.3 有什么区别?(字节跳动 / 网易 / 美团)
- HTTPS 在 OSI 的哪一层,SSL 属于哪一层协议?(腾讯 / 字节跳动 / 美团)
- HTTPS 请求的完整过程是怎样的?(腾讯 / 字节跳动 / 百度)
- 使用 HTTPS 的全过程是什么,TCP 握手和 HTTPS 握手如何衔接?(腾讯 / 阿里巴巴 / 小红书)
- 常见的加密算法有哪些分类?(小米 / 字节跳动 / 百度)
- MD5 是否可逆?(哔哩哔哩 / 字节跳动)
- 数据库里的密码怎么存,为什么要加盐?(阿里巴巴 / 京东 / 小米)
DNS、CDN 与一次完整请求
- DNS 的作用是什么,查询过程是怎样的?(字节跳动 / 美团 / 百度)
- DNS 域名解析的完整流程是什么,缓存机制是怎样的?(腾讯 / 快手 / 字节跳动)
- DNS 查询的递归和迭代有什么区别?(腾讯 / 字节跳动 / 百度)
- DNS 用的是 TCP 还是 UDP,怎么用的?(字节跳动 / 腾讯 / 美团)
- DNS 解析过程中涉及了哪些协议?(滴滴 / 腾讯)
- 从效率角度看,DNS 解析有哪些优化手段?(字节跳动 / 百度)
- 什么是 DNS 劫持和 DNS 污染,如何识别和防护?(字节跳动 / 美团 / 小米)
- CDN 是什么,工作原理是什么?(腾讯 / 哔哩哔哩 / 字节跳动)
- CDN 为什么可以加速,请求的详细过程是怎样的?(京东 / 字节跳动 / 小米)
- 在浏览器输入网址到页面显示,中间发生了什么?(腾讯 / 美团 / 字节跳动)
- 一次 HTTP 请求从浏览器到服务器的全过程是什么?(字节跳动 / 美团 / 百度)
- 输入 www.baidu.com 后,一次完整网络请求经历哪些流程?(百度 / 字节跳动 / 阿里巴巴)
- 从网络角度看,输入 HTTPS 网址之后访问页面的过程是怎样的?(携程 / 快手 / 字节跳动)
- 浏览器打开一个页面会用到哪些网络协议?(美团 / 字节跳动)
- 用户在浏览器输入 HTTP 域名之后,从前端到后端发生了什么?(字节跳动 / 阿里巴巴)
- 服务器处理一个 HTTP 请求的过程是怎样的?(阿里巴巴 / 美团 / 快手)
- 客户端输入网址之后,数据是怎么在网络里传输并拿到的?(阿里巴巴 / 快手)
- 浏览器发起请求到页面渲染,网络各层协议是怎么工作的?(百度 / 快手)
- 对 HTTP 和 TCP/IP 之间的关系怎么理解?(腾讯 / 百度 / 拼多多)
Cookie、Session、Token 与跨域
- Cookie 和 Session 有什么区别?(美团 / 字节跳动 / 百度)
- Cookie 和 Session 的原理是什么?(美团 / 腾讯 / 阿里巴巴)
- Cookie、SessionStorage 和 LocalStorage 有什么区别?(美团 / 百度 / 字节跳动)
- Cookie 和 Token 有什么区别?(美团 / 字节跳动 / 百度)
- JWT 和 Cookie 有什么区别?(腾讯 / 字节跳动 / 美团)
- JWT 是什么,它是怎么加密的?(字节跳动 / 拼多多 / 美团)
- Cookie 有哪些属性可以配置?(腾讯 / 携程 / 滴滴)
- Cookie 的 HttpOnly 和 SameSite 属性有什么作用?(京东 / 美团)
- Cookie 具体是通过哪些字段携带和发送到服务器的?(美团 / 字节跳动 / 滴滴)
- 跨域请求时怎么携带 Cookie?(字节跳动 / 阿里巴巴 / 美团)
- Session 和 Cookie 的关系,了解单点登录吗?(字节跳动 / 快手)
- 为什么既要用 Cookie 又要用 Token?(腾讯)
- 什么是跨域,HTTP 请求如何跨域?(百度 / 字节跳动)
- 代理服务器为什么能解决浏览器的跨域问题?(携程 / 阿里巴巴)
WebSocket、SSE 与长连接通信
- 介绍一下 WebSocket(美团 / 京东 / 字节跳动)
- WebSocket 和 HTTP 长连接有什么区别?(腾讯 / 美团 / 百度)
- WebSocket 连接建立的流程是什么?(美团 / 字节跳动 / 腾讯)
- WebSocket 协议是如何实现全双工通信的?(腾讯)
- WebSocket 的特点有哪些?(小红书 / 小米 / 美团)
- WebSocket 怎么保持连接,心跳是怎么做的?(腾讯 / 字节跳动)
- WebSocket 连接断开期间的消息会丢失吗,怎么重连?(小米 / 拼多多 / 百度)
- WebSocket 底层是基于 TCP 还是 UDP?(小米 / 滴滴)
- WebSocket 和 TCP 有什么区别?(腾讯 / 快手 / 美团)
- WebSocket 和 Socket 有什么区别?(字节跳动 / 美团 / 快手)
- 为什么 WebSocket 要基于 HTTP 协议建立?(腾讯 / 快手)
- WebSocket 和短轮询、长轮询有什么区别?(腾讯 / 淘天 / 网易)
- 项目中为什么用 WebSocket 替代 HTTP 轮询?(科大讯飞 / 腾讯)
- 为什么不用 WebSocket?(百度 / 美团 / 字节跳动)
- SSE 是什么,和 HTTP 有什么区别?(腾讯 / 字节跳动 / 拼多多)
- SSE 和 WebSocket 有什么区别?(腾讯 / 快手 / 美团)
- 为什么 AI 对话场景多用 SSE 而不是 WebSocket?(腾讯 / 阿里巴巴 / 美团)
- SSE 的流式传输机制和重连机制是怎样的,返回格式是什么?(阿里巴巴 / 美团 / 百度)
Socket 编程与 IO 多路复用
- 什么是 Socket,Socket 工作在哪一层?(腾讯 / 美团 / 快手)
- Socket 通信的基本流程是什么,客户端和服务端分别要做哪些步骤?(美团 / 华为 / 小米)
- Socket 的实现原理是什么?(腾讯 / 快手 / 携程)
- 阻塞和非阻塞 Socket 有什么区别?(拼多多 / 腾讯 / 快手)
- 说一下网络 IO 模型(网易 / 蚂蚁 / 字节跳动)
- 同步、异步、阻塞、非阻塞 IO 分别是什么,epoll 属于哪种?(美团 / 华为)
- 什么是 IO 多路复用,为什么需要它?(字节跳动 / 腾讯 / 百度)
- IO 多路复用的底层过程是怎样的?(腾讯 / 美团 / 字节跳动)
- IO 多路复用是多线程吗?(腾讯 / 微软)
- epoll 和 select、poll 有什么区别?(腾讯 / 字节跳动 / 美团)
- 讲一下 select、poll、epoll 的演变历程(百度 / 字节跳动 / 华为)
- IO 多路复用有哪些方式,各自有什么特点?(腾讯 / 字节跳动 / 美团)
- epoll 的底层是怎么实现的,用了哪些核心数据结构?(字节跳动 / 腾讯 / OPPO)
- 为什么用 epoll?(腾讯 / 美团 / 字节跳动)
- epoll 的边缘触发和水平触发有什么区别,各自的使用场景是什么?(腾讯 / 百度 / 快手)
- epoll 的 ET 模式为什么必须配合非阻塞 IO?(腾讯 / 拼多多)
- epoll 最多能支持多少个连接,有什么限制?(腾讯 / 字节跳动 / 美团)
- epoll 是同步 IO 还是异步 IO?(百度 / 腾讯 / 字节跳动)
- 对比 BIO、NIO、select、poll、epoll(字节跳动 / 得物)
- NIO 用到了内核的什么功能?(腾讯 / OPPO / 快手)
- 什么是零拷贝,请介绍一种实现方案(京东 / 字节跳动 / 美团)
- 内存映射 mmap 和零拷贝是什么关系?(字节跳动 / 小红书)
网络安全、RPC 与负载均衡
- 你知道哪些常见的网络攻击方式?(百度 / 腾讯 / 美团)
- 什么是 XSS 攻击,怎么防御?(美团 / 腾讯 / 京东)
- 什么是 CSRF 攻击,怎么防御?(字节跳动 / 拼多多 / 携程)
- DDoS 攻击怎么防御,事前、事中、事后分别怎么做?(字节跳动 / 百度 / 滴滴)
- CC 攻击是什么?(长城宽带)
- SQL 注入是什么,怎么防止?(百度 / 腾讯 / 字节跳动)
- 常见的网络安全漏洞与防护手段有哪些?(腾讯 / 阿里巴巴)
- 服务调用时如何做身份验证,如何防止网络攻击?(百度)
- 什么是 RPC,RPC 的调用流程是什么?(美团 / 百度 / 字节跳动)
- RPC 框架由哪些部分组成?(美团 / 拼多多 / 蚂蚁)
- 为什么要用 RPC,既然有 HTTP,为什么还要用 RPC 做服务调用?(字节跳动 / 快手 / 小红书)
- 分布式 RPC 为什么要自定义协议,而不直接用 HTTP?(字节跳动 / 滴滴 / 百度)
- HTTP 和 RPC 的原理是什么,在应用中如何选择?(快手 / 美团)
- gRPC 的原理是什么,底层是怎么通信的?(腾讯 / 小米 / 百度)
- 与 HTTP 相比,gRPC 有哪些优点?(快手 / 小米 / 百度)
- RPC 的粘包问题怎么解决?(百度 / 华为 / 小米)
- 常见的负载均衡算法有哪些,怎么实现?(腾讯 / 华为 / 快手)
- 如何用算法设计实现负载均衡,轮询和最小连接数怎么做?(得物 / 字节跳动 / 滴滴)
- RPC 的负载均衡是怎么做的?(美团 / 字节跳动)
- 网关的作用是什么?(字节跳动 / 华为)
- 网关的鉴权是怎么实现的?(小米 / 百度)
笔试机考碰上这类手撕代码题
不用切屏:鼠标在「解题」按钮上停 1.2 秒,AI 读完题,把思路、复杂度和代码直接贴在考试页上方。
判断一个字符串是否是合法的 IPv4 地址:由四段 0-255 的十进制数以 . 分隔,每段不允许有前导 0。
示例:'192.168.1.1' 返回 True;'256.1.1.1'、'1.01.1.1'、'1.1.1' 返回 False
AI 会自动截屏并解答
也可以直接按 Ctrl+Enter,手不用离开键盘
备考重点
计算机网络八股的特点是主线清晰、追问深、爱问"为什么"。几乎所有问题都能挂到同一条主线上:数据要在两台机器之间传,所以有分层;传的时候要保证到达,所以 TCP 有握手、重传、滑动窗口和拥塞控制;不要求可靠但要求快,所以有 UDP 和基于它的 QUIC;应用层要表达请求和响应,所以有 HTTP;明文不安全,所以有 HTTPS;机器认的是 IP、人认的是域名,所以有 DNS。把这条主线讲通,零散的题会自己串起来。
建议按这个顺序准备:先把 TCP 与 UDP 的区别、三次握手和四次挥手讲到"每一步为什么这样设计",再吃透可靠传输、流量控制与拥塞控制,然后是 HTTP 各版本的演进与 HTTPS 的握手加密过程,最后用"输入网址回车后发生了什么"把 DNS、TCP、TLS、HTTP 串成一条完整的链。 面试里最容易丢分的不是不会,而是只会背结论:比如说得出"三次握手",却讲不清为什么两次不行;说得出 TIME_WAIT,却不知道线上出现大量 TIME_WAIT 该怎么排查。
TIME_WAIT 与 CLOSE_WAIT、拥塞控制、HTTPS 握手是拉开差距的三块。TIME_WAIT 要能讲出它存在的两个理由和过多时的处理办法,CLOSE_WAIT 要能指出它通常是应用层没有及时关闭连接;拥塞控制要把慢启动、拥塞避免、快重传、快恢复串成一张状态图;HTTPS 要能说明为什么握手阶段用非对称加密、传输阶段用对称加密,以及证书链是怎么验证的。需要在 AI 对话这类场景里讲连接方案的岗位,还要能比较 SSE、WebSocket 和长轮询各自适合什么。
常见问题
这份题单是怎么整理出来的?
来源是公开面经与题库沉淀,把计算机网络方向反复出现的八股题抽出来重新归类,不包含面灵用户的面试内容。括号里标注的是近期实际问过这道题的大厂,只作参考,不代表完整名单。
计算机网络八股应该先准备哪些部分?
优先顺序建议是:TCP 与 UDP 的区别 → 三次握手与四次挥手 → 可靠传输、流量控制、拥塞控制 → HTTP 与 HTTPS 的区别及 HTTPS 握手 → 输入网址之后发生了什么 → HTTP 各版本演进 → DNS。前五块是各大厂技术岗的公共必考区,后面几块再按目标岗位补,做后端、服务端的同学再补 TIME_WAIT 排查和 epoll。
面试官问 TCP,一般会追问到什么程度?
通常是三层:先问握手挥手的过程,再追问为什么是三次、为什么是四次、中间某个包丢了会怎样,最后落到线上问题,比如大量 TIME_WAIT 或 CLOSE_WAIT 怎么定位和处理。能讲出每一步的状态变化和异常分支,比背完整过程更容易拿分。
HTTP/2 已经有多路复用了,为什么还要 HTTP/3?
HTTP/2 在应用层用多路复用解决了 HTTP 层的队头阻塞,但它跑在 TCP 之上,TCP 要求字节流严格有序,一旦某个包丢失,同一条连接上所有流都要等它重传,这就是 TCP 层的队头阻塞。HTTP/3 改用基于 UDP 的 QUIC,各个流独立传输和重传,丢包只影响自己所在的流,同时把传输层和 TLS 握手合并,连接建立更快,也支持连接迁移。
更多岗位合集
Java面试题与八股文汇总:380+ 道集合、并发、JVM、Spring、MyBatis 高频真题分类整理(2026 面经)
面灵AI整理的 Java 八股合集,覆盖基础与面向对象、HashMap 与 ConcurrentHashMap、线程池、synchronized 与 AQS、JVM 与 GC、类加载、Spring、Spring Boot、MyBatis 和手撕题,标注近期出题的大厂。
操作系统面试题与八股文汇总:290+ 道进程线程、内存管理、死锁、IPC、零拷贝、Linux 命令高频真题分类整理(2026 面经)
面灵AI整理的操作系统八股合集,覆盖进程与线程、协程、调度算法、进程间通信、锁与死锁、虚拟内存与页表、内存泄漏与 OOM、零拷贝与 Linux 线上排查,标注近期出题的大厂。
Redis面试题与八股文汇总:230+ 道数据结构、持久化、缓存三大问题、一致性、分布式锁、高可用高频真题分类整理(2026 面经)
面灵AI整理的 Redis 八股合集,覆盖数据结构、线程模型、RDB 与 AOF、过期淘汰、缓存穿透击穿雪崩、缓存一致性、分布式锁、主从哨兵集群与 LRU 手撕,标注近期出题的大厂。