Quais são os três requisitos definidos pelos protocolos usados nas comunicações de rede para possibilitar a transmissão da mensagem pela rede?

Um protocolo de comunicação é um sistema de regras que permite que duas ou mais entidades de um sistema de comunicação transmitam informações por meio de qualquer tipo de variação de uma quantidade física . O protocolo define as regras, sintaxe , semântica e sincronização de comunicação e possíveis métodos de recuperação de erros . Os protocolos podem ser implementados por hardware , software ou uma combinação de ambos. [1]

Os sistemas de comunicação usam formatos bem definidos para a troca de várias mensagens. Cada mensagem tem um significado exato com a intenção de obter uma resposta de uma gama de respostas possíveis pré-determinadas para aquela situação particular. O comportamento especificado é geralmente independente de como deve ser implementado . Os protocolos de comunicação devem ser acordados pelas partes envolvidas. [2] Para chegar a um acordo, um protocolo pode ser desenvolvido em um padrão técnico . Uma linguagem de programação descreve o mesmo para cálculos, então há uma analogia próxima entre protocolos e linguagens de programação: os protocolos estão para a comunicação o que as linguagens de programação estão para os cálculos . [3]Uma formulação alternativa afirma que os protocolos estão para a comunicação o que os algoritmos estão para a computação . [4]

Vários protocolos geralmente descrevem diferentes aspectos de uma única comunicação. Um grupo de protocolos projetados para trabalhar juntos é conhecido como um conjunto de protocolos; quando implementados no software, eles são uma pilha de protocolo .

Os protocolos de comunicação da Internet são publicados pela Internet Engineering Task Force (IETF). O IEEE (Instituto de Engenheiros Elétricos e Eletrônicos) lida com redes com e sem fio e a Organização Internacional para Padronização (ISO) lida com outros tipos. O ITU-T lida com protocolos e formatos de telecomunicações para a rede telefônica pública comutada (PSTN). Conforme a PSTN e a Internet convergem , os padrões também estão sendo direcionados para a convergência.

Sistemas de comunicação

História

Um dos primeiros usos do termo protocolo em um contexto de comutação de dados ocorre em um memorando intitulado Um Protocolo para Uso na Rede de Comunicações de Dados NPL escrito por Roger Scantlebury e Keith Bartlett em abril de 1967. [5] [6]

Na ARPANET , o ponto de partida para a comunicação host-a-host em 1969 foi o protocolo 1822 , que definia a transmissão de mensagens para um IMP. [7] O Programa de Controle de Rede para a ARPANET foi implementado pela primeira vez em 1970. [8] A interface NCP permitiu que o software aplicativo se conectasse através da ARPANET implementando protocolos de comunicação de nível superior , um exemplo inicial do conceito de camadas de protocolo . [9]

A pesquisa de rede no início dos anos 1970 por Robert E. Kahn e Vint Cerf levou à formulação do Programa de Controle de Transmissão (TCP). [10] Sua especificação RFC  675 foi escrita por Cerf com Yogen Dalal e Carl Sunshine em dezembro de 1974, ainda um projeto monolítico na época.

O International Networking Working Group concordou com um padrão de datagrama sem conexão que foi apresentado ao CCIT em 1975, mas não foi adotado pela ITU ou pela ARPANET. [11] Pesquisas internacionais, particularmente o trabalho de Rémi Després , contribuíram para o desenvolvimento do padrão X.25 , baseado em circuitos virtuais pelo ITU-T em 1976. [12] [13] Os fabricantes de computadores desenvolveram protocolos proprietários como os da IBM Arquitetura de rede de sistemas (SNA), DECnet da Digital Equipment Corporation e sistemas de rede Xerox . [14]

O software TCP foi reprojetado como uma pilha de protocolo modular. Originalmente referido como IP / TCP , foi instalado na SATNET em 1982 e na ARPANET em janeiro de 1983. O desenvolvimento de um pacote de protocolo completo em 1989, conforme descrito em RFC  1122 e A RFC  1123 estabeleceu a base para o crescimento do TCP / IP como um conjunto de protocolos abrangente como o componente principal da Internet emergente . [15]

Trabalhos internacionais em um modelo de referência para padrões de comunicação levaram ao modelo OSI , publicado em 1984. Por um período no final dos anos 1980 e início dos anos 1990, engenheiros, organizações e nações se tornaram polarizados sobre a questão de qual padrão , o modelo OSI ou a Internet conjunto de protocolos, resultaria nas melhores e mais robustas redes de computadores. [16] [17] [18]

Conceito

As informações trocadas entre dispositivos por meio de uma rede ou outra mídia são regidas por regras e convenções que podem ser definidas nas especificações do protocolo de comunicação. A natureza da comunicação, os dados reais trocados e quaisquer comportamentos dependentes do estado , são definidos por essas especificações. Em sistemas de computação digital, as regras podem ser expressas por algoritmos e estruturas de dados . Os protocolos estão para a comunicação o que algoritmos ou linguagens de programação estão para os cálculos. [3] [4]

Os sistemas operacionais geralmente contêm um conjunto de processos cooperativos que manipulam dados compartilhados para se comunicarem entre si. Essa comunicação é governada por protocolos bem conhecidos, que podem ser incorporados ao próprio código do processo. [19] [20] Em contraste, porque não há memória compartilhada , os sistemas de comunicação precisam se comunicar uns com os outros usando um meio de transmissão compartilhado . A transmissão não é necessariamente confiável e os sistemas individuais podem usar hardware ou sistemas operacionais diferentes.

Para implementar um protocolo de rede, os módulos de software do protocolo fazem interface com uma estrutura implementada no sistema operacional da máquina. Esta estrutura implementa a funcionalidade de rede do sistema operacional. [21] Quando algoritmos de protocolo são expressos em uma linguagem de programação portátil, o software de protocolo pode ser independente do sistema operacional . Os frameworks mais conhecidos são o modelo TCP / IP e o modelo OSI .

