Packets are placed on the network. What is their fate next?
Even if the network is essentially a
reliable bit pipe, it is possible for it to break, independent
of the end hosts communicating. Practice shows that it is in
fact far more likely to break than, for instance, the terminal
interface device on a mainframe, or a disk controller...
If the network is packet switched, then things can go wrong in
more subtle ways.
Depending on the type of network, a variety of disasters
can befall a packet:
The consequences are that there must be mechanisms for hosts to
indicate where they wish to communicate with - just like file
systems allow us to indicate which file we want to read or
write. There may be a single wire leading out of a host, which
then splits in some way to go to multiple destinations. This
means we need to have some kind of Addressing mechanism,
so that we can Multiplex communication between many hosts
on a network.
The user needs some level of Reliability. This can vary between some
statistical level - digital voice or video may only require some percentage
of data per second to be delivered from which a reasonable result can be
constructed by the receiver. [For instance, humans only need 30%
someone's voice to be able to understand 99%
said]. The user may need to restrict the rate at which data arrives.
Real Time applications like Voice
and Video require fairly exact rates of arrival. Print servers
may support much lower data rates than typical modern networks.
The network may not know how to get this packet to its correct
Most importantly, the packet can just get lost due to lack of
memory or a temporary fault in some component.
Next, a packet can be corrupted by electrical (or other) noise
on a wire, or by faulty software.
Then packets can be delivered to the remote end in a different
order than they were sent.
The same packet could be delivered multiple times to a
Packets could be delivered by the network to a destination host
faster than the host can deal with them.