Você está na página 1de 38

COMUNICAÇÕES DIGITAIS

AULA 4

Prof. Amilton Carlos Rattmann


CONVERSA INICIAL

As comunicações digitais, operando na camada física, estão sujeitas a


falhas de comunicação ocasionadas pelas interferências do canal. Não há
garantias para a entrega correta da informação no caso de uma mensagem
corrompida estiver presente no conjunto de mensagens válidas. Em outras
palavras, não há forma segura de identificação correta da mensagem nos casos
em que as interferências tenham transformado uma informação válida em outra
informação válida esperada.
Por esse motivo, é necessária a inserção de informações de controle
capazes de identificar trocas de símbolos ou informações lógicas ao longo da
transmissão. Não há como garantir, também, a correta comunicação no caso de
incapacidades temporárias de processamento ou armazenamento de algum
dispositivo envolvido na comunicação.
Diante dessas necessidades, o modelo de referência OSI prevê para a
camada de enlace as funções de endereçamento, detecção e correção de erro
e controle de fluxo. Veremos nesta aula os mecanismos de detecção e correção
de erro, formas de controle de fluxo, endereçamento e modos para comunicação
entre múltiplos dispositivos.

TEMA 1 – ENDEREÇAMENTO E ENQUADRAMENTO

Um dos desafios das comunicações digitais é garantir a entrega da


informação da forma mais eficiente possível. O encaminhamento das
informações para o destino correto, pelo caminho mais curto e da forma mais
rápida, mesmo em ambientes com muitos dispositivos agregados, constitui-se
como um grande desafio para a eficiência nas comunicações digitais. Neste
tema, veremos as formas mais utilizadas de endereçamento de quadros, modos
de operação por datagrama e por circuito virtual e os mecanismos utilizados na
delimitação de quadros e de inclusão de informações nos campos de controle.

1.1 Modos de comunicação

De maneira geral, a comunicação de dados está dividida tecnicamente em


dois grandes grupos de modos de comunicação. O modo de comunicação por
circuito é utilizado a mais tempo e se caracteriza pela definição da alocação de
caminhos específicos (recursos), de enlace em enlace, ao longo do caminho
entre os dispositivos que estabelecem comunicação. Esta forma de
comunicação foi utilizada intensamente pelo STFC (Sistema de Telefonia Fixo
Comutado).
A comutação da chamada telefônica alocava circuitos físicos de conexão
entre centrais até o telefone de destino. Com a evolução dos sistemas de
transmissão, os circuitos entre centrais se tornaram conexões TDM (do inglês:
Time Division Multiplexing), nas quais cada chamada telefônica em conexão
ocupava um canal de divisão temporal, TS (do inglês: Time Slot), para a
comunicação de voz. Embora a técnica tenha se modernizado, o sistema de
comutação mantinha o conceito de alocação de circuito, passando a reservar
uma divisão lógica temporal, e não mais circuitos físicos entre centrais.
É importante observar que apesar de estar inicialmente associado à
telefonia comutada, o conceito de circuito é utilizado em outros sistemas, por
apresentar benefícios na qualidade de serviço (QoS – Quality of Service), não
havendo troca na ordem das informações transmitidas, mantendo atrasos
pequenos e constantes e perdas muito baixas na transmissão de informações, o
que é proporcionado pela reserva de recursos ao longo do caminho entre os
dispositivos em comunicação.
Entretanto, há aspectos que devem ser observados neste modo de
comunicação, como o baixo aproveitamento de banda disponível, que ocorre
quando (i) o fluxo de informações não ocupa toda a largura de banda reservada;
ou (ii) quando a transmissão não ocorre durante o todo tempo da reserva, como
mostrado na Figura 1-A. A banda e tempo ociosos no modo de comunicação por
circuito não podem ser utilizados por outros fluxos, não se mostrando muito
aderentes ao requisito de uso eficiência de banda. Outro aspecto é que a
qualidade de serviço deste modo de comunicação tem custo elevado, decorrente
da reserva exclusiva de recursos.
A comutação por datagramas começou a ser utilizada nas primeiras redes
de comunicação de dados. Neste modo de comunicação, não existem caminhos
preestabelecidos, nem elemento central de controle. Os datagramas seguem
pela rede, sendo transmitidos de elemento a elemento, até encontrarem o
dispositivo de destino (Figura 2 – linhas pontilhadas). Os elementos não
conhecem todo o caminho, apenas a direção para o próximo elemento que
conhece outra parte do caminho. Assim como seguimos as direções indicadas
pelas placas de sinalização rodoviárias a cada entroncamentos para chegar em

3
uma cidade distante, os datagramas são encaminhados até o destino, elemento
a elemento, seguindo as rotas locais. Um sistema de roteamento define as
direções e preenche a tabela de rotas de cada elemento da rede, conforme a
topologia da rede.
Entre as vantagens desse sistema está a redução do custo das conexões,
pois os enlaces são compartilhados entre datagramas, conforme apresentado na
Figura 1-B, não existindo reserva de recursos. E entre as desvantagens desse
modo de comunicação está a variação de tempo na entrega de mensagens e a
provável troca na ordem dos datagramas entregues, ou seja, não existe
qualidade de serviço.
O desenvolvimento de algoritmos de predição de fluxo e de alocação
dinâmica, filas ponderadas, diferenciação de classe de serviços e aumento da
velocidade dos enlaces melhorou muito a qualidade de serviço das redes
roteadas, a ponto de permitir tráfegos de voz e vídeo. O custo deste benefício foi
a necessidade de processamento para suportar esses novos recursos de QoS.

Figura 1 – Tráfego no modo: (A) Circuito; (B) Datagrama.

A alocação de recursos tornou-se virtual. Permanece o conceito de


alocação de um caminho entre os dispositivos, porém este caminho é virtual,
mantendo uma banda mínima e uma reserva temporal estatística de maior valor
para rajadas de tráfego, compartilhadas entre fluxos diferentes nos mesmos
enlaces (Figura 2 – linhas tracejadas). Essa solução, denominada SVC (do
inglês: Switching Virtual Channel) ou PVC (do inglês: Permanet Virtual Channel),
dependendo da duração da alocação, tornou-se eficiente quanto ao uso dos
recursos e manteve a inerente qualidade de serviço.

4
Figura 2 – Caminho virtual e caminho de datagrama

Resume-se as características dos modos de comunicação na Tabela 1.

Tabela 1 – Comparação entre modo caminho virtual e modo datagrama

Modo Datagrama Caminho virtual


QoS (Qualidade de Serviço) Sim Sim
Processamento (QoS) Alto Baixo
Troca de posição de informações Sim Não
Troca de posição de informações (QoS) Não Não
Latência Média Baixa
Variação de latência Alta Baixa
Variação de latência (QoS) Baixa Baixa
Eficiência Alta Alta

1.2 Identificador de caminho

Cada caminho virtual é identificado por uma referência local. No ingresso


da rede, o identificador é único por interface, mas pode ser alterado ao longo do
caminho, por enlace, conforme descrito da tabela de comutação de cada
elemento (Figura 3). O identificador pode ser repetido em interfaces diferentes,
pois define outro caminho (outro circuito virtual) a partir da nova identificação.

5
Figura 3 – Tabela de comutação de um circuito virtual

O endereço de um dispositivo é definido localmente por apenas uma


