Coder Social home page Coder Social logo

atp-ariel / net-sim Goto Github PK

View Code? Open in Web Editor NEW
1.0 1.0 0.0 1.86 MB

A network simulator that implements the OSI model. The school project of the subject Computer Networks

Makefile 0.15% Python 99.85%
computer-networks simulation network-protocols network

net-sim's Introduction

Net-Sim

El simulador de una red de computadoras que se presenta cuenta con la implementación de las siguientes capas:

  • Capa Física (host, hub, y cables coaxiales): cuando un host escribe revisa el estado del canal de comunicación y solo escribe si este está vacío. Cuando se realizan conexiones entonces se revisan si ocurren colisiones y se toma la decisión de detener el envío de información de uno de los host que envía.
  • Capa de Enlace (switch, cables duplex, frame): la red que se simula es full duplex. Se envían frames desde un host a otro, utilizando los switch para facilitar dicho proceso. Cuando un host envía información a un switch, este último almacena los datos hasta tener la información de a que MAC debe enviar los datos.
  • Capa de Enlace (detección y corrección de errores): cada frame transporta información relacionada con el dato que se envía, se implementaron tres algoritmos: Hash Sum (hash-sum), Bit de Paridad (parity) y CRC16 (crc-16).

Añadir configuraciones

En el archivo config.txt se escribe en formato .json las configuraciones. Hasta el momento se tienen 3 posibles configuraciones:

  • Nombre del script de instrucciones: script-name que por defecto es script.txt.
  • Signal time: signal-time tiempo en milisegundos (ms) que debe mantenerse un bit en el cable. Por defecto, debe estar configurado en 10 ms
  • Algoritmo de detección de errores: error-detection. Las opciones posibles son: Hash Sum (hash-sum), Bit de Paridad (parity) y CRC16 (crc-16).

Ejecución

Se incluye un archivo Makefile que realiza el proceso de ejecución del proyecto por tanto, basta escribir en la terminal de Linux el comando make.

Se adjunta el contenido del Makefile:

run: 
	if test -d output; then rm -rf "./output"; fi	
	mkdir output
	python main.py

La carpeta ./output/ se crea de forma dinámica cuando se ejecuta el proyecto.

Debe crearse el archivo de nombre script.txt para las instrucciones a simular. En caso de definir otro archivo, configurarlo en config.txt.

Integrantes

  • Ariel Alfonso Triana Pérez C-311
  • Carlos Toledo Silva C-311

net-sim's People

Contributors

atp-ariel avatar

Stargazers

 avatar

Watchers

 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.