• Aucun résultat trouvé

4.5.1 HDLC (High-level Data Link Control)

O HDLC é oriundo de um grupo de protocolos que, apesar de um pouco antigos, continuam sendo bastante utilizados. Tais protocolos são derivados do protocolo de enlace de dados utilizado na rede SNA da IBM, o SDLC (Synchronous Data Link Control). A IBM o submeteu o SDLC ao ANSI e à ISO para sua aceitação como padrão. O ANSI o modificou, tornando-o conhecido como ADCCP (Advanced Data Communication Control Procedure), e a ISO o alterou transformando-o no HDLC. Depois, CCITT o adotou e modificou o HDLC transformando-o no LAP (Link Access

Procedure), para a rede X.25. Posteriormente o CCITT modificou o padrão novamente e passou a

chamá-lo LAPB, a fim de torná-lo mais compatível com uma versão posterior do HDLC.

Todos esses protocolos são baseados em bits e utilizam a técnica de inserção de bits para a transparência de dados. Todos utilizam a estrutura de quadros apresenta abaixo.

O campo endereço é importante principalmente nas linhas com vários terminais para identificá-los. No caso das linhas ponto a ponto, às vezes esse campo é utilizado para distinguir comandos e respostas.

O campo controle é usado para números de seqüência, confirmações e outras finalidades (discutido adiante).

O campo dados pode conter informações arbitrárias e pode ser arbitrariamente longo.

O campo checksum é uma variação do código de redundância cíclica, que utiliza CRC-CCITT como polinômio gerador.

O quadro é delimitado por seqüências de flags 01111110. Nas linhas ponto a ponto ociosas as seqüências de flags são transmitidas de forma contínua.

Existem três tipos de quadros: Quadro de Informação, Quadro Supervisor e Quadro

Não-numerado. O conteúdo do campo controle para esses três tipos de quadro é mostrado na figura

abaixo.

O protocolo utiliza uma janela deslizante com um número de seqüência de 3 bits. O campo

confirmação de carona. Todos os protocolos aderem à convenção de utilizar o número do primeiro quadro não recebido (o próximo quadro esperado) como confirmação.

O bit P/F representa Pool/Final. Ele é utilizado quando um computador (ou concentrador) está consultando um grupo de terminais. Quando utilizado como P, o computador solicita que o terminal envie dados. Todos os quadros enviados pelo terminal com exceção do quadro final, têm o bit P/F definido como P. O quadro final está fixado como F.

Os vários tipos de quadros supervisor são identificados pelo campo tipo.

Tipo Descrição

0 (RECEIVE READY) Identifica o próximo quadro esperado.

1 (REJECT) Indica a detecção de um erro de transmissão. O campo próximo indica o primeiro quadro da seqüência não recebido corretamente. 2 ( RECEIVE NOT READY) Solicita que o transmissor interrompa o envio de quadros.

3 ( SELECTIVE REJECT) Solicita a retransmissão apenas do quadro especificado.

O quadro não-numerado costuma ser utilizado para fins de controle. No entanto ele também pode ser utilizado para transmitir dados quando é necessário um serviço não-confiável sem conexão. Os diversos protocolos diferem consideravelmente nesse ponto. Há cinco bits disponíveis para indicar o tipo de quadro, mas nem todas as 32 possibilidades são utilizadas.

4.5.2 A Camada de Enlace de Dados na Internet

A Internet consiste em máquinas individuais (hosts e roteadores) e na infra-estrutura de comunicação que as conecta. Grande parte de sua infra-estrutura geograficamente distribuída é construída a partir de linhas ponto a ponto privadas.

Tanto para a conexão de linha privada entre roteadores quanto para a conexão com acesso por discagem entre o host e o roteador é necessário o uso de um protocolo de enlace de dados ponto a ponto na linha para cuidar do enquadramento, do controle de erros e de outras funções da camada de enlace de dados. Dois desses protocolos são bastante utilizados na Internet: o SLIP e o PPP.

