Qual é a camada do modelo de referência OSI que usa controle de fluxo sequenciamento e reconhecimentos ACKS para garantir confiabilidade?

Download Figura 1 - Operação do "cabo" virtual entre emissor e receptor...

Redes de Computadores Professor Marco Antônio Chaves Câmara Capítulo 12 - Serviços da Camada de Enlace

Apresentação Até agora, estudamos características de equipamentos e materiais utilizados pela camada física. Além disto, em algumas oportunidades, destacamos características de tecnologias empregadas tanto na camada física quanto na camada de enlace, como as redes ethernet, por exemplo. Neste capítulo, nos dedicamos a estudar especificamente os serviços oferecidos pela camada de enlace, ou melhor, as técnicas de enquadramento, de detecção e tratamento de erros, além dos protocolos elementares de controle de fluxo. Alguns destes recursos são inclusive utilizados por protocolos e aplicações de outras camadas, como poderemos ver mais adiante.

1.

O que é a camada de enlace? A principal função da camada de enlace é fazer com que as camadas superiores sejam atendidas por serviços de comunicação compatíveis com o perfil da aplicação utilizada. Aplicações sensíveis a erros, por exemplo, podem exigir comunicações confiáveis e com sequenciamento. Uma comunicação confiável pressupõe que não existirão erros de comunicação para as camadas superiores. Portanto, os processos de correção de erros devem ser realizados na camada de enlace, liberando as 3 camadas superiores do 2 1 tratamento destes problemas. Figura 1 - Operação do "cabo" virtual entre emissor e receptor

A correção de erros pressupõe alguma forma de realimentação do emissor pelo receptor, que precisa informar o recebimento dos dados transmitidos, além de verificar eventuais erros de transmissão. Esta situação exige a chamada "confirmação" (ou ACKnowledge, como é mais conhecida). Sistemas com confirmação (com ACK) conseguem garantir que as unidades de informação recebidas com problemas serão detectadas e provavelmente recuperadas. Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 1 de 1 Versão 1.3 (Fevereiro 2007)

Já uma comunicação com sequenciamento pressupõe que os dados colocados ordenadamente pelo transmissor chegarão na mesma ordem para o receptor. Sendo assim, podemos resumir o funcionamento da camada de enlace como um “cabo virtual” que interliga os equipamentos em comunicação. O conceito de “cabo virtual” significa dizer que, quando um computador A coloca os dados em sua camada de enlace, estes dados serão retirados imediatamente depois pelo computador B, na mesma ordem em que foram colocados. Sem muita análise, poderíamos até dizer que o conceito de “cabo virtual” é óbvio. Isto porque, ao colocar os dados em uma determinada seqüência em um dos lados de uma comunicação, deveria ser possível recuperar estes dados do outro lado sem nenhum esforço! Para que então 1o) A encaminha dados para B serviria a camada de 1 enlace? 2o) Os dados chegam defeituosos a B 1 Na verdade, a o) B solicita re-transmissão para A 3 existência da camada R1 de enlace é 4o) A solicitação não chega em A provocada pelas falhas nos meios e ok ! 5o) Sem saber do erro, A continua encaminhando dados dispositivos de 2 2 comunicação utilio 6 ) B solicita de novo a re-transmissão para A zados na camada R1 física. Estes meios e 7o) A solicitação chega, e A retransmite os dados para B 1 dispositivos podem, 8o) Os dados corretos chegam a A fora de sequência em determinadas 1 2 situações, provocar Figura 2 - Exemplo de perda de sequenciamento erros de comunicação e atrasos de propagação. Os algoritmos utilizados para resolução destes problemas devem garantir integridade dos dados recebidos, além de seu sequenciamento. Esta atividade pode, no entanto, se tornar complicada.

