Serviços de Conexão – Controle de Erros

 

Conceitos Gerais

 

Os serviços de conexão ocorrem em várias camadas do modelo OSI, de diferentes maneiras.

 

Veremos inicialmente quais são eles, e posteriormente apenas poderemos referí-los.

 

São três os tipos possíveis:

 

·         Serviço sem conexão e sem confirmação

 

·         Serviço sem conexão e com confirmação

 

·         Serviço com conexão e com confirmação

 

Servico sem conexão e sem confirmação

 

Neste tipo de serviço não é feita nenhuma transação inicial, antes do envio da informação propriamente. Esta é enviada para o destinatário sem que este esteja esperando por ela.

 

O destinatário da mensagem tampouco confirma que a recebeu. Se a reação esperada não ocorrer, caberá à aplicação tomar as providências necessárias, já que os frames perdidos não serão retransmitidos.

 

Sua principal vantagem é a simplicidade, e é adequada apenas para ambientes de alta confiabilidade.

 

Serviço sem conexão e com confirmação

Não há conexão lógica, isto é, não é estabelecida uma conexão antes da transmissão. Porém o recebimento de cada quadro é confirmado pelo destino.

 

Serviço orientado a conexão com confirmação

 

Uma conexão é estabelecida antes do envio dos dados, de modo que o destinatário reserva recursos para a transação. O recebimento de cada pacote é confirmado.

 

Cada quadro é numerado para garantir a seqüência completa. Caso um deles não chegue ao destino, a própria camada tomará providências, sendo esta ação transparente à apliação.

 

Controles

 

Existem três controles, os quais as camada podem implementar de diferentes maneiras, que aliam-se ao serviço de conexão, a saber:

 

·         Controle de erro: garante a integridade da informação.

 

·         Controle de fluxo: garante que o volume de informação transmitido possa ser processado pelas duas entidades.

 

·         Controle de seqüência: garante que os frames sejam remontados na ordem correta.

 

Controle de erros

 

A Camada Física não tem nenhum mecanismo para garantir a integridade dos dados. A primeira camada com esta função é a Camada de Enlace, que prevê mecanismos para:

 

Detecção de erro

 

É um mecanismo relativamente simples que apenas indica se houve ou não erros na transmissão, mas não os corrige. Por isso é adequado para redes de boa confiabilidade, em que o custo da retransmissão é baixo, por exemplo, os protocolos que trabalham com fibras óticas.

 

Entre os mecanismos de controle de erros, citaremos dois:

 

Paridade

·         Forma mais simples

·         Inserção de 1 bit extra ao final de cada caractere de modo a deixar todos os caracteres com um número par ou impar de bits 1

·         Paridade impar: o bit 1 é adicionado se a soma dos bits 1 do caracter (incluindo o bit de paridade) for impar

·         Ex.: 10011001 -> bit de paridade 1

·         Paridade par: o bit 1 é adicionado se a soma dos bits 1 do caracter (incluindo o bit de paridade) for par

·         Ex.: 10011101 -> bit de paridade 1

·         Caso um número par de bits tenha sido invertido não é possível detectar o erro

CRC – Cyclical Redundant Check

·         Transmissor e receptor concordam num  polinômio gerador

·         Aos dados transmitidos, este polinômio é aplicado.

·         O resultado é acrescentado no final do quadro pelo transmissor.

·         O receptor, ao ler os dados, aplica o mesmo polinômio e obtem um resultado.

·         O resultado é comparado ao que veio no frame. Se forem iguais, não houve erro na transmissão.

 

 

Correção de erros

Corrigir erros é mais difícil que detectá-los. Por isso a correção de erros é reservada a ambientes em que as retransmissões são custosas, como por exemplo, nas comuniações seriais discadas.

Em geral, o modo de fazê-lo é enviar informações adicionais no frame, de modo que, caso o receptor detecte que houve erro na transmissão, ele seja capaz de reconstruir a informação sem ser necessário que o transmissor reenvie o pacote.

Como um exemplo citaremos o Método de Hamming, que é um modelo matemático que, resumidamente, funciona assim:

·         Um quadro consiste em m bits de dados e de r bits reduntantes

·         O tamanho total n será n=m+r

·         n é chamado de palavra de código

·         Utilizando o algoritmo de Hamming, a partir destes dados é possível reconstruir a informação original, caso uma parte dos dados esteja danificada

Para informação mais detalhada, veja o documento Error Correcting Codes, de Jim Carlson

Embora este e outros métodos permitem a recuperação da informação, seu custo, em termos de consumo da largura de banda, pode inviabilizá-los.

Por exemplo

o        Supondo uma taxa de erro de 1 bit por 1.000.000 bits

o        Para possibilitar correção numa transmissão de um mebabit, em quadros de 1000 bits, seriam necessários 10.000 bits

o        Para possibilitar detecção e retransmissão, para mesma taxa de erros, seriam necessários cerca de 2000 bits.

o        Assim, num ambiente confiável, como cobre ou fibra, um boa parcela seria consumida desnecessariamente.