PTC29008: Apresentação

De MediaWiki do Campus São José
Revisão de 17h30min de 13 de fevereiro de 2020 por Msobral (discussão | contribs) (→‎Protocolos reais)
Ir para navegação Ir para pesquisar

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.


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 com respeito às seguintes aplicações, e anotem suas finalidades e características.

  • Telefonia móvel
  • Automação industrial
  • Agricultura de precisão
  • Segurança
  • Sistema financeiro
  • Redes veiculares
  • IoT


Área de aplicação Protocolo Finalidade Características

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

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 Multicast: 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.