- Python 3.8 o superior
- pip
- virtualenv
- mininet
- xterm
Crear un virtualenv con python3 y activarlo:
python3 -m venv venv
source venv/bin/activate
Instalar las dependencias:
pip install -r requirements.txt
Copiar el contenido del archivo .env.example
a un nuevo archivo llamado .env
y modificar las variables de entorno
según sea necesario.
sudo python3 network.py
La configuración por defecto de la red en mininet asume la existencia de 4 hosts. En el ejemplo de abajo se asume que se quieren abrir un servidor y dos clientes.
xterm host_1 host_2 host_3
Esto va a abrir 3 terminales, una para cada host.
Nota: El tamaño de la fuente de la terminal por defecto es muy chico. Se puede modificar en el menu que se abre apretando CTRL y click derecho a la vez.
En cada terminal, ejecutar el servidor y el cliente:
En el host_1:
python3 start_server.py [opciones]
Y para cada cliente, ejecutar en el host_n (n=2,3,...):
python3 download.py [opciones]
Esto va a iniciar el servidor en el host_1 y los clientes en el host_2 y host_3 respectivamente para efectuar la
descarga del archivo solicitado. Se usarán los parámetros por defecto. Para cambiarlos se puede modificar el archivo
.env
o pasar los parámetros por la terminal.
Si se quiere realizar una subida de archivo cambiar el comando download.py
por upload.py
.
Para conocer las opciones de ejecución de cada script, ejecutar python3 start_server.py -h
, python3 upload.py -h
o
python3 download.py -h
.
Ejemplo:
Iniciar el servidor configurando un directorio específico:
python3 start_server.py -s server_storage
Enviar un archivo al servidor:
python3 upload.py -s client_storage -n example.txt
Descargar un archivo desde servidor:
python3 download.py -d client_storage -n ejemplo.txt