PTC29008: Projeto 1: Mecanismos Básicos de um Protocolo de Comunicação

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar

Um protocolo de comunicação pode incorporar um subconjunto de mecanismos elementares para que o serviço seja devidamente provido. Diferentes autores enumeram esses mecanismos, para fins de fácil compreensão. Por exemplo, Georg Holzmann no cap. 2 de Design and Validation of Computer Protocols identifica os seguintes tipos de mecanismos:

  • Início e término de intercâmbio de dados
  • Sincronização de transmissores e receptores
  • Detecção e correção de erros de transmissão
  • Formatação e codificação de dados

Mais especificamente, Controle de erros é detalhado no cap. 3 e Controle de fluxo no cap. 4.


Hartmut Konig, no cap. 5 de Protocol Engineering, 2nd ed. identifica estes mecanismos:

  • Controle de erros
  • Sincronização
  • Gerenciamento de conexão
  • Codificação e decodificação de PDU
  • Ajustes em tamanhos de PDUs
  • Sequenciamento
  • Controle de fluxo
  • Controle de taxa


Outro autor, Robin Sharp, no cap. 4 de Principles of Protocol Design, identifica estes mecanismos:

  • Controle de sequência e de erros
  • Controle de fluxo
  • Indicação de mudança de estado do par
  • Mudança de modo de serviço
  • Multiplexação e separação
  • Segmentação e remontagem
  • Priorização


Como se pode notar, essas classificações possuem sobreposições, porém também sensíveis diferenças. Por vezes é questão de nomenclatura, em outras de ênfase em aspectos de um protocolo. No nosso caso, devemos conhecer e entender esses mecanismos para identificar quais deles são úteis para nosso protocolo de comunicação. Para realizar essa análise, antes de mais nada devemos definir o serviço a ser provido por nosso novo protocolo.


Essas funções de protocolo, para melhor entendimento e definição, devem, sempre que possível, ser relacionadas com o conceito de camadas (ver, por exemplo modelo de referência OSI). A figura a seguir resume alguns termos elementares que aparecem em um modelo em camadas (N é o número da camada), sendo eles:

  • PDU: unidade de dados do protocolo (coloquialmente: pacote)
  • SDU: unidade de dados de serviço (payload, carga do pacote)
  • PCI: informações de controle do protocolo (cabeçalho)
  • SAP: ponto de acesso a serviço, ou uma identificação usada para requisitar serviços de um protocolo (ex: endereço IP para protocolo IP, port para protocolo TCP)

PTC-Sdu-pdu.png


Definição do protocolo

Deve-se especificar o protocolo, iniciando pelo serviço a ser oferecido. Em seguida, passa-se à enumeração e descrição dos mecanismos a serem utilizados para implementar as funções desse protocolo. OBS: a especificação deve ser uniforme e completa para todas as equipes, pois as implementações do protocolo devem ser interoperáveis.

Serviço: