Published on

NETKIT presentation

Published in: Technology, Business
1 Like
  • Be the first to comment

No Downloads
Total views
On SlideShare
From Embeds
Number of Embeds
Embeds 0
No embeds

No notes for slide


  1. 1. NETKIT (A Software Component-Based Approach to Programmable Network) Yunho Jung Mobile Broadband Communication Lab in Konkuk Univ
  2. 2. 1 <ul><li>Programmable Network </li></ul><ul><li>Component based computational model </li></ul><ul><li>NETKIT Architecture </li></ul><ul><li>Examples Using NETKIT </li></ul>Presentation Contents
  3. 3. <ul><li>What is Programmable Network? </li></ul><ul><li>Active Network paradigm </li></ul><ul><li>Open signaling Paradigm </li></ul><ul><li>Run-time Reconfiguration </li></ul><ul><li>Current Paradigm </li></ul>I. Programmable Network
  4. 4. <ul><li>Why come out </li></ul><ul><ul><li>Increasing demand to add new services to networks or to customize existing network services to match new application needs . </li></ul></ul>What is Programmable Network? I. Programmable Network <ul><ul><li>Simplify the deployment of new network services , leading to networks that explicitly support the process of service creation and deployment . </li></ul></ul>
  5. 5. <ul><li>Architecture </li></ul>What is Programmable Network I. Programmable Network <ul><ul><li>Hardware abstraction : </li></ul></ul><ul><ul><li>Minimal OS functionality for support higher lever network programmability </li></ul></ul><ul><ul><li>In-band functions : </li></ul></ul><ul><ul><li>Low level, in-band, fine-grained, packet forwarding </li></ul></ul><ul><ul><li>(highly performance critical) </li></ul></ul><ul><ul><li>Application services : </li></ul></ul><ul><ul><li>Programs in the Active Network sense and act on pre-selected flow </li></ul></ul><ul><ul><li>Coordination: </li></ul></ul><ul><ul><li>Out-of-band signaling protocols </li></ul></ul><ul><ul><li>(RSVP, dPVN coordination protocols) </li></ul></ul>Transport plane Management plane Control plane Coordination Application services In-band functions Hardware abstraction Communication model Computation model
  6. 6. <ul><li>Generalized Programmable Network Frameworks </li></ul>What is Programmable Network I. Programmable Network Node Kernel Node HW Network Programming Environment Programmable Network Architecture Node Kernel Computational Model Communication Model Node interfaces Network programming interfaces Node HW
  7. 7. Active Network Paradigm <ul><li>Applications have insufficient information about the network to make informed decisions - e.g.) where can I get more bandwidth </li></ul><ul><li>Service providers have little control over how their traffic is handled - No customization </li></ul><ul><li>Implication to active network </li></ul>I. Programmable Network
  8. 8. <ul><li>Active Network </li></ul><ul><ul><li>Dynamic deployment of new Internet services </li></ul></ul><ul><ul><li>Focus on stratum 1(hardware abstraction) and stratum 3(application services) </li></ul></ul><ul><ul><li>Active packets that execute on ‘ active nodes ’. </li></ul></ul><ul><li>What does it mean to make the nodes active? </li></ul><ul><ul><li>Packets carry code </li></ul></ul><ul><ul><li>Next hop determined by executing code in a router (i.e. actively as opposed to passive table lookup </li></ul></ul>Active Network Paradigm I. Programmable Network
  9. 9. <ul><li>Security </li></ul><ul><ul><li>Un-trusted user code execution in core routers </li></ul></ul><ul><ul><li>Do not provide a general framework addressing the security concerns of Network Operators or do so by developing heavy security architectures that strongly penalize performance . </li></ul></ul><ul><li>Performance </li></ul><ul><ul><li>Sharing control and communication network resources among several parties needs coordination in the form of middleware actors, resource managements. </li></ul></ul><ul><li>Unified interface </li></ul><ul><ul><li>It is impossible to foresee all the ways in which networking might evolve, programming interfaces, if not carefully designed, are in themselves a restriction to innovation </li></ul></ul>Active Network Paradigm I. Programmable Network
  10. 10. <ul><li>Open Signaling </li></ul><ul><ul><li>Routers export ‘ control interfaces ’ through which they can be remotely (re)configured by out-of-band, application specific, signaling, protocols. </li></ul></ul><ul><ul><li>Easier to deploy, easier to secure , and typically performs better that Java0based active networking system </li></ul></ul><ul><ul><li>Focus on stratum 2 and stratum 4 </li></ul></ul><ul><li>Out-of-band Active </li></ul><ul><ul><li>Down-loadable modules are dynamically installed onto routers through some out-of-band mechanism. </li></ul></ul><ul><ul><li>Deploy-ability and security vulnerability approach </li></ul></ul>Open Signaling Paradigm I. Programmable Network
  11. 11. <ul><li>run-time reconfiguration </li></ul><ul><ul><li>Support the subsequent reconfiguration of a running system . </li></ul></ul><ul><ul><li>To accommodate newly discovered services in a ubiquitous computing environment </li></ul></ul><ul><ul><li>To reconfigure an ad-hoc network </li></ul></ul><ul><ul><li>To adjust the resource allocated to a dynamic private virtual network </li></ul></ul><ul><ul><li>Still fail to adequately support the management of system integrity over reconfiguration operations. (e.g. Firewall rule, resource allocation problem like starvation) </li></ul></ul><ul><li>use of reflection model (flexible) </li></ul><ul><ul><li>Checking the integrity of coordination control code being downloaded into an execution environment </li></ul></ul><ul><ul><li>Dynamic reconfiguration of downloaded control code </li></ul></ul><ul><ul><li>Reconfiguration through dynamic linking </li></ul></ul>Run-time Configuration I. Programmable Network
  12. 12. Current Paradigm I. Programmable Network <ul><li>language, platform, and paradigm-independent programming model that can be uniformly applied in all strata </li></ul><ul><li>Flexible support for both the configuration and run-time reconfiguration in all strata </li></ul>Transport plane Management plane Control plane Coordination(OS, Alan) Application services(AN, Alan) In-band functions(OS) Hardware abstraction(OSKIT,SCOUT) Communication model Computation model
  13. 13. <ul><li>NETKIT Proposal </li></ul><ul><li>Component-Based Model </li></ul><ul><li>Reflective Meta-Models </li></ul><ul><li>Component Frameworks </li></ul><ul><li>Potential Benefits </li></ul>I I. Component based approach
  14. 14. <ul><li>A globally applied component based approach </li></ul><ul><ul><li>A Language-, platform-, and paradigm-independent component based programming model </li></ul></ul><ul><ul><ul><li>Uniformly applicable in all four strata without performance delay </li></ul></ul></ul><ul><ul><li>Built-in generic and flexible support for management </li></ul></ul><ul><ul><ul><li>Both configuration and reconfiguration of mechanisms and services in all strata </li></ul></ul></ul>NETKIT Proposal II. Component based Approach <ul><li>Three pronged approach </li></ul>
  15. 15. <ul><li>Component Technology </li></ul><ul><ul><li>System element offering a predefined service or event, and able to communicate with other components. </li></ul></ul><ul><ul><li>Components are packaged in a binary form and can be dynamically deployed within an address space. </li></ul></ul><ul><ul><li>With component technology, one can configure and reconfigure systems by adding, removing or replacing their constituent components. </li></ul></ul><ul><ul><li>Increased reusability , dynamic extensibility , improved understandability, reduced development costs, and better support for long term system evolution. </li></ul></ul>Component-Based Model II. Component based Approach <ul><li>NETKIT Purpose </li></ul><ul><ul><li>To provide a lightweight, non-distributed, language independent component model </li></ul></ul><ul><ul><li>Independent of any such infrastructure </li></ul></ul><ul><ul><li>Apply ubiquitously </li></ul></ul>
  16. 16. Component-Based Model II. Component based Approach <ul><li>Interface </li></ul><ul><li>Strongly typed and consist of a set of data-typed definitions and operation signature </li></ul><ul><li>Programming-language-independent interface(e.g. OMG IDL or Miscrosoft IDL) </li></ul><ul><li>Receptacle </li></ul><ul><li>‘ Anti-interface’; whereas an interface expresses a unit of service provision, a receptacle expresses a unit of service requirement </li></ul><ul><li>Used to make explicit a dependency of one component on another </li></ul><ul><li>Binding </li></ul><ul><li>Associations between receptacles and interfaces that reside in the same capsule. </li></ul><ul><li>Implemented minimally and with negligible or low overhead </li></ul><ul><li>bindings are abstract , there is no prescription of a particular underlying implementation. </li></ul>
  17. 17. Component-Based Model II. Component based Approach <ul><li>Capsules </li></ul><ul><li>Provide a run-time environment for a set of component instances that are mutually participating in bindings </li></ul><ul><li>Provide generic services for dynamically loading and unloading components, and for creating and destroying bindings. </li></ul><ul><li>Third-party manners ; available from outside the capsule to support external third-party loading and binding </li></ul><ul><li>Why use Capsules </li></ul><ul><li>Can be possible to render the (un)loading and (un)binding of components subject to security constraints and safety constraints </li></ul><ul><li>Capsules form the basis of a generic component model that, in turn, serves as the basis for any desired programmable networking functionality </li></ul>
  18. 18. Component-Based Model II. Component based Approach <ul><li>Portability problem for support wide range or hardware platforms </li></ul><ul><li>Some platforms will suffer sub-optimal performance </li></ul><ul><li>A standard API precludes the exploitation of specialised platform-specific hardware </li></ul><ul><li>The work involved in porting a comprehensive API is likely to be significant in itself. </li></ul><ul><li>How can solve Portability problem </li></ul><ul><li>Radical micro-kernel architectures </li></ul><ul><li>Define two levels of portability - component model is kept as simple as possible , and relies on an absolute minimum of system support - All further system-oriented and hardware specific functionality is implemented in terms of the component model itself </li></ul><ul><li>Benefit </li></ul><ul><li>Easily ported and deployed </li></ul><ul><li>Do not need service change, if requirements change/evolve </li></ul>
  19. 19. <ul><li>Reflective Architecture </li></ul><ul><ul><li>Provides tools for handling reflective computation explicitly. </li></ul></ul><ul><ul><ul><li>Access to data representing the system itself. </li></ul></ul></ul><ul><ul><ul><li>Guarantee the causal connection between these data and the aspects of the system. </li></ul></ul></ul><ul><ul><li>Reflection is that meta-models relate to the underlying system. </li></ul></ul>Reflective Meta-Models II. Component based Approach <ul><li>Meta-models are causally connected </li></ul><ul><ul><li>Adaption : To change behavior along dimensions that are foreseen at deployment time </li></ul></ul><ul><ul><li>Extension : To add new behavior unforeseen at deployment time </li></ul></ul><ul><ul><li>Inspection : Inspect current configurations need when adaption and extension process </li></ul></ul>
  20. 20. Reflective Meta-Models II. Component based Approach <ul><li>Architecture meta-model </li></ul><ul><li>Inspection, adaptation and extension of component composition </li></ul><ul><li>Interception meta-model </li></ul><ul><li>pre- and post method call interception of invocation being made across bindings </li></ul><ul><li>Interface meta-model </li></ul><ul><li>Navigation of interfaces, receptacles on a component, inspection of interface/receptacle signatures </li></ul><ul><li>Resources meta-model </li></ul><ul><li>Represent types and quantities of resource </li></ul>
  21. 21. Component Frameworks <ul><li>What is Component Frameworks </li></ul><ul><ul><li>“ CFs are collections of rules and interfaces that govern the interaction of components ‘plugged into’ them “ – Szyperski </li></ul></ul><ul><ul><li>CFs are targeted at a specific domain and embody ‘rules and interfaces’ that make sense in that domain. </li></ul></ul><ul><ul><li>Domain-specific ‘life-support environment’ for plug-in components . </li></ul></ul><ul><li>Benefit of Component Frameworks </li></ul><ul><ul><li>CFs can be loaded/unloaded dynamically . </li></ul></ul><ul><ul><li>Hierarchical composition . </li></ul></ul><ul><ul><li>CFs can also provide CF-specific reflective meta-models that embody domain specific semantics </li></ul></ul>II. Component based Approach
  22. 22. Potential Benefits <ul><li>NETKIT propose a globally Component-based approach to programmable networking </li></ul><ul><ul><li>Uniform programming model . (Components everywhere) </li></ul></ul><ul><ul><li>Reflective meta-models. (flexibility, openness). </li></ul></ul><ul><ul><li>Component frameworks (structure, constraint) </li></ul></ul><ul><li>Approach already validated in reflective middleware environment </li></ul><ul><li>Potential benefits </li></ul><ul><ul><li>Vertical integration </li></ul></ul><ul><ul><li>Language and system independence </li></ul></ul><ul><ul><li>Fundamental support for the management of configuration and reconfiguration </li></ul></ul><ul><ul><li>Support for multiple programmable networking paradigms, and framework for integration of existing techniques, software …. </li></ul></ul>II. Component based Approach
  23. 23. <ul><li>What is NETKIT </li></ul><ul><li>NETKIT implementation </li></ul>III . NETKIT architecture
  24. 24. What is NETKIT <ul><li>Computer networks are quite complex </li></ul><ul><ul><li>Several device </li></ul></ul><ul><ul><li>Several interfaces. </li></ul></ul><ul><ul><li>Several protocols running </li></ul></ul><ul><ul><li>Physical interconnections originate complex topologies </li></ul></ul><ul><li>How to perform experiments </li></ul><ul><ul><li>Performing experiments may be unfeasible </li></ul></ul><ul><ul><li>The current used network cannot be exploited for experiments </li></ul></ul><ul><ul><li>Network equipments are expensive </li></ul></ul><ul><li>Simulation vs. emulation </li></ul><ul><ul><li>Simulation systems aim at reproducing the performance of the real-life system (e.g. NS-2) </li></ul></ul><ul><ul><li>Emulation systems aim at accurately reproducing the functionalites of a real-life system (configurations, architectures, protocols), with limited attention to performance (e.g. NETKIT) </li></ul></ul>III. NETKIT architecture
  25. 25. What is NETKIT <ul><li>What is NETKIT? </li></ul><ul><ul><li>A set of tools and commands that can be used to easily set up a virtual computer network </li></ul></ul><ul><ul><ul><li>NETKIT (most) command are implemented as scripts </li></ul></ul></ul><ul><ul><li>A ready-to-use file-system that is exploited as a pattern for creating the file system of each virtual machine </li></ul></ul><ul><ul><ul><li>Most commonly used networking tools are already installed in this file-system </li></ul></ul></ul><ul><ul><li>A User Mode Linux(UML) that is used as kernel for virtual machines </li></ul></ul><ul><ul><ul><li>UML is a Linux kernel that can be executed as a user process on a standard Linux box </li></ul></ul></ul>III. NETKIT architecture
  26. 26. What is NETKIT III. NETKIT architecture
  27. 27. NETKIT Implementation <ul><li>Unified component concept </li></ul><ul><ul><li>A multi-address-space capsule CF </li></ul></ul><ul><ul><ul><li>Offers a powerful and general means of abstracting over tightly coupled but heterogeneous hardware </li></ul></ul></ul><ul><ul><li>A plug-in loader CF </li></ul></ul><ul><ul><ul><li>Third-party loading in address spaces other </li></ul></ul></ul><ul><ul><li>A plug-in binder CF </li></ul></ul><ul><ul><ul><li>Bind itself to the newly-loaded component without being aware of different form itself </li></ul></ul></ul>III. NETKIT architecture
  28. 28. <ul><li>Simple network with two routers </li></ul><ul><li>Understanding ARP when routers are involved </li></ul>IV . Examples using NETKIT
  29. 29. Simple Network with two routers <ul><li>Network topology high level view </li></ul>IV. Examples using NETKIT
  30. 30. Simple Network with two routers <ul><li>Network topology configuration details </li></ul>IV. Examples using NETKIT
  31. 31. Simple Network with two routers <ul><li>Step1 -Virtual Network Setup </li></ul>IV. Examples using NETKIT
  32. 32. Simple Network with two routers <ul><li>Step2 –inspecting routing tables </li></ul><ul><ul><li>Both routers and PCs don’t know how to reach network that are not directly connected to them </li></ul></ul><ul><ul><li>Directly connected networks are automatically inserted into the routing table when the corresponding interface is brought up </li></ul></ul>IV. Examples using NETKIT
  33. 33. Simple Network with two routers <ul><li>Step3 –default routes on PCs </li></ul><ul><ul><li>To fix the problem we could specify the default route on the PCs </li></ul></ul><ul><ul><li>Directly connected networks are automatically inserted into the routing table when the corresponding interface is brought up </li></ul></ul>IV. Examples using NETKIT
  34. 34. Simple Network with two routers <ul><li>Step4 –route setting </li></ul><ul><ul><li>But routers don’t know each other. </li></ul></ul><ul><ul><li>So, configuration a static route into R1 and R2 </li></ul></ul>IV. Examples using NETKIT
  35. 35. Understanding ARP <ul><li>Network topology high level view </li></ul>IV. Examples using NETKIT
  36. 36. Understanding ARP <ul><li>Network topology configuration details </li></ul>IV. Examples using NETKIT
  37. 37. Understanding ARP <ul><li>Step1 -Virtual Network Setup </li></ul>IV. Examples using NETKIT
  38. 38. Understanding ARP <ul><li>Step2 –Inspecting the ARP cache (local traffic) </li></ul><ul><ul><li>Communications are usually bi-directional </li></ul></ul><ul><ul><li>The Receiver of the ARP request learns the mac address of the other party, to avoid a new ARP in opposite direction(standard behavior, see rfc 826) </li></ul></ul>IV. Examples using NETKIT
  39. 39. Understanding ARP <ul><li>Step3 –Inspecting the ARP cache (non local traffic) </li></ul><ul><ul><li>When IP traffic is addressed outside the local network, the sender needs the MAC address of the router </li></ul></ul><ul><ul><li>ARP requests can get replies only within the local network </li></ul></ul>IV. Examples using NETKIT
  40. 40. Understanding ARP <ul><li>Step3 –Inspecting the ARP cache (non local traffic) </li></ul><ul><ul><li>What about routers? </li></ul></ul><ul><ul><li>Routers perform ARP too (hence have ARP cache) anytime they have to send IP packet on an ethernet LAN </li></ul></ul><ul><ul><li>ARP requests can get replies only within the local network </li></ul></ul>IV. Examples using NETKIT
  41. 41. Understanding ARP <ul><li>Step 4 –understanding the whole picture </li></ul>IV. Examples using NETKIT