Na Figura 2, demonstramos uma correção de erro que provocaria perda no sequenciamento da informação. Garantir que isto não vai ocorrer é uma das atividades da camada de enlace. Vemos também neste caso que a perda do sequenciamento ocorre em um ambiente com ACK. Em um ambiente sem ACK isto não ocorreria. O sequenciamento pode ser garantido com a chamada "conexão", que pressupõe mais sofisticação no envio das mensagens, com a criação de contadores e rótulos para os quadros. Isto tudo sem abrir mão do ACK. Obviamente isto implica em redução da performance típica de transmissão em nome da alta confiabilidade. Alguns ambientes podem optar por um sistema mais simples, baseado apenas no mecanismo de ACK, evitando a conexão e ganhando performance. Isto pode ser feito, por exemplo, garantindo a espera pelo ACK antes do envio de um novo quadro. Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 2 de 2 Versão 1.3 (Fevereiro 2007)

Por outro lado, existem situações ainda mais críticas, onde o objetivo é não corrigir a transmissão, evitando a confirmação e, por conseqüência, esquecendo também a conexão. Em transmissões multimídia, por exemplo, muitas vezes é melhor receber um quadro com defeito do que tentar consertá-lo. Como podemos ver, é a aplicação quem vai determinar o tipo de operação desejada para a camada de enlace. Embora a comunicação ainda não esteja ocorrendo em modo fim-a-fim (diretamente do emissor ao receptor), pode-se dizer que temos uma situação muito parecida ao controle de QoS, já que a aplicação determina o comportamento da camada. Outras situações podem exigir o controle de fluxo, evitando que receptores lentos sejam inundados por transmissores muito rápidos. Esta é mais uma das atividades da camada de enlace. Além disto, também precisamos conhecer o processo de enquadramento, ou seja, a marcação do início e fim de cada quadro transmitido. Todas estas são funções típicas da camada de enlace. Vamos discutir separadamente cada um destes problemas neste capítulo.

2.

Classes de serviços oferecidos à Camada de Rede Lembrando o que estudamos no início do curso, sabemos que a comunicação entre dois equipamentos baseados no modelo OSI ocorre entre camadas adjacentes de forma virtual. Na prática, a única camada que possui interligação física entre os dois equipamentos é a camada física. Para entendermos os serviços oferecidos pela camada de enlace, devemos considerar a comunicação virtual entre as duas camadas de rede dos equipamentos interligados. Desta forma, vamos considerar os serviços da camada de enlace como o meio de interligação entre as camadas de rede. O modelo OSI permite que diferentes ambientes implementem diferentes serviços na camada de enlace. No entanto, poderíamos classificar os diferentes serviços oferecidos em três tipos: 2.1.

Serviços com Conexão A conexão é estabelecida por uma troca inicial de informações entre as duas camadas de enlace. Apenas após esta troca de informações é que os quadros são efetivamente transmitidos. Da mesma forma, ocorre nova troca de informações ao final da comunicação para garantir o fechamento da conexão. A partir da abertura de uma conexão, a camada de enlace passa a garantir que todos os quadros encaminhados serão devidamente numerados. Isto implica na entrega dos quadros na mesma ordem em que foram encaminhados. Além disto, a numeração dos quadros impede o recebimento de múltiplos quadros iguais. Outra característica é que todos os quadros encaminhados são confirmados através do envio de quadros de

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 3 de 3 Versão 1.3 (Fevereiro 2007)

confirmação pelo receptor. Por este motivo não faz sentido imaginar um serviço com conexão e sem confirmação. Desta forma a camada de enlace garante uma operação do tipo “cabo virtual” para a camada de rede. No entanto, em algumas aplicações e ambientes específicos, torna-se interessante eliminar esta garantia, que pode afetar a performance. Por este motivo, a camada de enlace pode oferecer serviços sem conexão, principalmente para aplicações que exijam alto desempenho. 2.2.

Serviços sem conexão com confirmação A confirmação garante que os quadros recebidos sem problemas pela camada de enlace serão confirmados através do envio de quadros de confirmação para o emissor. Se por acaso o emissor não receber uma destas confirmações, pode decidir por re-encaminhar o quadro correspondente, garantindo, portanto, a recepção íntegra de todos os quadros encaminhados. Uma pergunta típica seria questionar a validade de um serviço baseado em conexões, se a confirmação já é suficiente para garantir a chegada de todos os quadros encaminhados. Para responder isto, basta considerar um caso em que a confirmação de recebimento seja danificada ou por outro motivo qualquer não chegue ao emissor. Neste caso, o emissor poderia decidir pela re-transmissão da informação, que, no entanto, já estava disponível no receptor. A chegada deste novo quadro significaria a repetição de informações no receptor. Como os quadros não são numerados (exclusividade das conexões), o receptor ficaria impossibilitado de identificar tal repetição.