Na época em que a Internet foi desenvolvida, as camadas de abstração provaram ser uma abordagem de projeto bem-sucedida tanto para o projeto do compilador quanto do sistema operacional e, dadas as semelhanças entre as linguagens de programação e os protocolos de comunicação, os programas de rede originalmente monolíticos foram decompostos em protocolos cooperativos. [22] Isso deu origem ao conceito de protocolos em camadas que hoje em dia constituem a base do projeto de protocolo. [23]

Os sistemas normalmente não usam um único protocolo para lidar com uma transmissão. Em vez disso, eles usam um conjunto de protocolos cooperativos, às vezes chamado de conjunto de protocolos . [24] Alguns dos conjuntos de protocolos mais conhecidos são TCP / IP , IPX / SPX , X.25 , AX.25 e AppleTalk .

Os protocolos podem ser organizados com base na funcionalidade em grupos, por exemplo, existe um grupo de protocolos de transporte . As funcionalidades são mapeadas nas camadas, cada camada resolvendo uma classe distinta de problemas relacionados a, por exemplo: funções de aplicativo, transporte, internet e interface de rede. [25] Para transmitir uma mensagem, um protocolo deve ser selecionado de cada camada. A seleção do próximo protocolo é realizada estendendo a mensagem com um seletor de protocolo para cada camada. [26]

Requisitos básicos

Transferir os dados pela rede é apenas parte do problema de um protocolo. Os dados recebidos devem ser avaliados no contexto do andamento da conversa, portanto, um protocolo deve incluir regras que descrevam o contexto. Diz-se que esse tipo de regras expressa a sintaxe da comunicação. Outras regras determinam se os dados são significativos para o contexto em que a troca ocorre. Diz-se que esse tipo de regra expressa a semântica da comunicação.

As mensagens são enviadas e recebidas em sistemas de comunicação para estabelecer a comunicação. Os protocolos devem, portanto, especificar as regras que regem a transmissão. Em geral, muito do seguinte deve ser abordado: [27]

Formatos de dados para troca de dados Bitstrings de mensagem digital são trocados. As bitstrings são divididas em campos e cada campo carrega informações relevantes para o protocolo. Conceitualmente, o bitstring é dividido em duas partes chamadas cabeçalho e carga útil . A mensagem real é transportada na carga útil. A área do cabeçalho contém os campos relevantes para a operação do protocolo. Bitstrings mais longos do que a unidade de transmissão máxima (MTU) são divididos em pedaços de tamanho apropriado. [28] Formatos de endereço para troca de dados Os endereços são usados ​​para identificar o remetente e o (s) destinatário (s) pretendido (s). Os endereços são transportados na área de cabeçalho das bitstrings, permitindo que os receptores determinem se as bitstrings são de interesse e devem ser processadas ou ignoradas. Uma conexão entre um remetente e um receptor pode ser identificada usando um par de endereços (endereço do remetente, endereço do receptor) . Normalmente, alguns valores de endereço têm significados especiais. Um endereço all- 1 s pode significar um endereçamento de todas as estações na rede, portanto, o envio para este endereço resultaria em uma transmissão na rede local. As regras que descrevem os significados do valor do endereço são chamadas coletivamente de esquema de endereçamento . [29] Mapeamento de endereço Às vezes, os protocolos precisam mapear endereços de um esquema em endereços de outro esquema. Por exemplo, para converter um endereço IP lógico especificado pelo aplicativo em um endereço Ethernet MAC. Isso é conhecido como mapeamento de endereço . [30] Encaminhamento Quando os sistemas não estão conectados diretamente, os sistemas intermediários ao longo da rota para o (s) destinatário (s) pretendido (s) precisam encaminhar mensagens em nome do remetente. Na Internet, as redes são conectadas por meio de roteadores. A interconexão de redes por meio de roteadores é chamada de internetworking . Detecção de erros de transmissão A detecção de erros é necessária em redes onde a corrupção de dados é possível. Em uma abordagem comum, um CRC da área de dados é adicionado ao final dos pacotes, possibilitando ao receptor detectar diferenças causadas por corrupção. O receptor rejeita os pacotes nas diferenças CRC e organiza de alguma forma a retransmissão. [31] Reconhecimentos O reconhecimento da recepção correta de pacotes é necessário para a comunicação orientada à conexão . Agradecimentos são enviados dos destinatários de volta para seus respectivos remetentes. [32] Perda de informações - tempos limite e novas tentativas Os pacotes podem ser perdidos na rede ou atrasados ​​em trânsito. Para lidar com isso, em alguns protocolos, um remetente pode esperar uma confirmação da recepção correta do receptor dentro de um determinado período de tempo. Assim, em tempos limite , o remetente pode precisar retransmitir as informações. [a] No caso de um link permanentemente interrompido, a retransmissão não tem efeito, então o número de retransmissões é limitado. Exceder o limite de tentativas é considerado um erro. [33] Direção do fluxo de informação A direção precisa ser tratada se as transmissões só puderem ocorrer em uma direção por vez, como em links half-duplex, ou de um remetente por vez, como em um meio compartilhado . Isso é conhecido como controle de acesso à mídia . Devem ser tomadas providências para acomodar o caso de colisão ou contenção em que duas partes, respectivamente, transmitam ou desejem transmitir simultaneamente. [34] Controle de sequência Se bitstrings longas forem divididas em partes e, em seguida, enviadas para a rede individualmente, as partes podem se perder ou atrasar ou, em alguns tipos de redes, tomar rotas diferentes para seu destino. Como resultado, as peças podem chegar fora da sequência. As retransmissões podem resultar em peças duplicadas. Ao marcar as peças com informações de sequência no remetente, o receptor pode determinar o que foi perdido ou duplicado, solicitar as retransmissões necessárias e remontar a mensagem original. [35] Controle de fluxo O controle de fluxo é necessário quando o emissor transmite mais rápido do que o receptor ou o equipamento de rede intermediário pode processar as transmissões. O controle de fluxo pode ser implementado por mensagens do receptor ao remetente. [36] Fila Os processos de comunicação ou máquinas de estado empregam filas (ou "buffers"), geralmente filas FIFO, para lidar com as mensagens na ordem de envio e, às vezes, podem ter várias filas com priorização diferente

Projeto de protocolo

