Communication Basics

This lesson brushes up on communication basics and discusses how failures are commonplace in real-world systems.

We'll cover the following

The central tenet of modern networking is that communication is fundamentally unreliable. Whether in the wide-area Internet, or a local-area high-speed network such as Infiniband, packets are regularly lost, corrupted, or otherwise do not reach their destination.

Causes of packet loss or corruption

There are a multitude of causes for packet loss or corruption. Sometimes, during transmission, some bits get flipped due to electrical or other similar problems. Sometimes, an element in the system, such as a network link or packet router or even the remote host, is somehow damaged or otherwise not working correctly; network cables do accidentally get severed, at least sometimes.

More fundamental however is packet loss due to lack of buffering within a network switch, router, or endpoint. Specifically, even if we could guarantee that all links worked correctly and that all the components in the system (switches, routers, end hosts) were up and running as expected, the loss is still possible, for the following reason. Imagine a packet arrives at a router; for the packet to be processed, it must be placed in memory somewhere within the router. If many such packets arrive at once, it is possible that the memory within the router cannot accommodate all of the packets. The only choice the router has at that point is to drop one or more of the packets. This same behavior occurs at end hosts as well; when you send a large number of messages to a single machine, the machine’s resources can easily become overwhelmed, and thus packet loss again arises.

THE CRUX

Thus, packet loss is fundamental in networking. The question thus becomes: how should we deal with it?

Get hands-on with 1200+ tech skills courses.