2.3.

Serviços sem conexão nem confirmação Este tipo de serviço oferece a menor confiabilidade possível dentre os serviços disponíveis na camada de enlace. No entanto, por outro lado, normalmente é o serviço que oferece maior performance. Um dos pré-requisitos para escolha deste tipo de serviço é a qualidade da camada física. Se a taxa de erros observada no ambiente é bastante baixa, deixar a correção de eventuais erros para as camadas superiores pode se tornar interessante. Porém, se o meio possui taxa de erro elevada, o atraso provocado pelo tratamento dos erros em camadas superiores pode provocar problemas sérios de performance. Resumindo, a performance é o principal fator que nos leva à escolha deste tipo de serviço na camada de enlace. Na verdade, o processo de encaminhamento de quadros de confirmação a cada quadro recebido pode provocar atrasos consideráveis na comunicação. Em aplicações que exigem

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 4 de 4 Versão 1.3 (Fevereiro 2007)

alta performance, como, por exemplo, a transmissão de voz ou vídeo, muitas vezes é mais interessante receber dados defeituosos do que atrasados.

3.

Protocolos orientados a bits ou caracteres? Os protocolos de enlace trabalham com base na análise de conjuntos de dados binários. Esses conjuntos podem ser analisados bit a bit, ou caractere a caractere. Essa característica diferencia o protocolo de enlace como sendo de um tipo ou de outro. Dos dois tipos, os protocolos orientados a caracteres são mais comuns. Para maior simplicidade, no decorrer deste capítulo, sempre que for possível usar os dois tipos de protocolos, selecionaremos apenas um dos tipos no texto explicativo.

4.

As funções da Camada de Enlace Para oferecer as classes de serviço descritas no item anterior, a camada de enlace tem funções específicas. Essas funções têm o objetivo de garantir a transferência das informações dentro dos parâmetros definidos pela classe de serviços. 4.1.

Enquadramento Para implementar suas funções, a camada de enlace precisa identificar com muita clareza cada um dos conjuntos de bits (ou caracteres) que serão tratados como unidades de dados. Estes conjuntos, ou quadros, possuem campos compostos de bits com funções específicas, como endereços, códigos de controle etc. O quadro funciona como a "unidade de informação" da camada de enlace. Para tanto, é necessário determinar suas fronteiras físicas, e garantir que emissor e receptor terão a habilidade de identificá-las na transmissão e recepção. Antes de mais nada, portanto, é necessário garantir a identificação do início e do final de cada quadro. Para isto existem três estratégias diferentes. 4.1.1. Contagem de bits ou caracteres Esta é a estratégia mais simples. O protocolo de enlace do receptor simplesmente conta o número de bits recebidos a partir do início do quadro, fechando o quadro quando o número total de bits do quadro for alcançado. Embora seja bastante simples, o método pode falhar em caso de problemas de sincronismo, já que qualquer falha de contagem impedirá a recepção, não só do quadro onde ocorreu a falha, como também de todos os quadros posteriores.

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 5 de 5 Versão 1.3 (Fevereiro 2007)

Mesmo assim, o método de contagem é utilizado em alguns ambientes. Um exemplo notável é o protocolo Ethernet, que utiliza o método de contagem para identificar a fronteira final de cada quadro.

4.1.2. Assinatura Este método funciona através da utilização seqüências especiais de bits ou Caracteres no início e final de cada quadro. Através da identificação destas seqüências pelo receptor, os quadros são delimitados. Uma dúvida comum refere-se à possível confusão que ocorreria diante da presença dos caracteres de assinatura dentro dos campos normais do quadro. Este problema é resolvido através da análise, pelo protocolo do transmissor, da seqüência de dados do quadro que está sendo montado. A eventual ocorrência do(s) caractere(s) de assinatura provoca a inclusão de marcadores duplicados, que são retirados pelo receptor. Como os marcadores só ocorrem de forma duplicada nestes casos, a retirada dos mesmos pelo receptor acabará restaurando a seqüência original (ver abaixo).

