I would like to understand the typical format table of a network communication message, in the specification of any protocol.
For example ( https://www.ietf.org/rfc/rfc3561.txt ):
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type |R|A| Reserved |Prefix Sz| Hop Count |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination IP address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Sequence Number |
What does each column mean? Is it a byte? a bit?
And, what puzzles me even more, I don't know how to interpret the rows. A message is supposed to be linear, one bit after another, so I don't understand how to interpret the rows.
I would also appreciate if you could show me an example of how to implement it in any programming language.
In the case that you show each column represents a bit. That's also obvious if you check what types of data the fields contain - a 32-bit IP makes a lot of sense, a 32-byte IP would be a bit overkill ;)
The data is linear - the second row is bit 32-63, the third 64-95 etc.
In the case of the RREP then it means: