Information smuggling

(re)using redundant fields in an existing protocol stack beyond its initial intent to carry information while hiding it, if possible

reusing fixed reserved fields (0x00s, magic number, etc.)
could break conformity, as well as being pretty obvious

reusing optional fields
in conformity with the standard, though, doing so could introduce new characteristics into the traffic, making our "extra bits of information" somehow noticeable

reusing discretionary fields (e.g. seq/window size/timestamp in the TCP header)
in accordance with standards, without bringing in recognisable characteristics(at least at the packet level), this way seems to be the most graceful when compared with the other approaches mentioned above (BTW, this is exactly how syncookies work, for a different purpose though)