11010010111001011001110111111001 010101011101 Seqüência igual à assinatura nos dados a serem transmitidos

01111110110100101110010110011101111101001 01010101110101111110 Assinatura

Assinatura Bit 0 inserido no meio da Seqüência, Impedindo a confusão com a assinatura

A cada ocorrência de cinco bits consecutivos nos dados, é inserido um bit 0 (zero), impedindo a confusão com a seqüência da assinatura. No receptor, a cada cinco bits 1, será retirado o 0 seguinte, restaurando a mensagem original. A assinatura só é inserida no final da montagem do quadro no transmissor, e é retirada pelo receptor antes da análise.

O enquadramento por assinatura é bastante comum, sendo utilizado por diversos protocolos, entre eles o frame-relay, o HDLC, e até mesmo o Ethernet, que o utiliza para marcação do início de quadros.

4.1.3. Codificação inválida na camada física Neste método, utiliza-se uma codificação física diferenciada para identificar os bits de início e final de cada quadro. No caso de uma codificação baseada em tensões elétricas, por exemplo, onde o bit 0 fosse normalmente identificado pela tensão de 0 volts, poderíamos utilizar uma tensão negativa (-5V, por exemplo) para identificar o bit zero, caso este estivesse localizado no início ou final de um

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 6 de 6 Versão 1.3 (Fevereiro 2007)

quadro. O mesmo processo poderia ser utilizado para diferenciar o bit 1, se este ocorresse no início ou final de um quadro. Embora funcione adequadamente, a codificação inválida desobedece ao princípio de independência entre as camadas dos modelos de referência em camada. Isso porque o método permite que o protocolo de uma camada influencie em outra. Ou seja, a camada de enlace está, neste caso, modificando o método de codificação na camada física. Raramente utilizado, o método de codificação inválida é utilizado, por exemplo, pelo Token-Bus, antigo protocolo para redes locais.

4.2.

Controle de Erros Tal como já vimos, os serviços da camada física envolvem a entrega de um conjunto de bits ao receptor, sem qualquer preocupação contra erros, nem mesmo quanto à possível ausência, no receptor, de alguns bits do conjunto originalmente entregue à camada física do transmissor.

Unidade de dados da camada de Enlace (quadro)

Campo com informações redundantes para detecção de erros. Figura 3 - Campo com informações redundantes em um quadro típico

De fato, a camada física não possui nenhum mecanismo que permita tratar adequadamente eventuais erros de comunicação, por um motivo muito simples: não existe redundância nos dados encaminhados. Para identificar um erro em um sistema de comunicação, é fundamental um sistema de análise dos dados recebidos. Isso só pode ser implementado quando parte dos dados recebidos pode ser utilizada para conferir o conjunto completo dos dados. Na camada física, como a unidade de dados é o bit, e está a menor unidade de dados possível, não há como avaliar a correção de um determinado bit recebido. Por este motivo, e para garantir performance, a atribuição de corrigir erros é da camada de enlace, a primeira camada de baixo para cima que pode contar com alguma redundância nos dados recebidos. Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 7 de 7 Versão 1.3 (Fevereiro 2007)

