A DATAGRAM is a basic transfer unit associated with a packet-switched network . Datagrams are typically structured in header and payload sections. Datagrams provide a connectionless communication service across a packet-switched network. The delivery, arrival time, and order of arrival of datagrams need not be guaranteed by the network.
* 1 History * 2 Definition * 3 Structure
* 4 Examples
* 5 See also * 6 References
The term datagram appeared first within the project
The inspiration for datagrams had two sources. One was Donald Davies ' studies. He had done some simulation of datagram networks, although he had not built any, and it looked technically viable. The second inspiration was I like things simple. I didn't see any real technical motivation to overlay two levels of end-to-end protocols. I thought one was enough. — Louis Pouzin
These concepts were later adopted for the creation of the Internet Protocol (IP) and other network protocols.
RFC 1594 defines the term Datagram as follows:
“A self-contained, independent entity of data carrying sufficient information to be routed from the source to the destination computer without reliance on earlier exchanges between this source and destination computer and the transporting network.” — RFC 1594
A datagram needs to be self-contained without reliance on earlier exchanges because there is no connection of fixed duration between the two communicating points as there is, for example, in most voice telephone conversations.
Datagram service is often compared to a mail delivery service, the user only provides the destination address, but receives no guarantee of delivery, and no confirmation upon successful delivery. Datagram service is therefore considered unreliable . Datagram service routes datagrams without first creating a predetermined path. Datagram service is therefore considered connectionless . There is also no consideration given to the order in which it and other datagrams are sent or received. In fact, many datagrams in the same group can travel along different paths before reaching the same destination.
Each datagram has two components, a header and a data payload . The header contains all the information sufficient for routing from the originating equipment to the destination without relying on prior exchanges between the equipment and the network. Headers may include source and destination addresses as well as a type field. The payload is the data to be transported. This process of nesting data payloads in a tagged header is called encapsulation .
OSI-LAYER DATAGRAM NAMING
Layer 4 data segment
Layer 3 data packet
Layer 2 Frames (IEEE 802.3) Frames (IEEE 802.11) Cell (ATM)
The internet layer is a datagram service provided by an IP. For example, UDP is run by a datagram service in the internet layer. IP is an entirely connectionless, best effort delivery, unreliable, message delivery service. TCP is a higher level protocol running on top of IP that can provide the addition of a connection-oriented service.
The term datagram is often considered synonymous to packet but there are some nuances. The term datagram is generally reserved for packets of an unreliable service, which cannot notify the sender if delivery fails, while the term packet applies to any packet, reliable or not. Datagrams are the IP packets that provide a quick and unreliable service like UDP, and all IP packets are datagrams; however, at the TCP layer what is termed a TCP segment is the sometimes necessary IP fragmentation of a datagram, but those are referred to as "packets".