Formalise progress reporting for protocols
Infer expected number of bytes from header