Byte Frame Prefix Length Audit
Compare a leading unsigned byte length field against the complete remaining frame payload; mismatch is evidence, not a thrown truncation error.
Description
Compare a leading unsigned byte length field against the complete remaining frame payload; mismatch is evidence, not a thrown truncation error.
A length-prefixed frame can declare a payload size different from the bytes actually present. This audit compares them without consuming multiple frames.
When to use this tool
Compare a leading unsigned byte length field against the complete remaining frame payload; mismatch is evidence, not a thrown truncation error.
- Prepare the supplied bytes, lengthBytes, littleEndian fields for this operation.
- Compare the complete example with the representation used by your own input before carrying the result into another step.
How to use the tool and how it works
- Enter bytes, lengthBytes, littleEndian. Use the exact text syntax, units and index conventions explained below.
- Run the tool. If input validation fails, correct the supplied fields before interpreting any result.
- Read result.declared, result.actual, result.difference, result.matches. Interpret false, null and empty lists using the distinctions below; they can be valid outputs.
Read the first lengthBytes bytes, where lengthBytes is 1 to 4, in the selected endian order. Compare that unsigned declared value with total bytes minus lengthBytes; return actual minus declared and equality.1
| Input field | Meaning and representation | Accepted input |
|---|---|---|
| bytes | bytes. | List of integers from 0 to 255; at most 128 bytes |
| lengthBytes | length bytes. | Integer from 1 to 4 inclusive |
| littleEndian | Explicit choice for little endian; supply a boolean rather than a text label. | true or false |
| Output field | Interpretation |
|---|---|
| result | Object containing the named outputs below. |
| result.declared | The declared value under the stated formula or text convention. |
| result.actual | The actual value under the stated formula or text convention. |
| result.difference | The difference value under the stated formula or text convention. |
| result.matches | Exact equality or membership under the specific rule above. |
{
"input": {
"bytes": [
3,
1,
2
],
"lengthBytes": 1,
"littleEndian": false
},
"output": {
"result": {
"declared": 3,
"actual": 2,
"difference": -1,
"matches": false
}
}
} Limitations and assumptions
- The declared length is assumed to exclude its own prefix. No trailer allowance, concatenated-frame parsing or protocol-specific length convention is inferred.
- All declared input fields are required and unexpected top-level fields are rejected. Numbers must be finite; lists are limited to 128 entries and ordinary text fields to 8,192 UTF-16 code units, with tighter limits where stated.
- JSON text inputs must parse within bounded nesting and size limits. Numeric outputs outside the safe finite range are rejected; large exact integer results use decimal strings. Indexes and half-open spans are zero-based unless a rank is explicitly described as one-based.
Alternative or Complementary methods
Use a stateful protocol parser when processing partial streams or validating complete packets. Retain the declared prefix width, byte order and payload-versus-frame boundary convention when composing these operations.
References
Similar or alternative tools
- Byte Frame Chunk Carry Tool
Advance one fixed-byte streaming frame chunk with explicit incomplete carry, emitting complete frames and retaining the new tail; no sync search.
- Byte Frame Chunk Rejoin Tool
Rejoin explicit bounded byte chunks and report each chunk’s half-open source span, preserving empty-chunk provenance.