Currently At: Internet Encyclopedia > Concepts > Unreliable Delivery Model

Unreliable Delivery Model

One of Internet's earliest design decisions was that the fundamental transport protocol (the IP Protocol) would be based on an assumption of unreliable delivery. This means that an IP packet can be legally discarded at any time, without any notification to the sender or receiver. No guarantee is made that any particular packet will be delivered. Instead, network reachability takes a statistical form - there is a pretty good chance that any one packet will be delivered, and if a group of packets are transmitted, most of them should arrive at their destinations.

At first, this may somewhat silly. After all, what's the point of a data communications network if you can't count on the data getting to its destination? To understand this better, refer to the concept of protocol layering. Data delivery is unreliable at the Network Layer, where IP operates. If an application requires reliable data delivery, the Transport Layer must provide this, based upon the unreliable delivery facilities provided by the Network Layer. This is the main function of the TCP Protocol, which uses sequence numbers and timeouts to detect data loss, and then retransmits lost data until it is received and acknowledged.

So, why go through all this in the first place? Well, for one thing, if our network fails briefly at any point, in any way, there should be no serious problems. If a switching node becomes overloaded with traffic, it can simple discard some of the excess. If a link fails while a packet is being transfered, there's no need for an elaborate recovery procedure. The assumption of unreliable delivery, and the consequent demand that software be able to handle intermittent failures, significantly reduces demands on hardware and low-level software design. Sporadic network outages might slow the tempo, but the show will go on.

Web Standards & Support:

Link to and support Powered by LoadedWeb Web Hosting
Valid XHTML 1.0! Valid CSS! FireFox Extensions