SKIP THE SHIPPING
Use code NOSHIP during checkout to save 40% on eligible eBooks, now through January 5. Shop now.
Register your product to gain access to bonus material or receive a coupon.
Radia Perlman's Interconnections is recognized as a leading text on networking theory and practice. It provides authoritative and comprehensive information on general networking concepts, routing algorithms and protocols, addressing, and the mechanics of bridges, routers, switches, and hubs. This Second Edition is expanded and updated to cover the newest developments in the field, including advances in switching and bridge technology, VLANs, Fast Ethernet, DHCP, ATM, and IPv6. Additional new topics include IPX, AppleTalk, and DECnet. You will gain a deeper understanding of the range of solutions possible and find valuable information on protocols for which documentation is not readily available elsewhere.
Written by the inventor of many of the algorithms that make switching and routing robust and efficient, Interconnections, Second Edition offers an expert's insight into how and why networks operate as they do. Perlman describes all of the major networking algorithms and protocols in use today in clear and concise terms, while exploring the engineering trade-offs that the different approaches represent.
The book contains extensive coverage of such topics as:
Preface.
Roadmap to the Book.
Acknowledgments.
1. Essential Networking Concepts.
Layers.
Service Models.
Important Properties of a Network.
Reliable Data Transfer Protocols.
Generic LANs.
IEEE 802 LANs.
Names, Addresses, Routes.
LAN Addresses.
Multicast versus Unicast Addresses.
The Broadcast Address.
Multiplexing Field.
Bit Order.
Logical Link Control.
Issues in 802.3.
Issues in 802.5.
Packet Bursts.
Reasons for Bridges.
Point-to-Point Links.
The No-Frills Bridge.
The Learning Bridge.
Spanning Tree Algorithm.
Spanning Tree Algorithm Refinements.
Bridge Message Formats.
Other Bridge Issues.
Remote Bridges.
Pure Source Routing.
SR-TB Bridges.
SRT Bridges.
End-system Algorithms.
Source Routing versus Transparent Bridging.
Ideas for Improving Source Route Bridging.
Hubs.
Faster LANs.
Virtual LANs (VLANs).
What Is the Network Layer?
Network Service Types.
Generic Connection-oriented Network.
X.25: Reliable Connection-oriented Service.
Implementing X.25 Inside the Net.
Asynchronous Transfer Mode.
Data Transfer.
Addresses.
Hop Count.
Service Class Information.
Network Feedback.
Fragmentation and Reassembly.
Maximum Packet Size Discovery.
Hierarchical Addresses with Fixed Boundaries.
Hierarchical Addresses with Flexible Boundaries.
Owning versus Renting Addresses.
Types of Addresses.
IP.
IPX.
IPX+.
IPv6.
CLNP Network Layer Addresses.
AppleTalk Network Layer Addresses.
DECnet Phases III and IV.
NAT/NAPT.
Pieces of a Connectionless Network Layer.
Data Packets.
Summary of Packet Formats for Easy Reference.
Technical Issues and Comparisons in Data Packet Formats.
Source Routing.
The Great IPX Frame Format Mystery.
Error Reports and Other Network Feedback to the Endnode.
Endnodes Attached via Point-to-Point Links.
Endnodes Attached via LANs.
Endnodes Attached via Nonbroadcast Multiaccess Media.
Finding Things.
Distance Vector Routing.
Link State Routing.
Comparison of Link State and Distance Vector Routing.
Load Splitting.
Link Costs.
Migrating Routing Algorithms.
LANs.
Types of Service.
Partition Repair: Level 1 Subnetwork Partition.
Using an Additional Header.
Address Prefix Matching.
Longest Prefix Match with Trie.
Binary Search.
A Brief History of Intradomain Routing Protocols.
RIP.
RTMP, IPX-RIP, and DECnet.
IS-IS, OSPF, NLSP, and PNNI.
Interdomain Routing Protocols.
Introduction.
Multicast in IP.
The Problem.
All You Need to Know about Cryptography.
Overview of the Approach.
Detailed Description of the Approach.
Summary.
For Further Reading.
Switches.
Bridges versus Routers.
Extensions to Bridges.
Extensions to Routers.
Simplicity versus Flexibility versus Optimality.
Knowing the Problem You're Trying to Solve.
Overhead and Scaling.
Operation Above Capacity.
Compact IDs versus Object Identifiers.
Optimizing for the Most Common or Important Case.
Forward Compatibility.
Migration: Routing Algorithms and Addressing.
Parameters.
Making Multiprotocol Operation Possible.
Running over Layer 3 versus Layer.
Robustness.
Determinism versus Stability.
Performance for Correctness.
In Closing.
Interconnections, Second Edition is about what goes on inside the boxes that move data around the Internet. These boxes are variously called bridges, routers, switches, and hubs. The book also describes the devices that connect to the network.
There is considerable confusion in this area. Most of the terminology is ill defined and is used in conflicting ways. The terminology and the specifications tend to be daunting. Some knowledge is spread among many different documents; much is unwritten folk wisdom. Adding to the confusion is dogma. Beliefs are accepted as truth, and questioning any of the dogma is often greeted with hostility. But good engineering demands that we understand what we're doing and why, keep an open mind, and learn from experience.
In Interconnections, Second Edition, instead of diving right into the details of one protocol, I first focus on the problems to be solved. I examine various solutions to each of these problems and discuss the engineering trade-offs involved. Then I look at a variety of solutions that have been deployed and compare the approaches. I give technical arguments for any opinions, and if you think I have missed any arguments I welcome email discussion. My email address is at the back of the book, which I hope you will find after having read the book cover to cover.
In the first edition, my intention was to help people understand the problems and the general types of solutions, assuming that they would read the specifications to get the details of specific protocols. But people used the book as a reference in addition to using it to understand the issues. So in this edition I have documented many more of the protocols in detail.
I believe that to understand something deeply you need to compare it to something else. The first edition was "minimalist" in that I always used only two examples: two types of bridges, bridges versus routers, connection-oriented versus connectionless network layer protocols, and two examples of connectionless protocols (CLNP and IP). In this edition I add a lot more examples, including ATM, IPv6, IPX, AppleTalk, and DECnet. I did this in part because these protocols exist, and it is hard to get information about them. But mostly I did it because the protocols embody interesting ideas that should not be lost. When we design new protocols, we should learn from previous ideas, both good and bad. Also, it takes very little additional effort, after the problem is described generically, to describe several examples.
The first four chapters are not significantly different from their counterparts in the first edition, but the rest of the book has been largely rewritten. Chapters 1 through 4 cover general networking concepts, data link issues such as addressing and multiplexing, transparent bridges and the spanning tree algorithm, and source routing bridges. Chapter 5 is completely new and explains how the notion of a switch evolved into a rediscovery of the bridge. It also covers VLANs and fast Ethernet.
The remainder of the book concentrates on layer 3 (the network layer). Chapter 6 gives an overview of the network layer. Chapter 7 covers connection-oriented networks, including ATM and X.25. Chapter 8 discusses the issues in a generic connectionless network layer. Chapter 9 covers layer 3 addressing generically and gives a detailed comparison of IP, IPv6, CLNP, DECnet, AppleTalk, and IPX. Chapter 10 covers the information that should appear in a network layer header and contrasts the headers of several protocols.
Chapter 11 covers autoconfiguration and neighbor discovery, including protocols such as ARP and DHCP. Chapter 12 covers routing algorithms generically.
Chapter 13 discusses the problem of doing longest-prefix matching, which is required in order to forward IP packets quickly. Chapter 14 discusses the specifics of various routing protocols including RIP, IS-IS, OSPF, PNNI, NLSP, and BGP. Chapter 15 covers network layer multicast. Chapter 16 explains how to design a network that is invulnerable to sabotage, an idea whose time may come.
The final two chapters summarize the book, and I hope they will be mostly light and entertaining reading. Chapter 17 probes the mystery of what, if anything, distinguishes a router from a bridge. Chapter 18 attempts to capture folk wisdom about how to design a protocol.
Finally, there is an extensive glossary. I try to define terms when I first use them, but if I ever fail to do that, you will probably find them in the glossary.
Writing this section is scary because I am afraid I will leave people out. I'd like to thank the people who reviewed all or part of the book: Peter Memishian, Paul Koning, Tony Lauck, Craig Partridge, Dan Pitt, Brian Kernighan, Paul Bottorff, Joel Halpern, Charlie Kaufman, Mike Speciner, Andy Tanenbaum, Phil Rosenzweig, Dan Senie, William Welch, Craig Labovitz, Chase Bailey, George Varghese, and Suchi Raman. Other people who have been helpful by answering questions are Ariel Hendel, Rich Kubota, Stuart Cheshire, Tom Maufer, Steve Deering, and John Moy. The first time I sent an email question in the middle of the night (when I did most of my work on this book) to Craig Partridge, the co-series editor for this book, the beep indicating incoming mail happened so immediately that I assumed it was an automatic mail responder informing me he was on vacation. But it was an answer to my question. I assume he doesn't have an automatic mail responder so clever that it can answer technical questions, so I thank him for being so prompt and available. Brian Kernighan, the other series editor, also had detailed and helpful comments on the entire book.
The people at Addison-Wesley have been amazingly patient with me for the many years in which I've been working on this edition. I'm not sure they had any alternative besides patience, but it was nice that they believed I'd finish even when I wasn't so sure. So thank you to Mary Hart, Karen Gettman, Jacquelyn Doucette, and Jason Jones. And I'd also like to thank my copy editor, Betsy Hardinger. She of all people will have read every word of the book, while maintaining the concentration to note inconsistencies and ways of removing excess words here and there. I know it's her job, but I'm still impressed.
Mike Speciner helped me figure out the mysteries of Framemaker. Ray Perlner made sure that I maintained some humor in the book and watched over my shoulder while I typed the last chapter to see that I had enough funny bad real-life protocols. Dawn Perlner has been terrifically supportive, convincing her friends and even strangers in bookstores to buy my books. She used to be my child. Now she's a wonderful friend.
Page xiii: This paragraph added at bottom of page: "I'd like to thank the readers who have sent in errata items. The errata are listed at http://www.awprofessional.com/titles/0-201-63448-1. I'd especially like to thank Akira Kato, who gave the book a really thorough review in the process of translating it into Japanese."
Page 48, Figure 3.4: A ">" symbol was inserted in front of the second "100".
Page 49, Figure 3.6: Figure moved to top of page.
Page 49, Line 6: "(see Figure 3.6)" was omitted.
Page 138, Line 9: "data link header source = c and destination = d, and IP header source = a.b.c.C and destination a.b.c.D" now reads "data link header source = h and destination = d, and IP header source = a.b.c.H and destination a.b.c.H"
Page 142, Line 5: "on 802.3" was omitted.
Page 143, Line 3: "Notice that in this format there is" now reads "Notice that in this format there are".
Page 146, Line 29: "minimum delay, or minimum delay variance" now reads "maximum delay, or maximum delay variance".
Page 157, Line 12: Second occurence of "DCE" changed to "DTE".
Page 186, Line 31: "the router fragments into 1,000 and 2,000" now reads "the router fragments into 1,000 and 200".
Page 193, Line 13: A "(" symbol was inserted at the beginning of the line.
Page 196, Line 2: "and the address of a BOOTP server" was omitted.
Page 206, Line 30: "73::/8, or 73:0:0:0:0:0:0:0/8" now reads "7300::/8, or 7300:0:0:0:0:0:0:0/8".
Page 209, Line 26: "FEA0::/10" now reads "FEC0::/10"
Page 213, Line 17: "getting an IPD" now reads "getting an IDP".
Page 215, Line 19: "(DTE address 84)" now reads "(DTE address 83)".
Page 263, Line 6: "unrecognizeed IPv6 option" now reads "unrecognized IPv6 option".
Page 269: Tenth paragraph was omitted.
Page 292, Line 19: "Next Hop Resoloution Protocol" now reads "Next Hop Resolution Protocol".
Page 322, Line 13: "64 bits for link cost is sufficient." now reads "64 values for link cost is sufficient."
Page 325, Line 16: "the new path to TENT was found." now reads "the new path to DEST was found."
Page 352, Line 5: "2 for prefixes 1 more than a multiple of 4" now reads "2 for prefixes 3 more than a multiple of 4"
Page 354, Line 5: "1-padded prefix." now reads "0-padded prefix or exact match."
Page 354, Line 17: "addresses covered by 101." now reads "addresses covered by 001."
Page 359, Line 17: "starts with 0010-1," now reads "starts with 0010-110,".
Page 361, Line 22: "note the size the prefix was," now reads "note that the size the prefix was".
Page 457, Line 29: "reply sent to the switch," now reads "reply sent to the router,".
Page 457, Line 31: "switch." now reads "router.".
Page 458, Line 2: "addressed to the switch" now reads "addressed to the router".
Page 465, Figure 15.8: "Core" now reads "RP".
Page 469, Line 15: "from Stanford" now reads "from Stanford University."
Page 471, Figures 15.10: The B node is now labelled R.
Page 471, Figure 15.11: In Figure 15.11, the line between R3 and R4 is no longer bold. Instead, the lines between R3 and R6 as well as the lines between R6 and R are now bold. The B node is now labelled R.