# 1. TCP 序列号、累计确认与 SACK 如何协同恢复多个丢失报文段? A 累计确认能表达所有不连续段的接收情况 B 序列号标识数据位置,累计确认提供连续进度,SACK 补充不连续段的已收范围,使发送端精确重传多个缺失段 ✓ 正确答案 C SACK 与累计确认互斥,不能同时使用 D SACK 只用于重传,不用于恢复
# 2. ECN 与 DCTCP 在数据中心部署中如何降低丢包率,交换机标记位与 AQM 队列管理如何配合? A ECN 用丢弃来标记拥塞 B ECN 与 DCTCP 都依赖大量丢包反馈 C DCTCP 不使用 AQM D 交换机用 AQM 在低阈值时标记 CE 位而非丢弃,DCTCP 按标记比例调整窗口,从而降低丢包与延迟 ✓ 正确答案
# 3. TCP 慢启动门限(ssthresh)与拥塞避免阶段的切换逻辑,packet pacing 与 GSO 对吞吐稳定性的影响是什么? A packet pacing 均匀发送避免突发,GSO 减少内核处理开销,两者影响吞吐稳定性 B 窗口达到 ssthresh 后从慢启动切换到拥塞避免 ✓ 正确答案 C ssthresh 只在慢启动阶段存在 D pacing 会增加突发丢包
# 4. TCP 的 TIME_WAIT 状态为何保留 2MSL,对短连接高并发服务(HTTP/1.0)的端口耗尽问题如何缓解? A 用 SO_REUSEADDR 无法复用 TIME_WAIT 端口 B TIME_WAIT 只保留 1 个 RTT C 端口耗尽与 TIME_WAIT 无关 D TIME_WAIT 保留 2MSL 用于确认最终 ACK 并让旧报文消亡 ✓ 正确答案
# 5. UDP 应用若自行实现重试、分片与拥塞控制,必须处理哪些放大和公平性问题? A UDP 已有内建拥塞控制与重传 B UDP 应用无需处理放大问题 C UDP 应用自实现重试/拥塞时需处理放大攻击、分片 MTU 与公平性(避免与 TCP 竞争不公平) ✓ 正确答案 D UDP 应用自实现拥塞控制会天然公平
# 6. MPTCP 在多路径调度上的 scheduler 与 congestion control 是如何配合的,子流独立拥塞与耦合拥塞的取舍是什么? A scheduler 决定每个子流的拥塞窗口 B scheduler 决定数据分发到哪个子流,独立拥塞吞吐高但可能不公平,耦合拥塞维护公平但需跨子流协调 ✓ 正确答案 C MPTCP 只有一个子流 D 耦合拥塞与独立拥塞效果相同
# 7. 为什么 L4 负载均衡器在 ACK/SYN 报文经过时必须保证会话保持,DSR(Direct Server Return)模式下 NAT 表项如何维护? A L4 负载均衡器是无状态的,无需会话保持 B 同一连接必须保持到同一后端,DSR 下回程由后端直连客户端,负载器只需维护入站选后端的状态 ✓ 正确答案 C DSR 下负载器必须维护完整双向 NAT 表 D DSR 下回包仍经过负载器
# 8. QUIC 的拥塞控制(QUIC-CC)相比 TCP CC 在 ACK 路径上做了哪些改进,跨流协调与 pacing 差异如何体现? A QUIC 拥塞控制是流独立的,每个流独立窗口 B QUIC 拥塞控制在用户态可插拔,ACK 更精确,连接级窗口 + 流级流控 + 内置 pacing ✓ 正确答案 C QUIC 不使用 pacing,采用突发发送 D QUIC 的 ACK 与 TCP 完全相同
# 9. QUIC 的 Initial、Handshake、0-RTT、1-RTT 包分别使用哪一阶段密钥,何时可承载应用数据? A Initial 包用最终应用密钥保护 B Initial 用 Initial 密钥、Handshake 用 Handshake 密钥、0-RTT 用早期密钥、1-RTT 用应用数据密钥,0-RTT 可在握手前发数据但需防重放 ✓ 正确答案 C 0-RTT 与 1-RTT 使用相同密钥 D 所有 QUIC 包只有一种密钥
# 10. 连接 ID 如何支持 NAT 重绑定与路径迁移,为什么不能仅依赖四元组识别连接? A QUIC 用连接 ID 标识连接,NAT 重绑定或路径迁移时地址变化但连接 ID 不变,从而保持连接 ✓ 正确答案 B QUIC 用 4 元组识别连接 C 连接 ID 无法支持 NAT 重绑定 D 四元组在 NAT 重绑定后不变
# 11. QUIC 的 stream 多路复用为何仍需要连接级拥塞控制,流控与连接控窗口的协作机制是什么? A 多条 stream 共享路径,故拥塞控制是连接级的,实际发送量由连接级拥塞窗口与流级/连接级流控窗口取小决定 ✓ 正确答案 B QUIC 每条 stream 独立拥塞控制 C 流控与拥塞控制无关 D QUIC 只有流级流控,没有连接级
# 12. QUIC 每个流独立排序如何消除 TCP 层队头阻塞,丢包仍会造成哪些连接级影响? A QUIC 丢包完全不造成任何影响 B QUIC 与 TCP 一样存在跨流队头阻塞 C 流级独立排序消除跨流队头阻塞,但丢包仍触发连接级拥塞窗口收缩与重传,所有流共享影响 ✓ 正确答案 D QUIC 的拥塞控制是流独立的
# 13. QUIC 握手阶段的 TLS 1.3 对证书压缩、签名算法(Ed25519/RSA-PSS)和密钥派生上的约束是什么? A QUIC 支持 TLS 1.2 和 1.3 B QUIC 的密钥派生与 TLS 1.3 无关 C QUIC 允许 RSA-PKCS1v1.5 签名 D QUIC 强制 TLS 1.3,支持证书压缩、现代签名算法(Ed25519/RSA-PSS),用 HKDF 派生各阶段密钥 ✓ 正确答案
# 14. QUIC 连接迁移(connection migration)触发后,新的路径 CID 如何通知对端,路径验证(path validation)为何必须? A 迁移后无需验证新路径 B 迁移用 CID 保持连接,通过 PATH_CHALLENGE/PATH_RESPONSE 进行路径验证,确认新地址真实以防地址伪造 ✓ 正确答案 C 路径验证只用于握手,不用于迁移 D 迁移后连接必然中断
# 15. 部署 UDP/QUIC 后握手超时升高时,应如何验证 MTU、负载均衡 CID 路由与 UDP 会话超时? A 只需检查 MTU 即可 B UDP 会话超时不影响 QUIC C 负载均衡应按 4 元组路由 QUIC 连接 D 需验证路径 MTU/分片、负载均衡按连接 ID 稳定路由、以及 UDP 会话超时是否过早切断连接 ✓ 正确答案
# 16. HTTP/3 在负载均衡设备上需识别 QUIC 报文头才能正确分片,运营商封禁 UDP 443 后回退到 HTTP/2 的策略如何实现? A 负载均衡器用 4 元组即可稳定路由 QUIC 连接 B 负载器需解析 QUIC 头提取连接 ID 以正确分片保持,UDP 443 被封后客户端通过 ALPN/超时降级回退到 HTTP/2 over TCP ✓ 正确答案 C HTTP/3 与 HTTP/2 无区别 D 封禁 UDP 443 后 HTTP/3 仍可工作
# 17. CUBIC 的窗口增长函数(W = C(t-K)^3 + W_max)如何实现 TCP 友好与高带宽利用,与 Reno 的 AIMD 有何本质差异? A CUBIC 恢复比 Reno 慢 B CUBIC 与 Reno 都是线性增长 C CUBIC 的增长与 RTT 强相关 D CUBIC 用立方增长,独立于 RTT、恢复快、利用率高;Reno 用 AIMD 线性增长,与 RTT 相关 ✓ 正确答案
# 18. 当 QUIC 应用出现抖动时,是流级别乱序还是连接级别乱序,二者在 PADDING/PING 帧探测时的区别是什么? A PADDING 帧用于测量 RTT B PING 帧丢弃应用数据,PADDING 帧触发 ACK C 乱序只发生在流级,与连接无关 D PING 帧用于探测路径活性与 RTT,PADDING 帧用于填充包大小(MTU/放大约束),前者是连接级探测 ✓ 正确答案
# 19. QUIC 不可恢复错误码 CONNECTION_CLOSE 的 application vs transport 分类如何指导调试,关闭帧延迟传递的语义? A transport 错误代表应用逻辑错误 B 关闭帧无需可靠传递 C 所有 CONNECTION_CLOSE 都是 transport 错误 D application 错误码是应用层定义,transport 错误码是传输层协议错误,二者区分指导调试;关闭帧需可靠送达并关联上下文 ✓ 正确答案
# 20. gRPC over QUIC 相比 gRPC over HTTP/2 在多路复用与流控粒度上的差异,stream ID 与 http2 stream 兼容性问题? A gRPC over QUIC 用 HTTP/2 的 stream ID 直接复用 B QUIC 没有流级流控 C HTTP/2 与 HTTP/3 的 stream 完全兼容 D QUIC 流级多路复用消除 TCP 队头阻塞且流控更细,HTTP/3 的 stream 类型与 ID 分配和 HTTP/2 不同,需重新映射 ✓ 正确答案
# 21. send() 把数据拷贝进 socket 发送缓冲区后即可返回,真正的分段、重传由内核哪条路径完成?发送缓冲区满时阻塞与非阻塞语义有何不同? A send() 负责完成 TCP 分段与重传 B send() 返回即表示数据已发到网络 C 非阻塞 send() 在缓冲区满时也会等待 D send() 只把数据拷贝进发送缓冲区,分段/重传由内核完成;缓冲区满时阻塞等待、非阻塞返回 EAGAIN ✓ 正确答案
# 22. 接收方数据从网卡硬中断、NET_RX 软中断到 socket 接收队列经历哪些步骤?阻塞 recv() 何时被唤醒? A 硬中断直接唤醒 recv(),无需软中断 B 数据经硬中断、NET_RX 软中断、协议栈处理后放入 socket 接收队列,阻塞 recv() 在数据进入接收队列时被唤醒 ✓ 正确答案 C recv() 在数据进入网卡时即被唤醒 D 接收数据不经过 socket 接收队列
# 23. sendfile() 相比 read()+write() 省去了哪几次拷贝与上下文切换?支持 DMA gather 的网卡如何进一步消除 CPU 拷贝? A sendfile() 与 read()+write() 拷贝次数相同 B sendfile() 避免用户态往返,减少系统调用与 CPU 拷贝;支持 SG-DMA 的网卡可直接从 page cache 分散页 DMA 发送,消除 CPU 拷贝 ✓ 正确答案 C sendfile() 需要把数据拷到用户态 D DMA gather 增加 CPU 拷贝
# 24. splice() 借助管道在两个文件描述符间传输数据为何能避免用户态拷贝?pipe buffer 在其中起什么作用? A splice() 通过管道传递页引用实现零拷贝,pipe buffer 作为页引用的中转,避免用户态拷贝 ✓ 正确答案 B splice() 把数据拷贝到用户态再传输 C pipe buffer 存放数据的用户态副本 D splice() 与 read()+write() 拷贝次数相同
# 25. SO_REUSEPORT 允许多个 socket 绑定同一端口,内核如何按 4-tuple 哈希分发连接,保证同一连接始终落到同一进程? A SO_REUSEPORT 会导致同一连接被多个进程处理 B SO_REUSEPORT 让多个 socket 绑定同一端口,内核按 4 元组哈希分发,保证同一连接落到同一进程并均衡负载 ✓ 正确答案 C SO_REUSEPORT 只允许一个 socket 绑定端口 D 内核按轮询分发,不按哈希
# 26. TCP_NODELAY 关闭 Nagle、TCP_CORK 累积数据的语义分别是什么?它们与延迟 ACK 交互时如何影响小包延迟? A TCP_CORK 让小包立即发送 B TCP_NODELAY 开启 Nagle 算法 C TCP_NODELAY 关闭 Nagle 让小包立即发送,TCP_CORK 用于累积数据,Nagle 与延迟 ACK 可能形成相互等待导致延迟 ✓ 正确答案 D 延迟 ACK 与 Nagle 无交互
# 27. SO_RCVBUF/SO_SNDBUF 与内核自动调优(tcp_rmem/tcp_wmem)是什么关系?为何显式设置后会关闭自动调优? A 显式设置后内核仍会动态覆盖缓冲区 B 显式设置 SO_RCVBUF/SO_SNDBUF 后内核会关闭自动调优,固定缓冲区大小并受 max 约束 ✓ 正确答案 C 自动调优与 tcp_rmem/tcp_wmem 无关 D SO_RCVBUF 设置后自动调优继续生效
# 28. shutdown() 与 close() 对 TCP 连接状态、引用计数与未读数据的影响有何不同? A close() 不丢弃未读数据 B shutdown() 与 close() 都释放 socket C shutdown() 只做方向性半关闭,不改变引用计数;close() 完全关闭并递减引用计数,且可能丢弃未读数据 ✓ 正确答案 D shutdown() 会改变引用计数
# 29. BBR 与 CUBIC 在瓶颈带宽测量模型上的差异,BBR2/BBR3 解决了哪些公平性问题? A BBR 用丢包驱动,CUBIC 用带宽×延迟模型 B BBR 显式测量 BtlBw×RTprop 发送,CUBIC 依赖丢包;BBR2/3 引入丢包/ECN 感知与多流收敛改进公平性 ✓ 正确答案 C BBR 与 CUBIC 都是丢包驱动 D BBR 天然公平,无需改进
# 30. 0-RTT 数据在重放攻击场景下的应用限制(safe/unsafe data),客户端如何避免被回放污染业务状态? A 0-RTT 数据可安全地承载所有请求 B 0-RTT 与 1-RTT 安全性相同 C 0-RTT 有内建防重放机制 D 0-RTT 可被重放,只能承载幂等/安全数据,非幂等操作应放 1-RTT 并配合服务端去重防护 ✓ 正确答案
# 31. epoll 边缘触发只在状态跳变时通知一次,为什么必须用非阻塞 fd 并循环读到 EAGAIN?漏读会造成什么后果? A ET 必须用阻塞 fd B ET 在每次有数据时都重复通知 C ET 只在状态跳变时通知一次,必须用非阻塞 fd 循环读到 EAGAIN,漏读会导致数据滞留且不再触发通知 ✓ 正确答案 D ET 漏读不影响后续事件
# 32. 接收窗口与拥塞窗口分别限制什么,发送端实际在途数据上限如何确定? A rwnd 限制网络容量,cwnd 限制接收方缓冲 B rwnd 与 cwnd 无关 C 发送端只受 cwnd 限制 D 发送端在途数据上限 = min(cwnd, rwnd),cwnd 反映网络拥塞、rwnd 反映接收方背压 ✓ 正确答案
# 33. ACK clocking,为什么拥塞窗口通常按 ACK 到达节奏增长,突发发送与 pacing 对瓶颈队列与丢包的影响如何? A pacing 会增加突发与丢包 B 突发发送会降低队列长度 C ACK clocking 让发送由 ACK 到达节奏驱动,突发发送会堆积队列导致丢包,pacing 均匀发送降低队列与丢包 ✓ 正确答案 D ACK clocking 与发送节奏无关
# 34. TCP Fast Open(TFO)如何用 TFO cookie 减少建连 RTT,与 QUIC 0-RTT 在重放防护语义上的差异? A TFO 与 QUIC 0-RTT 都无重放风险 B TFO 用 cookie 在 SYN 携带数据减少 RTT,QUIC 0-RTT 用 PSK 提前发数据,两者都面临重放但 QUIC 0-RTT 重放面更大、需更强幂等防护 ✓ 正确答案 C TFO 不减少 RTT D QUIC 0-RTT 有内建防重放
# 35. SO_REUSEADDR、SO_KEEPALIVE 与 TCP_NODELAY 的语义与典型用法分别是什么? A SO_REUSEADDR 复用 TIME_WAIT 端口,SO_KEEPALIVE 探测空闲连接存活,TCP_NODELAY 关闭 Nagle 降低小包延迟 ✓ 正确答案 B 三者都用于加密 C SO_REUSEADDR 用于检测连接存活 D TCP_NODELAY 开启 Nagle 算法
# 36. QUIC 在 UDP 上为每个 stream 独立管理丢包重传,如何消除 TCP 单字节流上的队头阻塞? A QUIC 用多独立流替代单字节流,某流丢包只重传该流,其他流可立即交付,消除跨流队头阻塞 ✓ 正确答案 B QUIC 与 TCP 一样是单字节流 C QUIC 流内绝对无乱序 D QUIC 丢包会阻塞所有流
# 37. QUIC 连接以 Connection ID 而非 4-tuple 标识,连接迁移(如 Wi-Fi 切蜂窝)时如何保持连接不断? A QUIC 用连接 ID 标识连接,Wi-Fi 切蜂窝时地址变化但连接 ID 不变,配合路径验证保持连接不断 ✓ 正确答案 B QUIC 用 4 元组标识连接,迁移时连接中断 C 连接迁移后无法使用新地址 D 连接 ID 随地址变化而变化
# 38. QUIC 的 path validation(PATH_CHALLENGE/PATH_RESPONSE)在连接迁移中防止什么攻击? A 它不验证地址真实性 B 它只用于握手,不用于迁移 C 它防止地址伪造与放大攻击,要求新地址能回 PATH_CHALLENGE 确认真实性 ✓ 正确答案 D 它防止中间人窃听但不防放大
# 39. QUIC 0-RTT 允许客户端用缓存的会话参数提前发数据,为什么它天然面临重放攻击,服务端应如何限制? A 0-RTT 密钥有防重放机制 B 0-RTT 与 1-RTT 防重放能力相同 C 0-RTT 由 PSK 派生的密钥无防重放机制,天然可被重放,服务端应限制幂等请求、去重并限制 0-RTT 范围 ✓ 正确答案 D 0-RTT 可安全处理所有请求
# 40. QUIC 把 TLS 1.3 握手内嵌到传输层,相比 TCP+TLS 如何减少建连往返(1-RTT/0-RTT)? A QUIC 首次连接 1-RTT、缓存会话后 0-RTT,比 TCP+TLS 的 2 RTT 更少 ✓ 正确答案 B QUIC 与 TCP+TLS 往返相同 C QUIC 需要 3 个 RTT 建连 D 0-RTT 需要完整握手后才能发数据
# 41. QUIC 如何防御 UDP 反射放大攻击,address validation 与 amplification limit(放大倍数上限)的机制如何? A amplification limit 允许未验证阶段无限放大 B QUIC 不防御放大攻击 C 通过地址验证(Retry/token)确认来源真实,并在握手前限制响应量不超过收到的 3 倍,防止放大攻击 ✓ 正确答案 D 地址验证只用于数据传输,不用于握手
# 42. QUIC 的流级流量控制与连接级流量控制如何配合,避免单个流耗尽整体资源? A 流级流控与连接级流控互斥 B QUIC 只有连接级流控 C 流级窗口限制单流,连接级窗口限制总体,取小发送,避免单流耗尽整体资源 ✓ 正确答案 D 单流可无限占用连接资源
# 43. HTTP/3 把 HTTP 语义映射到 QUIC 流,控制流与请求流如何分工? A 所有 HTTP/3 消息在一个流上传送 B 控制流传输 SETTINGS/优先级等控制消息,请求流承载具体请求/响应,QPACK 流同步头部压缩表 ✓ 正确答案 C 控制流承载请求数据 D 请求流只用于握手
# 44. 为什么 QUIC 选择在用户态实现而非直接修改内核 TCP?这对协议迭代速度有何影响? A QUIC 在用户态实现便于部署升级、可插拔拥塞控制、跨平台一致,迭代速度远快于内核 TCP ✓ 正确答案 B QUIC 修改内核 TCP 以提升性能 C 用户态实现使迭代变慢 D QUIC 必须随内核升级才能增加特性
# 45. QUIC 按 packet number space 做丢包恢复,相比 TCP 累积确认在重传效率上有何优势? A TCP 累积确认比 QUIC 更精确 B QUIC 与 TCP 一样复用包号 C QUIC 用独立包号空间、重传用新包号、ACK 范围精确报告,比 TCP 累积确认重传更精确、RTT 估计更准 ✓ 正确答案 D QUIC 重传复用同一包号
# 46. QUIC 的建立,0-RTT 与 1-RTT 握手、连接迁移与队头阻塞消除如何实现? A QUIC 无法迁移连接 B QUIC 建连需要 3 个 RTT C 1-RTT/0-RTT 握手减少建连往返,连接 ID 支持无缝迁移,多流独立排序消除跨流队头阻塞 ✓ 正确答案 D QUIC 与 TCP 一样有跨流队头阻塞
# 47. QUIC 的 spin bit 如何用于被动 RTT 测量,为什么默认关闭且不提供加密语义? A spin bit 默认开启 B spin bit 提供加密 C spin bit 用于被动 RTT 测量,默认关闭以保护隐私,且不提供加密语义 ✓ 正确答案 D spin bit 用于加密数据
# 48. HTTP/3 相对 HTTP/2 为何移除 server push,RFC 9218 的 Extensible Priorities 如何表达请求优先级? A server push 因使用率低与复杂被移除,RFC 9218 用 urgency(0-7)与 incremental 表达请求优先级,替代 HTTP/2 依赖树 ✓ 正确答案 B HTTP/3 保留了 server push C RFC 9218 仍用依赖树表达优先级 D 优先级与请求调度无关
# 49. TCP zero window 通告作为接收方背压? A zero window 与背压无关 B zero window 表示发送方缓存满 C zero window 时发送方仍可任意发送 D zero window 是接收方通告 rwnd=0 形成背压,暂停发送,并用 zero window probe 探测窗口恢复 ✓ 正确答案
# 50. TCP slow start 与 congestion avoidance 在背压中的角色? A 它们负责接收方缓冲区管理 B 它们负责网络侧背压,slow start 指数增长探测带宽、congestion avoidance 线性增长避免拥塞,与接收窗口互补 ✓ 正确答案 C slow start 是线性增长 D 它们与拥塞控制无关
# 51. Linux sysctl net.ipv4.tcp_abc 在 explicit backpressure 中的角色? A tcp_abc 关闭拥塞控制 B tcp_abc 启用 ABC(按确认字节数增长窗口),使拥塞控制更精确、更平滑地响应 ACK/ECN 背压 ✓ 正确答案 C tcp_abc 只影响接收窗口 D tcp_abc 与窗口增长无关
# 52. TCP selective acknowledgement(SACK)下拥塞避免的窗口调整? A SACK 下所有丢包都导致窗口归零 B SACK 精确识别丢失段,重传缺失段并继续发送,窗口调整更精细,避免不必要的整体窗口骤降 ✓ 正确答案 C SACK 无助于窗口调整 D SACK 下遇到丢包不调整窗口
# 53. 推导 TCP 接收窗口(rwnd)满时 zero window 探测的最小间隔? A 探测间隔采用指数退避,最小间隔为初始 RTO(约 1 秒量级),之后每次加倍 ✓ 正确答案 B 探测间隔固定为 1 毫秒 C 探测间隔随窗口增大而减小 D 探测间隔没有退避
# 54. RTO、快速重传与 RACK/TLP 的触发依据有何差异,为什么尾部丢包更难发现? A TLP 与快速重传触发依据相同 B 所有丢包都靠 RTO 检测 C 尾部丢包能被快速重传立即发现 D 快速重传靠重复 ACK,RTO 靠超时,TLP 主动探测尾部丢包;尾部丢包无后续包触发重复 ACK,只能等 RTO,故难发现 ✓ 正确答案
# 55. 当 RTT 估算抖动较大时 PTO(Probe Timeout)为何被引入作为 RTO 的备份,与传统的 RTO 重传算法有何区别? A RTO 在抖动时始终可靠 B PTO 与 RTO 完全相同 C PTO 直接重传全部数据 D RTT 抖动时 RTO 可能过短/过长,PTO 用保守估算并先发探测包确认,作为 RTO 的备份,避免假丢包 ✓ 正确答案
# 56. MSG_PEEK、MSG_DONTWAIT、MSG_NOSIGNAL 各自改变 recv/send 的什么行为?为何常需屏蔽 SIGPIPE? A MSG_PEEK 窥探不消费、MSG_DONTWAIT 非阻塞、MSG_NOSIGNAL 抑制 SIGPIPE;屏蔽 SIGPIPE 避免向关闭连接写数据导致进程被杀 ✓ 正确答案 B MSG_PEEK 会消费数据 C MSG_NOSIGNAL 会触发 SIGPIPE D MSG_DONTWAIT 总是阻塞
# 57. listen 的 backlog 涉及 SYN queue 与 accept queue,accept queue 溢出时客户端会观察到什么现象? A backlog 只影响 SYN queue B accept queue 溢出只影响 SYN 握手 C 应用 accept 慢导致 accept queue 溢出,客户端表现为连接建立后断开、超时或被 RST ✓ 正确答案 D accept queue 溢出客户端无感知
# 58. QUIC 中 ack-eliciting 报文与 PTO 退避,为什么纯 ACK 不触发重传计时器,PTO 指数退避的作用是什么? A 纯 ACK 不触发重传计时器(无需确认),PTO 指数退避降低持续故障时的探测频率 ✓ 正确答案 B 纯 ACK 也触发重传计时器 C PTO 退避会提高探测频率 D ack-eliciting 报文不触发重传
# 59. QPACK 相对 HPACK 为何改用编码器/解码器流显式同步动态表,而不是在请求流中隐式更新? A QPACK 用独立编码器/解码器流显式同步动态表,与请求流解耦,避免队头阻塞;HPACK 隐式更新易阻塞 ✓ 正确答案 B QPACK 与 HPACK 都隐式更新 C QPACK 动态表在请求流内隐式同步 D QPACK 没有动态表
# 60. HTTP/3 的帧与流,与 HTTP/2 的差异及服务端部署如何? A HTTP/3 部署无需处理 QUIC B HTTP/3 与 HTTP/2 流完全一致 C HTTP/3 仍在 TCP 上传输 D HTTP/3 在 QUIC 流上承载帧消除跨流 HOL,引入控制流与 QPACK 流;部署需支持 UDP 443、连接 ID 路由与 HTTP/2 回退 ✓ 正确答案
# 61. QUIC 的连接迁移,连接 ID 与网络切换如何配合? A 连接 ID 解耦连接身份与地址,网络切换时地址变化但 CID 不变,配合路径验证实现无缝迁移 ✓ 正确答案 B 迁移时连接 ID 随地址变化 C 连接迁移依赖 4 元组 D 网络切换必然中断连接
# 62. QUIC 的 0-RTT 重放攻击与防护? A 0-RTT 可安全处理所有请求 B 0-RTT 有内建防重放 C 0-RTT 密钥无防重放,防护靠幂等限制、anti-replay 去重与重放窗口过期,非幂等操作应放 1-RTT ✓ 正确答案 D 重放攻击无法防护
# 63. QUIC 的流量控制与流优先级,HTTP/3 的依赖树如何构建? A QUIC 定义流优先级 B HTTP/3 仍使用依赖树 C QUIC 只有连接级流控 D QUIC 流控分流级+连接级,HTTP/3 用 RFC 9218 的 urgency+incremental 表达优先级,已移除 HTTP/2 的依赖树 ✓ 正确答案
# 64. QUIC Key Update(TLS 1.3 密钥更新)如何在不中断连接的情况下轮换流量密钥,旧密钥的重放窗口如何处理? A Key Update 不轮换密钥 B 密钥更新会中断连接 C 旧密钥永久有效可重放 D 用 HKDF 派生新流量密钥平滑切换,旧密钥保留短暂过渡窗口处理在途包,过期后旧密钥包被丢弃 ✓ 正确答案