Iljitsch van Beijnum, a PhD student at the Universidad Carlos III de Madrid, gave a very interesting talk last week here in the lab. Iljitsch has contributed to the IETF Multihoming in IPv6 working group, and has already written two books: BGP: Building Reliable Networks with the Border Gateway Protocol, and Running IPv6.
The talk was about multihoming (one user using multiple ISPs - that's an easy way to put it) and Shim6, as an alternative technique to solve scalability issues in BGP related to multihoming and IPv6.
It is a fact that the routing system will not be able to absorb millions of multihomers. The IETF has been dealing with this since 2001, and the outcome was Shim6. With Shim6 each user has one address per ISP, but all these addresses are hidden from the upper layers (these are inserted between IP and TCP/UDP, hence the name "shim"). This then allows hosts to move ongoing communications from one set of addresses to another.
Most fundamental problems I've perceived in Shim6: 1) only works with IPv6; 2) both sender and receiver must "understand" Shim6 - if one of them doesn't understand they'll just communicate as usual.
Iljitsch also talked about his current work on multi-path TCP. A nice thing about his work is that he his trying to build mTCP with changes only in the sender - that way the receiver is oblivious of the use of a "new" technique.