That’s easy. All of these things are terms for ‘chunks’ of communication data, but to use them correctly, you have to know where they are used.
Depending on who you ask, and what transmission media you’re using, frames are usually the lowest-level unit of communications data. All data and protocols that operate above frames are usually encapsulated inside frames. Generally speaking, the term Frame is used when you’re talking about the OSI Model’s datalink layer, usually the digital portion of communications over Ethernet, FDDI, Frame Relay, Serial, T1 etc. Frames often have one or more bits or bit patterns used to signal the beginning and end of the frame, as in serial communications or the preamble in Ethernet.
The term packet is a bit more ambiguous. The term packet is usually used when talking about communication that takes place at the OSI Model’s network layer, but not always. TCP is said to use ‘packets’, while UDP is said to use ‘datagrams’.
Once you get above the network layer, things get a little fuzzy. Datagrams are supposed to be logical chunks of data used at the transport layer of the OSI Model. That is, any chunk of data that is handled together in any protocol that operates above the network layer in the OSI model can be referred to as a datagram. Chunks of data in the User Datagram Protocol are said to be datagrams.
And while our pointy little heads are still spinning…
Typically the term PDU is used for more complex, higher-level protocols operating above the OSI Model’s transport layer. This term is often used to describe any chunk of data that is being transmitted in an organized fashion. This is the global catch-all phrase, but you usually see this term used in the international standards documentation and in standards documents that describe routing and VPN protocols.
OK, so I know I’m bringing in something new last minute. The standards documentation for Transmission Control Protocol refers to ‘segments’. So, data from your application, basically anything operating above TCP, is chopped into pieces and shoved into TCP segments. You’ll rarely see segments unless you are talking about TCP.
Usually, frames encapsulate packets or datagrams. Frames are low-level and usually associated with the order of bits on a physical connection and controlled by hardware. Packets or datagrams encapsulate PDU’s and are logical chunks of data not controlled specifically by hardware. Packets and datagrams are used by mid-level protocols including TCP and UDP. The higher level protocols (protocols like DNS which rides on top of UDP or HTTP and FTP which ‘ride’ on top of TCP) usually refer to PDU’s.
Clear as mud, right? 😉
Don’t worry, you only have to keep this straight if you’re taking certification exams like the CCNA, CCNP, CCIE or Network+.