Princípio de ponta a ponta - End-to-end principle

O princípio de ponta a ponta é uma estrutura de projeto em redes de computadores . Em redes projetadas de acordo com esse princípio, os recursos específicos do aplicativo residem nos nós finais de comunicação da rede, em vez de nos nós intermediários, como gateways e roteadores , que existem para estabelecer a rede.

A essência do que mais tarde seria chamado de princípio de ponta a ponta estava contida no trabalho de Paul Baran e Donald Davies sobre redes comutadas por pacotes na década de 1960. Louis Pouzin foi o pioneiro no uso da estratégia ponta a ponta na rede CYCLADES na década de 1970. O princípio foi articulado explicitamente pela primeira vez em 1981 por Saltzer , Reed e Clark . O significado do princípio de ponta a ponta tem sido continuamente reinterpretado, desde sua articulação inicial. Além disso, formulações notáveis ​​do princípio de ponta a ponta podem ser encontradas antes do artigo seminal de Saltzer, Reed e Clark de 1981.

Uma premissa básica do princípio é que os benefícios da adição de recursos a uma rede simples diminuem rapidamente, especialmente nos casos em que os hosts finais precisam implementar essas funções apenas por razões de conformidade, ou seja, integridade e exatidão com base em uma especificação. A implementação de uma função específica incorre em algumas penalidades de recursos, independentemente de a função ser usada ou não, e a implementação de uma função específica na rede distribui essas penalidades entre todos os clientes.

Conceito

De acordo com o princípio ponta a ponta, a rede é responsável apenas por fornecer conexões aos terminais. Qualquer tipo de inteligência deve estar localizada nos terminais.

A noção fundamental por trás do princípio ponta a ponta é que, para dois processos que se comunicam entre si por meio de algum meio de comunicação, não se pode esperar que a confiabilidade obtida a partir desse meio esteja perfeitamente alinhada com os requisitos de confiabilidade dos processos. Em particular, atender ou exceder os requisitos de confiabilidade muito alta de processos de comunicação separados por redes de tamanho não trivial é mais caro do que obter o grau de confiabilidade necessário por confirmações e retransmissões de ponta a ponta positivas (referidas como PAR ou ARQ ). Em outras palavras, é muito mais fácil obter confiabilidade além de uma certa margem por mecanismos nos hosts finais de uma rede, em vez de nos nós intermediários , especialmente quando os últimos estão além do controle e não prestam contas aos primeiros. Confirmações ponta a ponta positivas com tentativas infinitas podem obter confiabilidade arbitrariamente alta de qualquer rede com uma probabilidade maior que zero de transmitir dados com sucesso de uma ponta a outra.

O princípio ponta a ponta não se estende trivialmente a funções além do controle e correção de erros ponta a ponta. Por exemplo, nenhum argumento direto de ponta a ponta pode ser feito para parâmetros de comunicação, como latência e taxa de transferência . Em um artigo de 2001, Blumenthal e Clark observam: "[D] desde o início, os argumentos ponta a ponta giravam em torno de requisitos que poderiam ser implementados corretamente nos terminais; se a implementação dentro da rede for a única maneira de cumprir o requisito , então, um argumento de ponta a ponta não é apropriado em primeiro lugar. "

O princípio ponta a ponta está intimamente relacionado, e às vezes visto como um precursor direto, ao princípio da neutralidade da rede .

História

Na década de 1960, Paul Baran e Donald Davies , em suas elaborações pré- ARPANET de rede, fizeram breves comentários sobre a confiabilidade que capturam a essência do último princípio de ponta a ponta. Para citar um artigo de Baran de 1964, "A confiabilidade e as taxas de erros brutos são secundárias. A rede deve ser construída com a expectativa de danos pesados ​​de qualquer maneira. Existem métodos poderosos de remoção de erros." Da mesma forma, Davies observa sobre o controle de erros de ponta a ponta, "Pensa-se que todos os usuários da rede irão fornecer a si próprios algum tipo de controle de erros e que, sem dificuldade, isso poderia ser feito para mostrar um pacote ausente. Por causa disso , a perda de pacotes, se for suficientemente rara, pode ser tolerada. "

A ARPANET foi a primeira rede de comutação de pacotes de uso geral em grande escala - implementando várias das noções básicas abordadas anteriormente por Baran e Davies.

Davies havia trabalhado na simulação de redes de datagramas . Partindo desta ideia, a rede CYCLADES de Louis Pouzin foi a primeira a responsabilizar os hosts pela entrega fiável dos dados, em vez de ser um serviço centralizado da própria rede. Os conceitos desta rede influenciaram a arquitetura ARPANET posterior.

Formulários

ARPANET

A ARPANET demonstrou vários aspectos importantes do princípio de ponta a ponta.

