Best effort refers to a network service that attempts to deliver messages to their intended destinations but which does not provide any special features that retransmit corrupted or lost packets. Thus, there are no guarantees regarding delivery.
An analogy can be made to the postal service. A sender usually cannot be certain that a letter was delivered to its intended destination. However, the sender can pay extra for a delivery confirmation receipt, which requires that the carrier get a signature from the recipient and return it to the sender.
The use of best effort rather than guaranteed delivery can be more efficient for some services, and for the network as a whole, for some types of services, particularly those for which timeliness is more important than accuracy. For example, in real-time audio or video transfers, the loss of a small percentage of packets is tolerable (i.e., does not noticeably affect the sound or images), and recovering lost and corrupted packets creates excessive overhead that reduces performance.
In the TCP/IP (transmission control protocol/Internet protocol) suite, IP provides a best effort delivery service for packets, while TCP provides guaranteed delivery. That is, TCP performs the equivalent of obtaining a delivery confirmation from the recipient and returning it to the sender.
As is the case with TCP, UDP (user datagram protocol) also operates at the transport layer in the seven-layer OSI (open system interconnection) reference model. Both use IP's services, but UDP is basically a stripped-down version of TCP that provides applications with access to IP's best effort services. Applications go through UDP when they do not require TCP's more robust services. The low overhead (i.e., low amount of traffic and small additions to packet headers) that results from this connectionless and minimal error checking makes UDP faster and more efficient than TCP for many lightweight or time-sensitive purposes, such as for servers that answer small queries for huge numbers of clients.
Best effort services can exist at various layers in the OSI model. For example, whereas IP is a network layer protocol, UDP is a transport layer protocol and Ethernet and HDLC (high level data link control) are data link layer protocols.
Created October 16, 2005.