identificação de caminho. Na Tabela 2, são apresentados identificadores locais
para destinos hipotéticos, observando-se que a mesma interface IF-1 possui três
identificadores associados, permitindo o processo denominado multiplexação
por caminho virtual. Ou seja, a mesma interface física transporta de forma
independente e segura três fluxos de dados distintos.

Tabela 2 – Lista de identificadores locais para destinos hipotéticos

Interface ID (rótulos locais) Destino


IF-1 16 Dispositivo D54
IF-1 17 Dispositivo F67
IF-1 24 Dispositivo X123

Existe, entretanto, a necessidade de a rede, ou equipamentos que formam


o circuito virtual, notificar os dispositivos de alterações ao longo do circuito e
sobre a disponibilidade do dispositivo de destino. As notificações evitam que um
dispositivo permaneça enviando dados para um destino inalcançável.
O protocolo Frame-Relay utiliza o DLCI (do inglês: Data Link Connection
Identifier) para identificação dos circuitos virtuais permanentes (PVC, do inglês:
Permanent Virtual Circuit), conforme apresentado na Figura 4, em que interfaces
seriais são configuradas para operar com o protocolo Frame-Relay na camada
de enlace.

6
Figura 4 – Conexões PVC em rede Frame-Relay

Fonte: Adaptado de Cisco, s.d.

A Tabela 3 concentra os identificadores e destinos atingidos por cada


caminho estabelecido pelos circuitos virtuais.

Tabela 3 – Conexões entre unidades via Frame-Relay

Origem Interface DLCI Destino


Centro administrativo S0 130 Estoque
Centro administrativo S0 140 Produção
Estoque S1.1 160 Centro administrativo
Produção S1.1 150 Centro administrativo

A rede ATM também utiliza PVC para comunicação entre dispositivos,


embora utilize dois identificadores para cada caminho, um para identificar o
caminho virtual (VPI, do inglês: Virtual Path Identifier) e outro para o circuito
virtual dento do caminho VCI (Virtual Circuit Identifier).
O protocolo MPLS estabelece caminhos por circuitos virtuais criados
dinamicamente na rede IP, substituindo o sistema de roteamento por um sistema
de comutação, mais rápido e controlável, por meio do acréscimo de um
identificador rótulo – MPLS (Tag-MPLS), antes do endereço de rede.

Figura 5 – Cabeçalho e inserção do rótulo MPLS

Fonte: <https://networkengineering.stackexchange.com>.

7
A arquitetura MPLS permite que a rede IP adquira controle sobre a
ordenação de pacotes e variação de atrasos, controlando os principais
parâmetros do QoS (do inglês: Quality of Service) na rede.

Figura 6 – Arquitetura MPLS

Fonte: <https://pt.slideshare.net/maurotapajos/redes-avanadas-5mpls>.

As funções LSR (do inglês: Label Switching Router) de camada 2,5 1,


assumidas pelos roteadores, realizam o transporte dos dados rotulados até os
roteadores com função LER (do inglês: Label Edge Router), que retiram (ou
inserem) os rótulos MPLS e entregam os pacotes nos enlaces de acesso. O
MPLS possui um cabeçalho de 32 bits, contendo um rótulo de 20 bits para
identificação do circuito virtual.

1.3 Endereço de dispositivo

O endereço de dispositivo é uma referência absoluta e deve ser único em


um conjunto isolado de equipamentos. O tamanho do endereço depende do
tamanho da rede no qual o dispositivo opera. O endereço pode ser formado por
partes com significado específico, ou contendo informações de hierarquia para
facilitar a localização dos dispositivos.
O endereçamento utilizado pelo IPv4 é de 32 bits, permitindo 232
(4.294.967.296) equipamentos operando na mesma rede. Embora seja um
protocolo de camada 3, abordado na próxima aula, aproveita-se o exemplo desta
solução de endereçamentos, que atingiu seu limite anos atrás. O IPv6 adotou

1 O protocolo MPLS foi inserido em redes existentes de camada 2 (enlace Ethernet ou ponto a
ponto) e de camada 3 (IP), para permitir controles sobre fluxo e latência para implementação de
QoS na rede IP. Como o MPLS opera convenientemente entre protocolos de camada 2 e 3, foi,
por convenção, definido como protocolo de camada 2,5.
8
endereçamento de 128 bits, atingindo a ordem de 3,4.1038 endereços, permitindo
grupos privados, ou seja, o endereço possui uma parte pública e outra privada.
Os endereços da rede Ethernet são divididos em duas partes. A primeira
parte é formada pelos três primeiros bytes e identifica o fabricante da interface
de rede, e os três bytes seguintes formam um número sequencial.
Endereços para dispositivos USB utilizam 7 bits, podendo endereçar 127
dispositivos. Os dispositivos Bluetooth utilizam um endereço de 48 bits, dividido
em três partes: NAP (do inglês: Non-significant Address Part), UAP (Upper
Address Part) e LAP (Lower Address Part). Os 24 bits mais significativos do
endereço Bluetooth, formado pelo NAP e UAP, formam o OUI (Organizationally
Unique Identifier), que é administrado pelo IEEE. O NAP é utilizado para
sincronizar o saldo de frequência do rádio do Bluetooth. O UAP é utilizado na
propagação de vários algoritmos de especificação Bluetooth. O LAP é alocado
pelo fabricante e utilizado em todos os quadros transmitidos pelo dispositivo. LAP
e UAP formam a parte significativa do endereço, SAP (Significant Address Part).

Figura 7 – Formato do endereço Bluetooth

Fonte: <https://macaddresschanger.com/what-is-bluetooth-address-BD_ADDR>.

1.4 Delimitadores de quadros

Alguns canais de comunicação transmitem informações organizadas em


estruturas ou permanecem em repouso na ausência de informações,
determinando uma identificação fácil de início de mensagem, como ocorre nos
acessos Ethernets, que utilizam um intervalo mínimo entre quadros, ou IFG (do
inglês: interframe gap), de 12 bytes, como observado na Figura 8. O preâmbulo,
o byte de início de quadro (SoF) e o intervalo entre quadros (IFG) somam 20
bytes. Outros tipos de canais transmitem continuamente, com ou sem
informações, sendo necessário empregar um mecanismo de identificação de

9
início de transmissão de mensagens, como ocorre no ATM, Frame-Relay e LAPB
(HDLC).

Figura 8 – Intervalo entre quadros (IFG)

Os protocolos de enlace normalmente transportam quadros com tamanho


variável e necessitam da delimitação para indicar o tamanho do quadro (Figura
9). Os delimitadores utilizam bytes com valores específicos que não carregam
informação útil, mas têm a função de indicar o fim do quadro atual e o início do
próximo quadro. Nos protocolos ITU-T LAPB (HDLC), da camada de enlace do
protocolo X.25 e no protocolo Frame-Relay são utilizados bytes delimitadores
denominado flags (bandeiras), com valor 7E (hexadecimal). Entre quadros
existem um ou mais flags.

Figura 9 – Delimitação por flag – protocolos Frame-Relay e LAPB

Naturalmente, não é permitido que haja uma ocorrência do valor do flag


dentro do quadro, nas informações transportadas no campo de dados, pois esta
sequência binária seria incorretamente interpretada como flag e anteciparia o fim
do quadro, corrompendo a transmissão. Para evitar esse problema na
transmissão, foram implementados nos protocolos Frame-Relay e no LAPB um
mecanismo de enchimento de bit (do inglês: bit stuff), que injeta um “0” lógico
após cada sequência de cinco “1” lógicos, detectados nos dados transportados.
O mecanismo de enchimento de bit é apresentado na Figura 10, com a inserção
de bit no transmissor e retirada de bit no receptor, antes da entrega dos dados
recebidos aos processos de comunicação de instância superior.

10
Figura 10 – Mecanismo de enchimento de bit

O processo de transmissão e recepção de dados com sequência binária


nos bits de dados iguais ao flag é apresentado na Figura 11, na qual se observa:
(1) os dados a serem transmitidos com sublinhado na sequência binária proibida;
(2) a sequência binária transmitida com a presença dos flags para marcação de
início e fim de quadro, com o enchimento de bit; (3) os dados recebidos.

Figura 11 – Sequência de bits com presença de falso flag: (1) para transmissão;
(2) transmitidos na linha; (3) recebidos

O enchimento de bit é realizado normalmente por hardware. Uma


máquina de estados finitos – FSM (do inglês: Finite State Machine) é empregada
para identificar a sequência de exatamente cinco bits. A Figura 12 apresenta a
imagem de uma simulação no Logisim, uma possibilidade de implementação de
mecanismo de enchimento de bit, que paralisa o buffer binário de transmissão
pelo tempo de um bit, para transmitir um zero. Na recepção, a mesma máquina
de estados da transmissão, ao identificar a sequência de cinco bits, paralisa o
buffer de recepção pelo período de um tempo. Registradores de deslocamento
simulam o buffer de transmissão e recepção e a linha de transmissão. No buffer
que representa a linha de transmissão, é possível observar a sequência binária
“010111110”, gerada para quebrar a sequência de seis bits “1” existentes no
buffer de transmissão. O buffer de recepção passou pelo processo de retirada
do bit extra e apresenta novamente a sequência original “01111110”.

11
Figura 12 – Esquema para enchimento de bit, no simulador Logisim. Foram
utilizados registradores de deslocamento como buffers de transmissão, recepção
e linha de transmissão. O FSM é um bloco que representa a máquina de estados
finitos utilizada para detectar a sequência de cinco bits “1”

A máquina de estados e o circuito digital empregados na simulação são


apresentados na Figura 13, com duas entradas, X (bits) e CLK (relógio) e três
saídas, QA, QB e QC. A armadilha digital á acionada pela sequência dos bits
que representam os estados da FSM, conforme se observa na Figura 12.

Figura 13 – Circuito digital da FSM e máquina de estados finitos para detecção


de cinco bits "1" seguidos

A transmissão de células ATM (do inglês: Asynchronous Transfer Mode)


(Célula TAM definida na recomendação ITU-T I.361), uma rede de camada 2
com elevada velocidade de operação, comutação por hardware e suporte a
serviços de tempo real, possui grande afinidade com sistema de transmissão
SDH (Synchronous Digital Hierarchy). A norma I.432 define duas formas de
delimitação para células ATM: i) quando as células são transportadas em uma
estrutura de quadro do sistema de transmissão SONET/SDH; ii) por fluxo
contínuo de células em estrutura baseada em células.

12
O formato DS3, de 44,736 Mbps, utiliza a estrutura do SDH para
transporte de células, por meio da definição de um protocolo de convergência de
camada física PLCP (do inglês: Physical Layer Convergence Protocol). O PLCP
(parte do IEEE P802.6) mapeia as células em uma estrutura de quadro em locais
fixos, facilitando a extração das células da estrutura de transmissão, como
mostrado na Figura 14. Então, a delimitação das células é obtida pela própria
posição definida no quadro PLCP. A taxa de transmissão do DS3 transportando
células ATM é dada pela expressão (1).

Figura 14 – Formato PLCP/DS3 para transporte de células ATM

(1)

Células ATM transportadas por fluxo contínuo são alocadas em estruturas


STM-1 (do inglês: Synchronous Transport Module level – 1). O quadro STM-1 é
apresentado na Figura 15, em que N = 1 e possuiu campos de controle, ponteiros
e de transporte. O SOH (Section Overhead) é a área de controle da estrutura,
carregando informações de alarmes, palavras de alinhamento e de sincronismo.
Os blocos de dados carregados pelos quadros normalmente não estão alinhados
ao início dos quadros STM-Ns, pois chegam em tempos distintos. Em
tecnologias mais antigas, o bloco de dados aguardava o início do novo quadro
para ser transmitido, acrescentando atrasos no transporte fim a fim, a cada
enlace.

13
Figura 15 – Quadro SDH - STM

Fonte: ITU, 1997.

No sistema SDH, o bloco de dados é imediatamente alocado na estrutura,


e um valor de deslocamento é registrado no campo AU (do inglês: Administrative
Unit Pointer), apontando o início do bloco de dados no campo de carga. O bloco,
com o mesmo tamanho do campo de carga, é transmitido dividido em duas
partes em quadros STM subsequentes. A unidade de carga pode estar
subdividida em estruturas menores para transporte multiplexado de blocos de
dados menores e de fontes distintas. Quando as células ATM são transportadas
na estrutura SDH STM-1, um fluxo contínuo de células é estabelecido pelo
controle do PLOU (Physical Layer Overhead Unit), que emprega 53 bytes para
o sincronismo e informações de operação e manutenção (AOM), apresentado na
Figura 16.

Figura 16 – ATM transportado por SDH – STM-1

O quadro STM-1 e a célula ATM não são múltiplos, podendo ocorrer a


divisão da célula em quadros subsequentes (Figura 17), ou parte de uma célula
ser transportada no próximo quadro STM, produzindo um escorregamento na
posição das células dentro do quadro STM-1.

14
Figura 17 – STM-1: transporte de bloco de dados com deslocamento registrado
por ponteiro. Células ATM transportadas em quadros subsequentes

Fonte: Elaborada com base em ITU, 1997.

O cabeçalho da célula ATM possui 5 bytes, no qual o último byte é o HEC


(do inglês: Header Error Check), que é verificação dos quatro bytes anteriores
do cabeçalho. O sistema de transporte busca essa característica como
delimitadora de início das células no quadro STM, pelo cálculo do HEC nos bytes
transportados. Ao encontrar verificações corretas subsequentes e equidistantes
nos dados transportados, estabelece o sincronismo de início de célula, conforme
esquematizado na Figura 18. Como as células ATM possuem tamanho fixo de
53 bytes, facilita a determinação do início de cada célula subsequente pelo
deslocamento fixo de um ponteiro de extração, por exemplo.

Figura 18 – Busca de sincronismo pelo HEX

A taxas de bits no STM-1 e do transporte de células ATM podem ser


obtidas pelas relações (2) e (3), respectivamente. A razão 26/27 da relação (3)
está relacionada ao fato de serem transmitidos 27 blocos de 53 bytes, sendo um

15
bloco o PLOU e as demais células ATM, experimentando uma taxa de bits líquida
cerca de 4% menor que a taxa de bits do STM-1.

(2)

(3)

TEMA 2 – ACESSO AO MEIO

A comunicação é normalmente abordada, inicialmente, pela comunicação


entre dois dispositivos, motivada pela simplicidade envolvida na apresentação
dos conceitos básicos de um processo de comunicação particular. Entretanto, a
necessidade de comunicação com vários dispositivos é a mais comum, seja
entre componentes integrados ligados em uma mesma placa de fiação impressa
de um sistema digital, seja em uma PAN (do inglês: Personal Area Network)
Bluetooth ou nos modernos agregados formados por sensores e atuadores de
IoT, envolvendo vários dispositivos ligados a um meio comum. Veremos neste
tema as formas utilizadas em comunicações digitais para acesso ao meio.

2.1 Conexão ponto a ponto

A forma mais simples de conexão realizada entre dois dispositivos é a


ponto a ponto. O canal exclusivo permite comunicação eficiente sem esperas e
com sincronismos facilitados, possibilitando comunicação full-duplex. Redes são
formadas por um conjunto de conexões ponto a ponto, sendo adequadas para
poucos equipamentos em distâncias maiores.
As conexões ponto a ponto são pouco adequadas para o cenário com
muitos dispositivos e distâncias curtas, com grande densidade de equipamento
no mesmo local. Nesses casos, as conexões ponto levam a um excesso de
conexões para permitir a troca de informações entre todos os dispositivos. Para
oito equipamentos totalmente interligados (no inglês: full mesh), seriam
necessários N(N-1)/2 enlaces, ou 8*(7-1)/2 = 28 enlaces, conforme apresentado
na Figura 19(a) e (b). Para 10 equipamentos, seriam necessários 45 enlaces.

16
Figura 19 – Conexões ponto a ponto. (a) Diagrama; (b) Fórmula para cálculo da
quantidade de enlaces por dispositivos; (c) Gráfico da relação enlaces x
dispositivos

Dobrando a quantidade de dispositivos, seriam necessários 190 enlaces,


levando à taxa exponencial de conexões com o aumento linear de dispositivos,
apresentada na Figura 19(c).

2.2 Conexão em anel

As redes em anel possuem um comportamento muito satisfatório em


termos de latência, devido ao mecanismo de acesso ao meio comum. Um token
– pequeno quadro com informações de controle – é passado de dispositivo em
dispositivo ao longo do anel. Esse quadro pode ser retido em um dado instante
por um dos dispositivos com interesse na transmissão e é substituído por um
quadro com informações, permanecendo até o encerramento da transmissão.
Um novo token é gerado e encaminhado ao próximo destino, liberando a rede.
A vantagem do acesso em anel é que não existe colisão, logo não há
perdas por colisão nem atrasos na transmissão, permitindo que um determinado
dispositivo transmita muitas informações até um tempo limite de ocupação do
anel, produzindo um uso do meio bastante eficiente e previsível.

17
Figura 20 – Topologia em anel. conexão em anel duplo

Normalmente, o anel é formado por dois caminhos, com circulação de


token nos sentidos horário e anti-horário, mas permite uma rota de redundância
no caso de falha em um dos anéis, conforme apresentado na Figura 20.

2.3 Conexão em barramento

Entre as formas mais comuns de acesso ao meio, a conexão em


barramento interliga vários dispositivos ao longo de uma linha, sem estabelecer,
em princípio, uma ordem no acesso. Os dispositivos acessam o meio à medida
que surgem informações para transmitir, ocupando o meio. Os dispositivos
presentes no barramento devem ser capazes de identificar transmissões no
barramento e transmissões simultâneas realizadas por dispositivos no mesmo
barramento, denominadas colisões. A rede Ethernet utilizou, em sua origem, o
sistema de barramento, com detecção de portadora e colisão, operando
essencialmente em modo half-duplex.
As versões mais recentes da rede Ethernet passaram a utilizar topologia
física estrela, proporcionada por equipamentos repetidores (no inglês: hubs) e
comutadores (switches), alterando a percepção dos dispositivos e interfaces
sobre o barramento, mantendo a operação em half-duplex no uso de hubs e
passando a operar em modo full-duplex, no uso de switches (Figura 21).

18
Figura 21 – Comportamento de hub e switch

As disputas na topologia barramento puro levam a variações no tempo de


entrega das informações entre dispositivos, que piora muito com o aumento do
tráfego. Por esse motivo, é um meio de acesso pouco indicado para sistemas de
comunicação nos quais a latência (no inglês: delay) e variações na latência (jitter)
não sejam críticas.
Uma alternativa bem aceita para barramento e amplamente utilizada em
comunicações industriais é o controle de acesso em modo mestre escravo, que
elimina a disputa pelo controle centralizado, organiza todo o fluxo de informação,
como encontrado no protocolo de acesso ao meio, normalizado pela RS-422.

Figura 22 – Modo de operação mestre-escravo; dois mestres no mesmo


barramento; operação alternada entre mestres, podendo ser operação
ativo/passivo

Sistemas mais recentes permitem mais de um mestre no barramento


controlando grupos de dispositivos, como normalizado pela RS-485. Os dois
mestres acessam todos os dispositivos, mas em tempos alternados, evitando
colisão. É comum a operação com dois mestres em modo ativo/passivo, na qual
o segundo monitora todas as atividades e assume como ativo no caso de falha
do primeiro, conforme Figura 22.

2.4 O atraso

Alguns sistemas necessitam que as informações trocadas sejam


cadenciadas, mas que exista pouca variação temporal entre um bloco e outro.
Os tempos de transmissões em enlaces são, normalmente, razoavelmente
19
estáveis e facilmente determinados. Uma interface operando em 1 Mbps, por
exemplo, sempre transmitirá cada bit em intervalos de 1 μs; o tempo de
propagação deste bit em um enlace de 1 km estará entre 3,3 μs e 5 μs,
dependendo do meio físico utilizado, conforme apresentado na Figura 23.

Figura 23 – Estimativa de tempos de fontes de latência fixas

1 1
𝑇𝑇 = = 6 = 10−6 = 1 𝜇𝜇𝜇𝜇
1 𝑀𝑀𝑀𝑀𝑀𝑀𝑀𝑀 10
𝑑𝑑 103 Velocidade da luz no vácuo:
𝑡𝑡𝑡𝑡 = = = 3,3 10−6 = 3,3 𝜇𝜇𝜇𝜇
𝑐𝑐 3.108 c = 300.000 km/s

𝑑𝑑 103 Velocidade em meio confinado:


𝑡𝑡𝑡𝑡𝑡𝑡 = = = 5 10−6 = 5 𝜇𝜇𝜇𝜇
𝑐𝑐𝑐𝑐 2.108 cc= 200.000 km/s

O atraso na troca de informações entre dispositivos pode ter muitas fontes


de latência, as quais podem ser fixas ou variáveis. A fontes fixas, uma vez
determinadas, permanecem inalteradas e estão relacionadas normalmente à
serialização de dados, propagação do sinal e encapsulamento e empacotamento
de informações. Já as fontes de latência variáveis estão relacionadas às
condições dinâmicas, como latência no processamento, por exemplo, que
depende da velocidade, da utilização e da arquitetura dos processadores.
Armazenamentos temporários em buffers de transmissão, comuns em
interfaces, também são fontes de latência variável que dependem do tamanho
das informações, quantidades de informações e interesse por determinados
caminhos ou interfaces. Os estudos dessas condições são estatísticos e
normalmente empregam a teoria de filas, que estabelece medidas baseadas no
tipo de distribuição e taxa de chegada, tempo de espera e tempo de serviço,
conforme esquematizado na Figura 24.

Figura 24 – Esquematização do problema da teoria de filas

Os estudos da teoria de filas normalmente objetivam:

20
• otimização dos serviços disponíveis (recursos de interface);
• redução do tempo de espera;
• aceleração do atendimento.

TEMA 3 – INFORMAÇÕES DE CONTROLE

Muitas condições do processo de comunicação precisam ser sinalizadas


nos protocolos de camada de enlace. Formas de endereçamento, controle de
fluxos e congestionamento e verificação de erro formam as informações de
controle presentes nos cabeçalhos dos protocolos. Neste tema, veremos as
informações de controle normalmente empregadas em protocolos de enlace.

3.1 Campos de controle

Datagramas gerados pela camada de rede são transportados por enlaces


e encapsulados por protocolos de camada de enlace. Os quadros da camada de
enlace possuem informações de controle utilizadas para esse transporte, como
campos de endereço ou de identificadores de circuito virtual; de controle de fluxo
e notificações de congestionamento; e de verificação de conteúdo.
Sistemas de comunicação podem ser orientados por bit, bytes ou
mensagens. Os sistemas orientados a bit implementam controles que são
indicados em bits presentes nos campos de controle, ativando, notificando ou
desativando funções. O Frame-Relay, MPLS e ATM, por exemplo, utilizam bits
para sinalização de congestionamento, fragmentação e elegibilidade de descarte
de quadros. Sistemas de comunicação orientados por mensagens operam
geralmente em camadas mais altas, nas quais a implementação é normalmente
por software, cujo tratamento de mensagens é mais fácil que o tratamento por
bit ou byte. Os protocolos HTTP (Figura 25) e SIP são exemplos de protocolos
orientados a mensagem.

Figura 25 – Protocolo orientado a mensagem – requisição HTTP

Fonte: <https://tools.ietf.org/html/rfc7230>.

21
3.2 Controle de fluxo

O controle de fluxo na camada de enlace objetiva não sobrecarregar


dispositivos que estejam impossibilitados de tratar informações com
desempenho compatível a dispositivos dotados com recursos de maior
desempenho ou mais livres, ocasionando perda de dados, retransmissões e
possíveis falhas sistêmicas. Em outra situação, vários dispositivos estariam
enviando informações para um único dispositivo, causando sobrecarga
operacional. Nesses casos, a teoria de fila poderia ser novamente aplicada, mas
mesmo com estudos, de forma temporária, esses problemas poderiam ocorrer
em sistemas bem otimizados (com recursos justos). Nessas situações, exige-se
a previsão de um controle de fluxo.
Sistemas de comunicação empregam diferentes sistemas de controle de
fluxo. Equipamentos que empregam interface V.24, por exemplo, podem
desativar o sinal DTR (do inglês: Data Terminal Ready), paralisando
temporariamente a recepção. Protocolos de comunicação empregam bits ou
quadros com esse objetivo. O protocolo HDLC, com o procedimento LAPB, por
exemplo, utiliza o quadro RNR (Receiver Not Ready) para indicar uma situação
de sobrecarga (Figura 26). O protocolo Frame-Relay utiliza o bit BECN
(Backward Explicit Congestion Notification) para indicar um congestionamento
que reduz a taxa de transmissão dentro da rede (Figura 26).
Sistemas mestre-escravo normalmente não dispõem desse tipo de
recurso, pois todo o fluxo de informações é controlado pelo mestre. Entretanto,
a programação do mestre deve levar em conta situações que possam colocar os
dispositivos escravos nessa situação.

Figura 26 – Controle de fluxo implementado no LAPB (HDLC) e Frame-Relay

22
3.3 Controle na sequência de quadros

O controle na sequência de quadros é necessário para evitar que os


processos recebam os dados transmitidos corrompidos pela troca de posições
de bytes no bloco transmitido ou falta de partes do bloco de informação. Em
algumas redes, é difícil evitar que um quadro chegue antes de outros enviados
há mais tempo, como ocorre na rede IP. No entanto, é necessário que o sistema
de comunicação digital tenha controle sobre essas ocorrências para descartar o
quadro antecipado ou aguardar o quadro atrasado. Vale ressaltar que as falhas
que se desejam evitar nesse ponto podem penalizar quadros corretos,
descartando quadros que chegaram muito atrasados ou adiantados. Outro ponto
de atenção é que quadros descartados por erro na verificação geram falhas nos
blocos de informações transportados.
Blocos de informação maiores que a capacidade de transporte do sistema
de comunicação são divididos em vários quadros, processo denominado
fragmentação. Se um quadro não chega ao destino, parte da informação é
perdida. Por esse motivo, todos os quadros são numerados, permitindo que o
receptor identifique a ausência e possa realizar ações corretoras, como solicitar
a retransmissão do quadro ausente.
Revisitando a Figura 26, pode ser observado que o campo de controle do
LAPB utilizado no transporte de dados possui dois campos internos
denominados N(R) e N(S). Esses campos são utilizados para contabilizar os
quadros recebidos corretamente e registrar os quadros transmitidos,
respectivamente. No protocolo Frame-Relay, não existe ordem na sequência de
quadros pelo mecanismo de transporte por circuito virtual, mas podem existir
perdas de quadros. Nesse caso, não existe ação do Frame-Relay, deixando a
responsabilidade dessa correção para o protocolo de camada superior. As redes
Ethernet não fazem controle de sequência de quadros. Toda responsabilidade
pela troca de informações ou perdas de dados ocorre por conta do protocolo de
camada superior.

TEMA 4 – DETECÇÃO DE ERRO

Vimos nas aulas anteriores que não há garantias para a transmissão de


informações pelo canal, pois está submetido às interferências e ruído existentes
no meio de comunicação. Neste tema, veremos formas e mecanismos para

23
identificar os erros nas transmissões de blocos de informação, que tornam a
comunicação entre dispositivos mais confiável.
Para garantir a comunicação digital e armazenamento de dados livre de
erros, são frequentemente utilizados códigos detectores/corretores de erros. O
conhecimento e a implementação de mecanismos de verificação e correção de
erros são de muita importância para a engenharia das comunicações digitais,
estando no centro de muitos sistemas seguros e confiáveis. São utilizados nas
mais diversas áreas, como em veículos, transportes, aviação, segurança,
entretenimento e área militares. Os mecanismos podem ser simples ou mais
complexos e são aplicados conforme a necessidade, custo e nível de segurança
desejados.

4.1 Distância de Hamming

As mensagens recebidas em um sistema são consideradas corretas. Em


princípio, o sistema receptor não tem como avaliar se houve alteração no
transporte da mensagem. Uma forma de avaliação seria um dicionário de
mensagens. Se a mensagem recebida estiver listada, a mensagem é válida.
Embora a solução seja simples, esse mecanismo não assegura que uma
mensagem binária não se transformou em outra mensagem válida. Na Figura
27, é apresentado um sistema de comunicação digital com uma lista curta de
mensagens válidas, ou palavras-código.

Figura 27 – Aplicação da distância de Hamming nas palavras-código

Suponha que a mensagens transmitida seja “100” e que sofreu alteração


