1 elementos dos protocolos - ufpe

79
Capítulo 2 Patterns in Network Architecture Elementos dos Protocolos 1 Arquiteturas de Redes (2020.1)

Upload: others

Post on 15-Nov-2021

2 views

Category:

Documents


0 download

TRANSCRIPT

Capítulo 2Patterns in Network Architecture

Elementos dos Protocolos1

Arquiteturas de Redes (2020.1)

Elementos de um protocolo

Arquiteturas de Redes (2020.1)

2

¨ Toda a comunicação de dados é um efeito colateral.¨ A teoria das máquinas de estado finitas (FSMs) têm sido

tradicionalmente usadas para descrever e analisar protocolos.¨ Ou Máquina de Protocolo (PM):

¤ Criada a partir de módulos elementares menores¤ Um pequeno número de conceitos podem ser usados repetidamente para

construir uma arquitetura de rede

Definição de uma FSM

Arquiteturas de Redes (2020.1)

3

¨ Um alfabeto de entrada:¤ Conjunto 𝐴 = {𝐴!, … , 𝐴"}

¨ Um conjunto de estados: 𝑆 = {𝑆!, … , 𝑆#}¨ Um alfabeto de saída:

¤ Conjunto 𝑂 = {𝑂!, … , 𝑂$}

¨ Duas funções:¤ 𝐹! 𝐴, 𝑆 → 𝑆¤ 𝐹% 𝐴, 𝑆 → 𝑂

Representação de uma FSM

¨ Grafo:¤ Nós representam os estados¤ Arcos representam a função F1¤ Os arcos são rotulados com a

entrada e a saída da função F2

¤ Podem ser representadas também através de uma tabela

4

Arquiteturas de Redes (2020.1)

Aplicabilidade das FSMs

Arquiteturas de Redes (2020.1)

5

¨ Usadas como um método de especificação formal¨ Na sua forma pura não é adequada para representar a não ser

mecanismos simples¨ Para algoritmos complexos que envolva contagens simples, ordenação,

etc., o espaço de estados seria aproximadamente o produto das magnitudes de cada parâmetro: ¤ Problema da explosão de estados!

Extensões das FSMs

Arquiteturas de Redes (2020.1)

6

¨ Para resolver o problema da explosão de estados, a FSM é combinada com linguagens de programação ou linguagens formais.

¨ FSM é modificada para consistir de:¤ Um alfabeto de entrada e um de saída¤ Conjunto de procedimentos¤ Um vetor de estados que inclui os principais estados (início, espera por algo,

meio, fim) e quaisquer variáveis associadas com estado como: números de sequência, contadores, etc.

Protocolo

Arquiteturas de Redes (2020.1)

7

¨ Para que dois sistemas possam se comunicar, devem possuir um esquema conceitual compartilhado.

¨ O conjunto de regras e procedimentos que cada sistema participante da comunicação deve seguir para manter a coordenação de seu esquema compartilhado é chamado de protocolo.

¨ As FSMs que implementam o protocolo serão referenciadas como máquinas de estado de protocolo ou, simplesmente, máquinas de protocolos (PMs).

Protocolos

Arquiteturas de Redes (2020.1)

8

¨ São usados em comunicação de computadores em duas classes abrangentes de problemas:¤ Coordenação a distância e¤ Ação a distância.

¨ A especificação do protocolo se torna a especificação das FSMs que se comunicam.

Máquina de Protocolos típica

Arquiteturas de Redes (2020.1)

9

PMs

Arquiteturas de Redes (2020.1)

10

¨ Uma PM modela uma instância de comunicação, um único fluxo.¨ Frequentemente o serviço de suporte assim como o usuário de uma PM

são também PMs.¤ A (N+1)-PM usa a (N)-PM¤ A (N-1)-PM é usada pela (N)-PM

¨ Tipo de Máquina de Protocolo (PMT): todas as PMs de um protocolo particular num dado sistema.

¨ Em geral, um sistema terá mais do que uma PMT para cada protocolo

Protocolos

Arquiteturas de Redes (2020.1)

11

¨ Simétricos:¤ Comportamento das PMs comunicantes é o mesmo

¨ Assimétricos:¤ PMs comunicantes têm comportamentos distintos¤ Subcasos:

n Usuário/servidorn Cliente/servidorn Mestre/escravo

Associações, Conexões, Fluxos e Ligações

Arquiteturas de Redes (2020.1)

12

¨ Dado que os sistemas não compartilham estado (i.e., memória), uma PM deve ser capaz de notificar a outra de mudanças importantes no estado.

¨ Isto é realizado através da troca de informações finitas.¨ Esta troca contínua de informações entre as PMs cria um “campo” fraco ou

ligação entre as PMs.¨ Tipos de ligações:

¤ Mínima: não necessita de troca de atualizações¤ Fraca: alguma dependência mas não é afetada caso algumas atualizações sejam

perdidas¤ Forte: requer que as atualizações sejam recebidas para evitar comportamentos

patológicos.

Associações, Conexões, Fluxos e Ligações

Arquiteturas de Redes (2020.1)

13

¨ Uma associação representa um estado de compartilhamento e acoplamento mínimos, frequentemente associado com comunicação sem conexões.

¨ Um fluxo possui mais estado compartilhado mas não fortemente acoplado (sem realimentação).

¨ Uma conexão possui um estado compartilhado fortemente acoplado (com realimentação), como nos protocolos de transporte fim-a-fim.

¨ Uma ligação (binding) possui um estado compartilhado mais fortemente acoplado, caracterizado geralmente por memória compartilhada.

Interfaces

Arquiteturas de Redes (2020.1)

14

¨ Um protocolo não existe por si só.¨ O usuário é uma FSM acima e que deve se comunicar com a PM para

coordenar os seus comportamentos.¨ A interface seria a fronteira do usuário com a PM.

¨ Em telecomunicações “interface” é um protocolo entre tipos de sistemas onde um deles é de propriedade da rede.

Interfaces

Arquiteturas de Redes (2020.1)

15

¨ Troca de informações em um mesmo sistema.¨ Maior acoplamento do que em uma conexão!¨ Esta troca entre FSMs é frequentemente referenciado como sendo uma

Interface de Programação de Aplicação (API).

Relação de uma (N)-PM com outras PMs

Arquiteturas de Redes (2020.1)

16

Unidades de Dados

Arquiteturas de Redes (2020.1)

17

¨ Para que haja a comunicação é necessária uma troca de informações.

¨ Quadros (frames), células (cell), pacote, segmento, mensagem, etc.

¨ Termos diferentes para o mesmo conceito. Chamaremos simplesmente de PDU (Protocol Data Unit)

Unidades de dados x Instruções de Processadores

Arquiteturas de Redes (2020.1)

18

¨ Semelhança: As instruções (PDUs) executam operações no estado do processador (PM) baseado nos parâmetros da instrução (PCI) e no estado do processador (PM).

¨ Diferença: ao contrário das instruções que carregam um ponteiro (endereço) para os dados sobre os quais opera, as PDUs devem carregar os seus próprios dados.

Tamanho das PDUs

Arquiteturas de Redes (2020.1)

19

¨ As PDUs podem ou não conter dados do usuário.¨ Não há limites arquiteturais ao tamanho das PDUs.¨ Considerações de Engenharia que impõem limites:

¤ Em protocolos que operam em ambientes “ruidosos”, uma PDU pequena aumenta a probabilidade de que seja recebida sem erros (menor overheadde retransmissões).

¤ Em uma rede de sensores de tempo real, os sistemas podem ter espaço muito limitado de buffer, de modo que pode ser necessário usar PDUsmenores.

Cabeçalhos

Arquiteturas de Redes (2020.1)

20

¨ A maior parte das PCIs são contidas no cabeçalho.¨ Muitos campos dos protocolos de transferência de dados têm

comprimento fixo para facilitar o processamento.¨ Normalmente os campos de comprimento fixo antecedem os campos

de comprimento variável.¨ É fortemente recomendado o uso de um campo que forneça o

comprimento total da PDU.

Conteúdo dos Cabeçalhos

Arquiteturas de Redes (2020.1)

21

¨ Todo cabeçalho deve ter:¤ Identificador do protocolo¤ Versão do protocolo¤ Campo que indique a função da PDU¤ Campo que codifique a ação associada à PDU

n Codificação horizontal (bits de controle, como no TCP) ou vertical (opcode)n Geralmente, opcodes são recomendados por questões de eficiência.

Caudas

Arquiteturas de Redes (2020.1)

22

¨ As PDUs de alguns protocolos têm uma cauda.¨ O mais comum é usá-la para transportar o CRC (Cyclic Redundancy Code).¨ Geralmente usado em protocolos que operam próximo ao meio físico, pois

estando a PDU na memória não há muitas vantagens em ter uma cauda.¨ Orientações para o uso de cauda:

¤ A informação contida na cauda não é conhecida no instante em que o cabeçalho é criado; é uma função do cabeçalho e dos dados do usuário;

¤ O tempo de processamento da PDU é muito menor do que o tempo necessário para a transmissão ou recepção da PDU.

A Natureza da Fronteira de Serviço

Arquiteturas de Redes (2020.1)

23

¨ SDU (Service Data Unit): unidade de dados entregue à PM pela (N+1)-PM através da fronteira de serviço.

¨ Deixamos o termo interface para o caso específico de uma dada implementação (ex: interface Unix ou Windows).

¨ A SDU contém apenas dados do usuário.¨ A primitiva de serviço invocada para passar a SDU para a PM

passará também outros parâmetros para manipulação da SDU (ex.: port-id)

Segmentação da SDU

Arquiteturas de Redes (2020.1)

24

¨ A PM pode ter que segmentar a SDU em diversas PDUs, ou agregar diversas SDUs numa única PDU, dado que o tamanho da PDU é um tamanho conveniente para os requisitos do protocolo (N).

¨ Esta nomenclatura é baseada no Modelo de Referência OSI, não por apoiá-lo, mas porque é uma nomenclatura existente que define termos comuns. Não havendo necessidade de reinventar a roda!

Stream x Registro

Arquiteturas de Redes (2020.1)

25

¨ Dado que a SDU pode ter sido fragmentada ou concatenada no seu trajeto, o que a (N)-PM deve entregar à (N+1)-PM remota? Aquilo que foi enviado ou aquilo que foi recebido?

¨ Modos stream e registro:¤ Discussão derivada de práticas de sistemas operacionais.¤ Os mainframes antigos operavam com registros de comprimento fixo.¤ Sistemas mais modernos (Multics, UNIX) se comunicavam com uma cadeia de bytes.¤ O Modo stream foi considerado uma abordagem mais flexível e elegante,

garantindo uma maior independência entre as camadas.¤ No modo stream o protocolo (N+1) deve ter um mecanismo de delimitação pois

não pode se basear na camada abaixo para lhe dizer onde se encontra o início e o fim de uma PDU.

Generalização do Modo Registro

Arquiteturas de Redes (2020.1)

26

¨ Terceira abordagem.¨ As SDUs não têm comprimento fixo.¨ A identidade das SDUs são mantidas entre o usuário transmissor e o

receptor.¨ Como nunca foi batizado, vamos chamá-lo de modo idempotente (em

relação à manutenção da identidade da SDU).¨ A camada (N) entrega SDUs na forma que as recebeu. Ou seja, se ele teve

que fragmentar a SDU, é sua responsabilidade, remontá-la antes de entregar à (N+1)-PM.

¨ Boa prática de Engenharia de Software.

Segmentação e Remontagem

Arquiteturas de Redes (2020.1)

27

¨ Para o sistema não importa muito em que camada é feito: o trabalho é praticamente o mesmo.

¨ Um stream é simplesmente uma SDU muito longa!

Construindo um Protocolo

Arquiteturas de Redes (2020.1)

28

¨ Uma PM deve interpretar quatro entradas:¤ Interações com a interface superior¤ PDUs da(s) PMs parceiras¤ Interações com o sistema local¤ Interações com a interface inferior

¨ Todas estas podem ser consideradas equivalentes a procedimentos ou chamadas de sistema da seguinte forma:¤ <nome do procedimento>(<param 1>,<param i>*)

¨ Analogamente:¤ <tipo da PDU>(<elemento da PCI>,<elemento da PCI>*, dados-do-usuário)

Modelo mais detalhado de uma PM

Arquiteturas de Redes (2020.1)

29

Mecanismo e Política

¨ Modelo para a separação entre o mecanismo e a política.

¨ Um protocolo é composto por um conjunto de funções que realizam os requisitos básicos daquele protocolo.

¨ A escolha das funções é feita baseada na região de operação para a qual o protocolo é criado e o nível de serviço desejado como resultado da sua operação.

30

Arquiteturas de Redes (2020.1)

Mecanismo e Política

Arquiteturas de Redes (2020.1)

31

¨ Mecanismos são estáticos e não mudam após a especificação do protocolo.¤ Ex.: ordem de interpretação dos campos de um (N)-PCI

¨ Tipos de políticas em geral aparecem em pares:¤ Política de transmissão e política de recepção¤ Detecção de erros:

n a política de transmissão calcula o polinômio e o mecanismo o insere na PDUn A política de recepção calcula o polinômio de uma PDU entrante, e o mecanismo

compara o resultado com o campo no PCI.

¨ Exceções: políticas de inicialização, associadas a temporizadores, etc.

Coordenação entre os Mecanismos

Arquiteturas de Redes (2020.1)

32

¨ Através da troca de campos de informação específicos na (N)-PCI.

¨ Uma única PDU pode transportar campos para diversos mecanismos na (N)-PCI.

Um mecanismo e diversas Políticas

Arquiteturas de Redes (2020.1)

33

¨ Mecanismo de controle de fluxo de janela deslizante.¨ A janela deslizante faz parte da especificação do protocolo.

¤ Após a especificação este mecanismo não é modificado.

¨ Diversas políticas para o controle de fluxo:¤ Estender o crédito ao receber uma PDU¤ Envio periódico de novo crédito

¨ Políticas diferentes podem ser usadas para conexões diferentes ao mesmo tempo.

Mecanismos e Políticas

Arquiteturas de Redes (2020.1)

34

¨ Reconhecimento é um mecanismo, mas quando enviar um ack é política.

¨ Os protocolos devem incluir um mecanismo para especificar ou negociar a política para todos os mecanismos durante a sincronização ou estabelecimento.

¨ Geralmente mudar a política durante a fase de transferência de dados requer sincronização que é essencialmente equivalente ao estabelecimento de um novo fluxo ou conexão.

Escolha da Política

Arquiteturas de Redes (2020.1)

35

¨ A escolha da política depende das características do tráfego da associação (N-1) e da qualidade de serviço (QoS) requerida pelo usuário.

¨ A tarefa da (N)-PM é traduzir estas características de QoSrequeridas pela (N+1)-PM numa escolha particular de mecanismos e políticas baseadas no serviço da (N-1)-PM.

¨ Protocolos próximos ao meio possuem políticas dominadas pelas características do meio, enquanto que protocolos distantes do meio possuem uma maior variedade de políticas aplicáveis.

Mecanismos de “novos protocolos”

Arquiteturas de Redes (2020.1)

36

¨ Nenhum novo mecanismo foi proposto em aproximadamente 25 anos.¨ Mudanças consistiram basicamente em rearranjo de cabeçalhos e

velhos mecanismos com políticas diferentes.¨ Os mecanismos de um protocolo são fixados em tempo de

especificação, enquanto que as políticas selecionadas são adiadas até a sincronização ou estabelecimento.

Mecanismos e Políticas

Arquiteturas de Redes (2020.1)

37

¨ Os mecanismos são fixos, mas uma política apropriada pode torná-los nulos.

¨ Exemplo:¤ Sempre se considerou necessário outro protocolo de transporte para voz.¤ Para voz, as PDUs devem ser ordenadas, mas podem se toleradas

pequenas falhas de sequência.¤ No entanto, não é necessário um novo protocolo. Basta modificar a política

de reconhecimento... e mentir! Não há nenhum requisito de dizer a verdade! Se a falha for pequena, envie um ack de qualquer modo, apesar de nem todos os dados terem sido recebidos.

Semânticas do Ack

Arquiteturas de Redes (2020.1)

38

¨ Um Ack não significa, como se pensa, “Eu recebi”.¨ Significa: “Eu não vou pedir uma retransmissão” ou “Estou satisfeito

com o que recebi”!¨ Neste livro o que é chamado em outros protocolos como “mecanismo

de reconhecimento” aqui é referenciado como “controle de retransmissão”.

QoS versus NoS

Arquiteturas de Redes (2020.1)

39

¨ QoS = Qualidade de Serviço¤ Conjunto de características desejadas para a comunicação tais como:

largura de banda, atraso, taxa de erros, jitter, etc.¤ Diversos parâmetros foram especificados, mas “quando um parâmetro de

QoS é alterado, que políticas do protocolo mudam e por que?”. Normalmente a resposta é “nenhum”!

¤ Causas:n Qualquer mudança de política que afete o parâmetro seria uma questão de

gerenciamento de recursos (considerado um domínio da implementação)n Atraso: um protocolo pode minimizar piorar o atraso mas não pode fazer nada

para melhorá-lo. Parâmetros deste tipo são chamados de NoS (Nature of Service).

QoS e NoS

Arquiteturas de Redes (2020.1)

40

¨ NoS:¤ Parâmetros determinados em grande parte pela “natureza”.¤ Podemos ser capazes de evitar piorá-los, mas há pouco ou nada que possa ser

feito para melhorá-lo!

¨ QoS representa um conjunto de características que uma (N+1)-PM deseja de uma (N)-PM para uma instância particular de comunicação.

¨ NoS representa o conjunto de características que uma (N-1)-PM provê realmente e provavelmente será capaz de prover no futuro.

¨ A (N)-PM usa a diferença entre a QoS e a NoS para selecionar o protocolo, mecanismos e políticas para casar o desejo com a realidade.

Alguns Mecanismos de Transferência de Dados41

Arquiteturas de Redes (2020.1)

Roteiro

¨ Delimitação¨ Sincronização do Estado Inicial¨ Seleção de Política¨ Endereçamento¨ Identificação de Fluxo ou Conexão¨ Repasse (Relaying)¨ Multiplexação¨ Ordenação¨ Fragmentação/Remontagem¨ Combinação/Separação

¨ Corrupção dos Dados¨ Detecção de Perdas e Duplicatas¨ Controle de Fluxo¨ Controle de Retransmissão ou

Reconhecimento¨ Compressão¨ Autenticação¨ Controle de Acesso¨ Integridade¨ Confidencialidade¨ Não repúdio¨ Atividade

42

Arquiteturas de Redes (2020.1)

Delimitação

Arquiteturas de Redes (2020.1)

43

¨ Mecanismo usado para indicar o início e o fim de uma PDU.¨ Métodos básicos: delimitação externa e interna.¨ Delimitação externa:

¤ Padrão especial de bits (sequência de flag)n Transparência garantida com mecanismo de “escape”.

¤ Uso da camada inferior para delimitar a PDU:n Campo de comprimento na (N-1)-PCIn Codificação de bits na camada física (Ex.: Codificação de Manchester para

delimitação de quadros MAC no Ethernet)

Delimitação

Arquiteturas de Redes (2020.1)

44

¨ Delimitação Interna:¤ A PDU contém um campo de comprimento como um elemento da PCI.

Sincronização do Estado Inicial

Arquiteturas de Redes (2020.1)

45

¨ Inicialização do estado compartilhado das PMs antes do início da transferência de dados.

¨ Mecanismos:1. Criação de associações locais com as PMs vizinhas, (N+1)-PM e a (N-1)-PM; sem troca

de PDUs. Usada por protocolos que requerem estado compartilhado mínimo (comunicações sem conexão, ex.: UDP).

2. O anterior mais a troca de PDUs de pedido e resposta, apresentação em duas vias (two-way handshake) usado por protocolos que não possuem mecanismos de realimentação. Ex.: HDLC, X.25, aplicações)

3. Anterior mais um ack do iniciador quando chega a resposta, apresentação em três vias (three-way handshake) usado por protocolos com realimentação (Ex.: TCP)

4. Mecanismo simples baseado em temporizador limitando o tempo de vida máximo de uma PDU: tempo máximo que o transmissor tentará reenviar a PDU, e tempo máximo que o receptor esperará antes de enviar o reconhecimento.

Seleção de Política

Arquiteturas de Redes (2020.1)

46

¨ Este mecanismo permite:¤ a seleção de política durante a alocação e ¤ a mudança de políticas durante a transferência de dados em certas

circunstâncias.

¨ Exemplos de protocolos:¤ HDLC: é possível escolher diversas opções.

Endereçamento

Arquiteturas de Redes (2020.1)

47

¨ Protocolos que operam em ambientes com múltiplo acesso devem conter alguma forma de identificar a origem e o destino das PDUs.

¨ Isto é feito incluindo campos de endereços no PCI.¨ Os endereços devem ser grandes o suficiente para nomear todos os

elementos que podem se comunicar sem depender da camada superior.

Identificação de Fluxo ou Conexão

Arquiteturas de Redes (2020.1)

48

¨ Protocolos que suportam múltiplas instâncias de comunicação (i.e., associações, fluxos ou conexões entre as mesmas duas estações) também requerem um identificador de conexão ou de fluxo.

¨ Tradicionalmente isto é feito usando “port-ids”.¨ Se estes identificadores forem únicos a toda a camada e não apenas

ao protocolo, então podem ser usados para multiplexar fluxos de múltiplos protocolos.

Repasse (Relaying)

Arquiteturas de Redes (2020.1)

49

¨ Muitas redes não são malhas completamente conectadas.¨ Portanto, alguns protocolos repassam uma PDU de uma PM para a

próxima.¨ É preciso incluir na PCI um elemento que contenha o endereço do destino.

Em muitos casos, ele contém também o endereço da origem.¨ Quando uma PDU chega, o mecanismo de repasse inspeciona o endereço e

determina se ela está endereçada a uma de suas (N+1)-PMs.¤ Em caso afirmativo, ela é entregue à (N+1)-PM correspondente.¤ Em caso negativo, ele determina qual (N-1)-PM pode levar a PDU o mais próximo

possível ao destino. Isto é conhecido como encaminhamento (forwarding).

Multiplexação

Arquiteturas de Redes (2020.1)

50

¨ É o mapeamento de fluxos de (N)-PMs em fluxos de (N-1)-PMs.

Ordenação

Arquiteturas de Redes (2020.1)

51

¨ Muitos (mas não todos) protocolos assumem uma ordenação simples:¤ As PDUs chegam na mesma ordem em que foram enviadas.

¨ No entanto, alguns serviços de comunicação não garantem esta propriedade.

¨ Este mecanismo é implementado incluindo um número de sequência com um elemento da PCI que é incrementado em:¤ unidades de bytes (octetos) de acordo com o comprimento dos dados do usuário

na PDU¤ Unidades de PDUs

¨ Que permitem que as PDUs sejam reordenadas no receptor.

Fragmentação/Remontagem

Arquiteturas de Redes (2020.1)

52

¨ Restrições práticas frequentemente requerem que SDUs e dados do usuário sejam fragmentados em PDUs menores para transmissão e depois sejam remontadas no outro lado.

¨ Elementos na PCI:¤ Bit que indica se este é o último fragmento¤ Número de sequência¤ Número de fragmentos¤ Campo de comprimento da PDU (também usado para delimitação e

detecção de corrupção dos dados)

Combinação/Separação

Arquiteturas de Redes (2020.1)

53

¨ Busca de eficiência combinando SDUs em uma única PDU.¨ Técnicas usadas:

¤ SDUs de comprimento fixo¤ Cadeia de campos de comprimento

Detecção de Corrupção dos Dados

Arquiteturas de Redes (2020.1)

54

¨ O conteúdo de uma PDU pode ser corrompido durante a transmissão.¨ Mecanismos para lidar com o problema:

¤ Uso de uma soma de verificação ou CRC para detectar a corrupção:n O código é calculado sobre a PDU recebida. Se falhar a PDU é descartada e

algum outro mecanismo garante a retransmissão

¤ Uso de código corretor de erro.n FEC (Forward Error Correcting code) pode detectar e corrigir alguns erros, evitando

o descarte da PDU.

Corrupção dos Dados: Escolha dos Códigos

Arquiteturas de Redes (2020.1)

55

¨ Dependem da natureza do ambiente do erro:¤ Protocolos próximos ao meio elétrico são mais sujeitos a erros em rajadas e,

portanto, requerem códigos que possam detectar rajadas de erros.¤ O meio óptico possui características distintas de erros e, portanto, requerem um

tipo diferente de código.¤ Protocolos distantes do meio têm maior probabilidade de encontrar erros de um

único bit (falha de memória) e, portanto, usam códigos de erros apropriados.

¨ Devem ser considerados:¤ Análise de erros tanto do protocolo como do ambiente operacional.¤ Efeito do tamanho da PDU na força do polinômio.

Detecção de Perdas e Duplicatas

Arquiteturas de Redes (2020.1)

56

¨ Congestionamento ou PDUs com erro levam ao descarte.¨ Como elas devem ser retransmitidas, pode levar à geração de

duplicatas.¨ O número de sequência (no PCI) usado para ordenação é também

usado para a detecção de perda ou duplicata.¨ Diante de perdas, pode ser acionado o controle de retransmissões.¨ Duplicatas são descartadas.

Controle de Fluxo

Arquiteturas de Redes (2020.1)

57

¨ Usado para evitar que o transmissor envie dados mais rapidamente do que o destino pode recebê-los.

¨ Formas básicas de controle de fluxo:¤ Esquema de créditos:

n O destino diz ao receptor quantas mensagens pode enviar antes de receber mais créditos (frequentemente associado ao mecanismo de reconhecimento).

¤ Esquema de taxas:n O destino indica ao transmissor a que taxa ele pode enviar os dados.

Controle de Retransmissão ou Reconhecimento

Arquiteturas de Redes (2020.1)

58

¨ Usado pelo destino para dizer ao transmissor que PDUs foram recebidas com sucesso.

¨ Esquema prevalente inclui como elemento da PCI um número de sequência que indica que todas as PDUs com números de sequência inferiores ao mesmo foram recebidas.

¨ Se o transmissor não receber um ack para um dado número de sequência após um determinado período de tempo, ele automaticamente retransmite todas as PDUs até a última PDU enviada.

Controle de Retransmissão ou Reconhecimento

Arquiteturas de Redes (2020.1)

59

¨ Quando um ack é recebido, o transmissor pode deletar PDUs com números de sequência inferiores, de sua lista de potenciais retransmissões.

¨ Para ambientes com grandes valores do produto largura de banda-atraso, é usado um mecanismo mais complexo de ack seletivo ou reconhecimento negativo (nack), para informar ao transmissor de erros específicos, limitando assim o número de PDUs retransmitidas.

¨ Retransmissões podem provocar atrasos inaceitáveis.

Mecanismo de Janela Deslizante

Arquiteturas de Redes (2020.1)

60

¨ Diversos mecanismos usam os números de sequência das PDUs:¤ Controles de perda e duplicação, controle de fluxo, controle de

retransmissões.¨ Janela Deslizante:

¤ Transmissor e Receptor mantêm uma janela deslizante baseada nos números de sequência das PDUs que eles transmitem e recebem.

¤ O limite mais à esquerda representa a última PDU reconhecida ou da qual se recebeu um reconhecimento.

¤ A largura da janela corresponde à quantidade de crédito fornecido pelo controle de fluxo.

Mecanismo de Janela Deslizante

Arquiteturas de Redes (2020.1)

61

¨ A largura da janela do transmissor representa o número de PDUs ou de octetos que podem ser enviados.

¨ A largura da janela de recepção corresponde ao número de PDUs ou octetos que o receptor espera receber antes que o crédito expire...¤ Qualquer PDU fora da janela é descartada.¤ Qualquer PDU com um número de sequência inferior à da borda esquerda

é uma duplicata e será descartada.¨ A borda direita é o maior número de sequência que o transmissor

pode transmitir (antes de receber mais crédito) ou que o receptor pode receber.

Mecanismo de Janela Deslizante

Arquiteturas de Redes (2020.1)

62

¨ O mecanismo de retransmissão modifica apenas a borda esquerda da janela.¤ [Na verdade a borda esquerda avança apenas com a recepção de novos

reconhecimentos!]

¨ O controle de fluxo modifica apenas a borda direita da janela.¤ [Altera a largura da janela que afeta a borda direita em função do valor

atual da borda esquerda...]

¨ Qualquer ligação entre os dois é feito através da política.

Compressão

Arquiteturas de Redes (2020.1)

63

¨ Usado para melhorar a eficiência da transmissão aplicando compressão de dados aos dados do usuário.

¨ A política deste mecanismo seleciona o algoritmo de compressão a ser utilizado.

Autenticação

Arquiteturas de Redes (2020.1)

64

¨ Usado para que o destino autentique a identidade da origem.¨ A política associada determina o algoritmo particular de autenticação

a ser usado.¨ Técnicas de criptografia são geralmente empregadas para prover

maior confiança na troca.

Controle de Acesso

Arquiteturas de Redes (2020.1)

65

¨ Usado para prevenir o uso não autorizado de recursos.¨ Em geral, o controle de acesso é realizado apenas após a

autenticação.

Integridade

Arquiteturas de Redes (2020.1)

66

¨ Provê proteção contra a inserção ou descarte de PDUs de forma não autorizada.

¨ Maior integridade do que as fornecidas pelos mecanismos de:¤ Detecção de corrupção dos dados¤ Detecção de perdas ou duplicatas

¨ Políticas: algoritmos de criptografia e tamanho da chave associada.

Confidencialidade

Arquiteturas de Redes (2020.1)

67

¨ Tenta garantir que o conteúdo dos dados do usuário transportado em PDUs ou toda as PDUs de uma comunicação não sejam divulgados para processos ou pessoas não autorizadas.

¨ Políticas: algoritmos de criptografia e tamanho da chave associada.

Não repúdio

Arquiteturas de Redes (2020.1)

68

¨ Tenta garantir que nenhum processo que tenha participado de uma interação possa negar ter participado na mesma.

¨ Normalmente são usados métodos criptográficos para implementar este mecanismo.

Atividade (keepalive)

Arquiteturas de Redes (2020.1)

69

¨ Usado em conexões que passam longos períodos sem tráfego.¨ Permite que os correspondentes determinem que seus parceiros ainda

estão lá em um estado consistente.¨ Política: frequência ou condições para invocar o mecanismo.

Fases da Operação70

Arquiteturas de Redes (2020.1)

Fase da Operação

Arquiteturas de Redes (2020.1)

71

1. Registro2. Estabelecimento ou sincronização3. Transferência de dados

¨ Devem ser executados procedimentos associados com estas três fases tanto pelos transmissores como pelos receptores, mesmo que nenhuma PDU seja trocada.

¨ Devem ser realizadas na ordem indicada.

A fase de Registro

Arquiteturas de Redes (2020.1)

72

¨ Esta fase cria, mantém, distribui e deleta a informação dentro de uma camada que é necessária para criar instâncias da comunicação.

¨ Esta fase torna um objeto e suas funções conhecidas da rede.¨ Informações de endereçamento são inicializadas nos diretórios

apropriados (e tabelas de roteamento).¨ Parâmetros são inicializados que caracterizam a comunicação na qual

este protocolo pode participar.¨ São estabelecidas regras de controle de acesso.¨ São fixados limites da política, etc.

A fase de Registro

Arquiteturas de Redes (2020.1)

73

¨ Esta fase sempre esteve presente mas era frequentemente ignorada por que fazia parte de uma configuração inicial confusa (e frequentemente manual).

¨ Quando as PMs são criadas na fase de estabelecimento, herdarão o conjunto de atributos associados com seus protocolos que foram gravadas durante a fase de registro.

A fase de Registro

Arquiteturas de Redes (2020.1)

74

¨ Operação de Registro: inclui as informações necessárias para criar uma instância disponível dentro da rede.

¨ A informação está disponível apenas para sistemas dentro do escopo deste protocolo e da sua camada.

¨ Operação de cancelamento (deregistration): deleta o registro do protocolo da rede. Em geral deve esperar até que todas as instâncias tenham saído da fase de alocação; ou seja, que não haja fluxos ativos.

Ativação/desativação

Arquiteturas de Redes (2020.1)

75

¨ Operação tradicional de “desligar” um recurso sem deletar do sistema o conhecimento de que ele existe.

Exemplos de Registro

Arquiteturas de Redes (2020.1)

76

¨ Até o momento, muitas arquiteturas dependeram de procedimentos ad hoc para o registro.

¨ Efetuados através:¤ Gerência de rede (estabelecendo circuitos virtuais permanentes).¤ Padrão que define soquetes “bem conhecidos”.¤ DHCP¤ Atribuição de endereços MAC¤ Gerenciamento de chaves

¨ Com o surgimento e uso de protocolos de diretório e protocolos de atribuição de endereços, a fase de registro está se tornando menos ad hoc e muito mais uma fase regular automatizada.

A fase de Estabelecimento ou Sincronização

Arquiteturas de Redes (2020.1)

77

¨ Esta fase cria, mantém e deleta o estado compartilhado necessário para dar suporte às funções da fase de transferência de dados.

¨ A fase de sincronização garante que as PMs tenham inicialmente um estado consistente (não necessariamente o mesmo) de informação.

¨ Exemplos:¤ Ligações entre a (N+1)-PM e a (N)-PM (sem conexão)¤ Troca inicial de informações de estado para sincronizar o estado entre duas

PMs (conexão)

A fase de Estabelecimento ou Sincronização

Arquiteturas de Redes (2020.1)

78

¨ É nesta fase que a solicitação de QoS específica aceitável para o usuário para a transferência de dados é feita (ou modificada) se não tiver sido fixada na fase de registro.

¨ Classes abrangentes de protocolos:¤ Na faixa (in-band): mesmo protocolo para as fases de sincronização e

transferência de dados¤ Fora da faixa (out-of-band): protocolos distintos para as fases de

sincronização e transferência de dados

A Fase de Transferência de Dados

Arquiteturas de Redes (2020.1)

79

¨ Entra-se nesta fase quando a transferência de dados real é realizada de acordo com a QoS solicitada entre os endereços especificados durante uma das duas fases anteriores.

¨ Para os protocolos de aplicação, esta fase pode ser subdividida em subfases especializadas.