Outro aspecto importante é que a detecção e correção de erros são atividades diretamente relacionadas aos serviços com conexão ou confirmação. Nos serviços sem conexão nem confirmação, o controle de erros é desnecessário. A própria ausência do controle de erros é considerada, por alguns autores, como uma estratégia de tratamento de erros. Em outras palavras, neste caso, a estratégia de tratamento de erros é, simplesmente, não tratá-los! Isto é muito comum em ambientes com camada física de alta qualidade, e, por conseqüência, taxas de erro muito baixas. Para os serviços que exigem controle de erros, existem duas estratégias: a re-transmissão e a correção de erros. Enquanto a primeira estratégia considera a re-transmissão dos dados pelo transmissor quando os erros forem detectados, a segunda envolve a transmissão de códigos especiais junto aos dados. Estes códigos permitem a correção dos dados eventualmente defeituosos sem a re-transmissão dos dados. Ambas as estratégias devem lidar com problemas muitas vezes bastante complexos, como, por exemplo, a perda de conjuntos completos de dados. Nestes casos, não há como detectar a existência de erros, já que os dados desaparecem por completo no caminho entre transmissor e receptor. Cronometrar o tempo máximo para um a confirmação de recebimento pelo receptor permite descobrir casos como estes, já que o receptor não enviará confirmação alguma se por acaso não receber o conjunto de dados transmitidos. Outro problema está associado à ordenação dos quadros encaminhados, para garantir a ausência da repetição de quadros no receptor em caso de erros. O estudo das técnicas utilizadas para detecção e correção de erros são objeto do item 5 deste capítulo. 4.3.

Controle de Fluxo O controle de fluxo é a habilidade do receptor de controlar a taxa de recepção de informações, de forma que seja possível o tratamento das informações recebidas, sem perdas. Isto é fundamental em ambientes heterogêneos, onde um transmissor mais rápido pode facilmente transmitir em uma taxa de transmissão superior à taxa admitida pelo receptor (computador mais rápido, máquina pouco carregada etc). Poderíamos questionar a necessidade deste controle em ambientes homogêneos. No entanto, ambientes e aplicações heterogêneas existem em número muito maior, e além disto, o controle de fluxo permite o controle de outros problemas, como, por exemplo, as colisões em um ambiente ethernet (neste caso, o problema decorre da existência de múltiplos transmissores com dados a serem encaminhados). Por isto é extremamente importante implementar esta característica.

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 8 de 8 Versão 1.3 (Fevereiro 2007)

Normalmente o controle de fluxo já é estabelecido no momento do estabelecimento da conexão. Este define a quantidade de dados que pode ser transmitida, a necessidade do recebimento de uma confirmação antes da próxima transmissão, o que fazer caso a confirmação não chegue ou caso ocorram erros etc. Todos estes detalhes serão vistos durante o estudo dos protocolos de enlace, o que será feito no item 6 deste capítulo.

5.

Algoritmos para tratamento de erros Tal como vimos, estudaremos os dois principais métodos de tratamento de erros, a re-transmissão e a correção. Essa última é tipicamente interessante em canais simplex, ou em ambientes onde o atraso de propagação é muito elevado. A re-transmissão, no entanto, geralmente é mais interessante para canais half ou fullduplex, já que implica na transmissão de uma quantidade bem menor de dados. Uma outra possível estratégia seria a simples detecção ou contagem dos erros. A partir daí, o próprio usuário poderia decidir, com base na aplicação do conjunto de dados recebidos, o que deveria ser feito. De qualquer sorte, mesmo que seja para solicitar a re-transmissão, os erros precisam ser detectados. É por isso que começamos a nossa análise com base nos protocolos de detecção de erros. 5.1.

Detecção de Erros Qualquer algoritmo de detecção de erros parte do princípio que nenhuma detecção de erro, por mais perfeita que seja, pode determinar, com 100% de certeza, que os dados recebidos estão corretos. No entanto, a eventual detecção de erro será sempre verdadeira, ou seja, não existe o falso-positivo, mas existe o falso-negativo. De qualquer sorte, os algoritmos utilizados são bastante eficientes, o que, na prática, indica que a eventual ausência de erros detectados nos dá um grau de certeza bastante elevado. Erros não detectados normalmente são muito raros. 5.1.1. Paridade Este é um método bastante simples. A cada conjunto de dados (tipicamente uma palavra com alguns bits de comprimento), é inserido um bit adicional chamado de bit de paridade. O método pode ser de paridade par ou ímpar, de acordo com a quantidade de bits 1 existente no conjunto de dados. Sendo assim, o método visa garantir que a quantidade total de bits 1 (um) será par ou impar, conforme foi determinado na configuração do ambiente. Ao chegar ao receptor, basta contar a quantidade de bits 1 (um) no conjunto recebido. Se a quantidade de bits não corresponder ao sistema de paridade escolhido, certamente ocorreu algum erro de comunicação, que provocou a troca do valor de algum bit durante a transmissão.

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 9 de 9 Versão 1.3 (Fevereiro 2007)