de um bit, gerando duas possíveis mensagens: 1) “101” e 2) “000”. Na
mensagem 1, a alteração gerou uma palavra-código que não existe no dicionário
de comunicação desse sistema. Logo, a mensagem é facilmente reconhecida
como inválida e pode ser descartada. A mensagem 2, entretanto, também foi
alterada em um bit, mas produziu nesse erro outra palavra-código válida. Ou
24
seja, as duas possíveis mensagens recebidas sofreram alteração de um bit, mas,
como a mensagem 2 entregou uma palavra-código que pertence ao dicionário
de comunicação, é validada e executada. A incapacidade de reconhecimento do
código correto também se deve à escolha dos códigos. As palavras-código
utilizadas na Figura 27 possuem uma distância mínima de apenas um bit.
As palavras-códigos poderiam ser escolhidas com uma distância maior
entre elas, como apresentado na sequência: “000”, “110”, “101”, “011”, em que
cada palavra-código possui sempre dois bits de diferença com relação à outra.
Isto é, para uma mensagem qualquer se transformar em outra qualquer, será
sempre necessária a alteração de dois bits na transmissão. A distância de
Hamming é definida como a menor quantidade de trocas de bits para transformar
uma palavra-código em outra.
A maior distância de Hamming aumenta a imunidade do código a falhas e
é utilizada para criar códigos mais seguros. Para palavras-código com distância
de Hamming igual a cinco (dH = 5), é necessário que cinco bits sejam alterados
para que a mensagem seja incorretamente aceita. Os sistemas de detecção de
erros normalmente conseguem detectar até [dH - 1] de bits errados. Por sua vez,
os sistemas de correção de erros normalmente conseguem corrigir até [(dH - 1) /
2] de erros com decisão abrupta, forma na qual o valor do bit é decidido apenas
pelo limitar de decisão, conforme apresentado na Figura 28.

Figura 28 – Decisão abrupta e suave

Os sistemas de correção de erros mais complexos conseguem corrigir até


[dH - 1] de bits com decisão suave, forma na qual a medida do grau de confiança
(αn) do bit recebido é considerada na decisão.

25
4.2 Bits de redundância

No exemplo da Figura 27, observa-se um aumento na quantidade de bits


para a realizar a transmissão de forma mais segura. Para quatro palavras-
código, bastariam dois bits. Entretanto, para aumentar a segurança, foram
empregados três bits por palavra-código, ou 50% a mais do que o necessário.
Esses bits adicionais são denominados bits de redundância ou bits de paridade.
De maneira geral, todos os esquemas de verificação inserem bits de
redundância para permitir a verificação de falhas e, alternativamente, para
corrigi-las. Os códigos são representados pela forma C(n, k), em que k é a
quantidade de bits que entram no codificador e k é a quantidade de bits que
saem do codificador, sendo que a diferença m = n – k são os bits de redundância
inseridos. Nessa representação, o codificador hipotético apresentado na Figura
27 seria C(3, 2), com m = 1 bit de redundância.

4.3 Paridade

Além da distância de Hamming, outros mecanismos são frequentemente


aplicados às mensagens para aumentar a imunidade frente ao ruído e às
interferências presentes no canal. Os códigos de paridade simples – SPC (do
inglês: Single Parity Check) são empregados na detecção de falhas em blocos
curtos de bits, como nas memórias de desktop, sistemas RAID e na transmissão
assíncrona da interface V.24 (RS-232) ou no teclado PS2, desenvolvido pela IBM
em 1987.
A paridade é calculada por somas de módulo 2, realizada pela operação
XOR (⊕), em todos os bits de dados do bloco. A paridade pode ser par ou ímpar.
Na recepção, o resultado da soma de módulo 2 de todos bits de dados mais a
paridade resultará sempre em um valor final “0”, para a paridade par; ou “1”, para
a paridade ímpar.
Na interface V.24, a comunicação é assíncrona e inicia a transmissão com
a linha em repouso gerando um bit de partida (start bit), seguido de sete ou oito
bits de dados, um bit de paridade e um, um e meio ou dois bits de parada (stop
bit). A interface PS2, da mesma forma que a interface V.24, transmite partindo
do repouso, gerando um bit de partida, oito bits de dados, um bit de paridade e
um bit de parada, apresentados na Figura 29.

26
Figura 29 – PS2 palavra-código letra A

Tanto no V.24 quanto no PS2, o bit de partida é um valor “0” lógico e o bit
de parada é um valor “1” lógico, e iniciam a transmissão pelo LSB. Ambos
calculam o bit de paridade da mesma forma, pela expressão: P = B0 ⊕ B1 ⊕ B2
⊕ B3 ⊕ B4 ⊕ B5 ⊕ B6 ⊕ B7, embora, normalmente, sistemas que implementam a
interface V.24 tenham a opção de alterar ou retirar o bit de paridade, como na
UART (Universal Asynchronous Receiver/Transmitter) do microcontrolador 8051
da Intel ou no microcontrolador PIC 16F627A da Microchip.
O circuito apresentado na Figura 30 calcula o bit P, de paridade par, na
transmissão, resultando sempre em uma quantidade par de bits “1” entre bits de
dados e paridade. Na decodificação, o valor é sempre “0” para o dado correto. A
expressão para decodificação da paridade par é: B0 ⊕ B1 ⊕ B2 ⊕ B3 ⊕ B4 ⊕ B5
⊕ B6 ⊕ B7 ⊕ P = 0.

Figura 29 – Circuito lógico gerador e detector de paridade par

Figura 30 – Circuito lógico gerador e detector de paridade ímpar

O circuito apresentado na Figura 31 calcula o bit P, de paridade ímpar, na


transmissão, resultando sempre em uma quantidade ímpar de bits “1”, calculado

27
entre os bits de dados e paridade. Na decodificação, o valor é sempre “1” para o
dado correto. O receptor recalcula a paridade dos bits recebidos com a paridade
e identifica o “0” para a transmissão correta para a paridade par, e “1” para a
paridade correta ímpar. Entretanto, quantidades de erros de bit tornam a
paridade correta.

4.4 Paridade bidimensional

A paridade bidimensional não é exatamente uma das técnicas mais


robustas para detecção e correção de erros, mas é simples e melhora bastante
a capacidade de detecção, além de se apresentar de forma muito adequada para
exemplificar o uso geral das técnicas de correção de erro. Considere um bloco
de bits lineares, reorganizado em linhas e colunas. Nessa matriz, determina-se
a paridade por linha e por coluna. No caso de erros pares de bits ocorrendo em
uma linha, ainda não será detectado pela paridade da linha, mas a paridade das
colunas acusará o erro no bloco. Caso exista um único erro, apenas uma linha e
uma coluna acusarão erro. O elemento que figura entre a linha e a coluna com
erros indica o elemento com valor trocado e permite a correção, conforme o
diagrama apresentado na Figura 32.

Figura 31 – Paridade bidimensional

Fonte: Elaborado com base em Kurose; Ross, 2006.

4.5 Verificação por soma

Os protocolos TCP e UDP, por exemplo, utilizam uma técnica mais


simples por soma de quadros aplicada a todos os dados. O protocolo IP utiliza a
verificação por soma apenas nos campos de controle. Já a camada de enlace
utiliza o sistema de verificação por CRC (do inglês: Cyclic Redundancy Check),
mais robusto e seguro. O motivo dessa escolha é que normalmente o cálculo da

28
verificação na camada de enlace é realizado por hardware, podendo executar
um algoritmo mais complexo. A verificação das demais camada é realizada por
software, que, por desempenho, executa algoritmos mais simples.
Existem muitas variações para o algoritmo de verificação por soma (no
inglês: checksum), mas essencialmente executam a soma dentro de uma certa
largura binária, tratando os bytes transmitidos como valores inteiros de 8, 16 ou
32 bits. Com a soma finalizada, é calculado o completo de um (C1) e adicionado
ao campo de verificação. No destino, a verificação por soma calcula todos os
bytes da mesma forma, inclusive com o campo de verificação. Se o resultado
levar a todos os bits em “1”, os campos de informação estarão íntegros. O
processo de soma é apresentado na Figura 33.
No caso da utilização do complemento de dois (C2) para o cálculo da
verificação por soma, utilizando o mesmo processo descrito anteriormente, o
resultado é todos os bits em “0”.

