https://github.com/felipebrenner/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
https://github.com/felipebrenner/python-socket-udp-tcp-sctp-client-server
docker iperf matplotlib python sctp socket tcp udp
Last synced: 28 days ago
JSON representation
Implementação de protocolos UDP, TCP e SCTP para transmissão cliente/servidor com Socket e Docker em Python
- Host: GitHub
- URL: https://github.com/felipebrenner/python-socket-udp-tcp-sctp-client-server
- Owner: FelipeBrenner
- Created: 2021-06-06T20:12:44.000Z (almost 5 years ago)
- Default Branch: master
- Last Pushed: 2021-06-20T17:20:40.000Z (almost 5 years ago)
- Last Synced: 2025-05-07T06:07:31.912Z (about 1 year ago)
- Topics: docker, iperf, matplotlib, python, sctp, socket, tcp, udp
- Language: Python
- Homepage:
- Size: 51.8 MB
- Stars: 1
- Watchers: 2
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 💻 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
```bash
# subir docker container
sudo docker run --rm -it \
--workdir=/app \
--volume="$PWD":/app \
gcc
```
```bash
# 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
```
```bash
# consultar o IP
hostname -i
```
```bash
# executar o código do servidor
python3 server.py
# executar o código do cliente
python3 client.py
```
```bash
# se quiser testar gerando tráfego para interferência para analisar os comportamentos
# abrir em outros prompts os containers do servidor e do cliente
# é o ID do container, por exemplo 68e0a58b9033
sudo docker container exec -it bash
# instalar o iperf no servidor e no cliente
apt-get install iperf3
# rodar o iperf no servidor
# qualquer porta disponível
iperf3 -s -p
# rodar o iperf no cliente
# é o IP do servidor
# é 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 -p
```
## 📹 Execução
[](https://youtu.be/hTQoxfxwJSg)
## 📖 Referências
- [pysctp](https://github.com/P1sec/pysctp)
- [SCTP in Python](https://nickvsnetworking.com/sctp-in-python/)
- [UDP - Client And Server Example Programs In Python](https://pythontic.com/modules/socket/udp-client-server-example)
- [Socket Programming in Python (Guide)](https://realpython.com/python-sockets/)
- [Matplotlib - Usage Guide](https://matplotlib.org/stable/tutorials/introductory/usage.html#sphx-glr-tutorials-introductory-usage-py)
- [Using GUI's with Docker](http://wiki.ros.org/docker/Tutorials/GUI)
- [Running GUI Applications inside Docker Containers](https://medium.com/@SaravSun/running-gui-applications-inside-docker-containers-83d65c0db110)
- [How can I use matplotlib.pyplot in a docker container?](https://stackoverflow.com/questions/46018102/how-can-i-use-matplotlib-pyplot-in-a-docker-container)