ICMP 数据包 header 布局

ICMP Packet header layout

我正在处理 ICMP ping 任务,我正在尝试理解提供给我的框架代码。

icmpHeader=recPacket[20:28]
type,code,checksum,packetID,sequence=struct.unpack("bbHHh",icmpHeader) 

我知道这个段解析数据包以获取 ICMP Header,并将 header 解包到变量类型、代码、校验和、packetID、序列中。我也理解 "bbHHh" 表示数据包的布局 header。我的问题是在哪里可以找到布局信息?我知道 "H" 代表 unsigned short (16),但我不知道 "b" 或 "h" 代表什么。我在哪里可以获得这些信息?

代码使用 Python 的 struct 模块解码 header。格式字符记录在 module's documentation.