Often hind sight is 20/20 when look at software and see immediately how things should have been done from the beginning. Such is the thought I had when we were reading about HLP (hyper link-state and path-vector protocol) this past week. The border gateway protocol (BGP) is used to communicate paths between autonomous systems. It’s how routers learn how to get packets from place to another. Some of the biggest problems with BGP is that it advertises changes that don’t need to be advertised and is susceptible to the count to infinity problem. This is the very protocol that is currently routing our packets on the internet.
HLP provides a new take on routing and struck me as something that was so intuitive that I couldn’t understand why it hadn’t been thought of from the beginning. As per the name, it is a combination of link-state and path vector routing. It uses link-state routing within a hierarchy. It uses path vector between hierarchies. What’s nice about HLP, is that it uses a fragmented path vector which basically means that node B will tell node A that it has a path to E. What A doesn’t need to know is that that path will also go through C and D. BGP, on the other hand, would let A know all those details even though it didn’t need to know them. The nice thing about HLP is that if cost changes occur between C and D and packets start getting routed through F to get to E, A won’t get notified because it is not important for A to know. This keeps routing tables much smaller, which is good. The paper shows incredible performance benefits over BGP, so why isn’t the IETF taking a good hard look at HLP? Not only that, because the size of the internet is exploding, BGP tables are becoming extremely large. How long can that keep going?
It seems to me like change is never considered until something catastrophic happens. I think an interesting research area in networking would be change deployment. At some point I think we’ve just got to force some changes because it seems to me if we wait until something bad happens, we’re going to wish we changed it earlier anyway. Look at IPv4. The last statistic I heard was that if address usage continues like it is, we will be out of addresses by first quarter next year. That’s not a great thing to hear. Whether it happens or not is a different story. But, point is, there’s going to be panic if we reach that point where no one can allocate an address anymore. I understand and appreciate the hard problem change presents, but we can’t make 100% of the people happy 100% of the time. Let’s just start flipping the switch.