首页/安全/加密与证书速查/TLS 记录层格式与分片
TLS 与 HTTPS60 条

TLS 记录层格式与分片

记录层把上层数据切成记录传输:每条约 5 字节头(内容类型、版本、长度)加上载荷;单条记录明文上限 16KB,应用数据会被拆成多条记录发送。

加密与证书速查安全更新于 2026-10-12
头部5 字节:type(1) + legacy_version(2) + length(2)
长度上限明文载荷上限为 2 的 14 次方字节(16KB),密文另加身份验证扩展开销
内容类型handshake(22)、alert(21)、application_data(23)、change_cipher_spec(20)
关系一条 TCP 段可包含多条记录,记录大小不等于 TCP 包大小

观察记录行为

观察记录行为
openssl s_client -connect example.com:443 -servername example.com -msg </dev/null 2>&1 | head -10
# 抓包统计记录类型(示例)
# tshark -r tls.pcap -Y 'tls' -T fields -e tls.record.content_type | sort | uniq -c
对 MTU 与延迟敏感的业务可关注记录尺寸策略;TLS 1.3 允许在应用数据内填充,记录尺寸与明文的对应关系不再直接。

易错点

  • 把 TCP 包数量等同于记录数量(存在拆分与合并)
  • 看到 change_cipher_spec 就认为运行的是 TLS 1.2(1.3 为兼容中间设备也会发送该消息)

数据来源与参考

  • RFC 5246 §6.2(记录层)
  • RFC 8446 §5(记录层)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