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 108: Linha 108:
 
|-
 
|-
 
|SNMP || Protocolo de rede que fornece um gerenciamento dos dispositivos na rede. || Utiliza UDP como protocolo de transporte.|| Utiliza os métodos GET, GETNEXT, GETBULK, SET e TRAP || Sua codificação é ASN.1 || Um gerente requisita ou modifica informações de um dispositivo na rede através da MIB, que é uma estrutura de informações||
 
|SNMP || Protocolo de rede que fornece um gerenciamento dos dispositivos na rede. || Utiliza UDP como protocolo de transporte.|| Utiliza os métodos GET, GETNEXT, GETBULK, SET e TRAP || Sua codificação é ASN.1 || Um gerente requisita ou modifica informações de um dispositivo na rede através da MIB, que é uma estrutura de informações||
 +
|-
 +
|SIP || Protocolo P2P de sinalização para estabelicimento, manutenção e terminação de sessão de comunicação genérico. || Executado em ambiente de protocolo IP com servidor ASTERISK e independente de protocolo de transporte (TCP/UDP).|| Mensagens de requisisão ("INVITE", "ACK", "OPTIONS", "BYE", "CANCEL" e "REGISTER") e resposta (1XX, 2XX, 3XX, 4XX, 5XX e 6XX). || * * || * * ||
 
|}
 
|}

Edição das 14h26min de 15 de fevereiro de 2018


  • 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.
SSH Transferência remota de arquivos criptografados entre duas entidades. Modelo de comunicação é cliente e servidor, utilizando para geração das chaves públicas o algoritmo RSA. A porta padrão do servidor SSH é a porta 22.
TELNET Fornece as regras básicas para ligar um cliente a um intérprete de comando (servidor). O protocolo Telnet baseia-se em uma conexão TCP para enviar dados em formato ASCII codificados em 8 bits entre os quais se intercalam sequências de controle Telnet. Ele fornece, assim, um sistema orientado para a comunicação, bidirecional (half-duplex), codificado em 8 bits, fácil de aplicar.
SMTP Usado para a transferência de e-mail Funciona como roteador do correio eletrônico. É transmitido sobre o protocolo TCP, sendo composto por 3 entidades: Agente do usuário, emissor e receptor. A comunicação entre o emissor e receptor é feita através do código ASCII.
RTP É um protocolo de redes utilizado para entregar áudio e vídeo sobre IP. É implementado tipicamente sobre UDP e usado em conjunto com o RTCP (RTP Control Protocol). Enquanto o RTP lida com a mídia em sí, o RTCP monitora as estatísticas de transmissão e o Controle de Qualidade e lida com a sincronização de multiplos streams.
SSH Protocolo de rede que estabelece uma conexão criptografada em meio de comunicação não seguro na estrutura cliente-servidor. O cliente conecta-se ao servidor através de autenticação com troca de chaves (um exemplo de troca de chaves é a de Diffie-Hellman). Ao iniciar a comunicação a autenticação e criptografia são negociados entre as entidades e a comunicação é estabelecida de forma segura, possibilitando o acesso remoto de dispositivos e transferência de arquivos. Implementado sobre o TCP.
ARP Mapear os endereços MAC dos dispositivos que se encontram na mesma rede local. Atua enviando mensagens em broadcast para localizar o endereço MAC do dispositivo a partir do seu endereço IP. É utilizado quando a origem da mensagem não possui mapeado em sua tabela ARP o endereço MAC atrelado àquele endereço IP.
SIP Inicialização de sessão de comunicação entre usuários através de uma rede VoIP (rede de conexão por voz com a internet). Protocolo simples de codigo aberto, baseado em protocolos HTTP (modo requisição e resposta) e SMTP. Com funcionamento através de redes via Protocolo IP e independente de protocolo de transporte (TCP/UDP). Foi desenvolvido para estabelecer, mudar e terminar chamadas num ou mais utilizadores numa rede IP de uma maneira totalmente independente do conteúdo de dados da chamada.
LoRaWAN Provê comunicação de longa distância entre dispositivos de IoT e o Gateway (centralizador). Por ser otimizada para um baixo consumo energetico e possibilitar comunicação em longa distância, é perfeita para redes de IoT que contam com dispositivos finais alimentados por bateria, garantindo taxas de transmissão até 50kbps.
RIP Troca e atualização de tabelas de roteamento Projetado para redes homogêneas. Baseado em UDP e IPV4. Suscetível a falhas. Atualiza a tabela de roteamento a cada 30s. Executa Hold down e Split Horizon e tem um máximo de 15 hops (não recomendado para redes muito grandes). Monta as tabelas baseado em vetor de distâncias.
SNMP Provê gerenciamento de dispositivos na rede IP è um protocolo da camada de aplicação que utiliza o UDP para o transporte, utiliza os métodos GET(para consultar) e SET(para solicitar modificações) e TRAP(alarmes). Até a versão 2 não havia autenticação permitindo uma série de ameaças, já a versão 3 corrige o erro e implementa controle de acesso. Utiliza MIB, uma base de informações de gerenciamento utilizadas no dispositivo.

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
  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.
