Camada de Enlace
Detecção e Correção de Erros
Detecção e Correção de Erros
• Uma rede deve garan6r que os dados
recebidos sejam idên6cos àqueles enviados.
• Em qualquer instante, dados transmi6dos de
um nó ao nó seguinte podem ser corrompidos no caminho.
• Algumas aplicações exigem mecanismos
Tipos de Erros
• Toda vez que uma cadeia de bits flui de um
ponto a outro de uma rede de
computadores, eles estão sujeitos a alterações imprevisíveis por causa de
interferências.
• Um erro de bit significa que apena 1 bit de
determinada unidade de dados foi alterado de 1 para 0 ou de 0 para 1.
• Os erros de bit são o 6po de erro de menor
Tipos de Erros
• Já o erro de rajada significa que 2 ou mais
bits na unidade de dados foram corrompidos.
• Não significa que, necessariamente, os erros
ocorrem em bits consecu6vos.
• O comprimento da rajada é medido do
primeiro bit corrompido até o úl6mo.
• É mais provável a ocorrência de erros de
Redundância
• Para detectar ou corrigir erros, precisamos
enviar bits extras (redundantes) junto com os dados.
Detecção X Correção
• Corrigir erros em uma transmissão de dados
é muito mais diacil que a detecção.
• Na detecção de erros, estamos apenas
verificando se ocorreu algum erro.
• Na correção de erros, precisamos saber o
número exato de bits que foram corrompidos e, mais importante, sua localização na
Correção Antecipada X
Retransmissão
• Na correção antecipada de erros, o receptor
tenta adivinhar a mensagem pelo uso de bits redundantes. Isto é possível se a quan6dade de bits for pequena.
• Na correção por retransmissão, o receptor
detecta a ocorrência de um erro e solicita ao emissor para reenviar a mensagem. O
reenvio é repe6do até que a mensagem chegue livre de erros.
Códigos de Erros
• A redundância pode ser implementada por
meio de vários métodos de codificação.
• O emissor adiciona bits redundantes que
tenham relação com os bits reais. • Código de blocos.
Códigos de Blocos
• Uma mensagem é dividida em blocos, cada
um deles com k bits (palavras de dados).
Adicionamos r bits redundantes a cada bloco para obter o comprimento n = k + r.
• Os blocos redundantes de n bits são
chamados palavras de código.
• O processo de codificação de blocos é
simples, como uma relação de um-‐para-‐um.
• A mesma palavra de dados é sempre
Códigos de Blocos
• Vamos ler na página 272 do PLT como se dá a
detecção de erros via códigos de blocos.
Palavras de Dados Palavras de Código
00 000
01 011
10 101
Códigos de Blocos
• Na correção de erros, o receptor precisa
encontrar (ou adivinhar) a palavra de código que foi originalmente transmi6da.
• Podemos dizer que precisamos de mais bits
redundantes para a correção que para a detecção de erros.
Códigos de Blocos
Palavras de Dados Palavras de Código
00 00000
01 01011
10 10101
Camada de Enlace
Controle do Enlace de Dados
Controle do Enlace de Dados
• As duas principais funções da camada de
enlace de dados são o controle do enlace e o controle de acesso ao meio de transmissão.
• Entre as funções do controle de enlace,
temos a montagem e a delimitação de
frames e a implementação de mecanismos de controle de fluxo e de erros por meio de protocolos de comunicação implementados via sokware, os quais possibilitam uma
Framing
• A camada de enlace precisa empacotar bits
em frames de modo que cada frame seja dis6nguível um do outro.
• Frames podem ter tamanho fixo ou variável.
Para tamanho fixo, não é necessário definir os limites do frame. Já para o de tamanho variável, precisamos de métodos eficientes para definir o final de um frame e o início do seguinte.
Protocolos
• Stop-‐and-‐wait: O emissor envia um frame,
aguarda até receber confirmação do receptor (OK para prosseguir) e então envia o próximo frame.
Protocolos
• Código stop-‐and-‐wait no emissor.
canSend = true; //permite enviar o primeiro frame while(true){
WaitForEvent(); //fica inativo até ocorrência de evento if(Event(RequestToSend) AND canSend){
GetData(); MakeFrame(); SendFrame(); canSend = false; } WaitForEvent(); if(Event(ArrivalNotification)){
Protocolos
• Código stop-‐and-‐wait no receptor.
while(true){
WaitForEvent(); //fica inativo até ocorrência de evento if(Event(ArrivalNotification)){ ReceiveFrame(); ExtractData(); Deliver(data); SendFrame(); //ACK } }
Protocolos
• Janela deslizante: é um conceito abstrato que define o intervalo dos números de
sequência que são gerenciados tanto no emissor quanto no receptor.
Camada de Enlace Acesso Múltiplo
Acesso Múl6plo
• Quando temos um canal dedicado, a
comunicação é mais fácil.
• Quando nós ou estações são conectados e
usam um enlace comum, chamado enlace múl6plo ou broadcast, precisamos de um
protocolo de acesso múl6plo para coordenar o acesso ao meio asico (link).
• O problema de controlar o acesso ao meio é
Acesso Múl6plo
Protocolos de Acesso Múl6plo Acesso Randômico ALOHA CSMA CSMA/CD Acesso Controlado Reserva6on Pooling Token passing Canalização FDMA TDMA CDMAAcesso Randômico
• Nestes métodos, nenhuma estação é
superior e ninguém exerce controle sobre o outro.
• Não existe um momento programado para
uma estação transmi6r.
• Nenhuma regra especifica qual estação deve
ser a próxima a transmi6r.
• Se mais de uma estação enviar dados ao
Acesso Randômico
• Quando a estação pode ter acesso ao meio
de transmissão?
• O que a estação pode fazer caso o meio
esteja ocupado?
• Como a estação pode determinar se a
transmissão foi bem sucedida ou não?
• O que a estação pode fazer caso exista um
ALOHA
• Primeiro método deste 6po desenvolvido em
1970 na Universidade do Havaí.
• Aloha Simples: a ideia é simples.. Cada
estação envia um frame toda vez que 6ver um para enviar. Existe a possibilidade de colisão. Após algumas tenta6vas de
retransmissão, uma estação “desiste” e tenta mais tarde.
ALOHA
• SloCed Aloha: divide-‐se o tempo em slots de
t segundos e forçamos as estações a
transmi6r somente no início de cada 6me slot.
CSMA
• Carrier Sense Mul6ple Access.
• Criado para reduzir a chance de colisão.
• Exige que cada estação “escute”,
primeiramente, a rede antes de iniciar a transmissão.
• Baseia-‐se no princípio “escutar antes de
CSMA/CD
• Carrier Sense Mul6ple Access with Collision
Detec6on.
• O CSMA não especifica o procedimento a ser
seguido após uma colisão. O CSMA/CD estende o algoritmo para tratar colisões.
• A estação monitora con6nuamente o meio
de transmissão após ele transmi6r um frame para verificar se a transmissão foi bem
sucedida. Caso tenha sido, a estação finaliza, caso contrário, há uma colisão e o frame é
CSMA/CA
• Carrier Sense Mul6ple Access with Collision
Avoidance.
• O conceito básico de CSMA/CD é a
capacidade de uma estação detectar uma colisão.
• Em uma rede sem fio, não há como
iden6ficar uma colisão!
• Três estratégias: interframe space,
CSMA/CA
• Interframe space (IFS): quando um canal se encontra ocioso, a estação aguarda por certo período.
• ContenHon window: divisão de tempo em slots.
• Acknowledgments: emissores e receptores trabalham com confirmação de recebimento de frames.
Acesso Controlado
• Neste 6po de acesso, as estações combinam
entre si para saber qual delas tem autorização para transmi6r.
• Uma estação não pode transmi6r a menos
Reserva6on
• No método reservaHon, uma estação precisa
fazer uma reserva antes de enviar dados.
• O tempo é dividido em intervalos.
• Em cada intervalo, um frame de reserva
precede os frames de dados enviados naquele intervalo.
Polling
• O polling funciona em topologias nas quais
um disposi6vo é designado como estação
primária e os demais como estações secundárias.
• Todas as trocas de dados devem ser feitas
Token Passing
• No método token passing, as estações em
uma rede são organizadas em um anel lógico.
• Para cada estação, existe um antecessor e
um sucessor.
• A estação atual é aquela que está acessando
o canal no momento.
• O direito será passado ao sucessor quando a
estação não 6ver mais dados a enviar.
Canalização
• Método de acesso múl6plo no qual a largura
de banda disponível de um enlace é
compar6lhada no tempo, em frequência ou por código, entre diferentes estações.
FDMA
• Frequency-‐Division Mul6ple Access.
• A largura de banda disponível é dividida em
faixas de frequência.
• É alocada uma faixa de frequência para cada
TDMA
• Time-‐Division Mul6ple Access.
• As estações compar6lham a largura de banda
do canal do tempo.
• É alocado um slot de tempo para cada
estação, durante o qual ela pode enviar dados.
CDMA
• Code-‐Division Mul6ple Access.
• Difere do FDMA, pois somente um canal
ocupa a largura de banda inteira do enlace.
• Difere do TDMA porque todas as estações
podem enviar dados simultaneamente, não há compar6lhamento de tempo.
• Significa que a comunicação se dá por