Datagrams and Streams
In modern data networking, it is important to distinguish between datagrams and streams.A stream is what we'd typically think of as a communication channel. Remote logins, file transfers, mail delivery - all use streams. A stream appears to be like a pipeline. It has two endpoints. Data is put in one end and comes out the other. None of the data is duplicated, or discarded, or reorganized in any way. Two streams can be paired together to form a full duplex connection.
A datagram, often called a packet, is much more atomic in nature. It is a small piece of data, often required to be less than a maximum length (typically in the 256 to 2000 byte range). Datagrams are completely self contained. They have a source and a destination, but nothing that could be called a connection. Datagrams have no relationship to any others that came before or after them.
Although most networking communication uses streams, all Internet transfers
are in the form of datagrams. Internet streams are actually
emulated using datagrams by the
TCP
Protocol. To diagnose Internet operation, a packet decoder
such as
TCPdump
is used to view individual packets. This, along with a knowledge of
TCP operation, enables the Internet engineer to assemble a mental
picture of network operation.



