A maior rede de estudos do Brasil

Grátis
16 pág.
CAPÍTULO 14 - PROTOCOLOS ORIENTADOS A CARACTER

Pré-visualização | Página 1 de 3

CAPÍTULO XIV - PROTOCOLOS ORIENTADOS A CARACTER
1. INTRODUÇÃO
	Os protocolos orientados a caracter são largamente utilizados para implementação de Redes de Comunicação de Dados ponto-a-ponto ou multiponto. O processo de gerência da comunicação se baseia em um conjunto de caracteres de controle que, por sua vez, normalmente se baseiam em algum código de transmissão. Os códigos de transmissão mais largamente utilizados são o EBCDIC e o ASCII. A utilização de um ou outro código resulta em algumas particularidades que serão analisadas no decorrer do capítulo.
	Muitas das considerações feitas neste capítulo se baseiam no protocolo BSC (Binary Synchronous Communication) desenvolvido pela IBM. No entanto, os princípios gerais de troca de dados são comuns a outros protocolos da mesma categoria.
1.1. CARACTERES DE CONTROLE UTILIZADOS
	A tabela a seguir resume os caracteres de controle utilizados pelo protocolo BSC. Uma visão mais detalhada da utilização destes caracteres será feita ao longo deste capítulo, nos exemplos abordados.
Função de controle			Mnemonico BSC		Cod. EBCDIC		Cod. ASCII
Início de cabeçalho				SOH			 SOH		 SOH
Início de texto					STX			 STX		 STX
Fim de transmissão de bloco		ETB			 ETB		 ETB
Fim de texto					ETX			 ETX		 ETX
Fim de transmissão				EOT			 EOT		 EOT
Enquiry					ENQ			 ENQ		 ENQ
Reconhecimento negativo			NAK			 NAK		 NAK
Sincronismo					SYN			 SYN		 SYN
Data Link Escape				DLE			 DLE		 DLE
Caracter de bloco intermediário		ITB			 IUS		 IS 1 (US)
Reconhecimento ímpar		 ACK 0			 DLE70H		 DLE 0
Reconhecimento par			 ACK 1			 DLE /		 DLE 1
Espere antes de transmitir		 WACK			 DLE,		 DLE;
Desconexão mandatória			DISC			 DLE EOT		 DLE EOT
Interrupção reversa				RVI			 DLE @		 DLE <
Atraso de texto temporário			TTD			 STX ENQ		 STX ENQ
2. FORMATO DE UM QUADRO BSC
	A figura a seguir ilustra o formato típico de um quadro BSC. O caracter PAD que aparece no início e no fim do quadro é um caracter em que temos uma seqüência de 0s e 1s alternados. O objetivo do PAD transmitido no início do bloco é garantir que as estações transmissora e receptora estejam em sincronismo ao nível de bit antes do início da transmissão das informações. Já o PAD ao fim do bloco tem por objetivo garantir que o Modem tenham transmitido corretamente os últimos caracteres úteis do bloco. Vale ressaltar que temos implementações em que se utiliza dois caracteres PAD em cada extremidade [1][2][3].
	Os dois caracteres SYN tem por objetivo estabelecer sincronismo ao nível de caracter entre o transmissor e o receptor, sinalizando ao receptor o início de um bloco de dados.
	A seqüência BCC é utilizada para permitir ao receptor a detecção de erro. Quando o código utilizado é o código ASCII, o código de detecção de erro utilizado é, comumente, a combinação de uma paridade vertical (VRC) com uma paridade longitudinal (LRC); este código foi apresentado no capítulo sobre controle de erros com o nome genérico de BCC. Já quando o código EBCDIC é utilizado, o mais comum é utilizarmos o código CRC (Cyclic Redundancy Checking) para a verificação da ocorrência de erro. Este código foi tratado detalhadamente no capítulo sobre controle de erros. O tamanho da seqüência BCC depende da técnica de detecção de erro utilizada, sendo comum termos 1 byte quando utilizamos VRC + LRC e 2 bytes quando utilizamos CRC.
�
	
Figura 1 - Formato típico de um quadro BCC.
	Quando a mensagem a ser transmitida é dividida em diversos blocos, todos os blocos terminam com o caracter ETB, com exceção do último bloco que termina com ETX, como mostrado acima. A figura abaixo ilustra esta situação. Nesta figura omitimos, por simplicidade, os caracteres PAD, SYN e BCC.