Figura 32 – Verificação por soma – checksum

4.6 CRC

O campo de verificação pode utilizar várias técnicas, como bits de


paridade ou CRC (Cyclic Redundancy Check). Os padrões Ethernet adotam um
CRC-32 para verificação de dados e controle. As células ATM adotam o CRC-8
apenas para o campo de controle, com capacidade de correção de bit, pois, uma
vez que a mídia física tem baixa probabilidade de erro, da ordem de 10-9, faz a
correção de apenas um erro ser bastante efetiva. Os quadros do Frame-Relay
utilizam CRC-16 para verificação dos dados e campo de controle, não corrigindo,
mas eliminando os quadros com erro.
As sequências binárias são tratadas como polinômios com grau m, em
que m é a quantidade de bits do bloco alocado para transmissão. Um polinômio

29
gerador g(x), com grau n, é conhecido pelo transmissor e pelo receptor. Uma
mensagem d(x), com grau m, é normalmente muito maior que o polinômio g(x)
ou m >> n. O quociente q(x) gerado pela operação é um polinômio sempre menor
que g(x), com grau m-n. O polinômio q(x) não é utilizado na transmissão. O resto
r(x) da divisão de m(x) por g(x), com grau n-1, é o código de verificação produzido
que é anexado ao bloco transmitido, conforme apresentado da Figura 34. O
CRC32 produzido por um polinômio com grau n = 32, composto por 33 bits (x32+
... +x0), acrescenta n bits no campo de verificação. As operações de adição ou
subtração são equivalentes, pois consideram a transposição e são executadas
pela função lógica XOR, bit a bit, conforme apresentado na Figura 35.

Figura 33 – Esquematização para produção do CRC

Para o cálculo da verificação, a mensagem m(x) é deslocada à esquerda


e é acrescida de n bits “0”. O polinômio g(x) é operado bit a bit pela função lógica
XOR, iniciando pela parte mais à esquerda do polinômio m(x), como executado
normalmente em uma divisão algébrica. O termo g(x) é deslocado à direita e
operado continuamente até a obtenção do resto r(x) da divisão. O resto r(x) é
acrescentado à mensagem m(x) para realizar a transmissão. A Figura 35
apresenta a sequência de cálculo para obtenção de um código de verificação
CRC8, pelo polinômio gerador g(x) = x8+x2+x+1.

Figura 34 – Processo de cálculo do CRC8

30
No destino, o resultado da operação é calculado com o mesmo polinômio
gerador g(x) utilizado na transmissão. O resultado da operação para uma
transmissão sem erro é zero. Caso o resultado seja diferente de zero, houve erro
na transmissão.
O circuito digital que determina o CRC8 utilizado no exemplo da Figura 35
é apresentado na Figura 36.

Figura 35 – Circuito digital para produzir CRC8 do polinômio g(x) x8+x2+x+1

O CRC é utilizado em muitos sistemas de comunicação e na verificação


dos campos de controle dos principais protocolos de enlace, destacados na
Tabela 4.

Tabela 4 – Polinômios geradores utilizados em vários protocolos de enlace

Protocolo Polinômio G(x)


ATM 𝑥𝑥 8 + 𝑥𝑥 2 + 𝑥𝑥 + 1
IEEE 802.3 𝑥𝑥 32 + 𝑥𝑥 26 + 𝑥𝑥 23 + 𝑥𝑥 22 + 𝑥𝑥 16 + 𝑥𝑥 12 + 𝑥𝑥 11 + 𝑥𝑥 10 + 𝑥𝑥 8 + 𝑥𝑥 7 + 𝑥𝑥 5 + 𝑥𝑥 4 + 𝑥𝑥 2
+ 𝑥𝑥 + 1
Frame-Relay 𝑥𝑥 16 + 𝑥𝑥 15 + 𝑥𝑥 2 + 𝑥𝑥 + 1
G.703 (E1) 𝑥𝑥 4 + 𝑥𝑥 + 1

TEMA 5 – CORREÇÃO DE ERRO

No tema anterior, vimos formas de detectar erros na transmissão, o que


tornou a comunicação entre dispositivos mais confiável. Neste tema, veremos
formas de corrigir os erros tornando a comunicação digital ainda mais confiável
e eficiente, permitindo aumentar o alcance das comunicações ou empregando
menor energia nesse processo.

5.1 ARQ

A entrega de blocos de dados de forma confiável é uma necessidade para


os protocolos de enlace. A implementação de sistemas de correção de erros
entre clientes finais pode tornar o processo de retransmissão muito lento e
31
reduzir significativamente a eficiência da comunicação. A implementação desses
mecanismos nos protocolos de enlace pode aumentar de forma significativa a
eficiência da comunicação fim a fim. Os clientes finais podem estar a muitos
enlaces de distância, e a correção em partes ocorre de forma mais rápida e
especializada, pois o protocolo de enlace pode empregar mecanismos de
correção explorando as características particulares do enlace, que são
desconhecidas dos clientes finais. Um dos mecanismos de correção de erros
mais utilizados em comunicações digitais é o ARQ (Automatic Repeat reQuest).
No mecanismo ARQ, cada parte do bloco de informação é enviada e
confirmada. Caso não haja confirmação, os dados são retransmitidos, e, caso
haja, transmite-se a parte seguinte do bloco de informações. Entre as razões que
endossam o uso do ARQ em enlaces estão: o rápido loop de controle, mais
rápido que a confirmação fim a fim; a retransmissão em fragmentos muito
menores que o bloco todo; poder utilizar o conhecimento local para melhorar o
desempenho de transmissão.
Para utilizar o ARQ, são necessárias três capacitações no protocolo:

1) detecção do erro;
2) realimentação do destinatário;
3) retransmissão.

5.1.1 ARQ – para e aguarda (Stop-And-Wait)

No ARQ – para e aguarda (Stop-And-Wait), o transmissor envia um único


frame e aguarda pela resposta do receptor. O transmissor transmite um novo
quadro, em caso de confirmação, ou o retransmite, no caso de perda ou
adulteração. A temporização de resposta garante a perda da confirmação do
quadro, e o destinatário deve estar preparado para receber quadros repetidos.
Esse mecanismo é simples, de fácil implementação, mas pode ser pouco
eficiente dependendo do tipo de enlace utilizado.

5.1.2 ARQ – janela deslizante (Sliding-Window)

O protocolo que emprega o mecanismo ARQ – janela deslizante (Sliding-


Window) precisa numerar cada quadro transmitido com uma sequência única,
conforme o módulo. O módulo define a base de numeração para a sequência
numérica dos quadros. Assim, o transmissor envia uma sequência de quadros e

32
aguarda sua confirmação. Esta pode ser coletiva, quando uma resposta de
numeração avançada confirma todos os quadros transmitidos desde a última
confirmação, ou individual, quando cada quadro é individualmente confirmado.
A retransmissão seletiva (Selective Repeat – SR ou Selective Reject –
SREJ) reenvia apenas o quadro com erro ou não confirmado. A retransmissão a
partir de um quadro (Go-Back-N – GBN ou Reject – REJ) reenvia todos os
quadros a partir de um determinado número de sequência.

5.2 FEC

