Protocol messages usually lines of printable ASCII
text, using the telnet NVT convention for
line endings. Data is either textual (hence transmitted as Telnet
NVT lines), encoded into textual form (eg, Base64
for email attachents) or simply transmitted as
binary (eg, images in HTTP) -- no generic rules
apply across all protocols.
SNMP-based Network Management
Data and protocols are both described using
ASN.1, encoded using the TLV-style
BER for transmission -- a binary
format. The entire PDU (data and "header information") is a single
BER entity.
Both of these formats exemplify a principle whereby the protocol
message is encoded into a standardised or
canonical form for transmission. What "goes over
the wire" is in the same format, regardless of the type and
characterictics of each of the machines involved in the transfer[1].
[1] There are
alternatives to this: we already seen a technique (way back in the
telnet lecture) generically called terminal
emulation, whereby the sender of the data converts it to
the specific format expected by the receiver before sending. The
other approach is called (in some circles)
receiver-makes-right. Here the receiving software,
knowing the source of the data, converts it to its own format
before proceeding. This obviously fails if the source can't be
determined!
Lecture 24: Data
Formats and Encoding -- A Philosophy Lecture