/python-socket-udp-tcp-sctp-client-server

Implementação de protocolos UDP, TCP e SCTP para transmissão cliente/servidor com Socket e Docker em Python

Primary LanguagePython

💻 Projeto

Código desenvolvido em Python para a cadeira de Redes de Computadores: Aplicação e Transporte (Redes de Computadores I no currículo antigo), da graduação de Ciência da Computação da Unisinos. Consiste na implementação do protocolo SCTP com comunicação entre cliente e servidor utilizando Socket e docker containers. Implementado também os protocolos TCP e UDP para avaliação e comparação do funcionamento, e exibição dos dados com gráficos utilizando a biblioteca Matplotlib.

🚀 Tecnologias

  • Python
  • Docker
  • Matplotlib
  • UDP
  • TCP
  • SCTP
  • Socket

⚙ Comandos

Sistema Operacional no qual foi desenvolvido e executado foi Linux Ubuntu

# subir docker container
sudo docker run --rm -it \
   --workdir=/app \
   --volume="$PWD":/app \
   gcc
# instalar as dependências
apt-get update
apt-get upgrade
apt-get install python3-dev
apt-get install libsctp-dev
apt-get install python3-setuptools
python3 setup.py install
apt-get install python3-matplotlib
# consultar o IP
hostname -i
# executar o código do servidor
python3 server.py
# executar o código do cliente
python3 client.py
# se quiser testar gerando tráfego para interferência para analisar os comportamentos

# abrir em outros prompts os containers do servidor e do cliente
# <container_id> é o ID do container, por exemplo 68e0a58b9033
sudo docker container exec -it <container_id> bash
# instalar o iperf no servidor e no cliente
apt-get install iperf3
# rodar o iperf no servidor
# <port> qualquer porta disponível
iperf3 -s -p <port>
# rodar o iperf no cliente
# <host_server> é o IP do servidor
# <port> é a porta que aparecerá no prompt do servidor ao rodar o comando anterior, exemplo:
# Server listening on 9000
iperf3 -f m -i 1 -t 10 -c <host_server> -p <port>

📹 Execução

Watch the video

📖 Referências