Giter Site home page Giter Site logo

redescomputadores's Introduction

Redes de Computadores 🔎🌐💻

O assunto redes de computadores é bastante vasto e complexo, envolvendo muitos conceitos, protocolos e tecnologias que se entrelaçam inextricavelmente. Neste repositório contém problemas propostos em sala para o estudo de redes. Baseado no livro Redes de computadores e a internet uma abordagem top-down por Jim Kurose e Keith Ross.

Chat-Server 👤💬

Servidor/Cliente usando biblioteca sockets na qual recebe conexões de entrada (novos usuários) e dados (mensagens trocadas).

Como se conectar ao chat
$ python3 server.py
$ python3 client.py <IP_SERVER> <PORTA>

Simulador SMTP 📪📥

Neste problema replicamos o protocolo SMTP utilizando sockets. Entenda o fluxo:

  1. Client 1 (Alice) conecta no Server 1 (Servidor de correio de Alice) e envia payload (ou seja, sua mensagem).
  2. Server 1 age como "cliente" e se conecta no Server 2 (Servidor de correio do Bob) e envia a mensagem de Alice.
  3. Client 2 (Bob) se conecta no Server 2, e então o mesmo envia a mensagem para Bob.

Rodar, respectivamente, nesta ordem: servidor 2, servidor 1, cliente 1 e cliente 2.
$ python server2.py
$ python server1.py
$ python cliente1.py
$ python cliente2.py

UDP RDT (Reliable Data Transfer) 📦👍

Com um canal confiável, nenhum dos dados transferidos é corrompido ou perdido, e todos são entregues na ordem em que foram enviados. É responsabilidade de um protocolo de transferência confiável de dados implementar essa abstração de serviço. A aplicação cliente-servidor implementada provê a transferência confiável baseado no protocolo rdt 2.2. Nesta versão do protocolo, não se usa implementa a detecção de perda de pacotes (tanto de dados quanto ACKs) por meio de um temporizador. Adicionando-se essa funcionalidade, teria-se o protocolo rdt 3.0 implementado.

Caminho Mínimo de Roteamento (Dijkstra) 🔄🔜

O Caminho Mínimo de Roteamento é executado por cada nó de comutação na rede (isto é, nós preparados para encaminhar pacotes; na Internet, esses são chamados de roteadores). O conceito básico é que cada nó constrói um mapa da conectividade com a rede, na forma de um grafo, mostrando quais nós estão conectados a quais outros nós. Cada nó calcula, de forma independente, o melhor caminho lógico seguinte para cada destino possível na rede. Cada coleção de melhores caminhos formará a tabela de roteamento de cada nó. É o algoritmo de Dijkstra.

Exemplo de um caminho mínimo
$ source venv\bin\activate
$ python3 codigo.py

redescomputadores's People

Contributors

iguit0 avatar

Watchers

 avatar  avatar

Forkers

hacktheb1t

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.