title: ICMP Packet header layout
body: <p>I'm working on an ICMP pinging assignment and I'm trying to understand the skeleton code that was given to me. </p>
  
  <pre><code>icmpHeader=recPacket[20:28]
  type,code,checksum,packetID,sequence=struct.unpack("bbHHh",icmpHeader) 
  </code></pre>
  
  <p>I know this segment parses the packet to grab the ICMP Header, and unpacks the header into the variables type,code,checksum,packetID,sequence. I also understand that "bbHHh" denotes the layout of the packet header. My question is where can I find information for the layout? I know "H" stands for unsigned short (16), but I don't know what "b" or "h" stands for. Where can I get this information? </p>