Os princípios da engenharia de sistemas foram aplicados para criar um conjunto de princípios de design de protocolo de rede comuns. O projeto de protocolos complexos freqüentemente envolve a decomposição em protocolos mais simples e cooperativos. Esse conjunto de protocolos cooperativos é algumas vezes chamado de família de protocolos ou suíte de protocolos, [24] dentro de uma estrutura conceitual.

Os sistemas de comunicação operam simultaneamente. Um aspecto importante da programação simultânea é a sincronização do software para receber e transmitir mensagens de comunicação em um sequenciamento adequado. A programação simultânea tem sido tradicionalmente um tópico em textos de teoria de sistemas operacionais. [37] A verificação formal parece indispensável porque os programas concorrentes são notórios pelos bugs ocultos e sofisticados que contêm. [38] Uma abordagem matemática para o estudo de concorrência e comunicação é referida como processos sequenciais de comunicação (CSP). [39] A simultaneidade também pode ser modelada usando máquinas de estado finito , como as máquinas de Mealy e Moore . As máquinas Mealy e Moore são utilizadas como ferramentas de design em sistemas eletrônicos digitais encontrados na forma de hardware usado em telecomunicações ou dispositivos eletrônicos em geral. [40] [ melhor fonte necessária ]

A literatura apresenta inúmeras analogias entre comunicação e programação de computadores. Por analogia, um mecanismo de transferência de um protocolo é comparável a uma unidade de processamento central (CPU). A estrutura apresenta regras que permitem ao programador projetar protocolos cooperativos independentemente uns dos outros.

Layering

No projeto de protocolo moderno, os protocolos são dispostos em camadas para formar uma pilha de protocolos. A estratificação é um princípio de design que divide a tarefa de design do protocolo em etapas menores, cada uma das quais realiza uma parte específica, interagindo com as outras partes do protocolo apenas em um pequeno número de maneiras bem definidas. A estratificação permite que as partes de um protocolo sejam projetadas e testadas sem uma explosão combinatória de casos, mantendo cada projeto relativamente simples.

Os protocolos de comunicação em uso na Internet são projetados para funcionar em ambientes diversos e complexos. Os protocolos da Internet são projetados para simplicidade e modularidade e se encaixam em uma hierarquia grosseira de camadas funcionais definidas no Internet Protocol Suite . [41] Os dois primeiros protocolos de cooperação, o Transmission Control Protocol (TCP) e o Internet Protocol (IP) resultaram da decomposição do Transmission Control Program original, um protocolo de comunicação monolítico, neste pacote de comunicação em camadas.

O modelo OSI foi desenvolvido internacionalmente com base na experiência com redes anteriores à Internet como modelo de referência para comunicação geral com regras muito mais rígidas de interação de protocolo e estratificação rigorosa.

Normalmente, o software aplicativo é construído sobre uma camada de transporte de dados robusta. Subjacente a essa camada de transporte está um mecanismo de entrega e roteamento de datagramas que normalmente não tem conexão na Internet. A retransmissão de pacotes através das redes acontece em outra camada que envolve apenas tecnologias de link de rede, que geralmente são específicas para certas tecnologias de camada física, como Ethernet . A disposição em camadas oferece oportunidades para a troca de tecnologias quando necessário, por exemplo, os protocolos são frequentemente empilhados em um arranjo de túnel para acomodar a conexão de redes diferentes. Por exemplo, o IP pode ser encapsulado em uma rede de modo de transferência assíncrona (ATM).

Camada de protocolo

As camadas de protocolo constituem a base do projeto do protocolo. [23] Ele permite a decomposição de protocolos únicos e complexos em protocolos cooperativos mais simples. [41] Cada camada de protocolo resolve uma classe distinta de problemas de comunicação. Juntas, as camadas formam um esquema ou modelo de camadas.

Computações lidam com algoritmos e dados; A comunicação envolve protocolos e mensagens; Portanto, o análogo de um diagrama de fluxo de dados é algum tipo de diagrama de fluxo de mensagem. [4] Para visualizar as camadas de protocolo e suítes de protocolo, um diagrama dos fluxos de mensagens dentro e entre dois sistemas, A e B, é mostrado na figura 3. Os sistemas, A e B, ambos fazem uso do mesmo suíte de protocolo. Os fluxos verticais (e protocolos) estão no sistema e os fluxos de mensagens horizontais (e protocolos) estão entre sistemas. Os fluxos de mensagens são governados por regras e formatos de dados especificados por protocolos. As linhas azuis marcam os limites das camadas de protocolo (horizontais).

Camada de software

Os protocolos de suporte de software têm uma organização em camadas e sua relação com as camadas de protocolo é mostrada na figura 5.

Para enviar uma mensagem no sistema A, o módulo de software da camada superior interage com o módulo diretamente abaixo dele e entrega a mensagem a ser encapsulada. O módulo inferior preenche os dados do cabeçalho de acordo com o protocolo que implementa e interage com o módulo inferior, que envia a mensagem pelo canal de comunicação para o módulo inferior do sistema B. No sistema receptor B ocorre o inverso, então, em última análise, a mensagem é entregue em sua forma original para o módulo superior do sistema B. [42]

A tradução do programa é dividida em subproblemas. Como resultado, o software de tradução também é dividido em camadas, permitindo que as camadas do software sejam projetadas independentemente. A mesma abordagem pode ser vista nas camadas TCP / IP. [43]

Os módulos abaixo da camada de aplicativo geralmente são considerados parte do sistema operacional. A passagem de dados entre esses módulos é muito mais barata do que a passagem de dados entre um programa de aplicação e a camada de transporte. O limite entre a camada de aplicativo e a camada de transporte é chamado de limite do sistema operacional. [44]

Camada estrita

Aderir estritamente a um modelo em camadas, uma prática conhecida como estrita camada, nem sempre é a melhor abordagem para a rede. [45] A estratificação estrita pode ter um impacto negativo no desempenho de uma implementação. [46]

Embora o uso de camadas de protocolo seja hoje onipresente no campo das redes de computadores, ele tem sido historicamente criticado por muitos pesquisadores [47] por duas razões principais. Em primeiro lugar, abstrair a pilha de protocolos desta forma pode fazer com que uma camada superior duplique a funcionalidade de uma camada inferior, um exemplo principal sendo a recuperação de erro tanto por link quanto de ponta a ponta. [48]