Um dos problemas do método da paridade é a sua baixa eficiência de transmissão. Na figura abaixo podemos ver que, quando trabalhamos com um conjunto de sete bits, por exemplo, a perda de espaço de transmissão é de 12,5%, o que implica em uma redução muito grande de eficiência.

b6 b5 b4 b3 b2 b1 b0 pa Ocupa 12,5% do total do quadro Figura 4 - Ocupação de espaço de transmissão pelo bit de paridade

O outro problema do método é a incapacidade de detecção de falhas em um número par de bits, já que falhas deste tipo, por manterem a quantidade de bits 1, não podem ser detectadas. Por outro lado, para taxas de erros baixas, é muito improvável a ocorrência de erros em múltiplos bits.

Tal como acabamos de ver no método da paridade, um dos problemas na detecção de erros em conjuntos binários de bits está associado à quantidade de trocas de bit (erros) que ocorreram durante o processo de comunicação. Este número, também chamado de distância de Hamming, está diretamente associado à dificuldade na detecção de eventuais falhas. Richard Wesley Hamming (1915-1998), referenciado mais tarde neste capítulo quando tratarmos dos métodos de correção de erros, desenvolveu um modelo que, comparando dois conjuntos de caracteres do mesmo tamanho, identifica o número de posições em que temos diferenças entre os caracteres dos dois conjuntos. Na prática, a distância de Hamming identifica a quantidade de erros de um caractere ocorridos durante a transmissão, ou mesmo o número de substituições Figura 5 - Distância de Hamming para conjuntos de 3 bits. necessárias na seqüência Entre 010 e 111 (vermelho) temos uma distância de 2; entre 100 e 011 (azul) temos uma distância de 3. recebida para corrigi-la. A figura do cubo é clássica, e mostra graficamente como pode ser obtida a distância de Hamming entre duas seqüências de três bits.

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 10 de 10 Versão 1.3 (Fevereiro 2007)

5.1.2. Check-Sum Uma forma de detectar erros que, de certa forma, possui uma certa independência em relação à distância de Hamming é o método de checagem de soma, ou, em inglês, Check-Sum. Este método já é conhecido de profissionais da área financeira e contábil, que utilizam a checagem de soma para identificar erros no lançamento de dados numéricos precisos. Um contador, por exemplo, costuma somar os lançamentos de um lote de lançamentos contábeis. O resultado da soma é depois comparado com a soma informada pelo sistema de entrada de dados. Eventuais diferenças entre as duas somas identificam erros de lançamento. No caso de dados binários, tipicamente armazenamos apenas os bits menos significativos da soma para a comparação, o que é suficientemente eficiente para reduzir a probabilidade de erros não detectados. Uma vantagem do método é a sua alta eficiência, com um pequeno consumo do espaço de transmissão com a informação redundante. Outra vantagem é a simplicidade, já que não são exigidos muitos recursos de processamento.

5.1.3. Código Polinomial ou CRC (Cyclic Redundancy Code) O método de detecção de erro com base no CRC, ao contrário do método da checagem por soma, é baseado na divisão do conjunto de dados binários por um número binário fixo. O resto desta divisão é anexado ao final do conjunto de dados, e é denominado de CRC. Desta forma obtemos mais eficiência na detecção de eventuais erros. Isso ocorre porque, embora o efeito da alteração de um determinado bit do conjunto de dados no quociente da divisão possa ser imperceptível, o efeito sobre o resto da divisão é sempre significativo. Sendo assim, qualquer alteração no conjunto de dados será mais facilmente detectada desta forma. Para ser mais preciso, existe uma outra característica fundamental para entender os cálculos do CRC. Na verdade, os bits do conjunto de dados não são considerados simplesmente como bits componentes de um número binário, e sim como coeficientes de um polinômio fictício. Isto torna impossível a transposição de valores entre posições diferentes do mesmo número, criando uma aritmética diferenciada para os cálculos do CRC, que se encontra além dos objetivos deste curso.

