Coder Social home page Coder Social logo

datacenter-network-emulator's Introduction


Datacenter Network Emulator


1. Vision and Goals Of The Project:

Network emulation is a technique for testing the performance of real applications and validating the correctness of configurations over a virtual network. Different from simulators, a network emulator mirrors the network which connects end-systems, not the end-systems themselves. A network emulator example is Crystalnet, which is published in SOSP 2017.

In this project, we will build a network emulator to emulate a data center network. Production data center networks typically use Clos topology and BGP/ECMP for routing. We will use public image of SONiC, an open source cross-platform switch OS. On the top of the emulated data center network, we will develop tools to automatically generate network configurations, and diagnosis tools to debug network faults, e.g., Pingmesh.

2. Users/Personas Of The Project:

Roles in this project include datacenter network emulator, network configuration generator, and network diagnosis tool(s).

  • The datacenter network emulator emulates a data center network. Specifically, it runs Fat Tree topology which is a special case of Clos topology aand uses SONiC image for switch OS.
  • Network configuration generator automatically generates network configurations. In this project, it will generate BGP/ECMP routing rules.
  • Network diagnosis tools are to debug network faults. We will use Pingmesh to test the connectivity of all pairs of end-hosts to diagnose the correctness of BGP protocol configuration.

3. Scope and Features Of The Project:

The Scope places a boundary around the solution by detailing the range of features and functions of the project. This section helps to clarify the solution scope and can explicitly state what will not be delivered as well.

It should be specific enough that you can determine that e.g. feature A is in-scope, while feature B is out-of-scope.


4. Solution Concept

This section provides a high-level outline of the solution.

Global Architectural Structure Of the Project:

This section provides a high-level architecture or a conceptual diagram showing the scope of the solution. If wireframes or visuals have already been done, this section could also be used to show how the intended solution will look. This section also provides a walkthrough explanation of the architectural structure.

Design Implications and Discussion:

This section discusses the implications and reasons of the design decisions made during the global architecture design.

5. Acceptance criteria

This section discusses the minimum acceptance criteria at the end of the project and stretch goals.

6. Release Planning:

Release planning section describes how the project will deliver incremental sets of features and functions in a series of releases to completion. Identification of user stories associated with iterations that will ease/guide sprint planning sessions is encouraged. Higher level details for the first iteration is expected.


General comments

Remember that you can always add features at the end of the semester, but you can't go back in time and gain back time you spent on features that you couldn't complete.


For more help on markdown, see https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet


References

datacenter-network-emulator's People

Contributors

zzylol avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.