Zeroconf is acronym for Zero Configuration Networking. It supports IP networking without DHCP server, DNS server, or manual configuration, hence the name Zeroconf. It enables the creation of entirely new kinds of networked products that today would simply not be commercially viable because of the inconvenience and support costs. Even Microsoft uses this technique, commonly known as Automatic Private IP Addressing (APIPA). Apple Computer is behind the Zeroconf (aka Bonjour). As a developer and IT tech support, I find this book incredibly useful to understand zeroconf. Both the authors Stuart Cheshire, Daniel H. Steinberg has done a wonderful work to put together Zero Configuration Networking: The Definitive Guide. The entire book is divided into ten chapters. The first five chapters provide an overview of how the Zeroconf infrastructure works. Rest chapters of the book contain information on creating Zeroconf applications in a variety of settings and writing application use C, Java and other APIs.
Chapter 1: Introduction to Bonjour and Zeroconf
The first chapter begins with quick hints how the modern office will work. It explains what are Bonjour and Zeroconf. It explains what is choosing addresses, name resolution and figuring out where to get services, like printing etc with Zeroconf. However, the most interesting part is the Zeroconf design principles explained by authors that build on two decades of experience with the AppleTalk Name Binding Protocol.
Chapter 2: IP Addresses Without DHCP
This chapter explains the importance of IP address which may be assigned by DHCP server or static IP assigned by network administrator. Most time you have a network administrator at work place to keep running everything. However, these days we have small network at home. You are not a network administrator; you just want to use your digital camera or printer. This is what author explained here. Simplicity and reliability are two goals of Zeroconf. It explains the strategy used by zeroconf to obtained IP address.
Chapter 3: Names Without DNS
In chapter, 2 authors explained the mechanism to obtain a locally unique IP address without a DHCP server or a network administrator, next logical step is to obtain a name (hostname) that can resolve to this address. This chapter first explains the DNS Namespace and then it explains the creation of the Zeroconf Namespace. Finally, it covers the Multicast DNS role in Zeroconf.
Chapter 4: Browsing for Services
Ok now I have working network as my device got IP address and hostname. Now I am in a position to begin doing some useful networking stuff (like file sharing). This chapter introduces DNS Service Discovery (DNS-SD), the mechanism in Zeroconf that lets you discover what services are available on the network without having to know device or service names in advance via some other means. This is the stage where you learn how simple and lightweight it is to discover what services of a given type are available to you on the local network
Chapter 5: Service Discovery Beyond the Local Link
This chapter explains Domain Enumeration concept. When you connect to Internet, there are millions of domains to select from. How does your computer know which to use? This chapter also explains how wide-area service advertising deals with NAT. Basically it allows to computers at home behind NAT gateways can begin to function as if computers connected to the real Internet.
Chapter 6: Getting Started with Bonjour/Zeroconf
This chapter is all about installing the Zeroconf/Bonjour under Mac OS X, Windows, or Linux computer. However, the most important part is when creating a Zeroconf-enabled application, it is important to understand what Zeroconf does and does not do. It covers command line tool called dns-sd, which is very handy while experimenting with the technology, a great way of prototyping and simulating potential user experience in just a few minutes.
Chapter 7: Using the C APIs
One of the most important chapter, here you will learn how to perform advertising, browsing for, and looking up Zeroconf services programmatically, using the cross-platform C APIs API for Zeroconf’s DNS Service Discovery. Sample code will help to kick start in development.
Chapter 8: Using the Java APIs
With Mac OS X 10.3.9, new APIs enable Java software to advertise and discover services on the network using Zeroconf’s DNS Service Discovery. The same Java DNS-SD APIs are also available in Bonjour for Windows, Bonjour for Linux, Solaris, *BSD, etc., In this chapter, you will take a quick look through the APIs, examples of how to register, browse for, add TXT records to, and resolve services, and finally see a complete example of using Java DNS-SD in a tic-tac-toe game. You will learn about techniques and APIs that work on multiple platforms.
Chapter 9: Using the CFNetwork and Cocoa APIs
In this, chapter you will learn how to perform the basic DNS-SD operations of registering a service, browsing for services, and resolving a service using Mac OS X-specific APIs, which Apple has provided for the benefit of Core Foundation and Cocoa programmers.
Chapter 10: Ruby, Python, and Other Languages
This chapter covers Ruby and Python based examples. These are higher-level third-party DNS Service Discovery API layers built on top of the C DNSServiceDiscovery API foundation.
Before reading the book my idea was Zeroconf used to do, photo sharing or instant messaging or multiuser document editing etc. However, now it is clear that Zeroconf does not do all these things instead it provides the rock-solid foundation so that those great products can be built without worrying that, from time to time, TCP/IP might fall apart and let them down.
I highly recommend this book software developers making networking applications or hardware developers currently making IP-based hardware device. Although I am not hardcore, software/hardware developer but I found this book quite interesting to understand technology used by iTunes, iPhoto or network printing etc.
- Book title: Zero Configuration Networking: The Definitive Guide
- Author: Daniel H. Steinberg, Stuart Cheshire
- Publisher: O’Reilly
- Pub Date: December 2005
- ISBN: 0-596-10100-7
- Pages: 252
- Level of experience needed: Beginners/Intermediate and IP networking
- Who will find useful: Software/Hardware ~ Developers who wish to create IP based networking applications
- Additional goodies included (such as CDROM) : No
- Sample chapters:
- Our rating: ***** (5/5)
- Purchase online at Amazon
🐧 Get the latest tutorials on Linux, Open Source & DevOps via:
|Category||List of Unix and Linux commands|
|Firewall||Alpine Awall • CentOS 8 • OpenSUSE • RHEL 8 • Ubuntu 16.04 • Ubuntu 18.04 • Ubuntu 20.04|
|Network Utilities||dig • host • ip • nmap|
|OpenVPN||CentOS 7 • CentOS 8 • Debian 10 • Debian 8/9 • Ubuntu 18.04 • Ubuntu 20.04|
|Package Manager||apk • apt|
|Processes Management||bg • chroot • cron • disown • fg • jobs • killall • kill • pidof • pstree • pwdx • time|
|Searching||grep • whereis • which|
|User Information||groups • id • lastcomm • last • lid/libuser-lid • logname • members • users • whoami • who • w|
|WireGuard VPN||Alpine • CentOS 8 • Debian 10 • Firewall • Ubuntu 20.04|