Padrões de design para protocolos da camada de aplicativo

Problemas comumente recorrentes no projeto e implementação de protocolos de comunicação podem ser tratados por padrões de várias linguagens de padrões diferentes: Linguagem de Padrões para Protocolos de Comunicação em Nível de Aplicativo ( CommDP ), [49] [50] Padrões de Design de Serviço, [51] Patterns of Enterprise Application Architecture, [52] Pattern-Oriented Software Architecture: A Pattern Language for Distributed Computing. [53] A primeira dessas linguagens de padrão concentra-se no projeto de protocolos e não em suas implementações. Os outros tratam de questões em ambas as áreas ou apenas na última.

Especificação formal

Os métodos formais de descrição da sintaxe de comunicação são Abstract Syntax Notation One (um padrão ISO ) e Augmented Backus-Naur form (um padrão IETF ).

Modelos de máquinas de estados finitos [54] [55] e máquinas de estados finitos comunicantes [56] são usados ​​para descrever formalmente as possíveis interações do protocolo.

Desenvolvimento de protocolo

Para que a comunicação ocorra, os protocolos devem ser selecionados. As regras podem ser expressas por algoritmos e estruturas de dados. A independência do hardware e do sistema operacional é aprimorada expressando os algoritmos em uma linguagem de programação portátil. A independência da fonte da especificação fornece uma interoperabilidade mais ampla.

Os padrões de protocolo são normalmente criados com a obtenção da aprovação ou suporte de uma organização de padrões, que inicia o processo de padronização. Esta atividade é conhecida como desenvolvimento de protocolo . Os membros da organização de padrões concordam em aderir ao resultado do trabalho de forma voluntária. Freqüentemente, os membros estão no controle de grandes fatias de mercado relevantes para o protocolo e, em muitos casos, os padrões são impostos por lei ou pelo governo porque são considerados importantes para o interesse público, portanto, obter a aprovação pode ser muito importante para o protocolo.

A necessidade de padrões de protocolo

A necessidade de padrões de protocolo pode ser demonstrada observando o que aconteceu com o protocolo bi-sync (BSC) inventado pela IBM . BSC é um protocolo de nível de link inicial usado para conectar dois nós separados. Ele não foi originalmente planejado para ser usado em uma rede multinó, mas isso revelou várias deficiências do protocolo. Na ausência de padronização, fabricantes e organizações se sentiam livres para 'aprimorar' o protocolo, criando versões incompatíveis em suas redes. Em alguns casos, isso foi feito deliberadamente para desencorajar os usuários de usar equipamentos de outros fabricantes. Existem mais de 50 variantes do protocolo bi-sync original. Pode-se supor que um padrão teria evitado que pelo menos parte disso acontecesse. [21]

Em alguns casos, os protocolos ganham domínio do mercado sem passar por um processo de padronização. Esses protocolos são chamados de padrões de fato . Os padrões de fato são comuns em mercados emergentes, nichos de mercado ou mercados monopolizados (ou oligopolizados). Eles podem segurar um mercado em um controle muito negativo, especialmente quando usados ​​para assustar a concorrência. De uma perspectiva histórica, a padronização deve ser vista como uma medida para neutralizar os efeitos negativos dos padrões de fato. Exceções positivas existem; um sistema operacional 'padrão de fato' como o GNU / Linux não tem esse controle negativo sobre seu mercado, porque as fontes são publicadas e mantidas de forma aberta, convidando assim a competição. A padronização, portanto, não é a única solução para a interconexão de sistemas abertos .

Organizações de Padrões

Algumas das organizações de padrões relevantes para os protocolos de comunicação são a International Organization for Standardization (ISO), a International Telecommunication Union (ITU), o Institute of Electrical and Electronics Engineers (IEEE) e a Internet Engineering Task Force (IETF). O IETF mantém os protocolos em uso na Internet. O IEEE controla muitos protocolos de software e hardware na indústria eletrônica para dispositivos comerciais e de consumo. A ITU é uma organização guarda-chuva de engenheiros de telecomunicações que projetam a rede telefônica pública comutada (PSTN), bem como muitos sistemas de comunicação de rádio . Para eletrônicos marinhos, os padrões NMEA são usados. O World Wide Web Consortium (W3C) produz protocolos e padrões para tecnologias da web.

As organizações de padrões internacionais devem ser mais imparciais do que as organizações locais com um interesse nacional ou comercial a considerar. As organizações de padrões também fazem pesquisa e desenvolvimento para padrões do futuro. Na prática, as organizações de padronização mencionadas cooperam estreitamente umas com as outras. [57]

O Processo de Padronização

O processo de padronização começa com a ISO comissionando um subgrupo de trabalho do subcomitê. O grupo de trabalho emite rascunhos de trabalho e documentos de discussão para as partes interessadas (incluindo outros órgãos de normalização), a fim de provocar discussões e comentários. Isso irá gerar muitas perguntas, muita discussão e geralmente algum desacordo sobre o que o padrão deve fornecer e se pode satisfazer todas as necessidades (geralmente não). Todos os pontos de vista conflitantes devem ser levados em consideração, muitas vezes como meio de compromisso, para avançar para uma proposta preliminar do grupo de trabalho.

A minuta da proposta é discutida pelos organismos de normalização dos países membros e outras organizações de cada país. Comentários e sugestões são comparados e visões nacionais serão formuladas, antes que os membros da ISO votem na proposta. Se rejeitado, o projeto de proposta deve considerar as objeções e contrapropostas para criar um novo projeto de proposta para outra votação. Depois de muitos comentários, modificações e compromissos, a proposta atinge o status de um esboço de padrão internacional e, por fim, um padrão internacional .

