Although listed as a course, this material has chapters and is being categorized as a textbook.
Before we dive in and describe the technical topics, we to share a bit of the philosophy behind the material and approach used in this book. The material is well-suited for a one-semester course on the topic; at MIT, such a course is taken (mostly) by sophomores whose background includes some basic programming (for the accompanying labs) and some exposure to probability and the Fourier series.
Traditionally, in both education and in research, much of “low-level communication” has been considered an EE topic, covering primarily the issues governing how information moves across a single communication link. In a similar vein, much of “networking” has been considered a CS topic, covering primarily the issues of how to build communication networks composed of multiple links. In particular, many traditional courses on digital communication rarely concern themselves with how networks are built and how they work, while most courses on computer networks treat the intricacies of communication over physical links as a black box. As a result, a sizable number of people have a deep understanding of one or the other topic, but few people are expert in every aspect of the problem. This division is one way of conquering the immense complexity of the topic. Our goal in this book is to understand the important details of both the CS and EE aspects of digital communications, and also to understand how various abstractions allow different parts of the system to be designed and modified without paying close attention (or even fully understanding) what goes on elsewhere in the system.
One drawback of preserving strong boundaries between different components of a communication system is that the details of how things work in another component may remain a mystery, even to practising engineers. In the context of communication systems, this mystery usually manifests itself as things that are “above my layer” or “below my layer”. And so although we will appreciate the benefits of abstraction boundaries in this book, an important goal for us is to study the most important principles and ideas that go into the complete design of a communication system. Our goal is to convey to you both the breadth of the field as well as its depth.
We cover communication systems all the way from the source, which has some information it wishes to transmit, to packets, which messages are broken into for transmission over a network, to bits, each of which is a “0” or a “1”, to signals, which are analog waveforms sent over physical communication links (such as wires, fiber-optic cables, radio, or acoustic waves). We study a range of communication networks, from the simplest dedicated point-to-point link, to shared media comprising a set of communicating nodes sharing a common physical communication medium, to larger multi-hop networks that themselves are connected to other networks to form even bigger networks.