标签题目
TCP相关面试题
TCP、UDP、HTTP 之间是什么关系?
这题考网络分层和协议职责,回答要把 HTTP 的应用语义与 TCP/UDP 的传输能力分开讲。
HTTP 如何判断一个包读完了?
这题考 HTTP 报文解析和 TCP 字节流边界,关键是说明不能靠一次 recv 或 TCP 包判断 HTTP 是否读完。
CLOSE_WAIT 和 TIME_WAIT 分别是什么?
CLOSE_WAIT 和 TIME_WAIT 都是 TCP 连接关闭过程中的状态,但含义完全不同。CLOSE_WAIT 出现在被动关闭方,表示对端已经发来 FIN,本端已经确认,但应用还没有调用 close 结束连接;TIME_WAIT 出现在主动关闭方,表示本端完成主动关闭后仍保留连接一段时间,用于处理延迟报文和保证对端收到最后的 ACK。
TCP 为什么需要四次挥手?
TCP 需要四次挥手,是因为 TCP 是全双工协议,两个方向的数据流要分别关闭。主动关闭方发送 FIN 只表示自己不再发送数据,对方收到后先 ACK 确认,但对方可能还有未发送完的数据,等它也发送完后再发 FIN,主动关闭方再 ACK,因此通常是四个报文段。
TCP 如何进行拥塞控制?
TCP 拥塞控制通过动态调整拥塞窗口 cwnd 来控制网络中未确认数据量,目标是在尽量提高吞吐的同时避免把网络打爆。经典机制包括慢启动、拥塞避免、快速重传和快速恢复,现代实现还会结合 RTT、丢包、带宽估计和不同拥塞控制算法优化。
为什么 TCP 建立连接需要三次握手?
TCP 三次握手的目的不是单纯通知双方在线,而是让双方确认彼此的发送和接收能力、同步初始序列号、协商连接参数,并避免历史重复连接请求造成错误连接。两次握手无法可靠完成这些目标。
同题还出现在 2 个公司岗位
TCP 如何保证可靠传输?
TCP 可靠传输依赖一组机制共同保证:序列号和确认号负责定位数据,重传机制处理丢包,滑动窗口控制发送节奏,校验和发现损坏,按序交付与去重处理乱序和重复,拥塞控制保护网络稳定。
同题还出现在 1 个公司岗位
什么情况服务器会有大量的TIME_WAIT连接?
服务器出现大量 TIME_WAIT,本质上说明这台机器在大量 TCP 连接中充当了主动关闭方,并且连接关闭后需要保留 2MSL 时间以保证最后一个 ACK 可重传、旧报文不会污染后续连接。常见诱因包括短连接比例高、高并发请求快速结束、服务端主动断开 HTTP 连接、未开启或未复用 keep-alive、反向代理到后端使用短连接、客户端或上游连接池配置不合理,以及瞬时流量尖峰。大量 TIME_WAIT 本身不一定是故障,但如果伴随本地端口耗尽、连接建立失败、CPU 软中断升高或 accept/connect 异常,就需要结合业务关闭方向、连接复用、系统参数和网络路径做定位。
TCP 四次挥手的流程是什么?
TCP 四次挥手本质上是连接两端分别关闭各自发送方向的过程。由于 TCP 是全双工协议,一端发出 FIN 只表示自己不再发送数据,但仍能接收对端数据;对端确认后,也可能还要继续发送剩余数据,等发送完成再发自己的 FIN。因此面试回答要讲清 FIN 和 ACK 的含义、半关闭边界、双方状态迁移,以及 TIME_WAIT、CLOSE_WAIT、FIN_WAIT、LAST_ACK 等状态背后的工程意义。
计算机网络知识体系面试中应该如何展开?
这类问题不是在考背诵协议名,而是在考候选人能否把计算机网络讲成一个有层次、有主线、能落到排障和工程实践的知识体系。高质量回答应先给出分层框架,再围绕 HTTP/HTTPS、TCP/UDP、DNS、连接生命周期、拥塞控制、流量控制和常见问题定位展开,避免想到哪里说到哪里。
TCP断开时有4次交互,而连接时有3次交互,多出来的一次是在做什么事情呢?
TCP 连接建立只需要双方确认彼此的发送能力和接收能力,因此三次握手即可完成双向能力确认;TCP 连接断开面对的是全双工连接的两个方向分别关闭,FIN 只表示一端不再发送数据,对端必须先 ACK 确认,等自己也没有数据要发送后再发 FIN。
TCP如何识别断开?
TCP 识别断开依赖报文、应用读写行为和超时机制共同完成。正常关闭通常通过 FIN 体现,应用读到 0;异常关闭常见为 RST,读写报错;静默断链不会立刻被发现,需要 keepalive、应用层心跳和业务超时兜底。
HTTP协议基于TCP做了哪些封装?
HTTP 并不是简单把数据塞进 TCP 发送,而是在 TCP 提供的可靠、有序、面向字节流的传输能力之上,定义了一整套应用层封装:报文格式、请求响应语义、头部元数据、消息体边界、连接管理、缓存协商、Cookie 状态、代理转发、安全传输以及不同版本的分帧和复用机制。TCP 只负责把字节可靠送达,不理解“请求”“响应”“URL”“状态码”“缓存”“Cookie”,这些都是 HTTP 在应用层补上的语义。
TCP 和 UDP 有什么区别?
TCP 和 UDP 的核心区别在于是否提供面向连接、可靠传输、有序交付、流量控制和拥塞控制。TCP 更像一条可靠的字节流通道,适合对完整性和顺序要求高的场景;UDP 更像一次次独立投递的数据报,协议本身不保证到达、不保证顺序,但开销小、时延低、应用层可自由定制可靠性策略。
tcp连接建立的过程?
tcp连接建立的过程?这道腾讯牛客题的关键是围绕“TCP 连接建立与三次握手”讲清概念、机制、取舍和边界。TCP 建立连接的核心是三次握手:客户端发送 SYN,服务端回复 SYN+ACK,客户端再回复 ACK。这个过程同步双方初始序列号、确认收发能力,并让双方进入 ESTABLISHED 状态。
tcp拥塞控制是怎么实现的?
tcp拥塞控制是怎么实现的?这道腾讯牛客题的关键是围绕“TCP 拥塞控制”讲清概念、机制、取舍和边界。TCP 拥塞控制解决的是发送速率不能超过网络承载能力的问题。典型机制包括慢启动、拥塞避免、快速重传和快速恢复,通过拥塞窗口 cwnd 与接收窗口共同限制在途数据量。
TCP如何可靠传输的?
TCP如何可靠传输的?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。
TCP怎么保证可靠性?
TCP怎么保证可靠性?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。
TCP如何实现可靠传输?
TCP如何实现可靠传输?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。
TCP拥塞窗口 / 滑动窗口及区别?
TCP拥塞窗口 / 滑动窗口及区别?这道腾讯牛客题的关键是围绕“TCP 滑动窗口与拥塞窗口”讲清概念、机制、取舍和边界。TCP 滑动窗口通常指接收方通告的接收窗口 rwnd,用来做流量控制;拥塞窗口 cwnd 是发送方根据网络拥塞情况维护的窗口,用来做拥塞控制。实际可发送的在途数据通常受 min(rwnd, cwnd) 限制。
tcp如何保证数据可靠性?
tcp如何保证数据可靠性?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。
TCP 黏包是什么,如何处理?
TCP 黏包是什么,如何处理?这道腾讯牛客题的关键是围绕“TCP 粘包与消息边界”讲清概念、机制、取舍和边界。TCP 粘包的根因是 TCP 提供连续字节流,不保留应用层一次 write 和一次 read 的消息边界。多个应用消息可能被合并读取,一个消息也可能被拆成多次读取,这不是 TCP 错误,而是应用协议需要定义帧边界。
对TCP的理解,有哪些特点?
对TCP的理解,有哪些特点?这道腾讯牛客题的关键是围绕“TCP 协议职责与特点”讲清概念、机制、取舍和边界。TCP 是传输层面向连接的可靠字节流协议,主要职责是为应用层提供可靠、有序、无重复的双向字节流,并通过流量控制和拥塞控制适配接收端与网络能力。
TCP 协议具体是干嘛的?
TCP 协议具体是干嘛的?这道腾讯牛客题的关键是围绕“TCP 协议职责与特点”讲清概念、机制、取舍和边界。TCP 是传输层面向连接的可靠字节流协议,主要职责是为应用层提供可靠、有序、无重复的双向字节流,并通过流量控制和拥塞控制适配接收端与网络能力。
TCP 的 TIME_WAIT 状态如何理解?
TCP 的 TIME_WAIT 状态如何理解?这道腾讯牛客题的关键是围绕“TCP TIME_WAIT 状态”讲清概念、机制、取舍和边界。TIME_WAIT 通常出现在主动关闭连接的一方。它在发送最后一个 ACK 后等待 2MSL,目的是处理网络中迟到的旧报文,并保证对端如果没收到最后 ACK 可以重传 FIN 后仍能得到响应。
TCP 协议在传输层承担什么作用,它如何保证可靠传输?
TCP 协议在传输层承担什么作用,它如何保证可靠传输?这道腾讯牛客题的关键是围绕“TCP 可靠传输机制”讲清概念、机制、取舍和边界。TCP 保证可靠传输依靠序列号、确认应答、超时重传、快速重传、校验和、滑动窗口、拥塞控制和有序重组。它保证的是可靠有序的字节流,不保证应用层消息边界。
HTTPS 中 TLS/SSL 的握手和加密原理是什么?
HTTPS 中 TLS/SSL 的握手和加密原理是什么?这道腾讯牛客题的关键是围绕“HTTP、HTTPS 与 TLS 安全链路”讲清概念、机制、取舍和边界。HTTP 是明文应用层协议,HTTPS 是 HTTP 运行在 TLS 之上。TLS 通过证书链验证服务器身份,通过密钥交换协商会话密钥,后续数据主要用对称加密传输,同时用完整性校验防止篡改。
TCP 连接关闭过程是什么,半关闭状态下还能否通信?
TCP 连接关闭过程是什么,半关闭状态下还能否通信?这道腾讯牛客题的关键是围绕“TCP 四次挥手与半关闭”讲清概念、机制、取舍和边界。TCP 关闭是双向独立关闭的过程,典型四次挥手是主动方发送 FIN,对端 ACK;对端也准备关闭时发送 FIN,主动方 ACK 后进入 TIME_WAIT。半关闭表示一端已经关闭发送方向,但仍可接收对端数据。
TCP 三次握手和四次挥手的流程是什么?
TCP 三次握手和四次挥手的流程是什么?这道腾讯牛客题的关键是围绕“TCP 建连与关闭状态机”讲清概念、机制、取舍和边界。TCP 三次握手负责建立连接和同步双方初始序列号;四次挥手负责分别关闭两个方向的字节流。建连关注 SYN、SYN+ACK、ACK 和双方收发能力确认;关闭关注 FIN、ACK、半关闭、CLOSE_WAIT 和 TIME_WAIT。