O processo normalmente leva vários anos para ser concluído. O rascunho do papel original criado pelo designer será substancialmente diferente do padrão e conterá alguns dos seguintes 'recursos':

  • Vários modos opcionais de operação, por exemplo, para permitir a configuração de diferentes tamanhos de pacote no momento da inicialização, porque as partes não conseguiram chegar a um consenso sobre o tamanho de pacote ideal.
  • Parâmetros que são deixados indefinidos ou permitidos para assumir valores de um conjunto definido a critério do implementador. Isso geralmente reflete visões conflitantes de alguns dos membros.
  • Parâmetros reservados para uso futuro, refletindo que os membros concordaram que as instalações deveriam ser fornecidas, mas não puderam chegar a um acordo sobre como isso deveria ser feito no tempo disponível.
  • Várias inconsistências e ambigüidades serão inevitavelmente encontradas ao implementar o padrão.

As normas internacionais são reeditadas periodicamente para lidar com as deficiências e refletir as mudanças de visão sobre o assunto. [58]

Padronização OSI

Uma lição aprendida com a ARPANET , a predecessora da Internet, foi que os protocolos precisam de uma estrutura para operar. Portanto, é importante desenvolver uma estrutura de uso geral preparada para o futuro, adequada para protocolos estruturados (como protocolos em camadas) e sua padronização. Isso evitaria padrões de protocolo com funcionalidade sobreposta e permitiria uma definição clara das responsabilidades de um protocolo nos diferentes níveis (camadas). [59] Isso deu origem ao modelo de referência OSI Open Systems Interconnection (RM / OSI), que é usado como uma estrutura para o projeto de protocolos e serviços padrão em conformidade com as especificações de várias camadas. [60]

No modelo OSI , os sistemas de comunicação são presumidos como conectados por um meio físico subjacente que fornece um mecanismo de transmissão básico (e não especificado). As camadas acima são numeradas (de um a sete); a n- ésima camada é referida como (n) -camada. Cada camada fornece serviço para a camada acima dela (ou no topo para o processo de aplicação) usando os serviços da camada imediatamente abaixo dela. As camadas se comunicam por meio de uma interface, chamada de ponto de acesso de serviço . As camadas correspondentes em cada sistema são chamadas de entidades de mesmo nível . Para se comunicar, duas entidades de mesmo nível em uma determinada camada usam um protocolo (n), que é implementado usando serviços da camada (n-1). Quando os sistemas não estão conectados diretamente, são usadas entidades de mesmo nível intermediárias (chamadas de relés ). Um endereço identifica exclusivamente um ponto de acesso de serviço. Os domínios de nomenclatura de endereço não precisam ser restritos a uma camada, portanto, é possível usar apenas um domínio de nomenclatura para todas as camadas. [61] Para cada camada, existem dois tipos de padrões: padrões de protocolo que definem como entidades de mesmo nível em uma determinada camada se comunicam e padrões de serviço que definem como uma determinada camada se comunica com a camada acima dela.

Na versão original do RM / OSI, as camadas e suas funcionalidades são (da camada mais alta para a mais baixa):

  • A camada de Aplicação pode fornecer os seguintes serviços aos processos de aplicação: identificação dos parceiros de comunicação pretendidos, estabelecimento da autoridade necessária para comunicar, determinação da disponibilidade e autenticação dos parceiros, acordo sobre mecanismos de privacidade para a comunicação, acordo sobre responsabilidade por erro recuperação e procedimentos para garantir a integridade dos dados, sincronização entre os processos de aplicação em cooperação, identificação de quaisquer restrições na sintaxe (por exemplo, conjuntos de caracteres e estruturas de dados), determinação do custo e qualidade de serviço aceitável, seleção da disciplina de diálogo, incluindo procedimentos de logon e logoff necessários . [62]
  • A camada de apresentação pode fornecer os seguintes serviços para a camada de aplicação: um pedido para o estabelecimento de uma sessão, transferência de dados, negociação da sintaxe a ser usada entre as camadas de aplicação, quaisquer transformações de sintaxe necessárias, formatação e transformações de propósito especial (por exemplo, dados compressão e criptografia de dados). [63]
  • A camada de sessão pode fornecer os seguintes serviços para a camada de apresentação: estabelecimento e liberação de conexões de sessão, troca de dados normal e acelerada, um serviço de quarentena que permite que a entidade de apresentação de envio instrua a entidade de sessão de recebimento a não liberar dados para sua entidade de apresentação sem permissão, gerenciamento de interação para que as entidades de apresentação possam controlar de quem é a vez de executar certas funções de controle, ressincronização de uma conexão de sessão, relatório de exceções irrecuperáveis ​​para a entidade de apresentação. [64]
  • A camada de transporte fornece transferência de dados confiável e transparente de forma econômica, conforme exigido pela qualidade de serviço selecionada. Ele pode suportar a multiplexação de várias conexões de transporte em uma conexão de rede ou dividir uma conexão de transporte em várias conexões de rede. [65]
  • A camada de rede faz a configuração, manutenção e liberação de caminhos de rede entre entidades de pares de transporte. Quando os relés são necessários, as funções de roteamento e relé são fornecidas por esta camada. A qualidade do serviço é negociada entre as entidades de rede e transporte no momento em que a conexão é estabelecida. Essa camada também é responsável pelo controle de congestionamento da rede . [66]
  • A camada de enlace de dados faz a configuração, manutenção e liberação das conexões de enlace de dados. Os erros que ocorrem na camada física são detectados e podem ser corrigidos. Os erros são relatados à camada de rede. A troca de unidades de enlace de dados (incluindo controle de fluxo) é definida por esta camada. [67]
  • A camada física descreve detalhes como as características elétricas da conexão física, as técnicas de transmissão usadas e a configuração, manutenção e liberação das conexões físicas. [68]

Em contraste com o esquema de camadas TCP / IP , que assume uma rede sem conexão, o RM / OSI assumiu uma rede orientada à conexão. As redes orientadas para conexão são mais adequadas para redes de longa distância e as redes sem conexão são mais adequadas para redes locais. O uso de conexões para se comunicar implica em alguma forma de sessão e circuitos (virtuais), portanto, a camada de sessão (no modelo TCP / IP ausente). Os membros constituintes da ISO estavam principalmente preocupados com redes de área ampla, então o desenvolvimento de RM / OSI concentrado em redes orientadas a conexão e redes sem conexão foram apenas mencionados em um adendo ao RM / OSI. [69] Na época, a IETF teve que lidar com isso e com o fato de que a Internet precisava de protocolos que simplesmente não existiam. Como resultado, o IETF desenvolveu seu próprio processo de padronização baseado em "consenso bruto e código em execução". [70]

