知识点标签

计算机网络面试题解析

计算机网络相关面试题,覆盖 DNS、TCP、TLS、HTTP 和请求链路。

90 道题 9 个岗位 12 个公司

计算机网络相关面试题

CSRF 的原理、攻击形式和防御方式是什么?

CSRF 是跨站请求伪造,核心是攻击者诱导已登录用户的浏览器向目标站点发起请求,浏览器会自动携带目标站点的 Cookie,从而让服务端误以为请求来自用户本人。常见攻击包括隐藏表单提交、img 或链接触发 GET 请求、跨站 POST 和配合不安全 CORS 的接口调用;防御重点是 SameSite Cookie、CSRF Token、Origin/Referer 校验、避免 GET 改状态和敏感操作二次确认。

CLOSE_WAIT 和 TIME_WAIT 分别是什么?

CLOSE_WAIT 和 TIME_WAIT 都是 TCP 连接关闭过程中的状态,但含义完全不同。CLOSE_WAIT 出现在被动关闭方,表示对端已经发来 FIN,本端已经确认,但应用还没有调用 close 结束连接;TIME_WAIT 出现在主动关闭方,表示本端完成主动关闭后仍保留连接一段时间,用于处理延迟报文和保证对端收到最后的 ACK。

HTTPS 为什么结合使用对称加密和非对称加密?

HTTPS 同时使用非对称加密和对称加密,是为了兼顾安全密钥交换、身份认证和传输性能。非对称加密适合解决陌生双方如何安全协商密钥和验证服务器身份的问题,但计算成本高;对称加密速度快,适合保护大量业务数据,因此握手阶段协商会话密钥,传输阶段用对称密钥加密数据。

netty有哪些组件?

Netty 的组件可以按启动配置、连接抽象、线程模型、事件流转、数据缓冲、编解码、业务处理、异步通知来理解。回答时不应只罗列类名,而要把 ServerBootstrap 启动服务端、EventLoopGroup 分配线程、Channel 承载连接、Pipeline 串联 Handler、ByteBuf 承载数据、Future 返回异步结果这条链路讲清楚。

RDMA 连接和性能调优通常关注哪些参数?

RDMA 参数题通常不是让背某一个结构体字段,而是考察能否把关键配置维度讲清楚:资源对象参数、连接寻址参数、传输可靠性参数、内存注册参数、网络层参数以及性能调优参数。完整答案应覆盖 QP、CQ、PD、MR、LID/GID、QPN/PSN、MTU、SL 或 traffic class、RoCE v2 的 IP/UDP/VLAN/PFC/ECN,以及 inline、队列深度、CQ moderation、retry、RNR timeout 等影响吞吐和延迟的参数。

什么情况服务器会有大量的TIME_WAIT连接?

服务器出现大量 TIME_WAIT,本质上说明这台机器在大量 TCP 连接中充当了主动关闭方,并且连接关闭后需要保留 2MSL 时间以保证最后一个 ACK 可重传、旧报文不会污染后续连接。常见诱因包括短连接比例高、高并发请求快速结束、服务端主动断开 HTTP 连接、未开启或未复用 keep-alive、反向代理到后端使用短连接、客户端或上游连接池配置不合理,以及瞬时流量尖峰。大量 TIME_WAIT 本身不一定是故障,但如果伴随本地端口耗尽、连接建立失败、CPU 软中断升高或 accept/connect 异常,就需要结合业务关闭方向、连接复用、系统参数和网络路径做定位。

RPC框架是怎么样的?

RPC 框架让调用远程服务像调用本地方法一样自然,但它本质上解决的是跨进程、跨机器调用中的寻址、编解码、网络通信、故障处理和治理问题。高质量回答要讲清动态代理、序列化、协议、服务发现、负载均衡、超时重试、熔断限流、链路追踪和幂等。

常见 HTTP 状态码有哪些?

HTTP 状态码是服务端对一次请求处理结果的标准化表达,面试中不能只背 200、404、500,而要按 1xx、2xx、3xx、4xx、5xx 五大类理解语义,再结合协议升级、缓存协商、重定向差异、REST 创建与删除语义、限流和网关故障来回答。真正高质量的答案应能说明状态码由谁返回、客户端应如何处理、是否影响缓存、是否改变请求方法,以及在排查线上问题时如何从状态码判断责任边界。

计算机网络: HTTP为什么说是无状态的?

HTTP 被称为无状态协议,核心含义是协议本身不会在服务端自动保存两次请求之间的业务上下文。每个请求都应携带足够的信息,让服务端独立理解并处理它。登录态、购物车、个性化配置等连续业务能力并不是 HTTP 天生具备的,而是通过 Cookie、Session、JWT、数据库或缓存等应用层机制补上的。

TCP 四次挥手的流程是什么?

TCP 四次挥手本质上是连接两端分别关闭各自发送方向的过程。由于 TCP 是全双工协议,一端发出 FIN 只表示自己不再发送数据,但仍能接收对端数据;对端确认后,也可能还要继续发送剩余数据,等发送完成再发自己的 FIN。因此面试回答要讲清 FIN 和 ACK 的含义、半关闭边界、双方状态迁移,以及 TIME_WAIT、CLOSE_WAIT、FIN_WAIT、LAST_ACK 等状态背后的工程意义。