5.2.

Correção Os métodos de correção permitem não só a detecção, como a identificação e correção dos erros. Estes métodos são particularmente interessantes em ambientes onde a retransmissão seria demasiadamente demorada, mas a ausência de erros é fundamental. Entre os métodos de correção de erros, destacamos o método da paridade matricial, e o código de Hamming.

Curso de Redes Capítulo 12 - Serviços da Camada de Enlace

Página 11 de 11 Versão 1.3 (Fevereiro 2007)

5.2.1. Paridade Matricial para erros em um bit isolado O método da paridade matricial baseia-se na construção de uma matriz de dados a serem transmitidos. O conjunto de dados é distribuído, linha por linha, nas linhas da matriz, sem ocupar nem a última coluna, nem a última linha da mesma. Na última coluna e na última linha desta matriz, são preenchidos os bits de paridade das respectivas linhas e colunas. Após isso, os dados são transmitidos coluna por coluna. No receptor, a matriz é reconstruída, e os bits de paridade são checados. Eventuais falhas, graças à característica bidimensional do modelo, poderão ser identificadas, o que leva a correção do problema. O problema do método é que, a depender do tamanho da matriz montada, podemos ter um retardo significativo à transmissão dos dados, o que não é desejável nas redes modernas de hoje.

5.2.2. Código de Hamming Curiosamente, o Código de Hamming surgiu da insatisfação de Richard Hamming com os erros no computador que o mesmo utilizava no seu trabalho nos Laboratórios Bell durante os anos 40. A entrada de dados era feita através de cartões perfurados, e eram muito comuns os erros na leitura dos cartões. Durante o expediente normal, os erros eram corrigidos pela equipe de operadores do computador. Nos finais de semana, no entanto, como não existiam operadores, o computador simplesmente descartava o programa com erros, passando para a próxima tarefa. Como Richard trabalhava nos finais de semana, ele ficava irritado com a freqüência com que precisava recomeçar o seu trabalho, devido aos erros na entrada de dados. Sendo assim, decidiu trabalhar no problema da correção de erros, desenvolvendo um conjunto poderoso de algoritmos. Em 1950 ele publicou o que hoje é conhecido como Código de Hamming, que ainda hoje é largamente utilizado por ambientes que necessitam de correção de erros. A teoria é simples. Se, em um determinado conjunto de bits, forem incluídos mais de um bit de checagem de erro, e esses bits forem organizados de forma a produzir diferentes identificações de erro a depender da localização do erro, deve existir uma forma de corrigir o conjunto de dados, identificando a localização do erro. Por exemplo, em um conjunto de sete bits, existem 7 diferentes possibilidades de erro de um bit. Sendo assim, se forem inseridos 3 bits para identificação de erros dentro destes sete bits, certamente o erro poderá ser detectado e identificado, permitindo a correção da falha. Na prática, o método permite detectar erros com distância de Hamming

Qual é a principal diferença entre as camadas 1 2 e 3 do modelo ISO OSI é a camada 1 do modelo TCP IP?

A diferença entre o modelo OSI e o TCP/IP é que o modelo OSI é uma padronização, um modelo conceitual que serve de base para criar outros modelos, e o modelo TCP/IP temos implementado na prática, combinando algumas camadas do OSI em uma só.

Qual a camada do modelo OSI controla o início o diálogo e a finalização de sessões entre processos aplicativos entre máquinas finais?

No modelo de referência OSI, a camada de sessão é a responsável pelo início da comunicação fim a fim e complementa as funções da camada de transporte.

Qual é a função da camada de sessão?

O principal objetivo da camada de sessão é oferecer a camadas de apresentação cooperantes, meios de organizar e sincronizar sua comunicação.

Em qual camada do modelo OSI ocorre o processo de segmentação do fluxo de dados?

Portanto, a camada do modelo OSI que define serviços para segmentar e reagrupar os dados das comunicações entre os dispositivos finais é a Camada de Transporte.