�
Figura 2 - Transmissão de uma mensagem dividida em 03 blocos.
	Uma outra possibilidade é transmitirmos todos os blocos em um único quadro, utilizando o conceito de blocos intermediários. Neste caso, o primeiro e o segundo bloco terminam com um caracter ITB, indicando a finalização do bloco intermediário, seguido do caracter BCC associado ao bloco intermediário. Logo, o receptor contabilizará o BCC para cada bloco intermediário e enviará um único reconhecimento positivo ou negativo válido simultâneamente para todos os blocos no quadro. Assim, se houver um erro detectado,, todos os blocos terão de ser transmitidos. Obviamente, este tipo de transmissão só é vantajosa se o canal de comunicação for de boa qualidade, resultando em uma probabilidade de erro baixa. Neste caso, o objetivo do BCC internediário é manter a redundância no processo de codificação, que se traduz na capacidade do código de detectar erros de transmissão. Ou seja, se mandassemos um único bloco grande, com um único BCC no final, a redundância diminuiria e a probabilidade de ocorrência de um erro que não pudesse ser detectado pelo receptor aumentaria.
	A vantagem de utilização dos blocos intermediários, mantendo-se os comentários acima, é evitar a reversão no sentido de transmissão para o envio do reconhecimento após cada bloco, aumentando desta forma a utilização do canal de comunicação.
	Após cada bloco intermediário, o bloco seguinte pode ou não iniciar com STX. [1][2]. A figura abaixo ilustra a utilização do caracter ITB.
�
Figura 3 - Transmissão de Blocos Intermediários.
	Um cabeçalho pode ser usado no início da mensagem para enviar informações adicionais, tais como endereço do remetente, data/hora de transmissão, prioridade, informações relacionadas a segurança, etc. Neste caso, o cabeçalho aparece antes do início do texto da mensagem, como ilustrado na figura a seguir, onde mais uma vez omitimos alguns caracteres por simplicidade.
�
Figura 4 - Transmissão de Mensagem com Cabeçalho.
3. SEQÜÊNCIAS DE TRANSMISSÃO TÍPICAS
	Passaremos agora a mostrar algumas seqüências típicas de transmissão em um sistema utilizando o protocolo BSC. Novos conceitos serão introduzidos ao longo dos exemplos.
3.1. SEQÜÊNCIA DE TRANSMISSÃO SEM ERRO
	Neste exemplo a estação A envia uma mensagem composta de 3 blocos para a estação B, que recebe todos os blocos corretamente. A estrutura típica de cada um desses blocos já foi analisada no item anterior.
	Perceba que a estação A envia uma mensagem de ENQUIRY (ENQ) para a estação B antes do início da transmissão dos blocos. Esta mensagem tem por objetivo perguntar para a estação B se a mesma está apta a iniciar a recepção de uma mensagem. Caso a resposta seja afirmativa a estação B envia de volta uma mensagem de RECONHECIMENTO POSITIVO (ACK0). O formato típico dessas duas mensagens iniciais estão indicados na figura a seguir.
�
Figura 5 - Formato das Mensagens de ENQ e ACK0.
�
Figura 6 - Seqüência de Transmissão sem Erros.
	Na seqüência de transmissão mostrada acima verificamos que as mensagens de reconhecimento são alternadas, ou seja, após um ACK0 vem sempre um ACK1, e vice-versa.
	Ainda, notamos que a estação A finaliza a transmissão com uma mensagem de FIM DE TRANSMISSÃO (EOT), que retorna a linha ao estado ocioso. Após o EOT qualquer estação pode tomar a iniciativa de iniciar uma seqüência de transmissão de uma mensagem. O formato típico da mensagem de EOT é o mesmo mostrado para a mensagem de ENQ (figura 5), trocando-se o caracter de controle ENQ por EOT, obviamente.
�
3.2. SEQÜÊNCIA DE TRANSMISSÃO COM ERRO
�
Figura 7 - Seqüência de Transmissão com Erro no Bloco 1.
	Este exemplo mostra uma seqüência em que ocorreu erro na transmissão do bloco 1, corrigido através do envio da mensagem de NAK, que indica uma solicitação de retransmissão do bloco defeituoso.
�
3.3. ESTAÇÃO (B) MOMENTANEAMENTE SEM CONDIÇÃO DE RECEBER DADOS
�
Figura 8 - Estação B sem Condições Momentâneas