Most data communications networks require that information transmitted between two end points is divided into blocks of a manageable size in order to make the most efficient use of network bandwidth and to facilitate switching and routing. The type of network over which the data is to be transmitted will determine the maximum block size. Each block contains both the data itself and some control information, such as the source and destination address, and an error checking code.
The name given to these blocks will depend on the communications protocol that created them. The term protocol data unit (PDU) is a generic term that can refer to any unitised collection of data and control information, although it is normally used only with upper-layer communication protocols like the Transmission Control Protocol (TCP). The term packet (or datagram) is used to describe blocks produced by network layer protocols such as the Internet Protocol (IP), while the term frame is used to describe the blocks produced by data-link layer protocols like Ethernet.