The Just Works paper ================= * Another big picture paper * Written about 20 years after the DP paper * Now about 10 years old * What changed between 1988 and 2006? And what's changed since 2006? * Biggest change between 1988 and 2006 is security. * Security concerns (viruses, worms, phishing, spyware, spam, DoS attacks). * Security wasn't a concern in 1988 (one of the first noteworthy worms surfaced in Nov 1988). The key idea in this paper =================== * The only time something changes on the Internet is when things are broken * And solutions are deployed just in time * In other words, if it isn't broken, it will probably not be fixed * Many examples --> (1982): DNS, Moving from a single hosts.txt file to a distributed domain name system --> (1982): Moving from a single level of routing to two levels --> (mid 1980s): Congestion collapse in the mid 1980s, which resulted in The TCP congestion control algorithm --> (early 1990s): Policy routing to not carry commercial traffic on the NSF academic backbone --> (early 1990s): Classless addressing to combat address space exhaustion * Reason for this just-in-time behavior: --> It's hard to focus on long-term thinking with exponential growth. --> Problems won't be solved unless it's critical and imminent Examples of proposals that were not deployed =================== * Explicit Congestion Notification (from the late 1990s): Not enough of a need. DCTCP (2010) used this within the limited context of datacenters. Again, when problems got really out of hand. * Multicast (both network and application level from the eary 1990s): Again, no compelling need at the time. When video got popular post 2010, there were other simpler solutions that worked well enough. Like deploying cache servers close to user populations---as opposed to multicast from a single server. * Other examples: Integrated Services, Differentiated Services, Mobile IP * What's common? These were all good to have, but not critical * Fear seems to be the main impetus for getting things done. Worries about the future, and how these have played out since 2006 =================== * Spam, security, DoS attacks. These things seem to have gotten worse with time: Heartbleed, government censorship, Mirai and other IoT-based botnets * Application deployment: E.g., Skype's difficulties getting around NATs. Peer-to-peer communication is getting increasingly hard on the Internet today. Skype ends up using a relay to work around NATs. But with the acquisition by MS, this has gotten easier for Skype. * Congestion control: Congestion control for high BDP links is quite suboptimal. E.g., transcontinental 1 Gbit/s link with a 100 ms RTT. Has led to the development of alternatives like Aspera, and more recently BBR (which we'll discuss in the course). * Problems with inter-domain routing: has led to ideas like Internet Routing Exchanges. Partially fixed by approaches like SDN. * Mobility especially related to roaming in SSH: Has led to approaches like mosh for SSH while roaming. * Address space depletion: IPv6 is finally seeing adoption now that we are actually running out of addresses (cf. IPv6 Launch Day in 2012). * Since the paper was published many networked applications have become popular: social networks, IM apps, YouTube, Spotify, etc. But almost all of them use the client-server model and run on top of HTTP, which doesn't have problems with NATs. HTTP turns out to be good enough. * Overall, the paper seems to have been prophetic. My take on the paper =================== * Problems do seem to get solved in the nick of time; otherwise the steady state seems to be stagnation. * But that seems to be an unavoidable consequence of a large infrastructure with multiple stakeholders. In fact, I don't know of any other large infrastructure that actually _changes_ as frequently as the Internet does. For instance, when was the last time that the power grid or the telephone system changed? In a way, the Internet has become a critical part of the infrastructure, and the fact that it changes even occasionally is quite remarkable. * Also, plenty of change has been happening at the application layer (FB, WhatsApp, SnapChat, Spotify, Netflix, etc.). * Changes at the application layer (which provides plenty of knobs) are good enough until people get deeply frustrated. * This frustration then leads to changes at lower layers (e.g., SDN, programmable routers, BBR, QUIC, DCTCP). Summary of both papers =================== * The Internet is a best-effort network that puts connectivity above all else. * It's mostly in a state of good enough until it gets to a point of really bad, and then it reinvents portions of itself. * The great news is that reinvention still continues to happen. * SDN, QUIC, BBR, programmable networks, datacenters are < 10 years old.