4.5.2.1 SLIP (Serial Line IP)

O SLIP foi projetado em 1984 com o objetivo de conectar estações de trabalho à Internet por meio de uma linha de acesso discado conectada a um modem. O protocolo é descrito pela RCF 1055.

A estação de trabalho envia pacotes IP brutos pela linha, com um byte de flag especial (0xC0) em sua extremidade para para fins de enquadramento. Se o byte de flag ocorrer dentro do pacote IP, será utilizada uma forma de inserção de caracteres e a seqüência de dois bytes (0xDB, 0xDC) será enviada em seu lugar. Se 0xDB ocorrer dentro do pacote IP ele também receberá uma inserção.

Versões mais recentes do SLIP realizam algum tipo de compactação do cabeçalho do IP aproveitando o fato de que geralmente os pacotes têm vários campos de cabeçalho em comum. Esses pacotes são compactados através da omissão dos campos que são iguais aos correspondentes do pacote IP anterior.

O SLIP possui alguns problemas. Os principais são:

• Não faz qualquer detecção ou correção de erros. As camadas superiores devem detectar e recuperar quadros perdidos.

• Aceita apenas o protocolo IP na camada superior.

• Cada lado deve saber o endereço IP do outro antecipadamente.

realmente se comunicando.

• Não é um padrão aprovado, possuindo várias versões diferentes.

4.5.2.2 PPP (Point to Point Protocol)

O PPP foi projetado pela IETF para resolver os problemas do SLIP e é definido pela RFC 1661. O PPP cuida da detecção de erros, aceita vários protocolos, permite que endereços IP sejam negociados em tempo de conexão, permite autenticação e inclui várias outras melhorias em relação ao SLIP

O PPP possui seguintes recursos:

• Um método de enquadramento que apresenta a extremidade de um quadro e o inicio do outro sem nenhuma ambigüidade. O formato do quadro também lida com a detecção de erros.

• Um protocolo de controle de enlace que é usado para ativar linhas, testá-las, negociar opções e desativá-las novamente quando não forem mais necessárias. Esse protocolo é denominado LCP (Link Control Protocol).

• Uma maneira de negociar as opções da camada de rede de modo independente do protocolo de camada de rede a ser utilizado. O método escolhido deve ter um NCP (Network Control

Protocol) diferente para cada camada de rede aceita.

O formato de quadro PPP foi definido de modo que tivesse uma aparência semelhante ao formato de quadro HDLC. A principal diferença é que o PPP é orientado a caracteres, e não a bits. O PPP, assim como o SLIP, utiliza a técnica de inserção de caracteres nas linhas.

Todos os quadros PPP começam pelo byte de flag padrão do HDLC (01111110), que é complementado com caracteres quando ocorre dentro de um campo de carga útil de dados do usuário.

O campo endereço é definido para o valor binário 11111111, indicando que todas as estações devem aceitar o quadro.

O campo controle tem valor padrão 00000011. Esse valor indica um quadro não-numerado. Ou seja, o PPP não oferece uma transmissão confiável através da utilização de números de seqüência e confirmações. Em ambientes ruidosos pode ser utilizada a transmissão confiável que utiliza o modo numerado (detalhes na RFC 1663).

Como os campos endereço e controle são sempre constantes, o LCP fornece o mecanismo para que as duas partes negociem uma opção que as omitam totalmente e salve 2 bytes por quadro.

O campo protocolo informa o tipo de pacote que está no campo carga útil. Os códigos são definidos para LCP, NCP, IP, IPX, AppleTalk e outros protocolos.

O campo carga útil tem comprimento variável, podendo se estender até o tamanho máximo negociado. Se o comprimento não for negociado utilizando-se o LCP, será utilizado um comprimento padrão de 1500 bytes.

Depois do campo carga útil vem o campo checksum, que tem normalmente 2 bytes, mas pode haver negociação de um checksum de 4 bytes.

Documents relatifs