A comutação de pacotes empurra algumas funções lógicas para os terminais de comunicação
Se a premissa básica de uma rede distribuída é a comutação de pacotes, então funções como reordenamento e detecção de duplicados inevitavelmente devem ser implementadas nos terminais lógicos de tal rede. Consequentemente, a ARPANET apresentava dois níveis distintos de funcionalidade:
  1. um nível inferior preocupado com o transporte de pacotes de dados entre nós de rede vizinhos (chamados de Interface Message Processors ou IMPs), e
  2. um nível mais alto preocupado com vários aspectos ponta a ponta da transmissão de dados.
Dave Clark, um dos autores do artigo do princípio de ponta a ponta, conclui: "A descoberta de pacotes não é uma consequência do argumento de ponta a ponta. É o sucesso dos pacotes que faz a argumento final relevante. "
Nenhuma transferência de dados arbitrariamente confiável sem reconhecimento de ponta a ponta e mecanismos de retransmissão
A ARPANET foi projetada para fornecer transporte de dados confiável entre quaisquer dois pontos de extremidade da rede - muito parecido com um canal de E / S simples entre um computador e um dispositivo periférico próximo. A fim de remediar quaisquer falhas potenciais de transmissão de pacotes, mensagens ARPANET normais foram passadas de um nó para o próximo nó com um esquema de confirmação e retransmissão positivo; após uma transferência bem-sucedida, eles eram então descartados, nenhuma retransmissão de origem para destino em caso de perda de pacotes era atendida. No entanto, apesar dos esforços significativos, a confiabilidade perfeita prevista na especificação ARPANET inicial acabou sendo impossível de fornecer - uma realidade que se tornou cada vez mais óbvia quando a ARPANET cresceu muito além de sua topologia inicial de quatro nós. A ARPANET, portanto, forneceu um forte caso para os limites inerentes dos mecanismos de confiabilidade salto a salto baseados em rede em busca da verdadeira confiabilidade ponta a ponta.
Troca entre confiabilidade, latência e capacidade
A busca da confiabilidade perfeita pode prejudicar outros parâmetros relevantes de uma transmissão de dados - mais importante, latência e taxa de transferência. Isso é particularmente importante para aplicativos que valorizam a taxa de transferência previsível e baixa latência sobre a confiabilidade - o exemplo clássico são os aplicativos de voz interativos em tempo real. Este caso de uso foi atendido na ARPANET, fornecendo um serviço de mensagem bruta que dispensou várias medidas de confiabilidade para fornecer um serviço de transmissão de dados mais rápido e de menor latência para os hosts finais.

TCP / IP

O protocolo da Internet (IP) é um serviço de datagrama sem conexão e sem garantias de entrega . Na Internet, o IP é usado para quase todas as comunicações. O reconhecimento e a retransmissão de ponta a ponta são responsabilidade do Transmission Control Protocol (TCP) orientado à conexão, que fica no topo do IP. A divisão funcional entre IP e TCP exemplifica a aplicação adequada do princípio de ponta a ponta ao projeto de protocolo de transporte.

Transferência de arquivo

Um exemplo do princípio de ponta a ponta é o de uma transferência de arquivo arbitrariamente confiável entre dois pontos de extremidade em uma rede distribuída de tamanho variável e não trivial: A única maneira de dois pontos de extremidade obterem uma transferência totalmente confiável é transmitindo e reconhecendo uma soma de verificação para todo o fluxo de dados; em tal configuração, protocolos de menor soma de verificação e confirmação ( ACK / NACK) são justificados apenas com o propósito de otimizar o desempenho - eles são úteis para a grande maioria dos clientes, mas não são suficientes para cumprir o requisito de confiabilidade deste aplicativo específico. Uma soma de verificação completa é, portanto, melhor realizada nos terminais, e a rede mantém um nível relativamente baixo de complexidade e desempenho razoável para todos os clientes.

Limitações

A limitação mais importante do princípio de ponta a ponta é que sua premissa básica, colocar funções nos terminais do aplicativo em vez de nos nós intermediários, não é trivial de implementar.

Um exemplo das limitações do princípio de ponta a ponta existe em dispositivos móveis, por exemplo, com IPv6 móvel . Empurrar a complexidade específica do serviço para os terminais pode causar problemas com dispositivos móveis se o dispositivo tiver acesso não confiável aos canais de rede.

Outros problemas podem ser vistos com uma diminuição na transparência da rede com a adição da tradução de endereços de rede (NAT), da qual o IPv4 depende para combater a exaustão de endereços . Com a introdução do IPv6 , os usuários mais uma vez têm identificadores exclusivos, permitindo a verdadeira conectividade ponta a ponta. Os identificadores únicos podem ser baseados em um endereço físico ou podem ser gerados aleatoriamente pelo host.

Veja também

Notas

Referências