Most people in the developed world routinely use the Internet, but only a small minority understands the technologies on which its services depend. Howser provides a detailed description of these technologies, supported by practical exercises using the Raspberry Pi, an inexpensive computer-on-a-board developed in the United Kingdom (UK) for teaching basic computing science in schools. Beginning with a general introduction to the goals of the book, chapters are then divided into four parts.
The first part describes Internet protocol (IP) networks, starting with a chapter on the seven-layer open systems interconnection (OSI) conceptual model that is almost obligatory for books on networking. The bottom three OSI layers--the physical, data link, and network layers--are covered in detail with a chapter devoted to each. The OSI upper layers are summarized in chapter 6, and chapter 7 explains mechanisms for controlling the flow of data between network endpoints. Part 1 concludes with an introduction to setting up Raspberry Pi and an overview of the laboratory network that Howser uses throughout the book to illustrate networking principles.
Part 2 looks at perhaps the most important component of the Internet: the router. Chapter 10 introduces the concept of routing data packets at layer 3 of the OSI model, and chapter 11 describes the parts of the router device in more detail. Chapter 12 discusses various methods for determining and maintaining routing rules.
One of the main design goals for the Internet, arising from its military origins, is survivability. That is, failures of circuits or components are bypassed by dynamic route changes that allow the continued movement of data between source and destination. Part 3 looks at the routing protocols that make this possible. Algorithms for calculating the shortest path through a network are discussed in chapter 13, mechanisms for the dynamic assignment of network addresses--the dynamic host configuration protocol (DHCP) and the bootstrap protocol (BOOTP)--are discussed in chapter 14, and routing protocols in general are covered in chapter 15. Two of the most common routing protocols, route interchange protocol (RIP) and open shortest path first (OSPF) are discussed in detail in chapters 16 and 17, respectively, while chapter 18 looks at routing at the macro level of Internet service providers, introducing the concepts of intermediate and autonomous systems and protocols, for example, the border gateway protocol (BGP) used to efficiently route between them. Part 3 concludes with chapter 19 briefly describing the relatively new Babel routing protocol, particularly well suited to wireless networks and supported on the Raspberry Pi lab environment.
The primary goal of the networking technologies described so far is to share resources across the Internet. Part 4 looks at higher-level protocols and major services that allow Internet resources to be found, accessed, and used. Chapter 20 introduces the domain name service (DNS), the concepts of fully qualified domain names (FQDN) and host names, and the organization that administers top-level domain names. The configuration, security, and management of name servers is discussed in detail, and name server hierarchy and name resolution are explained. Chapter 21 looks at the hypertext transfer protocol (HTTP) that supports web services, illustrating concepts by installing and configuring the Linux, Apache, MySQL, PHP/Perl/Python (LAMP) server software bundle on a Raspberry Pi.
After the World Wide Web, perhaps the next most-used service on the Internet is email. Chapter 22 describes a little of the history of email on the Internet, the simple mail transport protocol (SMTP), the concept of a message transfer agent (MTA), and a number of services used for email exchange, including post office protocol version 3 (POP3) and the Internet message access protocol (IMAP). The final chapter looks at a number of other services and tools, including firewalls, network address translation (NAT), and Telnet, which can run on the Raspberry Pi lab environment.
There is an extensive list of acronyms, a glossary, and supporting material in the appendices. The detailed coverage of networking topics together with practical hands-on illustrations of the principles using the Raspberry Pi laboratory network make this an excellent candidate for a course textbook. In addition, the detailed table of contents, good index, and extensive list of references also make it useful for reference--particularly the thorough Appendix B’s “Request for Comments” of the Internet Engineering Task Force. One minor irritation is that the links to exercise solutions, provided in Appendix A, do not work--although a warning that these may be still under construction is given.
If you want just one book in your technical library to cover the Internet and networking technology, then this is an ideal candidate.