An attempt to motivate and clarify Software-Defined Networking (SDN)
Summary
TLDRIn his keynote speech, Professor Scott Shenker emphasizes the need for fundamental changes in networking, specifically through the lens of Software Defined Networking (SDN). He identifies the existing challenges in networking architectures, particularly their rigidity and complexity, and argues for better abstractions to enhance flexibility and manageability. Throughout the talk, he uses analogies from areas such as programming and user interface design to highlight the importance of simplicity and effective abstractions. His call to action is for the networking field to move away from complicated distributed protocols and towards clearer, modular solutions that enhance functionality without being encumbered by the underlying complexity. Shenker discusses the relevance of a Network Operating System and modular programming as pivotal elements for the future of networking, while openly acknowledging the difficulties in transitioning existing networks to SDN models.
Takeaways
- 🔑 Network architectures are overly complex and rigid.
- 🛠️ SDN emphasizes the need for clear abstractions in networking.
- 📊 Effective abstractions separate control and forwarding tasks.
- 🚀 Modular programming facilitates handling complex functionalities.
- 🌍 Global views enhance network management and efficiency.
- ⚙️ Moving from distributed protocols to abstractions is essential.
- 👨💻 User interface design principles apply to networking.
- 🔗 The need for flexibility in interdomain routing is paramount.
- 🔄 Incremental changes can help integrate SDN in existing networks.
- 📉 Better abstractions can reduce operational complexity.
Timeline
- 00:00:00 - 00:05:00
The keynote speaker, Professor Scott Shanker from UC Berkeley, is introduced. He has collaborated on research activities with Stanford, particularly in the area of networking and cloud computing.
- 00:05:00 - 00:10:00
Scott begins his talk by discussing the challenges in teaching networking fundamentals compared to operating systems and databases, emphasizing the complexities and weak foundations in networking as a discipline.
- 00:10:00 - 00:15:00
He presents two conundrums about the teaching of networking principles, questioning why networking principles lack robustness compared to other fields, and calls for clarification on the foundations of software-defined networking (SDN).
- 00:15:00 - 00:20:00
Scott shares personal anecdotes illustrating the importance of extracting simplicity from complexity, suggesting that mastering complexity does not equate to understanding principles, as evidenced by his experiences with algebra and user interface design.
- 00:20:00 - 00:25:00
He emphasizes the notion that programming languages have evolved through abstraction to manage complexity, contrasting this with networking where control-plane abstractions are still lacking, leading to unnecessary complexity in network management.
- 00:25:00 - 00:30:00
Abstractions in networks, such as layers, are discussed; however, Scott criticizes existing interfaces for being poor examples of modularity, as they expose too many implementation details, unlike successful programming abstractions.
- 00:30:00 - 00:35:00
He identifies a need for better control-plane abstractions in networking, proposing that the focus should shift from treating symptoms of complexity to addressing the foundational issues in networking design.
- 00:35:00 - 00:40:00
Scott advocates for defining clear abstractions for networking tasks: flexible forwarding models, distributed state management, and detailed configuration processes to simplify networking control tasks without unnecessary complexity.
- 00:40:00 - 00:45:00
He conceptualizes a 'Network Operating System' to provide a global view of the network which simplifies control programming while separating concerns, allowing complex network management tasks to become manageable.
- 00:45:00 - 00:50:00
Scott addresses the challenges of convergence in a dynamic network environment, suggesting that updates to the global network view should be approached strategically to avoid knee-jerk responses to state changes, maintaining system stability and performance.
- 00:50:00 - 00:57:25
In conclusion, Scott argues that building cleaner abstractions is essential for the evolution of networking, encouraging a focus on defining better abstractions rather than relying solely on distributed protocols or complicated mechanisms.
Mind Map
Video Q&A
What is Software Defined Networking (SDN)?
SDN is an approach to networking that uses software-based controllers or APIs to communicate with the underlying hardware, allowing for more flexibility and programmability.
What are the main challenges in current networking architectures?
Current architectures are often rigid and complex, making it difficult to adapt to new requirements and technologies.
Why are abstractions important in networking?
Abstractions help simplify the complexity of networking by providing a clear interface between different components, allowing for easier management and development.
How does Professor Shenker suggest improving networking?
He suggests redefining interfaces and introducing better abstractions to separate concerns within networking, improving functionality while reducing complexity.
What examples does he use to illustrate his points?
He uses analogies from programming and user interface design to explain the value of simplicity and effective abstractions.
Why is the concept of a 'Network Operating System' mentioned?
A Network Operating System can provide a global view and help manage states and configurations in a simplified manner.
What is the significance of modular programming in networking?
Modular programming enables the development of complex functionalities without the need to deal with their complexities upfront.
How can SDN be applied to existing networks?
While challenging, integrating SDN into existing networks requires careful planning and potentially incremental changes to gradually adopt the new approach.
What does Professor Shenker say about the future of protocols like BGP?
He acknowledges the ongoing research into protocols like BGP but emphasizes the need for new abstractions to improve interdomain routing.
What is the takeaway regarding the evolution of Internet architecture?
To create a more evolvable Internet architecture, eliminating dependencies on rigid protocols like IP and focusing on clean interfaces is essential.
View more video summaries
Understanding Contemporary Art 6.1 Introduction to the YBA's by John David Ebert
Music as a Language: Victor Wooten at TEDxGabriolaIsland
Why I Can't Remember Things -- How ADHD Affects Working Memory
What Is Digital Transformation - A Brief Introduction With Examples, Process and Statistics
Integrasi Nasional
O Nicolas Netto é bizarro
- 00:00:07next speaker is our invited keynote
- 00:00:08speaker I want to invite Professor Scott
- 00:00:10Shanker on stage here Scott is professor
- 00:00:14at UC Berkeley at computer science is
- 00:00:17also head of the net well come on
- 00:00:21Scotch uh the networking uh president of
- 00:00:24the international Computer Science
- 00:00:26Institute at Berkeley and uh Scott has
- 00:00:28been close
- 00:00:30Ally and partner in in some of the
- 00:00:32research work we've been doing over the
- 00:00:34last few years it's been um one part of
- 00:00:37the um Clean Slate activities we've done
- 00:00:40together with Stanford so this is
- 00:00:41combined um Stanford and Berkeley
- 00:00:44activity uh Ericson is just now joining
- 00:00:47a Berkeley um
- 00:00:51uh research program called amplitudes no
- 00:00:54sorry algorithms machines and people
- 00:00:57which is called amplab and it's relating
- 00:01:00to cloud computing and crowd sourcing
- 00:01:02and stuff like that and where where
- 00:01:04Scott is one of the uh key leading
- 00:01:07professors so uh we are very honored to
- 00:01:10have you here Scott um your talk
- 00:01:14today I'll have to check your title
- 00:01:17again from protocols to abstractions and
- 00:01:21um well I think I can have a guess what
- 00:01:24you will talk about but I'm excited to
- 00:01:25see so
- 00:01:28um very good
- 00:01:33and you
- 00:01:35quick very well welcome Scotland thank
- 00:01:39you so whoops I need to um so I wanted
- 00:01:42to apologize to ton for two reasons one
- 00:01:45is uh I didn't introduce myself when I
- 00:01:48came in so when the previous speaker
- 00:01:50stopped I saw him Panic run out the room
- 00:01:52to try and find where his keynote
- 00:01:54speaker was uh and uh I I was already
- 00:01:58lurking back here so let him suffer in
- 00:02:00silence the other one is that uh he had
- 00:02:03no idea what I was going to talk about
- 00:02:05when he invited me and so uh I I think
- 00:02:07once he sees this talk he'll uh think
- 00:02:10twice so let me start off so I want to
- 00:02:13talk about the future of
- 00:02:15networking and the past to protocols
- 00:02:17this is Joint work with Martin cassado
- 00:02:19Tam konin Nick mun and and many others
- 00:02:22these people are familiar to many of you
- 00:02:25and what it really is is an attempt to
- 00:02:28motivate and clarify what I call
- 00:02:29software defined networking I think it's
- 00:02:32the same you refer to by your split
- 00:02:33architecture I'm not sure what the
- 00:02:35terminology is but uh we refer to it as
- 00:02:39sdn and my talk is going to start with
- 00:02:43sort of a Noah's Arc you know it's two
- 00:02:45of everything I'm going to start with
- 00:02:46two conundrums and then two questions
- 00:02:47and then two stories and then two quotes
- 00:02:50and then hopefully you'll have had too
- 00:02:51much by that
- 00:02:54time um so let's start with an academic
- 00:02:58Paradox or conundrum so so I teach at UC
- 00:03:01Berkeley um and my colleagues when they
- 00:03:04teach operating systems or databases
- 00:03:07they teach fundamental principles they
- 00:03:08have things like synchronization and
- 00:03:10mutual exclusion and then I get up and I
- 00:03:12teach introductory networking what do I
- 00:03:14teach I teach a bag of
- 00:03:16protocols okay I have no principles you
- 00:03:20know the end to end principle is just a
- 00:03:22vague design guideline but we have
- 00:03:26nothing then on the Practical end of
- 00:03:28things you know comp a and storage have
- 00:03:30been virtualized they're now very
- 00:03:32flexible easy to
- 00:03:34manage not so much with networks now I
- 00:03:37understand that a fair amount of your
- 00:03:38profits come from the fact that these
- 00:03:40are still complex but but that doesn't
- 00:03:42mean we should stop there and and
- 00:03:44rejoice in that uh so this talk is going
- 00:03:48to really address two
- 00:03:50questions one is why are the foundations
- 00:03:53and networking so weak I mean is it just
- 00:03:55that we're idiots and that you know the
- 00:03:56people who do databases and operating
- 00:03:58systems are smarter than we are that's
- 00:03:59what my colleagues that's their
- 00:04:02explanation um and then how can we make
- 00:04:04them
- 00:04:06stronger so those are the two things and
- 00:04:08the answers to both of these questions
- 00:04:11really lie in the tension between
- 00:04:13complexity and
- 00:04:15simplicity so we all know that networks
- 00:04:17are becoming increasingly complex you
- 00:04:20know when they were first designed they
- 00:04:22were actually quite simple I mean know
- 00:04:23ethernet is an incredibly simple
- 00:04:25networking design there's nothing
- 00:04:27complex about it and the same thing with
- 00:04:29IP it's core it's very complex I mean
- 00:04:31very simple we have all these new
- 00:04:33control requirements that have led to
- 00:04:35the complexity we have akles and vlans
- 00:04:37and traffic engineering and middle boxes
- 00:04:38and deep packet inspection and that's
- 00:04:41made what used to be this sort of very
- 00:04:42elegant design very
- 00:04:45complex now the infrastructure still
- 00:04:48works and that's because people like you
- 00:04:50are great at mastering the
- 00:04:54complexity now this ability to master
- 00:04:58complexity it's both a blessing and a
- 00:05:02curse because often when you get a
- 00:05:04system that is extremely complex what
- 00:05:07that's telling you is it's built on weak
- 00:05:10foundations now the complexity is a
- 00:05:13symptom not a cause that is the weak the
- 00:05:16foundations aren't weak because it's
- 00:05:17complex it's complex because the
- 00:05:19foundations are weak but the problem is
- 00:05:21we've gotten great at treating the
- 00:05:24symptoms and we sometimes neglect the
- 00:05:27cause so I I want to
- 00:05:30sort of talk about two stories one is so
- 00:05:34when I was growing up I had a lot of
- 00:05:35trouble learning algebra and my father
- 00:05:38you know I mean I was like most of you
- 00:05:40reasonably right nothing special but my
- 00:05:42father was really perplexed by why was I
- 00:05:44having so much trouble learning algebra
- 00:05:46and so he worked with me for a couple of
- 00:05:48weeks and he finally turns to me says
- 00:05:49Scott your problem isn't that you can't
- 00:05:51learn algebra it's that you're so good
- 00:05:52at arithmetic you don't need it that
- 00:05:55when they would give me an algebra
- 00:05:56problem I would sort of go and plug in a
- 00:05:58couple of numbers and figure out what
- 00:05:59the answer was and then come out and
- 00:06:01solve it by guessing so I was I used my
- 00:06:04skill at mastering the complexity of
- 00:06:06arithmetic to avoid learning algebra and
- 00:06:10once he pointed that out to me you know
- 00:06:12I was able to learn it and then let me
- 00:06:14tell another story I spent the first 15
- 00:06:17years of my research life at Xerox Park
- 00:06:20and at the time I joined which was the
- 00:06:22early to mid 80s it was the mecca for
- 00:06:24user interface design I mean it was a
- 00:06:26decade ahead of everybody else in the
- 00:06:28world and Norman who was one of the user
- 00:06:31interface designers that you know became
- 00:06:33famous at Apple came to to give a
- 00:06:36colloquium and so he walks in and and
- 00:06:38you know the the the auditorium was
- 00:06:41packed and and at that point Zero's Park
- 00:06:42was heavily mailed so it's packed with
- 00:06:44all these
- 00:06:45males and so don Norman sort of ambles
- 00:06:48up to the stage and you know takes his
- 00:06:50time and then looks out at the audience
- 00:06:51and he says how many of you drive a
- 00:06:54stick shift so we all look at each other
- 00:06:57and then you know then most of I didn't
- 00:06:59raise my hand I don't drive a stick
- 00:07:00shift but you know almost everybody else
- 00:07:02did and they were very proud you it was
- 00:07:03like I drive a stick shift I'm a man and
- 00:07:06and he said looks at us he just calmly
- 00:07:07scans the audience he says none of you
- 00:07:10should ever design a user
- 00:07:15interface and so there are two morals to
- 00:07:17this story one is that the ability to
- 00:07:21master complexity the ability to drive a
- 00:07:23stick shift is very different than the
- 00:07:25ability to extract
- 00:07:27Simplicity and that if if you like
- 00:07:30driving a stick shift then you're drawn
- 00:07:32to mastering complexity but designing
- 00:07:35user interface is all about extracting
- 00:07:37Simplicity and the two very different
- 00:07:39tasks and the other point that he made
- 00:07:41is we should put a lot more effort into
- 00:07:44this than into mastering complexity when
- 00:07:46you master complexity you have to do it
- 00:07:47for every single problem when you
- 00:07:49extract Simplicity that's much longer
- 00:07:54lasting so where is Simplicity triumphed
- 00:07:57you know where it's an example where
- 00:07:59we've
- 00:08:00successfully extracted Simplicity out of
- 00:08:02a place where things used to be very
- 00:08:04complex so most people would say
- 00:08:06programming is is one of our best
- 00:08:08examples in computer science so how did
- 00:08:10programming become simple so we started
- 00:08:13with machine languages had no
- 00:08:15abstractions you had to deal with all
- 00:08:16the low-level
- 00:08:18details then you had higher level
- 00:08:20languages and they used a lot of useful
- 00:08:22abstractions file systems virtual memory
- 00:08:24abstract data types and then we have the
- 00:08:26modern languages that have object
- 00:08:28orientation and garbage collection and
- 00:08:30so
- 00:08:31forth and the lesson was that
- 00:08:34abstractions are the way we extracted
- 00:08:37Simplicity in this case that by defining
- 00:08:39these abstractions that we could use
- 00:08:41then our task became simpler and
- 00:08:45simpler so so why are these abstractions
- 00:08:48useful so interfaces are really just
- 00:08:50instantiations of abstractions so why
- 00:08:52are abstractions are interfaces useful
- 00:08:55well it's obvious I mean you all use
- 00:08:56them that they Shield you from low-level
- 00:08:58details right right you allow freedom of
- 00:09:00implementation on both sides if you have
- 00:09:02a clean interface then how you implement
- 00:09:04this module is independent of how you
- 00:09:06implement this one so you can define a
- 00:09:09modular programming structure now how
- 00:09:12many people here have seen Barbara
- 00:09:13loff's talk on the power of abstraction
- 00:09:15she gave a turing award lecture on this
- 00:09:18if not go go watch it you know there 18
- 00:09:21versions on YouTube it's really a very
- 00:09:23deep lecture I mean it's something that
- 00:09:26that really inspired me it stayed with
- 00:09:28me
- 00:09:30um but the key Point she makes is that
- 00:09:33interfaces they don't remove complexity
- 00:09:35they merely hide it that is somebody
- 00:09:37deals with complexity once and then
- 00:09:40everybody else gets to leverage that
- 00:09:41work so it's not like you you know
- 00:09:43somehow you've magically made complexity
- 00:09:45disappear you've just been able to
- 00:09:47encapsulate it and let everybody else
- 00:09:49use that work and so what Barbara lisof
- 00:09:52says in her talk is modularity based on
- 00:09:54abstraction is the way things get
- 00:09:58done you this is why we can have
- 00:10:00programs that have 10,000 10 million
- 00:10:02lines of code so if you talk about the
- 00:10:05right way to overcome complexity you
- 00:10:06thought networks were complex 10 million
- 00:10:09lines of code making that simple that's
- 00:10:12a real success
- 00:10:14story now the other thing she said is
- 00:10:17that abstraction is at the center of
- 00:10:20much work in computer science so this is
- 00:10:22something that most areas in computer
- 00:10:23science focus
- 00:10:25on not so much
- 00:10:27networking so where do we talk about
- 00:10:29abstractions and
- 00:10:32networking so one area where we talk
- 00:10:34about are layers layers are you know one
- 00:10:37place where we talk about abstractions
- 00:10:40so layers provide this very nice data
- 00:10:43plane service abstraction right we have
- 00:10:45you know best effort delivery we then
- 00:10:47have a reliable bite stream these are
- 00:10:49great ways to think about what's go you
- 00:10:51know without worrying about the the
- 00:10:53mechanisms underneath you have this
- 00:10:55abstraction of what the network is doing
- 00:10:56for you these are great these are
- 00:10:59terrific abstractions I'm going to get
- 00:11:01back to it but as an aside as interfaces
- 00:11:04they suck these are awful if my grad
- 00:11:07student designed an interface like this
- 00:11:09I'd flunk them I mean these are they
- 00:11:11violate the basic principle of
- 00:11:13modularity which is you hide the
- 00:11:15implementation details and the fact that
- 00:11:17IP addresses go through the architecture
- 00:11:20duh idiotic right nobody would build a
- 00:11:24system that way now I'm not criticizing
- 00:11:26people who invented this they were just
- 00:11:27making things work but if we were look
- 00:11:29at the interfaces now as system design
- 00:11:32decisions they're terrible they're
- 00:11:34terrible interfaces but that's just an
- 00:11:36aside I'll get back to that later but my
- 00:11:38main point here is while we have good
- 00:11:40data plane abstractions we really don't
- 00:11:43have good control plane
- 00:11:46abstractions there are no sort of
- 00:11:48sophisticated management building blocks
- 00:11:51so every time we have a new control
- 00:11:53requirement we have to add complexity to
- 00:11:56the system because we have to invent
- 00:11:57something new we don't have a build
- 00:11:59building block that we can build
- 00:12:03upon so what we need to do is reverse
- 00:12:05this trend towards complexity in
- 00:12:07networks so we need to simplify
- 00:12:10networking
- 00:12:11control rather than just mastering the
- 00:12:13complexity it's harder to do but it's
- 00:12:15much longer
- 00:12:16lasting and so to break this bad habit
- 00:12:19of continually adding complexity to the
- 00:12:21network we need to
- 00:12:23understand why we're doing it where this
- 00:12:25is coming from so how do we solve
- 00:12:27problems today and what are the require
- 00:12:29IR Ms for those Solutions so the the how
- 00:12:31we solve problems today you know we can
- 00:12:33either Define a new protocol or We Can
- 00:12:35ad hoc mechanism or we can leave it to
- 00:12:37the you know operators doesn't really
- 00:12:40matter which which of these we pick the
- 00:12:43key is What are the requirements for
- 00:12:44those Solutions and there are three
- 00:12:47requirements one is they have to operate
- 00:12:50within the confines of a given data path
- 00:12:52you know your handed IP or MLS or
- 00:12:54whatever your data path is but you're
- 00:12:56given a data path and you've got to live
- 00:12:58with whatever can and cannot do second
- 00:13:02you have to live without communication
- 00:13:03guarantees so you've got a general
- 00:13:05distributed system arbitrary delays
- 00:13:07arbitrary drops that's yours to deal
- 00:13:10with and lastly Your solution has to
- 00:13:14compute the configuration of every
- 00:13:16single physical design device in the
- 00:13:18network whether it's akles or fibs or
- 00:13:21whatever it is that's what you've got to
- 00:13:23end up
- 00:13:25Computing so you've got to operate
- 00:13:27within a con straints of a data path
- 00:13:31you've got to deal without communication
- 00:13:32guarantees and you've got to actually
- 00:13:35provide a detailed configuration for
- 00:13:37every device so I've got a secret for
- 00:13:39you this is insanity this is completely
- 00:13:43crazy so let's say somebody came to you
- 00:13:46and said you've got to program your
- 00:13:47computer and to do so you got to specify
- 00:13:50where every bit is stored you've got to
- 00:13:52deal with all internal communication
- 00:13:53errors meaning if you do a store and it
- 00:13:55fails that's your problem deal with it
- 00:13:57and you've got to do it with a with a
- 00:13:59programming language that doesn't have
- 00:14:00much expressibility what would your
- 00:14:02response be you wouldn't say oh yeah
- 00:14:04sure I'll go do that you would say
- 00:14:06forget it and you would say okay well
- 00:14:08first I'm going to define a higher level
- 00:14:10of abstraction for memory right so I
- 00:14:12don't have to deal with that problem and
- 00:14:13then I'm going to deal divide some
- 00:14:15reliable communication prives so I don't
- 00:14:17have to deal with that problem and then
- 00:14:18I'm going to define a new programming
- 00:14:20language that gives me my expressibility
- 00:14:23so why have we in networking just sort
- 00:14:26of said okay fine we'll go do this
- 00:14:28whereas in every other discipline in
- 00:14:30computer science they said forget it
- 00:14:31we're going to Define some abstractions
- 00:14:33first and get those right and then we'll
- 00:14:35go solve the
- 00:14:36problem so what we do here is we've
- 00:14:39separated the problem into manageable
- 00:14:41pieces we haven't done that in
- 00:14:42networking at least not on the control
- 00:14:45plane so what we need to do is Define
- 00:14:49some abstractions to help us simplify
- 00:14:51how we think about control tasks and so
- 00:14:54the three concerns that I listed are
- 00:14:55this constrained forwarding model
- 00:14:58distributed state and detail
- 00:15:01configuration now the way we Define
- 00:15:05these abstractions the way we separate
- 00:15:07these concerns are going to Define the
- 00:15:10Fundamental abstractions of networking
- 00:15:12okay so these are important decisions to
- 00:15:14make because this is what all networks
- 00:15:17will be built
- 00:15:19around now I just want to point out
- 00:15:21we're not talking about new mechanisms
- 00:15:23we have all the mechanisms we're ever
- 00:15:25going to need okay we just have never
- 00:15:28developed the right obstr
- 00:15:29ractions and the difference between
- 00:15:31mastering complexity and extracting
- 00:15:34Simplicity is whether or not you focus
- 00:15:37on finding the right abstraction versus
- 00:15:39defining a new mechanism and so that's
- 00:15:42the Habit we need to break ourselves of
- 00:15:43is that when you're faced with a new
- 00:15:45design problem you figure out what was
- 00:15:46the right abstraction rather than going
- 00:15:49and proving that you're smart by
- 00:15:50building a protocol that solves your
- 00:15:53problem so we now need abstractions for
- 00:15:55these forwarding distributed State and
- 00:15:57detail configurations so let's go
- 00:15:58through those one by
- 00:16:00one so let's subtract the forwarding
- 00:16:04model so if you're trying to control the
- 00:16:06network you need some kind of flexible
- 00:16:08forwarding model so that the control
- 00:16:10program can specify what happens rather
- 00:16:12than dealing with some limitation of
- 00:16:13what your underlying uh forwarding
- 00:16:16protocol
- 00:16:17does so it Shields the upper layers from
- 00:16:20exactly how you do the forwarding and
- 00:16:22the point is it doesn't really matter
- 00:16:23what you pick you could say the way
- 00:16:25we're going to do forwarding is you hand
- 00:16:27me a general x86 program and I'll run it
- 00:16:29and it'll schedule the packets and we
- 00:16:31use you know the route bricks design
- 00:16:33from Intel that you know it's only about
- 00:16:35a tenth as fast as as forwarding chips
- 00:16:38but completely general or MLS or
- 00:16:43OpenFlow doesn't really matter but let's
- 00:16:45pick one let's pick a clean abstraction
- 00:16:47for How We Do forwarding and then we
- 00:16:49don't have to worry about it
- 00:16:51anymore what about State
- 00:16:54distribution so the control program
- 00:16:56should not have to deal with the
- 00:16:57vagaries of distributed state this is
- 00:16:59really complicated stuff it's the source
- 00:17:01of many errors the number of people who
- 00:17:03know how to build really solid
- 00:17:05distributed systems about 10 you know if
- 00:17:08you look at Google has dozens of
- 00:17:11complicated distributed systems Jeff
- 00:17:13Dean has basically designed all of them
- 00:17:15you know that there are not many people
- 00:17:17who really get this stuff right so it's
- 00:17:19really hard so we should do it once and
- 00:17:23let everybody else leverage it rather
- 00:17:25than having your control program have to
- 00:17:26deal with it so the you know the phrase
- 00:17:29Network operating system that that's
- 00:17:31something that we use is an example of
- 00:17:33this which what it says is we're going
- 00:17:36to provide you with an abstraction which
- 00:17:38is we'll give you a global view of the
- 00:17:40network and that's what you deal with
- 00:17:43you don't have to deal with a the
- 00:17:45physical reality will give you a logical
- 00:17:46view of the
- 00:17:48network and so I'm going to show a
- 00:17:50picture of this in a second but the
- 00:17:51point is the control program will
- 00:17:53operate on this network view which is
- 00:17:54essentially a
- 00:17:56graph and so given the graph is is input
- 00:17:59you then figure out what the
- 00:18:00configuration should be of every
- 00:18:04device so if you take these two
- 00:18:06abstractions you end up with a picture
- 00:18:08like this so the current networks look
- 00:18:09like this you've got protocols in
- 00:18:10between switches you throw them out you
- 00:18:14then Define a network operating system
- 00:18:15that runs on servers in the network you
- 00:18:18control the switches via this forwarding
- 00:18:20interface and this network operating
- 00:18:22system provides This Global Network View
- 00:18:25and then if you're writing a control
- 00:18:27program it's on top of this network view
- 00:18:29you write a control program on top of a
- 00:18:32graph you forget about the fact it's
- 00:18:34distributed that's what the network
- 00:18:35operating system does that it takes
- 00:18:38configuration from here and configures
- 00:18:41the switches and then it takes state
- 00:18:42from the switches and puts it into the
- 00:18:44network view your control program has no
- 00:18:46idea the network is
- 00:18:48distributed so you're running dyra not
- 00:18:50Bellman Ford okay you're just writing a
- 00:18:53program on a
- 00:18:55graph so this is a huge change in the
- 00:18:57paradigm because we're not designing
- 00:19:00control protocols we're designing a
- 00:19:02Control Function what I mean by that
- 00:19:05is the configuration you want is some
- 00:19:08function of the
- 00:19:11view you're not figuring out how to get
- 00:19:14the view you're just saying whatever the
- 00:19:16view is here's what the answer is it's
- 00:19:19just a function so why is this in
- 00:19:20advance it's much easier to write it's
- 00:19:23much easier to check it's much easier to
- 00:19:24reason about because it's just it's just
- 00:19:27like writing a program over a Gra
- 00:19:29graph and the network operating system
- 00:19:32handles all of the state dissemination
- 00:19:34and
- 00:19:36collection so this abstraction bites off
- 00:19:40distribution as a tractable piece and
- 00:19:42solves it and then lets the rest of the
- 00:19:44control problem control program ignore
- 00:19:48it so you might say well what what about
- 00:19:51consistency I mean it really is a
- 00:19:52distributed system you haven't changed
- 00:19:54that but notice you design your network
- 00:19:57operating system
- 00:19:59so that it's eventually consistent that
- 00:20:01is the view will eventually reflect the
- 00:20:04reality of the network that's not hard
- 00:20:06we know how to do that and then notice
- 00:20:09that as long as this is true then you
- 00:20:11will eventually end up with the right
- 00:20:13configuration of your network because
- 00:20:15your view will converge towards reality
- 00:20:18and at every step you're saying my
- 00:20:20configuration is just a function of the
- 00:20:21view when my view gets real my
- 00:20:23configuration is
- 00:20:26correct that's the correctness proof
- 00:20:28that's a lot easier than looking at a
- 00:20:30distributed protocol and trying to
- 00:20:32figure out whether it's actually going
- 00:20:33to converge to the right
- 00:20:35answer so what about transient
- 00:20:37conditions because it it does take you a
- 00:20:39while to converge so it's very hard in a
- 00:20:41distributed protocol to figure out let's
- 00:20:43say are there going to be Loops while
- 00:20:45this is
- 00:20:46converging here it's actually quite easy
- 00:20:49if at every time you have a picture of
- 00:20:52the network and you say that the
- 00:20:54function from The View never creates a
- 00:20:57loop then you will never have Loop
- 00:21:00and
- 00:21:02Dory and you say well hold it you know
- 00:21:05you you've got to distribute the
- 00:21:06controller the controller is not a
- 00:21:07single computer it's actually
- 00:21:09distributed well actually if you sensely
- 00:21:11break up the way the the problem is
- 00:21:14distributed among controllers like every
- 00:21:16controller handles you know an end to
- 00:21:19end path that an end to end path is not
- 00:21:20handled by two separate controllers but
- 00:21:22by a single controller and you split
- 00:21:24those up then you can enforce the no
- 00:21:26Loop condition very easily
- 00:21:28so this is a much easier way to enforce
- 00:21:31correctness conditions on a very
- 00:21:32complicated distributed Problem by
- 00:21:35breaking it
- 00:21:37apart so now why does this scale this is
- 00:21:39a question we always get that you know
- 00:21:42okay you've got this big complicated
- 00:21:43Network and all of a sudden you're
- 00:21:44saying that I'm going to give you a
- 00:21:45central view it can't possibly scale but
- 00:21:48actually consistency is the reason why
- 00:21:49it scales down at the fast time scales
- 00:21:52of per packet you don't need any
- 00:21:54consistency packets go independently at
- 00:21:57the per flow scale again you don't need
- 00:21:59any consistency every flow can be
- 00:22:01handled
- 00:22:03individually Network events meaning
- 00:22:05switches coming and going links coming
- 00:22:07and going here you need eventual
- 00:22:09consistency you don't need transactional
- 00:22:11consistency just eventual consistency
- 00:22:13you can build a scalable system that
- 00:22:15that's eventually consistent as big as
- 00:22:17you want the only place you need strong
- 00:22:20consistency is essentially where you
- 00:22:22implement your control program that is
- 00:22:24everybody needs to agree on what the
- 00:22:25control program
- 00:22:27is that happens on human time scales you
- 00:22:30know maximum 10 per second something
- 00:22:32like that easily can build a
- 00:22:35transactional system that can handle
- 00:22:36that rate of change without breathing
- 00:22:38hard so there's no scaling problem here
- 00:22:41whatsoever so the scaling is
- 00:22:45straightforward so you might say okay
- 00:22:47well what about open Flow isn't that
- 00:22:49what everybody's talking about well the
- 00:22:52network operating system conveys the
- 00:22:55configuration of the global Network view
- 00:22:57remember I took a Global Network View
- 00:23:00and then I my control program decided
- 00:23:02what the configuration I want and the
- 00:23:04network operating system would then take
- 00:23:05it down to the physical
- 00:23:08switches nothing in that statement tells
- 00:23:10me what configuration means it just says
- 00:23:13whatever state you want that switch to
- 00:23:16have your control program decides it and
- 00:23:18then it gets handed down to it open Flow
- 00:23:21is is is one possible solution to that
- 00:23:25it's clearly not the right solution I
- 00:23:27mean it it
- 00:23:29probably a very good solution for now
- 00:23:32but it's not there's nothing that says
- 00:23:34this is fundamentally the right
- 00:23:36answer open think of open Flow as the
- 00:23:39x86 instruction set is the x86
- 00:23:42instruction sets correct is it the right
- 00:23:44answer no it's good enough for what we
- 00:23:46use it so for why bother changing it
- 00:23:48that's what open Flow is it's the
- 00:23:50instruction set that we happen to use
- 00:23:52but we shouldn't get a hung up on it
- 00:23:54being exactly
- 00:23:57right so so let's think about what the
- 00:23:59fundamental principles are of software
- 00:24:02defined networking the core principle is
- 00:24:05that the configuration flows from the
- 00:24:07Glo global view that is you look at the
- 00:24:08global view you figure out what you how
- 00:24:10you want the network configured and then
- 00:24:12you instantiate that
- 00:24:14configuration you have lots of
- 00:24:16performance issues for instance every
- 00:24:19time the network changes you can't wait
- 00:24:21to go for the view to change and then
- 00:24:23the controller to come back and
- 00:24:24instantiate new state to respond to
- 00:24:27it so you need to do things like
- 00:24:30configure backup paths or other local
- 00:24:33you know other sort of local programs
- 00:24:35that would respond to local state and
- 00:24:37change and the only Point here is that
- 00:24:40doesn't violate sdn at all that when you
- 00:24:42hear people talk about sdn often other
- 00:24:45academics at least they say well you
- 00:24:47know sdn doesn't work because what
- 00:24:48happens if I need a backup path that's
- 00:24:51just a different way of configuring it's
- 00:24:52just part of configuration doesn't
- 00:24:54change anything about
- 00:24:56SDM so for in here would be a completely
- 00:24:59consistent sdn
- 00:25:01implementation that you know the
- 00:25:02forwarding model that you have on the
- 00:25:04line cards is you have open Flow plus
- 00:25:05the fully General forwarding model you
- 00:25:07know an x86 or maybe you want to use a
- 00:25:09GPU to be more efficient but you have a
- 00:25:12fully General forwarding model your
- 00:25:14switch how you configure a switch is you
- 00:25:16hand it a Java program an arbitrary Java
- 00:25:19program so if you want to say if this
- 00:25:20link fails do this and if that link
- 00:25:22fails do that fine you just hand off a
- 00:25:25program and then the network operating
- 00:25:27system has this distributed State model
- 00:25:29that's essentially key value store with
- 00:25:31a little bit of constraints on the data
- 00:25:32model to sort of so you can make sure
- 00:25:34that you don't get intrinsic in
- 00:25:36consistencies on how you're expressing
- 00:25:40state I'm not advocating that this is
- 00:25:42something we should move towards now but
- 00:25:44the point is this is a completely
- 00:25:46consistent with everything I've been
- 00:25:48saying about this being a viable way to
- 00:25:50implement software defined
- 00:25:54networking and it has the nice feature
- 00:25:57that you can start off with features in
- 00:25:59software and then migrate them to
- 00:26:01hardware and you know right now the the
- 00:26:04sort of the x86 foring you know an order
- 00:26:07magnitude slower than Hardware so if 10%
- 00:26:10of your traffic are less you're using
- 00:26:11this new feature you're fine so new
- 00:26:14features start in software small
- 00:26:16fraction your traffic is using them and
- 00:26:18then they'll gravitate over to Hardware
- 00:26:20if it proves to be valuable perfectly
- 00:26:22viable
- 00:26:25approach so are we done is is this no I
- 00:26:29mean am I going to leave you know with a
- 00:26:32half hour left of my time I'm an
- 00:26:34academic of course not you know um so
- 00:26:38this
- 00:26:39approach is not done because it requires
- 00:26:41the control program or the operator to
- 00:26:44configure each individual Network
- 00:26:47device and that's way more complicated
- 00:26:50than it should
- 00:26:52be so the network operating system eases
- 00:26:56the implementation of functionality
- 00:26:59by it says okay you tell me how you want
- 00:27:00to configure the network and I'll go do
- 00:27:02it for you but it doesn't ease the
- 00:27:04specification of functionality you still
- 00:27:06need to decide on what the FIB is and
- 00:27:07what the akles are and every single
- 00:27:09switch in the
- 00:27:10network
- 00:27:12okay that's way too
- 00:27:15complicated so how can we provide
- 00:27:17abstractions that are more meaningful to
- 00:27:19operators and to control
- 00:27:23programs well it's by offering an
- 00:27:25abstraction so what you want to do is
- 00:27:27give control program an abstract view of
- 00:27:29the
- 00:27:30network you don't want to show them the
- 00:27:32full Network you want to give them an
- 00:27:33abstract view of the network and then
- 00:27:36the control program takes that abstract
- 00:27:37View and it configures that abstract
- 00:27:40View and you want the model to provide
- 00:27:43just enough details so that I can
- 00:27:44express my goals without providing me
- 00:27:47all the information I would need to
- 00:27:49implement those these goals because I I
- 00:27:51don't want to imple if I'm the operator
- 00:27:52I don't want to implement them I just
- 00:27:53want to specify them so here's an
- 00:27:55example let's say we want to do access
- 00:27:57control and here's the full Network View
- 00:27:59and these blue lines are sort of the
- 00:28:01external access links and then the the
- 00:28:03black lines are internal links so is
- 00:28:06that what I want to show an operator of
- 00:28:08course not what I want to show an
- 00:28:09operator if they're talking about access
- 00:28:11control is this it says you know can
- 00:28:13this guy talk to this guy yes or no
- 00:28:16that's all that ought to be specified
- 00:28:18the internal structure of the network
- 00:28:20the operator doesn't need to see that at
- 00:28:22all this is how you implement the AAL
- 00:28:25but you want to specify it on the
- 00:28:26simplest Network model possible and in
- 00:28:29that case it's just a single crossbar
- 00:28:31that's plenty to implement to to specify
- 00:28:34what kind of access controls you
- 00:28:37want so a more detailed model would be
- 00:28:40to say the service model for the network
- 00:28:42is a series of table lookups that you
- 00:28:45might want to do a look up at layer two
- 00:28:46and then you want to do a look up at
- 00:28:47layer three and then maybe you want to
- 00:28:49apply some akles and maybe look up at
- 00:28:50some other table but it's really a
- 00:28:53series of table
- 00:28:55lookups I mean globally I don't mean
- 00:28:57within a single switch meaning that's
- 00:28:59what you want your network to do is so
- 00:29:00to go look at the packet look it up and
- 00:29:02do a couple of lookups for instance here
- 00:29:04if you were just worried about access
- 00:29:05control you would just do an AO lookup
- 00:29:07which says you're coming in on this
- 00:29:08input Port are you allowed to go out on
- 00:29:10that output port or not yes or
- 00:29:14no so if that's the way you specify what
- 00:29:17you want your network to do what you do
- 00:29:20is you create these table pipelines in
- 00:29:22Virtual
- 00:29:24space on you know this is your abstract
- 00:29:26Network and then you figure out how to
- 00:29:30actually Implement these table lookups
- 00:29:32on the physical Hardware you have so
- 00:29:34this is sort of think of this is one
- 00:29:36logical switch in logical space you
- 00:29:39might have a hundred physical switches
- 00:29:41you just need to make sure you want to
- 00:29:43make sure each one of these lookups
- 00:29:45happens it doesn't have to happen on
- 00:29:46every switch just make sure it happens
- 00:29:51somewhere so who Maps this abstract view
- 00:29:55to the the physical view so we're going
- 00:29:57to I defined something called a network
- 00:30:00hypervisor I have come up with the worst
- 00:30:02piece of terminology in the world a
- 00:30:03hypervisor but when I call it a
- 00:30:05hypervisor everybody gets very confused
- 00:30:07and says isn't that what VMware sells so
- 00:30:09it's a network
- 00:30:11hypervisor and it's a hypervisor because
- 00:30:14it's a layer between this abstract model
- 00:30:17and the network operating system so this
- 00:30:20is the picture I used to show you and
- 00:30:23now what we do is we jack up the control
- 00:30:25program and we stick in this network
- 00:30:28supervisor and what it does is it
- 00:30:30provides this abstract Network View and
- 00:30:33so I write a control program to
- 00:30:35configure let's say this pipeline of of
- 00:30:37table lookups and so I say okay you know
- 00:30:40here here's how you populate those
- 00:30:41abstract
- 00:30:43tables the hypervisor then says okay now
- 00:30:46I know what lookups I have to do I see
- 00:30:49the view of the entire network I will
- 00:30:51figure out where those lookups ought to
- 00:30:53happen and I will instantiate the
- 00:30:55correct state in those physical switches
- 00:30:57to make sure this
- 00:30:59happens and then the network operating
- 00:31:01system goes down and instanes that and
- 00:31:04real
- 00:31:05switches okay that's how it
- 00:31:09works so basically what I'm calling for
- 00:31:12are three basic network interfaces
- 00:31:15there's a forwarding interface that
- 00:31:17provides a flexible abstract forwarding
- 00:31:20model there's a Global Network view it
- 00:31:22Shields the higher layers from State
- 00:31:24dissemination and collection you don't
- 00:31:26have to worry about it I'm just going to
- 00:31:27give you a graph
- 00:31:28and then there's this abstract Network
- 00:31:30view that Shields the control program
- 00:31:32from details of the physical
- 00:31:34Network and so I claim that for control
- 00:31:37programs these are the three
- 00:31:39abstractions not a three abstraction the
- 00:31:41three abstractions we will need end of
- 00:31:47story so that in terms of motivating
- 00:31:52software defined networking or the split
- 00:31:53architecture we've all talked about it
- 00:31:55is a mechanism and isn't it great the
- 00:31:58point is this is how we arrived at it by
- 00:32:02thinking about what abstractions you
- 00:32:06need so let's go from software defin
- 00:32:08networking to sort of Clean Slate
- 00:32:09architectures because this is where I
- 00:32:11spend most of my academic life is
- 00:32:13thinking about if we were to redesign
- 00:32:14the internet how would we design
- 00:32:17it and so you know what I've talked
- 00:32:19about today are the basic abstractions
- 00:32:21that would underly softer Define
- 00:32:26networking then but what are the
- 00:32:28abstractions that might be relevant to
- 00:32:31the overall architecture not just to
- 00:32:32network control what about more General
- 00:32:35architectural questions besides Network
- 00:32:38control so one problem you would like to
- 00:32:41solve what something that everybody says
- 00:32:42is the current Internet architecture is
- 00:32:44very rigid it's very hard to change
- 00:32:46going from IP to IPv6 has been decade
- 00:32:49long struggle and that's a pretty mild
- 00:32:52change that it's very hard to change
- 00:32:55things and so why is that and can we fix
- 00:32:58that
- 00:32:59problem so the question is how can we
- 00:33:01make the architecture evolvable how
- 00:33:03could we design an internet architecture
- 00:33:04that's evolvable and I've heard people
- 00:33:06talking about that for 15 years and I've
- 00:33:08never heard a good solution
- 00:33:10proposed I'm going to propose one in two
- 00:33:14slides so first let's talk about why the
- 00:33:16architecture is
- 00:33:18rigid so IP is a central component of
- 00:33:21the
- 00:33:21architecture IP is embedded in
- 00:33:23interdomain routing interdomain routing
- 00:33:26is hard to change because all the domain
- 00:33:27have had to agree on it IP is embedded
- 00:33:30in applications via the API it's hard to
- 00:33:32change all
- 00:33:36applications so we're stuck it's really
- 00:33:38hard to get rid of Ip so pictorially it
- 00:33:40looks like this I find this diagram
- 00:33:42actually a very useful way to think
- 00:33:44about internet architectures not just by
- 00:33:46drawing a bunch of domains but actually
- 00:33:49looking at this sort of Bird's eyye view
- 00:33:50you start with an application it
- 00:33:52interacts with the network stack which
- 00:33:54interacts with the domain which
- 00:33:55interacts with the rest of the
- 00:33:56networking have you seen those ort of
- 00:33:58the New Yorker covers where they show
- 00:34:00New York City and then you know it sort
- 00:34:01of go to the rest of New York and then
- 00:34:02you know sort of California is that
- 00:34:04little speck off into the distance well
- 00:34:05this is sort of the New Yorker view of
- 00:34:07Internet architecture that starts with
- 00:34:09the application being the center of the
- 00:34:10world and the rest of the internet of
- 00:34:12being sort of like
- 00:34:14California so we have two
- 00:34:17fundamental standards IP and
- 00:34:21bgp IP is embedded in applications it's
- 00:34:24embedded in bgp and we end up with a
- 00:34:27very rigid
- 00:34:30architecture so now as an alternative
- 00:34:33let's insert two architectural
- 00:34:37abstractions one let's put in a clean
- 00:34:39interdomain routing interface okay
- 00:34:42there's no leakage of what happens
- 00:34:44inside a domain the way you define
- 00:34:46interdomain routing you don't refer to
- 00:34:48anything that happens inside a domain
- 00:34:49and particularly don't refer to the
- 00:34:50addressing inside the domain you just
- 00:34:52route on domain
- 00:34:54names and you make sure that it it can
- 00:34:57do flexible route computation it's not
- 00:34:58like bgp that sort of bakes the route
- 00:35:00computation into the protocol
- 00:35:04itself and then we Define a clean
- 00:35:06Network
- 00:35:07API that you there's no leakage of the
- 00:35:10network architecture into the
- 00:35:12application why do the architecture need
- 00:35:13why does the application need to know
- 00:35:14about how you do addressing ought to be
- 00:35:16dealing with names right and you just
- 00:35:19make sure it has flexible interface
- 00:35:21semantics so you can do Pub sub or
- 00:35:23whatever else you want it's not limited
- 00:35:25to sockets
- 00:35:28now I
- 00:35:29claim if you do this the architecture is
- 00:35:32evolvable you're
- 00:35:34done you're
- 00:35:36done so let me show you a picture this
- 00:35:39is the picture we had before so we get
- 00:35:42rid of bgp and we put an extensible and
- 00:35:44Abstract interface extensible in that
- 00:35:46you can add functionality abstract in
- 00:35:48that it doesn't show the details of the
- 00:35:50implementation it doesn't leak the
- 00:35:52network information into interdomain
- 00:35:55routing and so now IP is no longer
- 00:35:58embedded in in domain routing you
- 00:36:00replace the network API with something
- 00:36:02that is sensible and
- 00:36:03Abstract IP is no longer embedded in the
- 00:36:07applications and now you have complete
- 00:36:09freedom to change what goes on in
- 00:36:12here now I know this sounds you know
- 00:36:14like you know sort of typical academic
- 00:36:16Voodoo but it's not I mean right now we
- 00:36:19can change L2 right domains can do
- 00:36:22whatever they want in L2 all this does
- 00:36:24is it means everything that happens
- 00:36:26between the application in domain
- 00:36:27routing
- 00:36:28L2 why can't why can't we change L2 and
- 00:36:31not L3 it's because L3 shows up in
- 00:36:33applications L2 doesn't this just means
- 00:36:35everything is like
- 00:36:37L2 we've had no trouble in evolving L2
- 00:36:40Technologies all that says is we're
- 00:36:42going to have the same Freedom if we did
- 00:36:46this so the point of this aside was not
- 00:36:50well it was just because I'm really
- 00:36:52proud of this work and I wanted to
- 00:36:53advertise it but more importantly it's
- 00:36:55to show that this is the power of
- 00:36:58abstraction that you take a problem that
- 00:37:00lots of people have thought about for a
- 00:37:02long time and rather than thinking about
- 00:37:03what's the mechanism that might let me
- 00:37:04do this just say what are the
- 00:37:06abstractions that I need and once you
- 00:37:08figure out the right abstractions often
- 00:37:10you don't have to invent anything else
- 00:37:12extensible and Abstract interfaces
- 00:37:13that's not a new idea right this is just
- 00:37:16old stuff but just recognizing where to
- 00:37:18put those abstractions changes the
- 00:37:22problem but the main focus here was how
- 00:37:25on how to build networks not redefining
- 00:37:26the internet architecture Ure so I want
- 00:37:29to go back and make a few comments about
- 00:37:30abstractions before I end my
- 00:37:33talk so you know abstractions are not
- 00:37:36academic play thingss this is not just
- 00:37:37what we write textbooks about but people
- 00:37:39who build real networks can ignore them
- 00:37:42this completely changes where we focus
- 00:37:43our attention when we build networks it
- 00:37:46enables much greater functionality with
- 00:37:48lower effort and in
- 00:37:51particular no more designing distributed
- 00:37:53control
- 00:37:55protocols we're done inside of
- 00:37:57interdomain routing we're stuck with bgp
- 00:38:00but out inside a domain no more
- 00:38:02distributed control protocols that's
- 00:38:03done once you define a network operating
- 00:38:05system nothing else needs to be
- 00:38:08distributed so now your whole task is to
- 00:38:11Define control programs over this
- 00:38:13abstract model and that really is just
- 00:38:15asking yourself the question if this is
- 00:38:17the network I have what do I want to
- 00:38:18have happen you just write that
- 00:38:21function that's all about what you want
- 00:38:23to have happen now not how it happens
- 00:38:27that's the easiest part of the
- 00:38:28networking is to figure out what you
- 00:38:30want to have happen not how to make it
- 00:38:33happen and so the infrastructure is now
- 00:38:35in three very tractable separate pieces
- 00:38:38it's building the network hypervisor
- 00:38:40which which is hard but it's tractable
- 00:38:42the network operating system again
- 00:38:44that's not a simple task but it's
- 00:38:45tractable and then building forwarding
- 00:38:47elements that support whatever your
- 00:38:49forwarding model is we can do those
- 00:38:51three things you know because we're only
- 00:38:54solving one problem at a time we're not
- 00:38:55solving all three problems at a time
- 00:38:58so the main point of the talk is that
- 00:39:00software defined networking or split
- 00:39:02architecture it's not just a better
- 00:39:04mechanism it's an instantiation of the
- 00:39:07fundamental abstractions that's why it's
- 00:39:09right not because it beats out some
- 00:39:11other mechanism but according to some
- 00:39:12Metric but it captures the right
- 00:39:15abstractions these abstractions were
- 00:39:17needed to separate the concerns that we
- 00:39:19had of the the separate problems we
- 00:39:21needed to
- 00:39:22solve and that the abstractions are
- 00:39:25fundamental the implementation are
- 00:39:27ephemeral we talk about open Flow and
- 00:39:30Onyx and particular
- 00:39:32instantiations I hope 10 years from now
- 00:39:34we're on to something else by God I hope
- 00:39:36we've got something better right but the
- 00:39:38abstractions are probably going to
- 00:39:40remain the
- 00:39:41same so this is both familiar and
- 00:39:44radical there we really didn't need any
- 00:39:47new mechanisms if we replaced open Flow
- 00:39:49with NLS we would be almost as
- 00:39:51happy but it's radically modular you get
- 00:39:54all the benefits of modular programming
- 00:39:56so we can rely build much more
- 00:39:58complicated functionality than we could
- 00:40:00before so our task ahead is really to to
- 00:40:03build these three separable pieces and
- 00:40:06then worry about how to build control
- 00:40:08programs over these abstract models that
- 00:40:09is for the problem you're considering
- 00:40:12what is the right abstract model and
- 00:40:13then how do you build the hypervisor
- 00:40:16that can translate that abstract model
- 00:40:18into to a real physical Network that's
- 00:40:20where the challenge
- 00:40:22Li so in conclusion you know the future
- 00:40:26of networking lives includ cleaner
- 00:40:27abstractions not in defining complicated
- 00:40:29distributed protocols it took operating
- 00:40:32systems researchers a while to figure
- 00:40:33this out first they made it work then
- 00:40:36they made it simple we've now made
- 00:40:39networks work and it's our time to make
- 00:40:42networking a mature discipline by
- 00:40:43figuring out how to extract Simplicity
- 00:40:45from the sea of complexity that we're
- 00:40:47currently in with that thank you and
- 00:40:50questions
- 00:40:58yeah Mark
- 00:41:00again very very inter but I but
- 00:41:06yes yeah two questions
- 00:41:09okay first of all to me it sounds like
- 00:41:11it's more of a
- 00:41:13sck and what I mean by that is that
- 00:41:16people want it to be complex and not
- 00:41:18simple because if it's simple anyone
- 00:41:20else can
- 00:41:22do and I was just wondering what's your
- 00:41:25take on that question is really how long
- 00:41:29for how long can we sustain the current
- 00:41:31way ofing things without actually doing
- 00:41:34what you
- 00:41:36propos I guess eventually we will have
- 00:41:38to do so so let me um and there your
- 00:41:43first question it so there really are
- 00:41:46two separate debates one is the users
- 00:41:49actually want a simple interface and and
- 00:41:53actually Don Norman has said the
- 00:41:55evidence is in and the answer is no you
- 00:41:57you know if you give me a simple cell
- 00:41:59phone and a complicated cell phone I'll
- 00:42:01think this complicated cell phone's got
- 00:42:02additional features I'm going to buy it
- 00:42:04I mean it's just that time and time
- 00:42:05again but do people who build these
- 00:42:08things do they want simpler abstractions
- 00:42:10so they can build the fancy features
- 00:42:12without having to do they want the
- 00:42:14Simplicity but but the end customers
- 00:42:16while they say they want Simplicity they
- 00:42:18never want to be left without a feature
- 00:42:20but but the way you sort of architect
- 00:42:22the the network you want it to be
- 00:42:24simpler so you can build I mean we we
- 00:42:26write modular programs and that
- 00:42:28obviously has been successful because it
- 00:42:30lets us build complexity while not
- 00:42:32having to deal with complex features
- 00:42:33without having to deal with complexity
- 00:42:35all the way through um so your second
- 00:42:37question is how long can we go with the
- 00:42:40the current framework and ask that
- 00:42:42question to the people in the world I
- 00:42:44have no
- 00:42:45idea did you was it oh James first yeah
- 00:42:49so great talk Scott um so one thing
- 00:42:52though that I I I distur me a little bit
- 00:42:57like uh like the academics have given up
- 00:42:59on btp and that that I find really a
- 00:43:01problem because basically um btp is a
- 00:43:04mixture of this fundamental mechanism
- 00:43:06for doing the interdomain rout control
- 00:43:09Andie involving
- 00:43:11policy that pie complex P fully as
- 00:43:14complicated as getting the actual
- 00:43:16mechanism of the network work but it's
- 00:43:18BL because there have been many studies
- 00:43:20and said rexord has done some on how
- 00:43:22that people can cheat on on on policy
- 00:43:25assertions and I think that I would like
- 00:43:27to suffer def find Nan Community to
- 00:43:29think about this problem a little more
- 00:43:30and not just give up and say bgp it's
- 00:43:33going to be make make bgp into a brand
- 00:43:35thing right so whatever comes out under
- 00:43:37Dex J bdp it's still bdp but it actually
- 00:43:40has these principles that you describe
- 00:43:42here in interdomain so so let me respond
- 00:43:45to I just came from the sigcom program
- 00:43:48committee I can guarantee you we have
- 00:43:50not given up on bgp the number of papers
- 00:43:53on bgp it it's still exponentially
- 00:43:56expanding so there been a tremend
- 00:43:57there's still a tremendous amount of
- 00:43:59attention paid to it I I think you you
- 00:44:01you make an incredibly important point
- 00:44:03which is to separate the policy model
- 00:44:07from the instantiation that is currently
- 00:44:10bgp and soort of figure out you know how
- 00:44:13how to make this work and I think
- 00:44:14actually a lot of people Jen Rexford
- 00:44:16Michael shapira and uh Sharon Goldberg
- 00:44:19there's a whole crowd that are really
- 00:44:21trying to think deeply about this there
- 00:44:22are other people who are thinking you
- 00:44:24know my former student Brighton Godfrey
- 00:44:26is thinking about something called
- 00:44:27pathlets that actually is a different
- 00:44:30way of having the same kind of policy
- 00:44:33flexibility but allowing much more
- 00:44:36flexible route computation and so it's a
- 00:44:39you know it it's a different model but
- 00:44:42it's got the same kind of policy
- 00:44:45Independence that you would want and I
- 00:44:48think there's an interesting dialogue
- 00:44:50about uh how we might get from one to
- 00:44:54the other and for instance I I I think
- 00:44:57the pathet model is actually a good
- 00:44:58bilateral model you could actually start
- 00:45:00with that bilaterally but I think
- 00:45:02there's an interesting debate to be had
- 00:45:04about what's the fundamental abstraction
- 00:45:06you want for interdomain routing to
- 00:45:07start building on rather than there have
- 00:45:10been a series of papers while bgp's got
- 00:45:11this problem and if you tweet this
- 00:45:12parameter and you do this to it and you
- 00:45:14take a hammer and go like that then all
- 00:45:15of a sudden it behaves a little
- 00:45:16differently that I I you know sort of
- 00:45:18isn't getting us anywhere
- 00:45:22fast yeah off and on both here in
- 00:45:25Ericson and at my previous employer was
- 00:45:27looking at a slightly different Paradigm
- 00:45:29in terms of the distribution of function
- 00:45:32in that the role of a distributed
- 00:45:34operating system was to provide
- 00:45:36connectivity Primitives that could then
- 00:45:38be
- 00:45:39manipulated but the idea being that as
- 00:45:41far as resilience and other things are
- 00:45:43concerned you needed to be able to do
- 00:45:47that minimum level of network
- 00:45:49convergence with an absolute minimum of
- 00:45:52transactions and that's I I understand
- 00:45:55what you're saying concern is the flow
- 00:45:59of information mean the flow of
- 00:46:02information being too much or or or not
- 00:46:04being guaranteed uh the flow of
- 00:46:06information being too much such that the
- 00:46:09the finite time to produce convergence
- 00:46:12for critical classes of events can can
- 00:46:14be extenuated because basically all
- 00:46:16classes of information seem to have sort
- 00:46:19of the same priority in this I can't
- 00:46:21separate out the resiliency part from
- 00:46:23the higher level Programming Network
- 00:46:26operation
- 00:46:27Network operating system aspects well H
- 00:46:30so so I I think that that was getting to
- 00:46:32the this comment about how I want to
- 00:46:34configure it so yes when when the
- 00:46:36network changes I send that state up but
- 00:46:40I can always configure a low-level
- 00:46:42response like backup paths that say when
- 00:46:45some event happens do this so you can
- 00:46:47preserve conductivity in the short term
- 00:46:49while I figure out what to do in the
- 00:46:50long term yeah but the other thing I
- 00:46:52noticed about that and this is one of
- 00:46:53the things I've been wrestling with is
- 00:46:55that the whole idea up paths means that
- 00:46:58the response to a network event is a
- 00:47:00whole lot of independent decisions that
- 00:47:03actually require an awful lot of
- 00:47:05planning to make sure they don't
- 00:47:06contradict each other exactly exactly
- 00:47:10and that's why you want to look at the
- 00:47:12network View and calculate how should
- 00:47:15these backup paths be constructed so
- 00:47:18that they don't interfere and they're
- 00:47:19actually I mean people are working on
- 00:47:21this to you know so that that you can
- 00:47:23actually make rational decisions that if
- 00:47:26a bunch of people do things
- 00:47:27independently you still don't get into
- 00:47:29trouble okay but but but I mean that but
- 00:47:31but that's absolutely a problem I don't
- 00:47:33think we make it any worse but we don't
- 00:47:35magically solve it either have people
- 00:47:38from I I'm sorry I think we want to talk
- 00:47:41first we can continue after Joel here
- 00:47:44Joel if I've understood you right it was
- 00:47:46an interesting Talk part of what you
- 00:47:49said that was particularly powerful is
- 00:47:51that at an abstraction level you want to
- 00:47:53separate the abstraction for talking
- 00:47:55about forwarding from the exraction
- 00:47:57talking about Network control forgetting
- 00:47:59how you represent those that forgetting
- 00:48:01What machines they're on or anything
- 00:48:03else that you want to talk about them as
- 00:48:04separate abstraction that's very
- 00:48:07colorful and if I look back at some of
- 00:48:09the history of programming and operating
- 00:48:11systems I can see where similar things
- 00:48:14happen but there's a step that I think
- 00:48:17maybe you slid past because it's a
- 00:48:20complicated but I want to ask you to
- 00:48:21look at it for a minute if we're going
- 00:48:23to do that we have to have abstraction
- 00:48:25to talk about things to talk about what
- 00:48:28the pieces the elements of forwarding
- 00:48:30are to talk about what the components of
- 00:48:33of control processing are at the moment
- 00:48:35we have a couple of candidates for
- 00:48:37forwarding longest prefix match which is
- 00:48:39clearly wrong maybe flows that seems to
- 00:48:43be too detail specific maybe something
- 00:48:46else that I don't know what we don't
- 00:48:47seem to be talking about what is the
- 00:48:49right abstraction for we get to network
- 00:48:53control we tend to talk about it in
- 00:48:54terms of Cisco C what everybody uses
- 00:48:57which is clearly completely the wrong
- 00:49:01abstraction we don't have any
- 00:49:03abstractions for talking
- 00:49:05about
- 00:49:07too use but I think that's probably too
- 00:49:10specif for what you are getting at and
- 00:49:13so is there any way to get out what are
- 00:49:15the right abstractions for this so we
- 00:49:17can build up tools the right way
- 00:49:22no I know I I mean I mean when I listen
- 00:49:25to Barbara lisof talk what what struck
- 00:49:28me was she groped her way to what she
- 00:49:33finally put forward is the right
- 00:49:36abstraction but the reasoning process
- 00:49:39behind it was not pretty or or linear
- 00:49:42and I I don't think we're going to do
- 00:49:44any better um I mean I I I I wish I had
- 00:49:48a better answer but I think it's sort of
- 00:49:51you know you you know that you know you
- 00:49:54have an interface right when people the
- 00:49:56the level of PLS go down but but you
- 00:49:58know that that that's the proof of
- 00:50:02correctness thank thank you for very
- 00:50:06interesting I I like to touch on similar
- 00:50:09point but from a different angle brought
- 00:50:11up specifically your point
- 00:50:15Global I'm taking this further your
- 00:50:18Concept in terms ofp netal Network now
- 00:50:22the network generally is aive so it's
- 00:50:24changing all the time and to have a
- 00:50:27global view is not a static it means the
- 00:50:31operator continually has to update these
- 00:50:34table and that is dangerous in a way
- 00:50:37because the information could get wrong
- 00:50:38it could take longer to be uploaded and
- 00:50:41so on so how how do you see that in
- 00:50:43terms of you know updating the
- 00:50:45information in order to have a correct
- 00:50:48Global Network okay so I was hoping that
- 00:50:51Boulder was going to stay under the rug
- 00:50:53but um right so the the story I gave
- 00:50:57was you have state The View and you
- 00:51:01decide on a configuration now that's a
- 00:51:05very clean story because you have no
- 00:51:06history dependence whatsoever clearly if
- 00:51:09you have rapidly Changing State you want
- 00:51:11to put some damping in the response so
- 00:51:14that you are not sort of you know every
- 00:51:16time this changes you do that and you
- 00:51:18know the the the global equivalent rout
- 00:51:20flap damping but but something where you
- 00:51:22sort of have you don't have this
- 00:51:25knee-jerk connection between a change in
- 00:51:27state and a change in configuration so
- 00:51:28you can hopefully reduce the amount of
- 00:51:31the the number of configuration changes
- 00:51:33it's not linear because for optical
- 00:51:36Network for example using optical
- 00:51:38wavelength is not linear it's completely
- 00:51:41nonlinear because you might have all
- 00:51:43these Optical uh impairment with
- 00:51:46changing from One path to another that's
- 00:51:49the issue so it's very you know it's
- 00:51:51very accompass some fast to generate A
- 00:51:55New Path or a new
- 00:51:57uh let's say secondary part for the main
- 00:52:00no no so so I think I'm agreeing with
- 00:52:01you which which is you don't want to
- 00:52:03have this kind of every time there's any
- 00:52:05change you completely recompute you want
- 00:52:08to think carefully about the frequent or
- 00:52:11the common state changes and sort of
- 00:52:14figure out what kind of changes you want
- 00:52:16to instantiate so whether that means
- 00:52:18that you figure out what's in uh sort of
- 00:52:21a nonoptimal but incremental update when
- 00:52:24something happens and I think that's
- 00:52:25going to be technology
- 00:52:27specific and so I I think Optical in
- 00:52:29particular would going to require its
- 00:52:30own sort of change there
- 00:53:05ah so um let let me start with the
- 00:53:08second question that the convergent
- 00:53:11properties of doing routing this way are
- 00:53:13really no worse think what I described
- 00:53:15is essentially OPF you know you get the
- 00:53:18state you bring it up you look at a
- 00:53:20graph and you push it down but it's OPF
- 00:53:22where the distribution model is under
- 00:53:24your control rather than the
- 00:53:25distribution going to every switch you
- 00:53:27sort of go to a replicated set of
- 00:53:30controllers and they push it back out so
- 00:53:32I don't think the convergence gets any
- 00:53:34worse than you know OPF convergence
- 00:53:37which you know for better or worse but
- 00:53:39but we're familiar with it um the
- 00:53:42flexible route computation there I mean
- 00:53:45I I have in mind a very spe I I this
- 00:53:48pathet design has a very specific notion
- 00:53:50of it I'm not saying that that's that
- 00:53:52this is an example of what it might mean
- 00:53:54which is the way you specify policies
- 00:53:56there is rather than getting in a route
- 00:53:59and sort of computing it and only
- 00:54:00advertising certain routes you advertise
- 00:54:02policy compliant route fragments you say
- 00:54:06this is a aout a path fragment that I'm
- 00:54:08willing to
- 00:54:09support and if I only have nearest
- 00:54:11neighbor policies that that's easy if I
- 00:54:13have complicated policies it it's
- 00:54:16longer once you have that any end system
- 00:54:19can take a bunch of these pathlets and
- 00:54:21construct them any way they want to and
- 00:54:22they are guaranteed to have a policy
- 00:54:25compliant path and so that's a way of
- 00:54:27having policy compliant Source routing
- 00:54:30in in a very scalable way that's a
- 00:54:33particular instantiation of it but that
- 00:54:35but but the the goal is to say if you
- 00:54:38don't have flexible route computation
- 00:54:40then you don't have an extensible
- 00:54:42interdomain routing interface and then
- 00:54:44you're probably going to have to change
- 00:54:45the interface and so that the need for
- 00:54:47flexible route computation comes from
- 00:54:49saying we want to be able to define the
- 00:54:51substraction once and leave it there and
- 00:54:53if it's not flexible then we know we're
- 00:54:54going to have to change it and that's
- 00:54:55really hard
- 00:54:57so so I mean so I'm not claiming the
- 00:54:59mechanism is the right mechanism I'm
- 00:55:00saying that the need is is sort of
- 00:55:04fundamental one more
- 00:55:21question conge and it easier and
- 00:55:30com so so I I would
- 00:55:33say so the there two separate pieces of
- 00:55:36my talk there were the the bulk of it
- 00:55:38was about software defined networking
- 00:55:40and I would say that's pretty orthogonal
- 00:55:42to
- 00:55:43IPv6 that the the kinds of control
- 00:55:45mechanisms that we're talking
- 00:55:47about IPv6 is you know sort of its
- 00:55:51advantages and disadvantages are rather
- 00:55:53orthogonal the internet architecture
- 00:55:55stuff I talked about IPv6 would become
- 00:55:58another L2
- 00:55:59technology meaning you're not using in
- 00:56:02that design you're using domain names as
- 00:56:04interdomain addressing and IP addresses
- 00:56:08as internal addressing and so I my
- 00:56:11domain can use IPv6 your domain can use
- 00:56:13ipv 17 and we don't care just like with
- 00:56:16L2
- 00:56:19addresses I have a question as well
- 00:56:21before I let you go sure so software
- 00:56:23Define networking as I mean assuming
- 00:56:26that you can solve all these
- 00:56:27abstractions and all these interface and
- 00:56:29have a problems with that it seem to be
- 00:56:30very um attractive for data centers I
- 00:56:33mean that's the players that are and I
- 00:56:35guess one reason is that they they can
- 00:56:37build their network from scratch and
- 00:56:38then turn it on uh whereas we live in a
- 00:56:41world where we have to S of inject this
- 00:56:43slowly somehow so how can we have this
- 00:56:45work how do we inject SD end in existing
- 00:56:48networks if it at
- 00:56:54all that's a really good question
- 00:56:57I don't know I I mean I I I I it would
- 00:57:00be great to discuss it with you guys but
- 00:57:01I mean how how you would do that
- 00:57:03incrementally within a very large wh I
- 00:57:07don't know all right well that's good to
- 00:57:08have some questions that the professor
- 00:57:10don't have answers to thank you very
- 00:57:12much Scott I think uh another hand for
- 00:57:16Scott excellent sck thank you very much
- Software Defined Networking
- Networking Abstractions
- Complexity
- Modular Programming
- Network Architecture
- Interdomain Routing
- Control Plane
- Data Plane
- Network Operating System
- Future of Networking