O ARQ é muito funcional pela possibilidade de troca de informações entre


transmissor e receptor na recuperação da informação perdida, mas quando essa
possibilidade não existe, ou é operacionalmente inadequada, o ARQ não atende.
Nesses cenários, o receptor precisa detectar e corrigir o erro sem a participação
do transmissor. A técnica que permite essa correção é a correção de erros
antecipada (Forward Error Correction – FEC), utilizada em comunicações de
dimensões interplanetárias, nas quais o tempo de propagação e os custos são
muito elevados. Outra aplicação está na inexistência do transmissor, como na
gravação e reprodução de áudio digital em CDs, pois os erros provenientes dos
riscos na superfície do disco precisam ser corrigidos pelo equipamento de áudio.
As técnicas FEC e ARQ podem ser empregadas separadamente ou em conjunto
na comunicação de dados, melhorando o desempenho pela redução das
retransmissões, sendo intensivamente utilizadas em enlaces rádio.
Para que o receptor tenha a capacidade de correção de erros, é preciso
que informações extras sejam adicionadas à transmissão. Dados redundantes,
relacionados algebricamente ou logicamente com os dados, são acrescentados
ao fluxo nominal com pequeno aumento na taxa de bits. No destino, esses dados
são utilizados para corrigir a informação que tenha chegado corrompida. Os
sistemas FEC possuem limite na correção. Erros espaçados são corridos e erros
em rajadas são de difícil correção.

5.2.1 Correção por paridade

A paridade bidimensional, Figura 32, é um mecanismo FEC que consegue


corrigir um único bit errado, pelas falhas registradas nas paridades de linha e
coluna. Outras variações de paridade podem ser utilizadas, como paridade tripla:

33
Figura 36 – FEC por paridade tripla

5.2.2 Código de Hamming

Como já abordado, os códigos corretores de erros são os mais difíceis de


serem implementados, pois envolvem decisão. Os códigos de Hamming
possuem, entretanto, implementação simples e são capazes de corrigir um erro,
considerando a distância de Hamming mínima dmin = 3. Eles são ditos não
sistemáticos quando os bits de paridades são misturados aos bits de dados, e
são ditos sistemáticos quando os bits de paridade permanecem separados dos
bits de dados.
Os parâmetros do código de Hamming determinam a composição do
código, começando pelo parâmetro “m”, que é a quantidade de bits de paridade
utilizados na codificação, para “k” bits de dados, listados a seguir:

• quantidade de bits de paridade: m


• quantidade de bits de entrada: k = 2m - m – 1
• quantidade de bits na saída: n = 2m – 1
• taxa de código: r = k/n
• quantidade de codewords: M = 2k

Os resultados para m = 3, 4 e 5 bits de paridade são mostrados na Figura


38, aplicados a blocos de 4, 11 e 26 bits de dados. A eficiência de código
aumenta à medida que “m” aumenta, assim como a complexidade dos cálculos,
utilizando mais recursos computacionais. As palavras-código (codewords) são
as palavras válidas transportadas pelo sistema de comunicação digital.
Na aplicação do código de Hamming, uma matriz geradora G(x) será
produzida para codificar as palavras-chaves, obtendo os códigos de saída de
m+k bits. A decodificação emprega a matriz H para cálculo da síndrome sobre a
estimativa do sinal transmitido. Resultando em “000”, houve transmissão correta,
conforme o diagrama da Figura 39. Outros valores indicam a posição do erro.

34
Figura 37 – Formação dos códigos de Hamming e eficiência de código para m =
3, 4 e 5 bits de paridade

Figura 38 – Aplicação da matriz G(x) de decodificação e a matriz H(x) de cálculo


da síndrome

O código de Hamming para m=3 será desenvolvido para demonstrar o


funcionamento da técnica. Para m=3, teremos k=4 bits de dados. Os valores dos
bits de paridade m = {C5, C6, C7} são obtidos por combinações lineares dos bits
k = {C1, C2, C3, C4}, como segue:

C5 = C1 ⊕ C2 ⊕ C3
C6 = C2 ⊕ C3 ⊕ C4
C7 = C1 ⊕ C2 ⊕ C4

Igualando as expressões a zero, obtemos o seguinte rearranjo, que


estabelece a formação da matriz H:

C1 ⊕ C2 ⊕ C3 ⊕ C5 = 0
C2 ⊕ C3 ⊕ C4 ⊕ C6 = 0
C1 ⊕ C2 ⊕ C4 ⊕ C7 = 0

A matriz H (m, n) pode ser dividida em duas partes (Figura 40), sendo uma
a matriz Q e outra a matriz identidade Im (m, m). A matriz G(x) é formada por uma
matriz identidade Ik (k, k) e pela matriz Q transposta. A multiplicação da matriz
G(x) pelas palavras-código produz os códigos C de saída.
35
Figura 39 – Formação da matriz G(x)

Os códigos C*(1,7) são multiplicados pela matriz H(7,3) transposta,


produzindo um vetor S(1,3), denominado síndrome. Caso esse valor da síndrome
seja [0,0,0], a transmissão foi bem-sucedida. Caso seja um valor diferente da
matriz zero, o valor resultante deve ser comparado à matriz Hm para determinar
a coluna correspondente. A coluna da matriz H indica a posição do erro de
transmissão no vetor C*, conforme processo apresentado na Figura 41,
corrigindo o erro.

Figura 40 – Cálculo da síndrome S. Identificação da coluna de H e posição de


erro do bit recebido

A matriz G(x) é implementada no hardware dos dispositivos. A Figura 42


apresenta uma implementação possível de um codificador e um decodificador
de Hamming.

Figura 41 – Circuito codificador e decodificador de Hamming

36
FINALIZANDO

Vimos nesta aula muitos aspectos relacionados às soluções da camada


de enlace, abordando formas de delimitação de quadros de dados, as
necessidades e as funções dos campos de controle, modos de comunicação e
modos de acesso ao meio. Vimos ainda algumas formas empregadas no controle
de fluxo entre dispositivos, mecanismos de detecção de erro e procedimentos
para a correção de erros, estabelecendo uma base técnica capaz de conduzi-
lo(a) a criar sistemas de comunicação funcionais a nível de enlace e aplicá-los
nas comunicações digitais entre dispositivos.

37
REFERÊNCIAS

GODOY JUNIOR, W. Esquemas de modulação codificada com códigos de


bloco. Curitiba: CEFET-PR, 1991.

HANDBOOK-IP/NETWORK. Share Technote. Disponível em:


<https://www.sharetechnote.com/html/Handbook_IP_Network_Ethernet_Frame.
html>. Acesso em: 28 jul. 2019.

INTERFRAME gap – the truth about interframe spacing. LiveAction. Disponível


em: <https://www.savvius.com/networking-glossary/ethernet/interframe_gap/>.
Acesso em: 28 jul. 2019.

JAIN, R. ATM Physical Layer, 1997. Disponível em:


<https://www.researchgate.net/publication/2513923_ATM_Physical_Layer_AT
M_Physical_Layer>. Acesso em: 28 jul. 2019.

KUROSE, J. F. Redes de computadores: uma abordagem top-down. 6. ed. São


Paulo: Pearson Education do Brasil, 2013.

PEDRONI, V. Eletrônica digital moderna com VHDL. Rio de Janeiro: Elsevier,


2010.

TANENBAUM, A. S. Redes de computadores. Rio de Janeiro: Elsevier, 2003.

38

Você também pode gostar