Packet 图:字段与位

Packet 图:字段与位

puml.online

简介 / Introduction

Packet(数据包)图常用于描述协议头结构、字节布局和字段语义。本文对比 PlantUML 与 Mermaid 两大引擎绘制 Packet 图的语法与视觉效果。

PlantUML 版

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
@startuml
packet "IPv4 Header" as ip {
[Version ] 4 bits
[IHL ] 4 bits
[DSCP/ECN ] 8 bits
[Total Length] 16 bits
---
[Identification] 16 bits
[Flags/Fragment] 16 bits
---
[TTL ] 8 bits
[Protocol ] 8 bits
[Checksum ] 16 bits
---
[Source IP ] 32 bits
[Dest IP ] 32 bits
}
@enduml

PlantUML 用 packet 关键字定义区块,内部用 --- 分隔字段行,每行以中括号标名字、右侧写位数。

Mermaid 版

1
2
3
4
5
6
7
8
9
10
11
packet-beta
title IPv4 Header
0-3: Version | IHL
4-11: DSCP/ECN
12-27: Total Length
28-43: Identification
44-59: Flags | Fragment Offset
60-67: TTL | Protocol
68-83: Header Checksum
84-115: Source IP
116-147: Dest IP

Mermaid 使用 packet-beta 图类型,按字节偏移范围(起始-结束)定义字段,支持 title 关键字。

对比 / Side-by-side

特性 PlantUML Mermaid
引擎关键字 packet packet-beta
字段定义 [名称] 宽度 bits 起始-结束: 名称
分组/分段 --- 横线 无(自然按行分隔)
位偏移精度 不标偏移,只标位数 必须指定起止偏移
标注支持 支持 [名称] 内联注释 支持 title 标题

小结 / Wrap-up

PlantUML 的 Packet 图适合表现抽象层级和语义分组;Mermaid 的 packet-beta 更适合精确描述字节偏移。两者均可嵌入文档或博客,选择取决于是需要”粗粒度描述”还是”精确位布局”。

  • 标题: Packet 图:字段与位
  • 作者: puml.online
  • 创建于 : 2026-10-06 09:00:00
  • 更新于 : 2026-10-06 01:08:06
  • 链接: https://puml.online/blog/packet-beta-fields/
  • 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。