Rede de Computadores MAT164 – Redes de Computadores I Universidade Federal da Bahia Instituto de Matemática Departamento de Ciência da Computação Rede de Computadores Camada de enlace de Dados 1. Projeto da Camada 1. Serviços 2. Enquadramento 3. Controle de erros 4. Controle de fluxo 2. Detecção e correção de erros 1. Códigos de Correção 2. Códigos de Detecção 3. Protocolos de Enlace simples 4. Protocolos de Janela Deslizante 5. Exemplos de Protocolos de enlace 2 Rede de Computadores Camada de enlace de Dados 1. Projeto da Camada Ponto de Acesso a Serviços (SAP) Especificação de Serviços 3 Camada N Especificação do protocolo Rede de Computadores Camada de enlace de Dados 1. Projeto da Camada • • 4 É a camada que lida com quadros, grupo de bits transmitidos pela rede. Ela depende da camada Física para enviar os bits A camada de Enlace de Dados assegura que os quadros enviados pela rede serão recebidos com o devido tratamento de erros eventuais, que podem implicar em retransmissão do quadro. Rede de Computadores Camada de enlace de Dados 1. • • • Projeto da Camada - Funções: Fornecer Interface bem definida a camada de Rede Lidar com Erros Regular Fluxo de Dados HOST A HOST B Roteador Transporte 5 Transporte Rede Rede Rede Enlace Enlace Enlace Físico Físico Físico Rede A Rede B Rede de Computadores Camada de Enlace – Projeto da camada 1.1. Serviços oferecidos a camada de Rede Transferir dados da camada de rede da máquina de origem até a camada de rede da máquina de destino 1.1.1. Serviços sem Conexão e sem Confirmação 1.1.2. Serviço sem conexão e com Confirmação 1.1.3. Serviço com Conexão e com Confirmação 6 Rede de Computadores Camada de Enlace – Projeto da camada 1.1.1. Serviços sem Conexão e sem Confirmação • Máquina de origem envia dados independentes a máquina de destino • Não há confirmação de recebimento • Não há estabelecimento de conexão lógica • Não nenhuma tentativa de detectar ou recuperar quadros danificados ou perdidos • Usada em redes com taxa de erros muito baixas e recuperação em uma camada acima • Usadas em Redes Locais e em aplicações Real Time 7 Rede de Computadores Camada de Enlace – Projeto da camada 1.1.2. Serviço sem conexão e com Confirmação • Não estabelece conexão lógica • O receptor confirma o quadro recebido para o emissor • O emissor retransmite quadros não confirmados após um tempo predeterminado sem confirmação • Utilizados em canais não confiáveis • Utilizado em conexões sem fio 8 Rede de Computadores Camada de Enlace – Projeto da camada 1.1.3. Serviço com Conexão e com Confirmação • Estabelece conexão lógica entre o emissor e o receptor • Quadros são numerados e a entrega é garantida • Garante a não duplicidade • Garante a entrega na ordem correta • Três fase no processo de transmissão: - Estabelecimento da Conexão - Transferência dos dados - Encerramento da Conexão 9 Rede de Computadores Camada de Enlace – Projeto da camada 1.2. Enquadramento Os Pacotes recebidos da Camada de Rede são encapsulados em Quadros Pacote Cabeçalho Carga útil Final 10 Pacote Cabeçalho Carga útil Final Rede de Computadores Camada de Enlace – Projeto da camada 1.2. Enquadramento Questão da delimitação do Quadro: • Contagem de caracteres Usa um campo no cabeçalho para especificar a quantidade de caracteres do Quadro 8123 456781234567612345612345 8123 456751234567612345612345 11 Rede de Computadores Camada de Enlace – Projeto da camada 1.2. Enquadramento Questão da delimitação do Quadro: • Bytes de FLAG, com inserção de bytes FLAG Cabeçalho Campo de carga útil Uso do ESC quando FLAG for texto Uso de dois ESC quando ESC for texto 12 Final FLAG Rede de Computadores Camada de Enlace – Projeto da camada 1.2. Enquadramento Questão da delimitação do Quadro: • Bytes de FLAG, com inserção de bits FLAG Cabeçalho Campo de carga útil Final FLAG FLAG: 01111110 Para permitir sequência igual ao do FLAG no texto: Inserção no emissor de um bit 0 após sequência de 5 bits 1 Retirada no receptor de um bit 0 após seuência de 5 bits 1 13 Rede de Computadores Camada de Enlace – Projeto da camada 1.2. Enquadramento Questão da delimitação do Quadro: • Alteração da codificação da camada física Usado em redes físicas que usam redundância na codificação dos delimitadores de Quadro, com dois pulsos para cada bit: Alto / Baixo para o bit 1 Baixo / Alto para o bit 0 14 Rede de Computadores Camada de Enlace – Projeto da camada 1.3. Controle de Erros • Uso de quadros de Feedback do receptor par o emissor sobre os quadros transmitidos • Uso de contadores de tempo máximo para espera de um feedback • Uso de número de sequências nos quadros enviados 15 Rede de Computadores Camada de Enlace – Projeto da camada 1.4. Controle de Fluxo • Equilíbrio entre a taxa de transmissão e de recepção de quadros • O protocolo deve manter regras bem definidas sobre quando um transmissor pode enviar o quadro seguinte • Uso de Controle de Fluxo baseado em Feedback 16 Rede de Computadores Camada de enlace de Dados 2. Detecção e Correção de Erros Ruídos e distorções causam erro de transmissão na camada Física que precisam ser tratados na camada de Enlace Taxa de erro: inerente a cada tipo de circuito 2.1. Códigos de Correção de Erros Código de Hamming 2.2. Código de Detecção de Erros e Retransmissão Código polinomial : CRC (código de Redundância Cíclica) 17 Rede de Computadores Camada de enlace de Dados 3. Protocolos de enlace Simples 3.1. Protocolo Simplex sem restrições 3.2. Protocolo Simplex stop and Wait 3.3. Protocolo simplex para canal com ruído 18 Rede de Computadores Camada de enlace de Dados 4. Protocolos de Janela Deslizante 4.1. Protocolo de Janela deslizante de um bit 4.2. Protocolo que usa Go Back n 4.3. Protocolo que usa retransmissão seletiva 19 Rede de Computadores Camada de enlace de Dados 5. Exemplos de Protocolos 5.1. Protocolo HDLC (High-level Data Link Control) 5.2. Protocolo PPP (Point-to-Point Protocol) 20 Rede de Computadores Camada de enlace de Dados 5.1. Protocolo HDLC (High-level Data Link Control) 21 Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Requisitos de Projeto [RFC 1557] 1. Enquadramento de pacote: encapsulamento do datagrama no quadro: Transporta dados da camada de rede de qualquer protocolo de rede (não apenas o IP) ao mesmo tempo • Capacidade de separar os protocolos na recepção 2. Tranparência de bits: trasnportar qualquer padrão de bits no campo de dados 3. Detecção de erros (mas não correção) 4. Gerenciamento da conexão: detecta, e informa falhas do enlace 5. Negociação de endereço da camada de rede: os pontos terminais do enlace podem aprender e configurar o endereço de rede de cada outro 22 Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Não-requisitos • não há correção nem recuperação de erros • não há controle de fluxo • aceita entregas fora de ordem (embora seja pouco comum) • não há necessidade de suportar enlaces multiponto (ex., polling) Recuperação de erros, controle de fluxo, re-ordenação dos dados são todos relegados para as camadas mais altas! 23 Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Formato do Quadro Flag: delimitador (enquadramento) Endereço: não tem função (apenas uma opção futura) Controle: não tem função; no futuro é possível ter múltiplos campos de controle Protocolo: indica o protocolo da camada superior ao qual o conteúdo do quadro deve ser entregue (ex. PPP-LCP, IP, IPCP, etc.) ou tamanho variável ou CRC endereço 24 controle Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Formato dos dados info: dados da camada superior sendo transportados CRC: verificação de redundância cíclica para detecção de erros ou tamanho variável ou CRC controle endereço 25 Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Byte Stuffing • Requisito de Transparência de dados: o campo de dados deve poder incluir o padrão igual ao flag <01111110> Se for recebido o padrão <01111110> são dados ou é flag? • Transmissor: acrescenta (“stuffs”) um byte extra com o padrão < 01111101> (escape) antes de cada byte com o padrão de flag < 01111110> nos dados • Receptor: um byte 01111101 seguido de 01111110 em seguida: discarta o primeiro e continua a recepção de dados. 26 O único byte 01111110 então é um flag Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Byte Stuffing byte com o padrão do flag nos dados a enviar byte com o padrão de escape acrescentado nos dados transmitidos seguido por um byte com padrão de flag 27 Rede de Computadores Camada de enlace de Dados 5.2. Protocolo PPP - Controle de Dados Antes de trocar dados da camada de rede, os parceiros da camada de enlace devem: configurar o enlace PPP (tamanho máximo do quadro, autenticação) aprender/configurar as informações da camada de rede 28