Mudanças entre as edições de "PTC29008: Apresentação"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 57: Linha 57:
 
Esse protocolo possibilita a inclusão de ligações redundantes entre os computadores, provendo caminhos alternativos no caso de falha de uma dessas ligações. Também serve para evitar a formação de loops entre os comutadores e permitir a ativação e desativação automática dos caminhos alternativos. Para isso, o algoritmo de Spanning Tree determina qual é o caminho mais eficiente (de menor custo) entre cada segmento separado por bridges ou switches. Caso ocorra um problema nesse caminho, o algoritmo irá recalcular, entre os existentes, o novo caminho mais eficiente, habilitando-o automaticamente
 
Esse protocolo possibilita a inclusão de ligações redundantes entre os computadores, provendo caminhos alternativos no caso de falha de uma dessas ligações. Também serve para evitar a formação de loops entre os comutadores e permitir a ativação e desativação automática dos caminhos alternativos. Para isso, o algoritmo de Spanning Tree determina qual é o caminho mais eficiente (de menor custo) entre cada segmento separado por bridges ou switches. Caso ocorra um problema nesse caminho, o algoritmo irá recalcular, entre os existentes, o novo caminho mais eficiente, habilitando-o automaticamente
 
|-
 
|-
|SSH||É um protocolo de administração remota que permite aos usuários controloar e modificar servidores pela internet, fazendo uma operação segura sobre rede insegura. Ele foi criado para substituir o telnet que não oferecia segurança nas suas comunicações || A porta padrão é a 22 e ele opera na no modelo Cliente-Servidor, utilizando cheves púiblicas para autenticação.
+
|SSH (Allex)||É um protocolo de administração remota que permite aos usuários controloar e modificar servidores pela internet, fazendo uma operação segura sobre rede insegura. Ele foi criado para substituir o telnet que não oferecia segurança nas suas comunicações || A porta padrão é a 22 e ele opera na no modelo Cliente-Servidor, utilizando cheves púiblicas para autenticação.
 
Sua principal característica é conectar máquinas remotas e executar comandos, mas ele também permite realizar tunelamento, redirecionamento de portas TCP e conexões X11. O SSH também permite a transferência de arquivos através dos protocolos SSH file Transfer (SFTP) ou Secure copy (SCP)
 
Sua principal característica é conectar máquinas remotas e executar comandos, mas ele também permite realizar tunelamento, redirecionamento de portas TCP e conexões X11. O SSH também permite a transferência de arquivos através dos protocolos SSH file Transfer (SFTP) ou Secure copy (SCP)
 +
|-
 +
|SSH (Ameliza)|| Transferência segura de arquivos entre cliente e servidor||Oferece uma troca segura de arquivos remotos, validando a legitimidade do servidor através de uma chave pública. Geralmente o acesso é feito por login e senha, dando assim, acesso as informações contidas em outra máquina
 +
|-
 +
|DHCP ||Utilizado para obtenção de um endereço IP automaticamente ||O protocolo pode ser configurado para funcionar nas seguintes formas: automática (uma determinada lista de IPs são definidos e um que está em desuso é oferecido), dinâmica (semelhante ao automático, porém o IP será alterado sempre que o dispositivo for desconectado) e manual (define u valor de IP de acordo com o MAC, gerando um IP fico para um determinado computador)
 +
|OAuth 2.0 ||Protocolo de autorização para API’s Web que permite que uma aplicação acessar recursos protegidos em nome do dono desse recurso ||Facilidade no desenvolvimento por fornecer fluxos específicos para aplicações web, desktops, mobile e dispositivos. Utiliza os serviços fornecidos pelo protocolo HTTP. Utilizado por grande empresas como Google e Facebook<br>Referências: [https://oauth.net/2/ (1)], [https://www.digitalocean.com/community/tutorials/uma-introducao-ao-oauth-2-pt (2)]
 +
|-
 +
|IGMPv2 ||Controlar os membros de um grupo de multicast IP, gerenciando os grupos de multicast controlando a entrada e a saída de hosts deles || Protocolo utilizado para transmissão de video e jogos pela rede.
 +
 +
As mensagens podem ser de quatro tipos: Pergunta por participação - 'Membership query', Relatório de participação para versão 1: 'Membership report', Relatório de participação para versão 2: 'Membership report' e Sair do grupo: 'Leave group'.
 +
 +
Este protocolo pode ser utilizado para aproveitar melhor os recursos de uma rede de modo a informar roteadores a enviar o multicast apenas para os hosts pertencentes aos grupos
 
|}
 
|}
  

Edição das 08h36min de 1 de agosto de 2019

Próxima aula



  • Caracterização de protocolos por meio de um exemplo: sintaxe, comportamento, temporização, semântica. Princípios de projeto e propriedades desejáveis de protocolos. Análise de um protocolo real.


  • Projeto 1: um protocolo de comunicação
  • Projeto 2: um protocolo de aplicação
  • Projeto 3: verificação formal do protocolo de comunicação

