Dr. Dobb's Journal - November 2008 - (Page 20) Conversations by Deirdre Blake Network Protocols Sun Fellow Radia Perlman specializes in network and security protocols. She is the inventor of the spanning tree algorithm used by bridges, and the mechanisms that make modern link state protocols efficient and robust. DDJ: What advice do you have about designing network protocols? RP: Don’t get hung up on details such as syntax, and don’t start by patching up lots of special cases. Instead, try to think of the problem conceptually first. An issue that separates real network protocol design from, say, a theoretical algorithm, is realizing that the components don’t always behave as they should. A network has to be designed so that components that are configured incorrectly, or misbehaving in various ways can’t do too much damage. The third issue that is really important is to make the network as self-configuring as possible. Some people like a lot of control over their network in order to fine-tune performance. And it’s fine to give them that control. But it’s important for the network to behave reasonably without being configured, and to behave reasonably even when it is misconfigured. DDJ: What kinds of protocols have you designed? RP: I designed routing for DECnet, which got standardized as the IS-IS routing protocol. The basic components of the design, which make routing scalable and robust, and reasonably self-configuring, have been mostly carried over into OSPF as well. I also designed the spanning tree algorithm, which is the heart of today’s Ethernet. Ironically, I didn’t think it was a good idea at the time; the Ethernet header was not designed to be forwarded. The Ethernet header was not intended to be the kind of envelope (like IP or DECnet) that would carry data across many hops of packet switches. But people confused “Ethernet” with a “network” rather than a link in a network, so built protocol stacks without “layer 3” (IP or DECnet, for example). Traditional routers cannot forward traffic on behalf of endnodes that have not implemented the layer 3 protocol. So we at Digital invented “bridging,” which did not depend on endnodes implementing layer 3. The spanning tree algorithm is at the heart of the design. DDJ: You say you didn’t think bridging was a good idea at the time. Have you changed your mind? RP: No. I’m kind of horrified it’s still in use. Bridging is a fragile protocol in various ways, plus it doesn’t give optimal routes. Now that all the endnodes include layer 3, and the world has pretty much converged on IP as the single layer 3 protocol, there should not, in theory, be a necessity for bridging anymore. However, there’s a problem with IP as a layer 3 protocol. The world would have been much better off if everyone had converged on ISO’s layer 3 format (known as CLNP). We (Digital) adopted CLNP as the packet format for DECnet Phase V. CLNP had 20 byte addresses (instead of IP’s 4-byte addresses), and had the nice feature that quite a large network could be self-configuring. In contrast, with IP each link needs a separate portion of the IP address space, so a network with a block of IP addresses needs to have the address block chopped up to give a unique portion to each link, and each router must be configured to know what addresses are on each of its ports. IPv6 has the same property. Even though its addresses are larger than IPv4 (16 bytes instead of 4), each link has its own block of addresses, so routers 20 Dr. Dobb’s Journal l www.ddj.com l November 2008 A network has to be designed so that components that are configured incorrectly can’t do too much damage must be configured and nodes that move to a different link must change their address. So, recently I designed something I called RBridges (routing bridges) that will give the best of both worlds. IETF started a working group known as TRILL (TRansparent Interconnection of Lots of Links) to standardize it. RBridges give the ease of configuration of bridges with the robustness and route efficiency of layer 3. RBridges are also completely compatible with IP nodes, IP routers, and current bridges, so if you had a bridged network, you could replace any subset of the bridges with RBridges, and everything will still work as it did with the bridges. The only thing you’d notice is that the more bridges you replace, the more robust the network will be, and the better the paths will be. DDJ: What advice do you have for the next generation of protocol designers? RP: Don’t believe everything you hear, such as “if everything were encoded in XML, everything would interoperate,” or “security is built into IPv6, and it’s just an add-on to IPv4.” There is a lot of stuff that “everyone knows” that just isn’t true, but if you hear it said enough you feel silly questioning it. Another piece of advice is that it’s never a waste of time to describe what you are doing at a basic level, or to answer questions about why the design is a certain way and couldn’t have been some other way. Answering “naïve questions” is an excellent way of making sure your design really will hold together. DDJ http://www.ddj.com
Table of Contents Feed for the Digital Edition of Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 Contents Friday Night Fish Fry Alia Vox Developer Diaries Developer's Notebook Saving Open Source Conversations iPhone Building Your Own Web Server Green Telnet What's New In Boost Threads? Testing Service Oriented Architectures Test Case Generation, UML, and Eclipse Unit Testing Web Services C3 Programming The Agile Edge Swaine's Flames Effective Concurrency Dr. Dobb's Journal - November 2008 Dr. Dobb's Journal - November 2008 - (Page BB1) Dr. Dobb's Journal - November 2008 - (Page BB2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page Cover2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 1) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 2) Dr. Dobb's Journal - November 2008 - Dr. Dobb's Journal - November 2008 (Page 3) Dr. Dobb's Journal - November 2008 - Contents (Page 4) Dr. Dobb's Journal - November 2008 - Contents (Page 5) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 6) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 7) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 8) Dr. Dobb's Journal - November 2008 - Friday Night Fish Fry (Page 9) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 10) Dr. Dobb's Journal - November 2008 - Alia Vox (Page 11) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 12) Dr. Dobb's Journal - November 2008 - Developer Diaries (Page 13) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 14) Dr. Dobb's Journal - November 2008 - Developer's Notebook (Page 15) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 16) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 17) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 18) Dr. Dobb's Journal - November 2008 - Saving Open Source (Page 19) Dr. Dobb's Journal - November 2008 - Conversations (Page 20) Dr. Dobb's Journal - November 2008 - Conversations (Page 21) Dr. Dobb's Journal - November 2008 - iPhone (Page 22) Dr. Dobb's Journal - November 2008 - iPhone (Page 23) Dr. Dobb's Journal - November 2008 - iPhone (Page 24) Dr. Dobb's Journal - November 2008 - iPhone (Page 25) Dr. Dobb's Journal - November 2008 - iPhone (Page 26) Dr. Dobb's Journal - November 2008 - iPhone (Page 27) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 28) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 29) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 30) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 31) Dr. Dobb's Journal - November 2008 - Building Your Own Web Server (Page 32) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 33) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 34) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 35) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 36) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 37) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 38) Dr. Dobb's Journal - November 2008 - Green Telnet (Page 39) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 40) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 41) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 42) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 43) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 44) Dr. Dobb's Journal - November 2008 - What's New In Boost Threads? (Page 45) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 46) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 47) Dr. Dobb's Journal - November 2008 - Testing Service Oriented Architectures (Page 48) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 49) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 50) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 51) Dr. Dobb's Journal - November 2008 - Test Case Generation, UML, and Eclipse (Page 52) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 53) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 54) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 55) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 56) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 57) Dr. Dobb's Journal - November 2008 - Unit Testing Web Services (Page 58) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 59) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 60) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 61) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 62) Dr. Dobb's Journal - November 2008 - C3 Programming (Page 63) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 64) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 65) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 66) Dr. Dobb's Journal - November 2008 - The Agile Edge (Page 67) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 68) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 69) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 70) Dr. Dobb's Journal - November 2008 - Effective Concurrency (Page 71) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page 72) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover3) Dr. Dobb's Journal - November 2008 - Swaine's Flames (Page Cover4)
For optimal viewing of this digital publication, please enable JavaScript and then refresh the page. If you would like to try to load the digital publication without using Flash Player detection, please click here.