SSH Transferência remota de arquivos criptografados entre duas entidades. (ver RFC 4253) TCP/IP atuando acima da camada de transporte e por meio da porta 22 SSH_MSG_USERAUTH_REQUEST, SSH_MSG_USERAUTH_FAILURE, SSH_MSG_USERAUTH_SUCCESS e outras mensagens (ver RFC 4253) ISO-10646 UTF-8 (ver RFC 3629) (ver Cisco - Protocol Basics: Secure Shell Protocol)
SMTP Envio de transferência de e-mail Funciona online, encapsulado em um pacote TCP/IP, por padrão na porta 25. HELO: Inicia a comunição. Mail from: Endereço do remetente. 250 OK: Confirmação de recebmento. RCPT TO: Endereço do destinatário. DATA: Corpo da mensagem. ASCII A lógica de trabalho é quase a mesma utilizada pelo correio convencional, sendo que o SMTP atua praticamente como o carteiro. Após serem capturadas, as mensagens são enviadas para ele que, em seguida, encaminha os e-mails aos destinatários finais. https://blog.saphir.com.br/smtp-o-que-e-e-como-funciona/
TELNET Permitir obter uma interface de terminais e aplicações pela Internet. Baseia-se em uma conexão TCP para enviar dados entre os quais se intercalam sequências de controle Telnet. Ele fornece, assim, um sistema orientado para a comunicação, bidirecional (half-duplex). https://tools.ietf.org/html/rfc854 Codificado em formato ASCII de 8 bits. As opções do Telnet afetam separadamente cada direção do canal de dados. Assim, cada extremidade pode negociar com as opções, ou seja, definir as opções desejadas, como utilizar (DO), não utilizar (DON' T), permitir que a outra extremidade utilize (WILL), não permitir que a outra extremidade utilize (WON' T). Desta maneira, cada uma das partes pode emitir um pedido de utilização de uma opção. A outra parte deverá, então, responder se aceita ou não a utilização da opção.

http://br.ccm.net/contents/286-o-protocolo-telnet#qual-e-o-principio-das-opcoes-negociadas

RTP Entrega de áudio e vídeo sobre IP. implementado sobre canal UDP. Apresenta perda. RTP Header Binária. Overview interessante do protocolo
SSH Protocolo de rede que estabelece uma conexão criptografada em meio de comunicação não seguro na estrutura cliente-servidor. Utiliza TCP como canal de comunicação. Geralmente utilizado para acesso remoto. As mensagens possuem suas próprias RFCs e podem ser conferidas no item 10.1 de RFC 4251 ISO-10646 UTF-8 Resumo neste documento (em inglês)
ARP Atrela os endereços MAC dos dispositivos que se encontram na mesma rede local com os seus endereços IP. Utiliza o próprio enlace em que será feita a comunicação * * * * * *
SNMP Protocolo de rede que fornece um gerenciamento dos dispositivos na rede. Utiliza UDP como protocolo de transporte. Utiliza os métodos GET, GETNEXT, GETBULK, SET e TRAP Sua codificação é ASN.1 Um gerente requisita ou modifica informações de um dispositivo na rede através da MIB, que é uma estrutura de informações
SIP Protocolo P2P de sinalização para estabelicimento, manutenção e terminação de sessão de comunicação genérico. Executado em ambiente de protocolo IP com servidor ASTERISK e independente de protocolo de transporte (TCP/UDP). Mensagens de requisisão ("INVITE", "ACK", "OPTIONS", "BYE", "CANCEL" e "REGISTER") e resposta (1XX, 2XX, 3XX, 4XX, 5XX e 6XX). * * * *