Um protocolo é uma parte muito importante de um sistema de comunicação. A comunicação de dados pode ser entendida como troca de informação entre dois dispositivos através de algum meio de comunicação. A comunicação ocorre no âmbito de um sistema de telecomunicações, composto por equipamentos (hardware) e programas (softwares). Um sistema básico de comunicação de dados se constitui de cinco componentes:


Rede-intro-1.png


  1. A mensagem: a informação a ser transmitida. O conteúdo da mensagem, seja um texto, música, video, ou qualquer outro tipo de informação, é representada por conjuntos de bits (dígitos binários).
  2. Transmissor: dispositivo que transmite a mensagem.
  3. Receptor: dispositivo que recebe a mensagem.
  4. Meio de comunicação: caminho físico por onde viaja a mensagem do transmissor até o receptor.
  5. Protocolo: conjunto de regras que governa a comunicação de dados.


Os sistemas de comunicação reais, incluídas as redes de computadores, são bem mais complexos do que esse modelo simplificado. No entanto, todos podem ser entendidos, em alguma medida, a partir desse modelo. Nesta disciplina estudam-se princípios e técnicas para projeto de protocolos, incluindo formas de verificar a consistência e correção de seu funcionamento.


Serviço e Protocolo

Um sistema de comunicação provê serviços para as aplicações ou usuários realizarem ações que envolvam a comunicação entre sistemas através de uma rede. Por exemplo, existem serviços para transferência de arquivos, reprodução remota de videos e músicas, execução remota de programas, pesquisa por informação, e muitos outros. O conceito de serviço está relacionado ao de protocolo. Um serviço é provido por entidades que interagem de acordo com um protocolo. Assim, um serviço é um dos elementos envolvidos na especificação de um protocolo. As figuras a seguir mostram a relação entre esses conceitos, primeiro apresentando somente a visão de um serviço para um usuário, e, em seguida, a relação entre serviço e protocolo.

PTC-Servico1.png
Um serviço visto por um usuário


PTC-Protocolo1.png
O serviço provido pelo protocolo

Protocolos reais

Que protocolos existentes despertam suas curiosidades sobre os detalhes de seus projetos ? Identifiquem alguns protocolos, e anotem suas finalidades e características.

Protocolo Finalidade Características
NTP Sincronizar os relógios dos computadores ligados a rede. Utiliza uma versão do algoritmo de Marzullo para determinar o tempo dos servidores corrigindo os efeitos da variação da latência da rede. Utiliza uma hierarquia mestre-escravo onde o servidor envia o horário UTC aos equipamentos da rede, enviando as informações por UDP.
FTP Transferência de arquivos entre máquinas em uma rede TCP/IP Utiliza um modelo cliente-servidor para a transferência de arquivos em ambas as direções (download e upload) de maneira eficaz. Estabelece duas conexões TCP paralelas: uma para controle (persistente) e outra para dados (não-persistente). Caracteriza-se por ser um protocolo de padrão aberto.
MPCP Utilizado para controlar a rede EPON. O MPCP é definido na camada MAC e permite controlar a largura de banda de cada usuário, auto-discovery e ranging. Utiliza quadros Ethernet padão, o Optical Line Terminal (OLT) transmite os quadros para as Optical Network Units (ONUs) em broadcast, os quadros de controle são enviados na mesma conexão que trafegam os dados. Cada ONU transmite em turnos, quando autorizadas pelo OLT. A OLT regula a largura de banda upstream designada a cada ONU pelo tamanho da janela de transmissão.
STP controlar ligações redundantes, garantindo o desempenho de uma rede O Spanning Tree Protocol - STP é um protocolo para equipamentos de rede que permite resolver problemas de loop em redes comutadas cuja topologia introduza anéis nas ligações, auxiliando na melhor performance da rede.

Esse protocolo possibilita a inclusão de ligações redundantes entre os computadores, provendo caminhos alternativos no caso de falha de uma dessas ligações. Também serve para evitar a formação de loops entre os comutadores e permitir a ativação e desativação automática dos caminhos alternativos. Para isso, o algoritmo de Spanning Tree determina qual é o caminho mais eficiente (de menor custo) entre cada segmento separado por bridges ou switches. Caso ocorra um problema nesse caminho, o algoritmo irá recalcular, entre os existentes, o novo caminho mais eficiente, habilitando-o automaticamente

SSH (Allex) É um protocolo de administração remota que permite aos usuários controloar e modificar servidores pela internet, fazendo uma operação segura sobre rede insegura. Ele foi criado para substituir o telnet que não oferecia segurança nas suas comunicações A porta padrão é a 22 e ele opera na no modelo Cliente-Servidor, utilizando cheves púiblicas para autenticação.