O processo de padronização é descrito pela RFC2026 .

Atualmente, o IETF se tornou uma organização de padrões para os protocolos em uso na Internet. RM / OSI estendeu seu modelo para incluir serviços sem conexão e, por causa disso, tanto o TCP quanto o IP podem ser desenvolvidos em padrões internacionais.

Taxonomias

Os esquemas de classificação para protocolos geralmente se concentram no domínio de uso e função. Como um exemplo de domínio de uso, os protocolos orientados à conexão e os protocolos sem conexão são usados ​​em redes orientadas à conexão e redes sem conexão, respectivamente. Um exemplo de função é um protocolo de encapsulamento , que é usado para encapsular pacotes em um protocolo de alto nível, de forma que os pacotes possam ser passados ​​por um sistema de transporte usando o protocolo de alto nível.

Um esquema de camadas combina função e domínio de uso. Os esquemas de estratificação dominantes são os propostos pela IETF e pela ISO. Apesar do fato de que as suposições subjacentes dos esquemas de camadas são diferentes o suficiente para garantir a distinção dos dois, é uma prática comum comparar os dois relacionando protocolos comuns às camadas dos dois esquemas. [71]

O esquema de camadas do IETF é chamado de camadas de Internet ou camadas de TCP / IP .

O esquema de camadas da ISO é chamado de modelo OSI ou camadas ISO .

Na configuração do equipamento de rede, muitas vezes é feita uma distinção entre os termos da técnica: o termo "protocolo" refere-se estritamente à camada de transporte e o termo "serviço" se refere a protocolos que utilizam um "protocolo" para transporte. No caso comum de TCP e UDP, os serviços são diferenciados por números de porta. A conformidade com esses números de porta é voluntária, portanto, em sistemas de inspeção de conteúdo, o termo "serviço" refere-se estritamente aos números de porta, e o termo "aplicativo" costuma ser usado para se referir a protocolos identificados por meio de assinaturas de inspeção.

Veja também

  • Listas de protocolos de rede

Notas

  1. ^ A falha ao receber uma confirmação indica que a transmissão original ou a confirmação foi perdida. O remetente não tem como distinguir esses casos e, portanto, para garantir que todos os dados sejam recebidos, deve fazer a suposição conservadora de que a transmissão original foi perdida.

