Camada de Ligação de Dados • Tem como principal função garantir a transmissão de dados através de uma linha série, fornecendo serviços aos níveis superiores; • O tipo de protocolo de Ligação de Dados usado depende da ligação física entre os dois DTE (Data Terminal Equipment) a interligar e do bit rate dessa ligação; ▫ para ligações de débitos mais reduzidos são usadosprotocolos Character Oriented do tipo Idle ARQ: Kermit e X-modem ▫ para ligações de débitos mais elevados são usados protocolos Bit Oriented do tipo Continuous ARQ: HDLC, LAPB, LAPD, LAPF e LLC Camada de Ligação de Dados • Para ter acesso aos diferentes serviços do controlo de ligação neste tipo de ligações, torna-se também necessário recorrer a um protocolo específico • Os mais utilizados nestas funções são o SLIP e o PPP. Camada de Ligação de Dados SLIP – Serial Line IP ▫ Criado em 1984 com o objectivo de interligar estações de trabalho da Sun à Internet usando um modem. ▫ O funcionamento assenta no envio de pacotes IP através da linha, com uma flag especial no final de cada trama (0xC0). Técnica de character stuffing para contornar o problema da flag em bytes de dados Camada de Ligação de Dados SLIP – Serial Line IP • Apesar de ainda ser usado apresenta vários problemas: ▫ – Não suporta qualquer mecanismo de detecção e/ou correcção de erros (responsabilidade de níveis superiores) ▫ – Apenas suporta o protocolo IP, o que limita a ligação de redes que não suportem esse protocolo ▫ – IP fixo (esgotamento de IPs!!) ▫ - cada lado da ligação tem de conhecer previamente o endereço IP do outro lado, não suportando a atribuição dinâmica de endereços ▫ – Não fornece um mecanismo próprio de autenticação, o que levanta problemas na sua utilização através da linha telefónica Camada de Ligação de Dados PPP – Point-to-Point Protocol • Surgiu com o objectivo de substituir o SLIP através da eliminação dos seus principais problemas, pelo que: ▫ – Suporta detecção de erros ▫ – Suporta múltiplos protocolos ▫ – Permite a negociação dinâmica do endereço IP durante a fase de estabelecimento de ligação ▫ – Permite autenticação Camada de Ligação de Dados PPP – Point-to-Point Protocol • Fornece 3 funções: – Forma de delimitar o fim de uma trama e o início da seguinte; inclui-se na trama suporte para detecção de erros – Um protocolo de controlo de ligação (LCP-Link Control Protocol) que inicia uma ligação, testa-a, negoceia as diferentes opções, e termina a ligação quando esta deixa de ser necessária – Uma forma de negociar opções do nível de rede (protocolo NCP - Network Control Protoccol). De forma independente relativamente ao protocolo de rede utilizado Camada de Ligação de Dados Todas as camadas precisam de um mecanismo para identificar os transmissores e os receptores. Como em geral uma rede tem muitos computadores, e alguns deles têm vários processos, é necessário um meio para que um processo de uma máquina especifique com quem ela deseja comunicar-se. Como existem vários destinos, surge a necessidade de se criar uma forma de endereçamento para definir um destino específico. Camada de Ligação de Dados Outra preocupação que se deve ter em relação ao conjunto de decisões de projecto diz respeito à transferência de dados. Em alguns sistemas, os dados são transferidos em apenas um sentido; em outros, os dados trafegam em ambos os sentidos. Camada de Ligação de Dados O protocolo também deve definir a quantos canais lógicos corresponde a conexão e quais são suas prioridades. Muitas redes fornecem pelo menos dois canais lógicos por conexão, um para dados normais e um para dados urgentes. Camada de Ligação de Dados O controle de erros é uma questão importante, pois os circuitos de comunicação física não são perfeitos. Muitos códigos de detecção e correção de erros são conhecidos, mas as partes envolvidas na conexão devem chegar a um consenso quanto ao que está sendo usado. Além disso, o receptor deve ter algum meio para informar ao transmissor quais mensagens foram recebidas corretamente e quais não foram. Camada de Ligação de Dados Nem todos os canais de comunicação preservam a ordem das mensagens enviadas a eles. Para lidar com uma possível perda de sequência, o protocolo deve permitir explicitamente ao receptor remontar de forma adequada os fragmentos recebidos. Uma solução óbvia é numerar os fragmentos, mas essa solução ainda deixa aberta a questão do que deve ser feito com os fragmentos que chegarem fora de ordem. Uma questão que afecta cada nível é como impedir que um transmissor rápido envie uma quantidade excessiva de dados a um receptor mais lento. Camada de Ligação de Dados Várias soluções foram propostas e serão discutidas a seguir. Algumas delas envolvem uma espécie de feedback do receptor para o transmissor, seja directa ou indirectamente, sobre a situação actual do receptor. Outras limitam o transmissor a uma velocidade de transmissão predeterminada. Esse assunto é chamado controle de fluxo. Deteção de Erros Porque há Erros de Transmissão? Origem Motivo Como prevenir Perda de Linha Tempestades, acidentes Ruído Branco Movimento dos electrões Aumentar nível do sinal Ruído Impulsivo Relâmpagos, alterações de tensão, ignição dos automóveis, ... Isolar ou mover os fios Cross-talk Bandas de guarda muito pequenas, ou fios muito próximos Aumentar bandas de guarda, ou isolar ou mover os fios Eco Ligações de má qualidade Arranjar ou ajustar os equipamentos Atenuação Intensidade do sinal decresce com aumento da distância Usar repetidores ou regeneradores Ruído de Intermodulação Combinação de sinais com diferentes origens Isolar ou mover os fios Jitter Alteração de fase dos sinais Ajustar os equipamentos Distorção Harmónica Amplificação não linear na frequência Ajustar os equipamentos Deteção de Erros Tipos de Erros • Isolados: •De rajada (burst): Erros • Um sistema de computação funciona em função da transferência de informação desde o nível de circuito integrados até aos níveis mais altos, como por exemplo gravação no disco ou comunicação entre computadores. • Está sujeito a diversos erros, como os causados por interferências electromagnéticas, envelhecimento de componentes, curto-circuitos, ... Erros 1. Características dos erros 2. São inevitáveis em qualquer sistema de comunicação real; 3. A distribuição dos erros não é homogénea: bits isolados ou em “rajadas” (bursts) de erros, com 8 ou mais bits sucessivos errados; 4. Deve-se levar em conta o meio físico de transmissão de dados, para incluir maior ou menor redundância na transmissão, a fim de garantir que a informação recebida seja confiável. Erros Possíveis abordagens no tratamento de erros: 1. Ignorar o erro; 2. Sinalizar o erro; 3. Detectar e solicitar a retransmissão em caso de erro; 4. Detectar e corrigir os erros na recepção de forma automática. Códigos de Detecção de Erros Códigos de Detecção de Erros Detectar um erro é uma tarefa mais simples do que detectar e corrigir; Nem sempre é possível solicitar uma retransmissão; Todos os métodos utilizam a inserção de bits extras; (Esses bits podem ser obtidos a partir da informação original e o receptor recalcula os bits extras) Um método ineficiente mas muito utilizado para detectar erros é a Paridade; Um método mais eficiente é o uso de um código polinomial ou CRC (Cyclic Redundancy Check); Detecção de Erros – Paridade Consiste basicamente no acto do transmissor adicionar um bit de redundância após um determinado número de bits (normalmente um byte): • Paridade : nº par de 1’s -> paridade par nº impar de 1’s -> paridade impar 000, 011, 101, 110 -> são mensagens transmitidas sem erro, tendo em conta que o último bit é o de paridade Detecção de Erros – Paridade Este processo pode ser vulnerável se houver mais do que um erro, permitindo assim que este passe até ao destino sem ser identificado. • Exemplo: 11010010 – devolve valor 0 mas existe erro Usada em muitas aplicações de hardware (onde uma operação pode ser repetida em caso de dificuldade, ou onde é útil a simples detecção de erros). Exemplo: Bus PCI e SCSI. Serviços da Camada de Enlace • Enquadramento e acesso ao enlace ▫ encapsula datagrama num quadro incluindo cabeçalho e cauda, implementa acesso ao canal se meio for compartilhado, ‘endereços físicos’ são usados em cabeçalhos de quadros para identificar origem e destino de quadros em enlaces multiponto Serviços da Camada de Enlace Controle de Fluxo: ▫ compatibilizar taxas de produção e consumo de quadros ▫ entre remetentes e receptores Deteção de Erros: ▫ erros são causados por atenuação do sinal e por ruído ▫ receptor deteta presença de erros ▫ receptor sinaliza ao remetente para retransmissão, ou simplesmente descarta o quadro em erro • Correção de Erros: ▫ Mecanismo que permite que o receptor localize e corrija o erro sem precisar da retransmissão