Sua principal característica é conectar máquinas remotas e executar comandos, mas ele também permite realizar tunelamento, redirecionamento de portas TCP e conexões X11. O SSH também permite a transferência de arquivos através dos protocolos SSH file Transfer (SFTP) ou Secure copy (SCP)

SSH (Ameliza) Transferência segura de arquivos entre cliente e servidor Oferece uma troca segura de arquivos remotos, validando a legitimidade do servidor através de uma chave pública. Geralmente o acesso é feito por login e senha, dando assim, acesso as informações contidas em outra máquina
DHCP Utilizado para obtenção de um endereço IP automaticamente O protocolo pode ser configurado para funcionar nas seguintes formas: automática (uma determinada lista de IPs são definidos e um que está em desuso é oferecido), dinâmica (semelhante ao automático, porém o IP será alterado sempre que o dispositivo for desconectado) e manual (define u valor de IP de acordo com o MAC, gerando um IP fico para um determinado computador) OAuth 2.0 Protocolo de autorização para API’s Web que permite que uma aplicação acessar recursos protegidos em nome do dono desse recurso Facilidade no desenvolvimento por fornecer fluxos específicos para aplicações web, desktops, mobile e dispositivos. Utiliza os serviços fornecidos pelo protocolo HTTP. Utilizado por grande empresas como Google e Facebook
Referências: (1), (2)
IGMPv2 Controlar os membros de um grupo de multicast IP, gerenciando os grupos de multicast controlando a entrada e a saída de hosts deles Protocolo utilizado para transmissão de video e jogos pela rede.

As mensagens podem ser de quatro tipos: Pergunta por participação - 'Membership query', Relatório de participação para versão 1: 'Membership report', Relatório de participação para versão 2: 'Membership report' e Sair do grupo: 'Leave group'.

Este protocolo pode ser utilizado para aproveitar melhor os recursos de uma rede de modo a informar roteadores a enviar o multicast apenas para os hosts pertencentes aos grupos

Análise dos protocolos

De acordo com Gerard Holzmann, no capítulo 2 de seu livro Design and Validation of Computer Protocols, um protocolo é composto por cinco elementos:

  1. O serviço oferecido pelo protocolo. Ex: protocolo MPCP (outra descrição)
  2. As considerações sobre o ambiente em que o protocolo é executado
  3. O vocabulário de mensagens usadas para implementar o protocolo
  4. A codificação (ou formato) de cada mensagem do vocabulário
  5. O comportamento, definido por regras de intercâmbio responsáveis pela consistência das trocas de mensagens


Com base nesses elementos, deve-se complementar ou adequar a análise dos protocolos selecionados:

Protocolo Serviço Ambiente de execução Vocabulário Codificação Comportamento
NTP Sincronização dos relógios dos computadores ligados a rede. Usa um canal UDP para intercâmbio de mensagens. Pode perder mensagens. Latências de transmissão variáveis (ex: devido a congestionamentos) podem ocorrer. NTP Data packet binária (ver RFC 5905) Há um bom resumo neste documento.
FTP Transferência de arquivos entre computadores conectados em uma rede. Usa dois canais TCP paralelos para intercâmbio de de dados de controle e arquivos. Garante confiabilidade, ou seja, entrega do arquivo enquanto protege de erros de transmissão. Conjunto de comandos: USER, PASS, LIST, STOR, PORT, QUIT. Textual (ASCII ou EBCDIC) ou binária. ( ver RFC 959) 1- Cliente realiza conexão de controle (porta 21) com servidor (modo passivo ou ativo). 2- Com a confirmação positiva, servidor mantém a conexão de controle aberta e aguarda as solicitações de transferência. 3- Em modo de execução ativo o servidor inicia a conexão de dados. 4- Em modo de execução passivo o cliente inicia a conexão de dados para iniciar a transferência.

Atividade

Aplicações de bate-papo (chat) são bastante utilizadas, havendo diversas opções na Internet. Um bate-papo básico, em que se trocam somente mensagens de texto, pode ser implementado sem grande complexidade. Crie uma aplicação de bate-papo com estas características:

  • Modelo P2P: cada agente de usuário se comunica diretamente com demais agentes de usuário, sem processos intermediários
  • Identificação de usuários: cada usuário deve ser identificado por uma string, a qual é informada pelo próprio usuário ao iniciar o bate-papo
  • Mensagens puramente textuais: cada mensagem enviada ao bate-papo é mostrada ao demais usuários prefixada pela identificação do usuário que a escreveu
  • Mensagens privadas ou públicas: mensagens privadas são mostradas a um único usuário específico, e mensagens públicas são mostradas para todos usuários


O desenvolvimento dessa aplicação implica projetar e implementar um protocolo para o intercâmbio de mensagens. Para a transmissão de mensagens use alguma API de comunicação existente, tal como:


A entrega da especificação e do protocolo implementado deve ser feita até dia 12/08.