Referências

  1. ^ [1] , "Protocolo de comunicação sem fio", emitido em 01-12-2004
  2. ^ Protocolo , Encyclopædia Britannica , recuperado em 24 de setembro de 2012
  3. ^ a b Comer 2000, seção. 11.2 - A necessidade de vários protocolos, p. 177, "Eles (protocolos) estão para a comunicação o que as linguagens de programação estão para a computação"
  4. ^ a b c Comer 2000, seção. 1.3 - Serviços de Internet, p. 3, "Os protocolos são para a comunicação o que os algoritmos são para a computação"
  5. ^ Naughton, John (24 de setembro de 2015). Uma breve história do futuro . Orion. ISBN 978-1-4746-0277-8.
  6. ^ Cambell-Kelly, Martin (1987). "Data Communications at the National Physical Laboratory (1965-1975)" . Anais da História da Computação . 9 (3/4): 221–247. doi : 10.1109 / MAHC.1987.10023 . S2CID  8172150 .
  7. ^ Processador de mensagens de interface: Especificações para a interconexão de um host e um IMP , Relatório nº 1822, Bolt Beranek e Newman, Inc. (BBN)
  8. ^ LIVROS, ALTA DEFINIÇÃO. UGC -NET / JRF / SET PTP & Aptidão de Ensino e Pesquisa de Guia: UGC -NET Por HD . Livros de alta definição.
  9. ^ "NCP - Network Control Program" , Living Internet
  10. ^ Cerf, V .; Kahn, R. (1974). "Um protocolo para intercomunicação de rede de pacotes" (PDF) . IEEE Transactions on Communications . 22 (5): 637–648. doi : 10.1109 / TCOM.1974.1092259 . ISSN  1558-0857 . Os autores desejam agradecer a vários colegas pelos comentários úteis durante as primeiras discussões de protocolos de rede internacionais, especialmente R. Metcalfe, R. Scantlebury, D. Walden e H. Zimmerman; D. Davies e L. Pouzin, que comentaram de forma construtiva sobre a fragmentação e as questões contábeis; e S. Crocker que comentou sobre a criação e destruição de associações.
  11. ^ McKenzie, Alexander (2011). "INWG e a concepção da Internet: um relato de testemunha ocular". Anais de História da Computação do IEEE . 33 (1): 66–71. doi : 10.1109 / MAHC.2011.9 . ISSN  1934-1547 . S2CID  206443072 .
  12. ^ Schwartz, Mischa (2010). "Circuitos virtuais X.25 - TRANSPAC IN França - Rede de dados pré-Internet [História das comunicações]". Revista IEEE Communications . 48 (11): 40–46. doi : 10.1109 / MCOM.2010.5621965 . ISSN  1558-1896 . S2CID  23639680 .
  13. ^ Rybczynski, Tony (2009). "Comercialização de comutação de pacotes (1975-1985): Uma perspectiva canadense [História das Comunicações]". Revista IEEE Communications . 47 (12): 26–31. doi : 10.1109 / MCOM.2009.5350364 . ISSN  1558-1896 . S2CID  23243636 .
  14. ^ A pré-história "oculta" das redes de pesquisa europeias . Trafford Publishing. p. 354. ISBN 978-1-4669-3935-6.
  15. ^ "TCP / IP Internet Protocol" , Living Internet
  16. ^ Andrew L. Russell (30 de julho de 2013). "OSI: A Internet que não existia" . Espectro IEEE . Vol. 50 não. 8
  17. ^ Russell, Andrew L. "Rough Consensus and Running Code 'and the Internet-OSI Standards War" (PDF) . Anais de História da Computação do IEEE.
  18. ^ "Guerras de padrões" (PDF) . 2006.
  19. ^ Ben-Ari 1982, capítulo 2 - A abstração de programação simultânea, p. 18-19, afirma o mesmo.
  20. ^ Ben-Ari 1982, Seção 2.7 - Resumo, p. 27, resume a abstração de programação simultânea.
  21. ^ a b Marsden 1986, Seção 6.1 - Por que os padrões são necessários ?, p. 64-65, usa o BSC como um exemplo para mostrar a necessidade de protocolos padrão e uma estrutura padrão.
  22. ^ Comer 2000, Sect. 11.2 - A necessidade de vários protocolos, p. 177, explica isso fazendo analogias entre a comunicação do computador e as linguagens de programação.
  23. ^ a b Seita. 11.10 - A desvantagem da disposição em camadas, p. 192, afirma: as camadas constituem a base para o projeto do protocolo.
  24. ^ a b Comer 2000, seção. 11.2 - A necessidade de vários protocolos, p. 177, afirma o mesmo.
  25. ^ Comer 2000, Sect. 11.3 - As camadas conceituais do software de protocolo, p. 178, "Cada camada assume a responsabilidade de lidar com uma parte do problema."
  26. ^ Comer 2000, Sect. 11.11 - A ideia básica por trás da multiplexação e desmultiplexação, p. 192, afirma o mesmo.
  27. ^ Marsden 1986, capítulo 3 - conceitos fundamentais do protocolo e áreas problemáticas, p. 26-42, explica muito do seguinte.
  28. ^ Comer 2000, Sect. 7.7.4 - Tamanho do datagrama, MTU da rede e fragmentação, p. 104, Explica a fragmentação e o efeito no cabeçalho dos fragmentos.
  29. ^ Comer 2000, Capítulo 4 - Classful Internet Addresses, p. 64-67; 71.
  30. ^ Marsden 1986, Seção 14.3 - Conceitos de estratificação e definições gerais, p. 187, explica o mapeamento de endereços.
  31. ^ Marsden 1986, Seção 3.2 - Erros de detecção e transmissão, p. 27, explica as vantagens da correção de erros para trás.
  32. ^ Marsden 1986, Seção 3.3 - Reconhecimento, p. 28-33, explica as vantagens do reconhecimento positivo apenas e menciona os protocolos de datagrama como exceções.
  33. ^ Marsden 1986, Seção 3.4 - Perda de informação - intervalos e tentativas, p. 33-34.
  34. ^ Marsden 1986, Seção 3.5 - Sentido do fluxo de informações, p. 34-35, explica mestre / escravo e as negociações para obter o controle.
  35. ^ Marsden 1986, Seção 3.6 - Controle de seqüência, p. 35-36, explica como os pacotes se perdem e como o sequenciamento resolve isso.
  36. ^ Marsden 1986, Seção 3.7 - Controle de fluxo, p. 36-38.
  37. ^ Ben-Ari 1982, em seu prefácio, p. xiii.
  38. ^ Ben-Ari 1982, em seu prefácio, p. xiv.
  39. ^ Hoare 1985, capítulo 4 - uma comunicação, p. 133, trata da comunicação.
  40. ^ S. Srinivasan, Circuitos e Sistemas Digitais, cursos NPTEL, arquivados do original em 27 de dezembro de 2009
  41. ^ a b Comer 2000, seção. 11.2 - A necessidade de vários protocolos, p. 177, introduz a decomposição em camadas.
  42. ^ Comer 2000, Sect. 11.3 - As camadas conceituais do software de protocolo, p. 179, os primeiros dois parágrafos descrevem o envio de uma mensagem através de camadas sucessivas.
  43. ^ Comer 2000, Sect. 11.2 - A necessidade de vários protocolos, p. 178, explica software de protocolo de semelhanças e compilador, montador, vinculador, carregador.
  44. ^ Comer 2000, Sect. 11.9.1 - Limite do sistema operacional, p. 192, descreve o limite do sistema operacional.
  45. ^ IETF 1989, Seção 1.3.1 - Organização, p. 15, segundo parágrafo: muitas opções de design envolvem "quebra" criativa de camadas estritas.
  46. ^ Comer 2000, Sect. 11.10 - A desvantagem da disposição em camadas, p. 192, explica por que "camadas estritas podem ser extremamente ineficientes", dando exemplos de otimizações.
  47. ^ Wakeman, I (janeiro de 1992). "Camadas consideradas prejudiciais". Rede IEEE : 20–24.
  48. ^ Kurose, James; Ross, Keith (2005). Rede de computadores: uma abordagem de cima para baixo . Pearson.
  49. ^ Jorge Edison Lascano, Stephen Clyde e Ali Raza. "Padrões de projeto de protocolo de comunicação (CommDP) - COMMDP." [Conectados]. Disponível: http://commdp.serv.usu.edu/wiki/index.php/Communication-protocol_Design_Patterns_(CommDP) Arquivado em 18 de março de 2017 na Wayback Machine . [Acesso em: 17 de março de 2017].
  50. ^ JE Lascano e S. Clyde, "A Pattern Language for Application-level Communication Protocols," apresentado na ICSEA 2016, The Eleventh International Conference on Software Engineering Advances, 2016, pp. 22–30.
  51. ^ R. Daigneau, Service Design Patterns: Fundamental Design Solutions para SOAP / WSDL e RESTful Web Services, 1 edição. Upper Saddle River, NJ: Addison-Wesley Professional, 2011.
  52. ^ M. Fowler, Patterns of Enterprise Application Architecture, 1 edição. Boston: Addison-Wesley Professional, 2002.
  53. ^ [1] F. Buschmann, K. Henney e DC Schmidt, Pattern-Oriented Software Architecture Volume 4: A Pattern Language for Distributed Computing, Volume 4 edition. Chichester England; Nova York: Wiley, 2007.
  54. ^ Bochmann, G. (1978). "Descrição de estado finito de protocolos de comunicação". Redes de computadores (1976) . 2 (4–5): 361–372. doi : 10.1016 / 0376-5075 (78) 90015-6 .
  55. ^ Comer 2000, Glossary of Internetworking Terms and Abbreviations, p. 704, protocolo de termo.
  56. ^ Brand, Daniel; Zafiropulo, Pitro (1983). "On Communicating Finite-State Machines". Jornal do ACM . 30 (2): 323. doi : 10.1145 / 322374.322380 . S2CID  11607967 .
  57. ^ Marsden 1986, Seção 6.3 - Vantagens da padronização, p. 66-67, afirma o mesmo.
  58. ^ Marsden 1986, Seção 6.4 - Alguns problemas com padronização, p. 67, segue HDLC para ilustrar o processo.
  59. ^ Marsden 1986, Seção 6.1 - Por que os padrões são necessários ?, p. 65, explica as lições aprendidas com a ARPANET.
  60. ^ Marsden 1986, Seção 14.1 - Introdução, p. 181, apresenta o OSI.
  61. ^ Marsden 1986, Seção 14.3 - Conceitos de estratificação e definições gerais, p. 183-185, explica a terminologia.
  62. ^ Marsden 1986, Seção 14.4 - A camada de aplicação, p. 188, explica isso.
  63. ^ Marsden 1986, Seção 14.5 - A camada de apresentação, p. 189, explica isso.
  64. ^ Marsden 1986, Seção 14.6 - A camada da sessão, p. 190, explica isso.
  65. ^ Marsden 1986, Seção 14.7 - A camada de transporte, p. 191, explica isso.
  66. ^ Marsden 1986, Seção 14.8 - A camada de rede, p. 192, explica isso.
  67. ^ Marsden 1986, Seção 14.9 - A camada de enlace de dados, p. 194, explica isso.
  68. ^ Marsden 1986, Seção 14.10 - A camada física, p. 195, explica isso.
  69. ^ Marsden 1986, Seção 14.11 - Modo sem conexão e RM / OSI, p. 195, menciona isso.
  70. ^ Comer 2000, Seção 1.9 - Internet Protocols And Standardization, p. 12, explica por que o IETF não usou os protocolos existentes.
  71. ^ Comer 2000, Sect. 11.5.1 - O modelo de referência de 5 camadas TCP / IP, p. 183, afirma o mesmo.