后端通过什么连接到数据库?

后端连接数据库的核心链路通常是:业务代码通过 ORM 或数据访问框架发起数据库操作,框架从连接池拿到连接,连接池底层使用数据库驱动,驱动按照数据库协议与数据库实例、代理或中间件建立 TCP 连接,并完成认证、参数协商、SQL 发送、结果解析、事务控制和连接复用。以 Java 后端连接 MySQL 为例,常见链路是 Service/DAO -> MyBatis/JPA/JdbcTemplate -> DataSource/HikariCP/Druid -> JDBC Driver/MySQL Connector/J -> MySQL 协议 -> MySQL Server 或数据库代理。

Http 报文里有什么?

HTTP 报文是客户端和服务端交换应用层数据的基本格式。HTTP/1.x 报文由起始行、请求头或响应头、空行、消息体组成。请求报文的起始行叫请求行,包含方法、请求目标和协议版本;响应报文的起始行叫状态行,包含协议版本、状态码和原因短语。头部字段描述元信息,空行分隔头部和消息体,消息体承载实际业务数据。

http 协议 转 dubbo 协议怎么做的?

HTTP 转 Dubbo 的本质不是协议字节直接翻译,而是在网关或适配层把一个 HTTP 请求解析成一次 Dubbo RPC 调用。核心流程是:接收 HTTP 请求,按路由规则定位 Dubbo 接口、方法和版本,完成参数绑定和类型转换,通过注册中心或本地配置找到服务提供者,使用 Dubbo 客户端按 Dubbo 协议编码、序列化并发起调用,再把 Dubbo 响应、异常和超时结果转换成 HTTP 状态码与响应体。回答要围绕映射、发现、调用、治理和观测展开,而不是只说用网关转发。

浏览器输入 URL 到页面渲染经历哪些步骤?

这道题考察的是浏览器导航生命周期的完整理解,不只是背诵 DNS、TCP、HTTP、渲染几个名词,而是要把输入 URL 后的导航调度、缓存命中、Service Worker、网络连接复用、服务端响应、HTML 增量解析、资源优先级、JS 阻塞、渲染流水线和性能指标串成一条因果链。优秀答案应体现浏览器、网络协议、前端性能和运行时机制之间的关系。

同公司岗位有 2 条面经记录

怎么优化网络链接速度?

优化网络连接速度,本质是缩短从用户发起请求到可用响应返回的整条链路耗时。前端不能只盯着资源体积,还要拆开 DNS、TCP/TLS 握手、协议协商、服务器处理、传输拥塞、缓存命中、资源优先级和渲染阻塞等环节。回答应先给出度量口径,再按连接建立、协议升级、缓存复用、资源调度、传输压缩、CDN 边缘化和监控闭环展开。

HTTPS 的握手过程讲一讲?

HTTPS 的握手本质是 HTTP 通信前先通过 TLS 建立安全通道:客户端和服务端先协商 TLS 版本、密码套件和扩展参数,然后服务端用证书证明身份,双方通过密钥协商生成共享的对称会话密钥,再用 Finished 消息确认握手过程没有被篡改。握手完成后,HTTP 数据才通过对称加密、完整性校验和防重放机制进行传输。现代面试答案应以 ECDHE、TLS 1.2 和 TLS 1.3 为主,不能只讲早期 RSA 加密随机数的旧流程。

HTTP协议基于TCP做了哪些封装?

HTTP 并不是简单把数据塞进 TCP 发送,而是在 TCP 提供的可靠、有序、面向字节流的传输能力之上,定义了一整套应用层封装:报文格式、请求响应语义、头部元数据、消息体边界、连接管理、缓存协商、Cookie 状态、代理转发、安全传输以及不同版本的分帧和复用机制。TCP 只负责把字节可靠送达,不理解“请求”“响应”“URL”“状态码”“缓存”“Cookie”,这些都是 HTTP 在应用层补上的语义。

TCP 和 UDP 有什么区别?

TCP 和 UDP 的核心区别在于是否提供面向连接、可靠传输、有序交付、流量控制和拥塞控制。TCP 更像一条可靠的字节流通道,适合对完整性和顺序要求高的场景;UDP 更像一次次独立投递的数据报,协议本身不保证到达、不保证顺序,但开销小、时延低、应用层可自由定制可靠性策略。

游戏用 UDP 传输,丢包了怎么办?

UDP 本身不保证可靠、有序和不重复,游戏选择 UDP 是为了把实时性放在第一位,而不是简单地追求不丢包。丢包后的处理要先区分消息类型:位置、朝向、动画等高频状态通常不重传,靠序号、快照、插值、预测和纠偏恢复体验;开火、受击、结算、道具、匹配等关键事件则需要在应用层实现可靠通道,配合 ACK/NACK、选择性重传、冗余或 FEC,在带宽和时延之间做权衡。

https加密过程?

https加密过程?这道腾讯牛客题的关键是围绕“HTTP、HTTPS 与 TLS 安全链路”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,HTTPS 是 HTTP 运行在 TLS 之上。TLS 通过证书链验证服务器身份,通过密钥交换协商会话密钥,后续数据主要用对称加密传输,同时用完整性校验防止篡改。