Skip to content

补充 TCP 粘包与拆包、TIME_WAIT 与 CLOSE_WAIT - #1470

Merged
CyC2018 merged 1 commit into
redraw-network-diagramsfrom
add-tcp-sticky-packets
Oct 26, 2026
Merged

CyC2018 merged 1 commit into
redraw-network-diagramsfrom
add-tcp-sticky-packets

Conversation

@CyC2018

@CyC2018 CyC2018 commented Oct 25, 2026

Copy link
Copy Markdown
Owner

在传输层笔记中补充:

  • TCP 粘包与拆包:产生原因、UDP 为什么没有这个问题、固定长度、分隔符和长度字段三种方法(HTTP/1.1、Netty 的做法),以及长度字段的最小实现和长度上限检查;配 1 张示意图,用一次实际运行的读取结果展示消息边界对不上的情况;
  • TIME_WAIT:2MSL 的含义、Linux 中的时长,大量 TIME_WAIT 的原因与处理(长连接、tcp_tw_reuse、端口范围);
  • CLOSE_WAIT:大量出现时的原因与排查方向;
  • 超时重传:RFC 6298 建议的参数和 RTO 下限;
  • 三次握手:客户端收到对滞留连接请求的确认时回复 RST。

本 PR 基于 #1468。

补充 TCP 粘包与拆包:产生原因、三种划分消息边界的方法和长度字段的实现;补充 2MSL 的含义、大量 TIME_WAIT 与 CLOSE_WAIT 的原因和处理、RFC 6298 的 RTO 参数;三次握手中对滞留连接请求的处理按 RFC 9293 改为回复 RST。
@CyC2018
CyC2018 merged commit 83cd03e into redraw-network-diagrams Oct 26, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant