GithubHelp home page GithubHelp logo

tehuelche / dsimulator Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bschirrmeister/dsimulator

0.0 0.0 0.0 52 KB

Automatically exported from code.google.com/p/dsimulator

Python 98.28% Protocol Buffer 1.72%

dsimulator's Introduction

[1 - INSTALL]

[1.1 ** Platform Windows]
    Not tested yet.
 
[1.2 ** Platform Linux] 
    Tested on : Ubuntu , RedHat, CentOS

For a succesfull instalation you will need :
    1 - Python 2.5 / 2.6{.2}
    2 - scapy version ( 2.0.0.5 beta or latest stable version)
    3 - google Protocol buffers

[2 - Features]
* Currently, you will be able to simulate :
    1. Cablemodems
    2. CPEs ( PCs behind a CableModem and buggy PCs )
    3. CMTS
* Layers already implemeted
    1. Ethernet
    2. ARP Protocol 
    3. ICMP Protocol ( WHO_HAS / IS_AT msgs )
    4. DHCP Protocol
    5. TFTP Support
* Features    
    1. craft your own fuzzy packets
    2. modular : Can build your own protocol and put it to any device. really easy
    3. timers implemented for DHCP_RENEWS
    4. client code samples for easy testing

[2.1 - About Topology and network stuff]
If this is the first time you read about CMTS, then it is worth to read the next lines first. It will help you 
understand how different things works.

DEVICE ( CM ) -- BROADCAST DHCP DISCOVER ----> CMTS ---- UNICAST ----> DHCP SERVER
DEVICE ( CM ) <--OFFER------------------------ CMTS <--- OFFER ------- DHCP SERVER
DEVICE ( CM ) -- DHCP REQUEST ---------------> CMTS ---- UNICAST ----> DHCP SERVER
DEVICE ( CM ) <- ACK ------------------------- CMTS <--- ACK --------- DHCP SERVER

So, as you see the CMTS ( CableModem Termination system ) works as a router while doing DHCP discovering. 
After this, for the rest of protocols it will work as a bridge.  This is important, so you can have a very basic 
picture of what is the CMTS, and why it is in the middle. Any Cable modem needs a CMTS. 
Sorry, but there is no magic at all.


[3 - Performance]
This simulator trys to make the simulation as real as possible. So, there are a lots aspects the simulation can be 
modify for performance aspects. A lot of "layer communication" can be avoided, but I think this will help just 
to make this less educative. If needed i can work on a better "performance-oriented" simulator. 
    

[2 - Questions]

Q - What is this 
A - This is a very first opensource network device simulator. It allows to simulate ( by terms of network traffic ) 
in a realistic way, how different network devices works. 

Q - Why ?
A - Because it is fun. Because if you use to play/develop with network devices you will understand how complex 
is to deploy something when you need the device at your side. Moreover, if you need to recreate a huge amount of devices,
you simply can not buy hundreds of thounsands of devices "just for test". So here we are. Now, you will be able to simulate
as many devices as you'd like :)
By the momment, you will be able to play with basic cablemodems and CMTS, but more functionality/devices/layers are comming.

Q - Is this project close ?
A - Absolutely no ! Actually, I had developed more layers / modules which will allow more realistic and complex simulations.
Some layers are developed (under the radar) and more are comming (i.e TFTP, DNS , NTP, VirtualPCs, TR-069 devices, 
IPCameras , and so on.....)

Q - When those layers\modules will be released ?
A - The schedule is not set and may vary uppon demand. 

Q - How can i contribute ?
A - Join to the mailing list. Submit your new device, features, fix or patch. 

Q - Do you need financial support 
A - By the momment, this project its been developed in my spare time. Feel free to send me your contribution. :)

Q - I need to simulate the device XXXX Could you please create the virtual device for me.
A - If I have time and the device is requested by many people i will do my best. 
    If you want to pay for it, for sure i will have time :)

matt.-
Matias Torchinsky ( [email protected] )

dsimulator's People

Contributors

mtorchinsky 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.