Upload
breno-merola
View
194
Download
0
Embed Size (px)
Citation preview
Projeto e Validao de Protocolos
Projeto e Validao de Protocolos para Computadores Estrutura de ProtocolosPedro Frosi Rosa, PhD [email protected]
All rights reserved to Pedro Frosi Rosa, PhD
1
Projeto e Validao de Protocolos
Estrutura de um Protocolo
Primeira aula foram abordados alguns problemas relacionados ao projeto de protocolos Dois tipos de erros so muito dificeis de evitar: Projetar um conjunto incompleto de regras Projetar regras que so contraditrias Nesta aula vamos ver modos de garantir que um conjunto de regras , ao mesmo tempo, completo e consistente Ser preciso na especificao Modularidade e Estrutura
All rights reserved to Pedro Frosi Rosa, PhD
2
Projeto e Validao de Protocolos
Caso Tpico
Servidor de Arquivo e Servidor de Impresso
d
Servidor A
Servidor B
p
All rights reserved to Pedro Frosi Rosa, PhD
3
Projeto e Validao de Protocolos
Estrutura bsica
Todas as regras, formatos e procedimentos acordado entre A e B so o protocolo O protocolo formaliza as interaes padronizando o uso do canal de comunicao O protocolo, portanto, pode conter acordos sobre os mtodos usados para: Iniciao e terminao das trocas de dados Sincronizao entre transmisso e recepo Formatao e codificao dos dados Estas fases podem ser definidas em mais de um nvel de abstrao4
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Exemplos de nveis de abstrao
Formataosinais eltricos
bits smbolos/caracteres
campos da primitiva quadro/pacote
All rights reserved to Pedro Frosi Rosa, PhD
5
Projeto e Validao de Protocolos
Os elementos de um protocolo
A especificao consiste de cinco partes distintas. Para ser completa, cada especificao deve incluir: Servios a serem oferecidos pelo protocolo Definio do ambiente no qual o protocolo ser executado Vocabulrio das primitivas usadas para implementar o protocolo Codificao (formato) de cada primitiva no vocabulrio Regras procedimentais para garantir a consistncia nas trocas de primitivas O ltimo elemento da especificao do protocolo o mais dificil de projetar e o mais complicado de verificar6
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Um exemplo
Especificao do servio O propsito do protocolo transferir arquivos de texto como uma sequncia de caracteres atravs de uma linha telefnica durante o qual protege contra erros de transmisso, assumindo que todos os erros podem ser detectados O protocolo transferncia de arquivo num canal fullduplex Acks e Nacks so enviados pelo canal (B->A) em reconhecimento s transmisses de A->B, e vice-versa Cada primitiva tem duas partes: mensagens e controle no sentido inverso7
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Um exemplo.
O Ambiente... Consiste minimamente de dois usurios do servio de transferncia de arquivo e um canal de transmisso O usurios submetem uma requisio para transferncia de arquivo e esperam at a sua concluso O canal de transmisso pode causar distores arbitrrias nas primitivas, mas, no perde, no duplica, no insere e nem reorganiza primitivas Assume-se que um nvel inferior ser responsvel por corrigir distores e gerar mensagens de erros
All rights reserved to Pedro Frosi Rosa, PhD
8
Projeto e Validao de Protocolos
Um exemplo..
Vocabulrio Define trs tipos de mensagens Ack: para reconhecimento positivo Nack: para reconhecimento negativo Err: para primitivas de erro V={Ack,Nack,Err} Cada tipo de primitiva pode posteriormente ser refinada em vrias mensagens de nveis inferiores
All rights reserved to Pedro Frosi Rosa, PhD
9
Projeto e Validao de Protocolos
Um exemplo...
Formato da primitiva Campo de controle: identifica o tipo da primitiva Campo de dados: conjunto de cdigos de caracteresControle Dados
Em uma representao C-like ter-se-a: enum control {Ack,Nack,Err}; struct primitiva {
enum control tag; unsigned char data; };10
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Um exemplo....
Regras procedimentais Para este protocolo foram informalmente descritas como: 1. Se a recepo anterior foi livre de erro, a prxima mensagem no sentido contrrio levar um ACK; Caso contrrio levar um NACK 2. Se a recepo anterior foi um NACK, ou foi uma primitiva de ERR, retransmite a primitiva antiga; qualquer outro caso procure por uma nova primitiva para transmisso Para formalizar estas regras podemos usar diagramas de estado, expresses algbricas, descrio na forma de programa, etc11
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Um exemplo.....next:o receive Nack:i
Ack:i next:o
Err:i
Ack:o
Ack:o
Nack:o
All rights reserved to Pedro Frosi Rosa, PhD
12
Projeto e Validao de Protocolos
Um exemplo......
Falhas do Projeto Transmisso de dados em um sentido s pode comear se houve uma transmisso de dados no sentido contrrio Quem decide como o canal vai ser iniciado ou encerrado? Maior deficincia: O receptor deve decidir se ou no um dado, que foi recebido corretamente, e armazenado temporariamente na varivel i, deve ser aceito (por ex. salvo em um arquivo) Dados duplicados recebidos corretamente, no deveriam ser aceitos. Este problema no tem soluo pelas regras procedimentais listadas no protocolo13
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Um exemplo.......
Vejamos o que acontece com os dois processos abaixo: 1. Processo A inicia a transferncia enviando deliberadamente uma mensagem de erro para B 2. Suponha-se que A tenta transmitir letras de a a z e B responde enviando na ordem inversa O diagrama da prxima figura mostra a sequncia de eventos que leva a uma duplicidade ser aceita como correta
All rights reserved to Pedro Frosi Rosa, PhD
14
Projeto e Validao de Protocolos
Um exemplo........
Diagrama de Ordem TemporalA next accept z err nack z ack a => err nack z => err nack a B next
ack z accept z
accept a
All rights reserved to Pedro Frosi Rosa, PhD
15
Projeto e Validao de Protocolos
Um exemplo.........
O protocolo deste muito simples A descrio informal convicente, sendo que baseados nesta descrio poucos duvidariam da correteza dele A especificao incompleta, e, qualquer implementao baseada nela resultariam em erros subtos durante a troca de dados Este exemplo mostra-nos que mesmo o mais simples dos protocolos exige uma boa disciplina de projeto e ferramentas analticas eficazes
All rights reserved to Pedro Frosi Rosa, PhD
16
Projeto e Validao de Protocolos
Servio e Ambiente
Para completar uma tarefa abstrata como transferir um arquivo, um protocolo deve efetuar um leque de funes de baixo-nvel tais como sincronizao e recuperao de erro A realizao de um servio especfico depende de certas consideraes feitas sobre o ambiente no qual o protocolo executado Por exemplo: recuperao de erro deve corrigir o comportamento oferecido pelo meio de transmisso Tipos de comportamentos sero abordados oportunamente Neste curso vamos nos concentrar na estrutura adequada para a especificao dos servios17
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Servio e Ambiente.
Se um problema muito grande para ser abordado de uma vez; ele deve ser quebrado em problemas menores... Muitas funes abstratas so definidas e implementadas em termos de contrutores subjacentes, onde cada nvel esconde certas propriedades indesejveis do canal de comunicao, transformando-o em um meio mais idealizado Por exemplo, considere que queremos implementar um protocolo para transmisso de dados que oferece codificao de caracteres em tuplas de 7 bits cada, e um rudimentar detector de erro baseado em paridade Este protocolo prov dois servios: codificao e deteco de erros18
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Servio e Ambiente..
Pode-se separar estes servios em dois mdulos funcionais, chamados sequencialmente, construindo um canal virtual
P2
P1
P1
P2
De fato, cada camada oferece um servio diferente e implementa um protocolo separado A primeira camada implementa P1 => formato 8 bits A segunda camada implementa P2 => formato 7 bits19
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Servio e Ambiente...
P2 no v e nada sabe sobre o 8 bit adicionado e controlado por P1 A nica coisa que ele sabe que o canal mais confivel do que diretamente sobre o meio P1 oferece um canal virtual para P2, mas, ao mesmo tempo, ele transparente para P2 Dois conceitos fundamentais em protocolo: Transparente: alguma coisa que existe, mas parece no existir Virtual: alguma coisa que parece existir, mas no existe de fato20
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Servio e Ambiente....
Para P1, o significado dos bits no importa - apenas o nmero de bits; de modo similar nem P1, nem P2, conhece qualquer coisa a respeito do protocolo de nvel superior, ie.encapsulamento de n nveis Pn P2 P1 P0 P1 P2 Pn
Cada nvel encerra os dados transmitidos em uma nova capsula, consistindo de um header e/ou trailer, antes de pass-lo a um prximo nvel O formato de nveis superiores no precisam ser preservados21
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Servio e Ambiente.....
O princpio de projeto hierrquico bem conhecido em programao sequencial, mas relativamente novo em sistemas distribudos Camadas ajudam a indicar a estrutura lgica do protocolo separando detalhes de alto-nvel dos de baixo-nvel Quando o protocolo muda ou deve ser estendido fcil reescrev-lo ou troc-lo No incio dos anos 70, a ISO reconheceu a necessidade de padronizao e criou o modelo OSI baseado em camadas....
All rights reserved to Pedro Frosi Rosa, PhD
22
Projeto e Validao de Protocolos
Servio e Ambiente......
Cada camada define um conjunto de servios distinto e implementa protocolos especficos camada O formato usado por uma camada completamente independente dos formatos usados pelas demais camadas Exemplo: Camada de rede envia pacotes; Camada de enlace envia framesn+1 Servio primtiva protocolo
n
A
B interface
n-1
provedor de servio
All rights reserved to Pedro Frosi Rosa, PhD
23
Projeto e Validao de Protocolos
Vocabulrio e Formato..
Cabealhos e Trailers Com os mtodos de estruturao descritos anteriormente, mtodos de formatao de dados de alto nvel mais sistemticos podem ser construdos At este momento foi silenciado a respeito de erros de transmisso Se o contador perdido, ou, Se o caracter ETX, ou DLE, for corrompido, estas tcnicas falham
Como veremos adiante, esquemas de deteco de erro requerem transmisso de informaes redundantes Se controle de fluxo, campo com nmero de sequncia...All rights reserved to Pedro Frosi Rosa, PhD
26
Projeto e Validao de Protocolos
Vocabulrio e Formato...
Todo este overhead justificvel e deve ser agrupado em pores diferentes da primitiva, encapsulando os dados: Deste modo, o STX expandido para ser a estrutura do cabealho ETX incrementado para ser o Trailer Por razes bvias contadores de byte so colocados no Cabealho e checksums so colocados nos trailers O formato das primitivas so portanto definidas com um conjunto ordenado de trs elementos: formato = { header , dados , trailer }
All rights reserved to Pedro Frosi Rosa, PhD
27
Projeto e Validao de Protocolos
Vocabulrio e Formato....
O cabealho e o trailer podem ser refinados em subconjuntos ordenados chamados campos de controle. Exemplos: cabealho = { tipo , destino , janela , contador , prioridade } trailer = { checksum , endereo de retorno }STX cabealho dados trailer ETX
tipo ; dest ; seqnr ; count
checksum ; ret addr
All rights reserved to Pedro Frosi Rosa, PhD
28
Projeto e Validao de Protocolos
Regras Procedimentais
Viu-se at este momento grande similaridade entre as tarefas de projeto de protocolo e o desenvolvimento de software Uma diferena importante que as regras procedimentais (procedure rules) so interpretadas paralelamente por dois ou mais mdulos (muito provavelmente em maquinas diferentes) O efeito de cada nova regra adicionada ao conjunto frequentemente muito maior do que se possa imaginar Para se convencer da corretude do projeto necessrio alguma coisa melhor do que a reflexo informal Infelizmente a ferramenta mais popular para isto o Diagrama de Ordem TemporalAll rights reserved to Pedro Frosi Rosa, PhD
29
Projeto e Validao de Protocolos
Projeto Estruturado de Protocolos
Projeto de protocolos toca em vrias reas Algumas destas reas so bem conhecidas Outras estamos somente no comeo do entendimento Por ex., o nvel fsico do modelo OSI/ISO: Conhece-se precisamente qual o comportamento caracterstico dos diferentes tipos de informao que so levados Quo rpido pode-se transmitir dados neles Qual a taxa mdia de bit error resultante H vrias tcnicas para codificao binria em sinais analgicos Conhece-se bem tcnicas de sincronizao sender/receiver30
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Projeto Estruturado de Protocolos.
Bem mais acima depara-se com problemas de projeto de rede Roteamento atravs de redes Dimensionamento preciso da estrutura de redes Interconexo de vrias redes via gateways Desenvolvimento em um nvel superior de disciplinas para controle e avoidance de congestionamento Notamos que para a parte fsica existem vrias tcnicas que podem resolver problemas de projeto, contudo os problemas esto apenas comeando: divisar conjunto de regras completas e no ambguas para troca de informao em um sistema distribudo31
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Projeto de protocolos: Simplicidade
Caso para protocolos Light-weight Um protocolo bem estruturado pode ser feito a partir de um pequeno nmero de pedaos bem projetados e bem conhecidos Para entender o protocolo basta entender os pedaos Protocolos feitos deste modo so mais fceis de entender, de implementar, mais apropriados para verificar e manter Um protocolo Light-weight simples, robusto e eficiente
All rights reserved to Pedro Frosi Rosa, PhD
32
Projeto e Validao de Protocolos
Projeto de protocolos: Modularidade
Hierarquia de Funes Um protocolo que executa uma funo complexa pode ser feito de pedaos que interagem de um modo simples e bem definido Cada mdulo, um pedao, um protocolo light weight Funes ortogonais no podem ser misturadas, elas so projetadas como entidades independentes Cada mdulo individualmente no faz suposies sobre o trabalho de outros, nem mesmo a presena Controle de erro e controle de fluxo so funes ortogonais
All rights reserved to Pedro Frosi Rosa, PhD
33
Projeto e Validao de Protocolos
Projeto de protocolos: Protocolos Bem Formados
Um protocolo bem formado NO : Over-specified: no h regras no alcanveis ou no utilizadas Under-specified: ou incompleto, ie, durante sua execuo podem ser requeridas regras que levaro a uma recepo indefinida Bounded: no pode ultrapassar limites definidos do sistema (ambiente), como capacidade da fila de mensagens Self-stabilizing: quando erro arbitrrio muda o estado do protocolo, este deve retornar a um estado conhecido Self-adapting: pode se adaptar em certas circunstncias34
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Projeto de protocolos: Robustez
Como disse Polybius: It is chiefly unexpected occurrences which require instant consideration and help. No difcil projetar protocolos que trabalham em circunstncias normais o inesperado que torna o projeto um desafio, ie, o protocolo deve ser preparado para tratar apropriadamente todas as aes que ocorram, em qualquer sequncia, sob quaisquer condies O protocolo deve fazer suposies mnimas sobre o ambiente para evitar dependncias de caractersticas que mudem35
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Projeto de protocolos: Consistncia
Existem alguns modos padronizados e temidos nos quais um protocolo pode falhar: Deadlocks: situao na qual no haver um prximo estado Livelocks: sequncias na execuo, repetidas indefinidamente, sem fazer qualquer progresso No k-limited: SM no finita No reinicivel: no possvel a partir de um dado estado voltar ao estado inicial Terminao imprpria: finalizao sem satisfazer as condies apropriadas de encerramento36
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Regras de ouro de projeto
So 10, sendo que justamente a 10 a mais importante: 1. Certificar-se que o problema foi bem especificado 2. Definir os servios em cada nvel de abstrao 3. Delinear as funcionalidades externas antes das internas 4. Manter o projeto simples 5. No ligar o que independente, que tem ortogonalidade 6. No introduzir o que no concreto; no restringir o que irrelevante; um bom projeto open-ended; um projeto resolve uma classe de problemas 7. Antes de implementar, faa um prottipo de alto-nvel, e verifique que os critrios de projeto foram alcanados37
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Regras de ouro de projeto.8. Implementar o projeto, medir seu desempenho, e se necessrio, otimiz-lo 9. Garantir que a implementao final, otimizada, equivalente ao projeto de alto-nvel que foi verificado 10. A mais importante; No pular as regras de 1 a 7
A regra mais violada esta dcima
All rights reserved to Pedro Frosi Rosa, PhD
38
Projeto e Validao de Protocolos
Entidades de Padronizao
Muitos grupos de padronizao, em vrias literaturas referenciados como corpos, esto em atividade na rea de comunicao de dados. Exemplos: NIST (national institute for science and technology) (NBS) FTSC (federal telecommunications standard committee) IEEE (institute of electrical and electronics engineers) ISO (international standardzation organization) CCITT (comit consultatif international tlgraphique et tlphonique) que hoje parte da ITU (international telecommunications union)
All rights reserved to Pedro Frosi Rosa, PhD
39
Projeto e Validao de Protocolos
Entidades de Padronizao...
A ISO inclui muitos protocolos nacionais, como da ANSI (american national standards institute) Organizao da ISOISO TC TC97 SC6 WG1 WG SC TC TC97 - padres para computadores SC6 - telecomunicao WG1 - protocolos para enlaces de dados
Protocolo ASCII referenciado como ISO standard 64640
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Entidades de Padronizao....
CCITT uma entidade nacional Francesa, formada em 1956 pela unio de duas entidades CCIT (telegrfica) e CCIF (telefnica)CCITT SG SGVII WP2 WP SG SGVII - redes de comunicao de dados WP2 - interfaces de rede
IFIP (International Federation for Information Processing), embora no seja diretamente ligada padronizao de protocolos41
All rights reserved to Pedro Frosi Rosa, PhD
Projeto e Validao de Protocolos
Entidades de Padronizao.....
Certamente a padronizao, em si mesma, no resolve todos os problemas envolvidos no projeto de protocolos Quo bom um padro internacional que seja incompleto ou at mesmo com erros? O grupos de padronizao se deparam com os mesmos problemas Para tanto existem mtodos para projetar e descrever protocolos, e, ainda, mtodos eficientes para testar protocolos submetidos s entidades de padronizao ESTELLE SDL Redes de Petri42
All rights reserved to Pedro Frosi Rosa, PhD