Bibliografia

  • Radia Perlman : Interconexões: Bridges, Routers, Switches e Internetworking Protocols. 2ª Edição. Addison-Wesley 1999, ISBN  0-201-63448-1 . Em particular Ch. 18 sobre "folclore de design de rede", que também está disponível online em http://www.informit.com/articles/article.aspx?p=20482
  • Gerard J. Holzmann : Projeto e validação de protocolos de computador. Prentice Hall, 1991, ISBN  0-13-539925-4 . Também disponível online em http://spinroot.com/spin/Doc/Book91.html
  • Douglas E. Comer (2000). Internetworking with TCP / IP - Principles, Protocols and Architecture (4ª ed.). Prentice Hall. ISBN 0-13-018380-6.Em particular Ch.11 Camada de protocolo. Também possui um guia RFC e um glossário de termos e abreviações de internetworking.
  • Internet Engineering Task Force abbr. IETF (1989): RFC1122, Requirements for Internet Hosts - Communication Layers, R. Braden (ed.) , Disponível online em http://tools.ietf.org/html/rfc1122 . Descreve o TCP / IP para os implementadores do software de protocolo. Em particular, a introdução oferece uma visão geral dos objetivos de design da suíte.
  • M. Ben-Ari (1982): Princípios de programação simultânea 10ª Impressão. Prentice Hall International, ISBN  0-13-701078-8 .
  • CAR Hoare (1985): Comunicando processos sequenciais 10ª impressão. Prentice Hall International, ISBN  0-13-153271-5 . Disponível online em http://www.usingcsp.com
  • RD Tennent (1981): Princípios de linguagens de programação 10ª impressão. Prentice Hall International, ISBN  0-13-709873-1 .
  • Brian W Marsden (1986): Protocolos de rede de comunicação, 2ª edição. Chartwell Bratt, ISBN  0-86238-106-1 .
  • Andrew S. Tanenbaum (1984): 10ª Impressão da Organização de Computadores Estruturados . Prentice Hall International, ISBN  0-13-854605-3 .

Leitura adicional

  • Radia Perlman , Interconexões: Bridges, Routers, Switches, and Internetworking Protocols (2ª edição) . Addison-Wesley 1999. ISBN  0-201-63448-1 . Em particular Ch. 18 sobre "folclore de design de rede".
  • Gerard J. Holzmann , Design and Validation of Computer Protocols . Prentice Hall, 1991. ISBN  0-13-539925-4 . Também disponível online em http://spinroot.com/spin/Doc/Book91.html
  • Dicionário de protocolo de Javvin
  • Visão geral dos protocolos no campo de telecontrole com o modelo de referência OSI

Quais são os três requisitos definidos pelos protocolos usados nas comunicações de rede para possibilitar a transmissão da mensagem pela rede escolha três?

2 / 2 ptsPergunta 5 Quais são os três requisitos definidos pelos protocolos usados nas comunicações de rede para possibilitar a transmissão da mensagem pela rede? (Escolha três.) especificações do conector codificação de mensagem Correto! Correto! seleção de meio físico tamanho da mensagem Correto!

Quais são as duas características do IP?

Características do protocolo IP O IP foi desenvolvido como um protocolo com baixa sobrecarga. Ele somente fornece as funções necessárias para enviar um pacote de uma origem a um destino por um sistema de redes interconectadas. O protocolo não foi elaborado para rastrear e gerenciar o fluxo dos pacotes.

Quais duas funções são fornecidas pela camada de rede?

As funções exercidas na camada de rede do modelo OSI estão listados abaixo: Tráfego direção ao destino final. Dirigindo; lógico endereços de rede e serviços endereços.

Qual protocolo é usado por um cliente para se comunicar com segurança com um servidor da Web?

O protocolo SSL (Secure Sockets Layer — Camada de Portas de Segurança) permite a comunicação segura entre os lados cliente e servidor de uma aplicação web, por meio de uma confirmação da identidade de um servidor e a verificação do seu nível de confiança.