code: func ipChecksum(b []byte) uint16 {
  	var sum uint32
  	for ; len(b) >= 2; b = b[2:] {
  		sum += uint32(b[0])<<8 | uint32(b[1])
  	}
  	if len(b) == 1 {
  		sum += uint32(b[0]) << 8
  	}
  	for sum>>16 != 0 {
  		sum = (sum & 0xffff) + (sum >> 16)
  	}
  	return uint16(^sum)
  }
docs: // ipChecksum calculates the IP checksum of a []byte per RFC1071