Sending and receiving only a contiguous array of bytes:
hides the real data structure from hardware which might be able to
handle it directly
requires pre-packing dispersed data
-- rows of a matrix stored columnwise
-- general collections of structures
prevents communications between machines with different representations
(even lengths) for same data type