Baixe o app para aproveitar ainda mais
Prévia do material em texto
3ºAula A CAMADA DE ENLACE Objetivos de aprendizagem Ao término desta aula, vocês serão capazes de: determinar a função dentro do modelo da camada de enlace; definir as principais funções da camada de enlace. Caros alunos e alunas! Dando continuidade ao estudo do modelo OSI, nesta aula serão apresentadas as funções da camada de enlace. Lembrem-se de que esta Aula foi preparada para que vocês não encontrem grandes dificuldades. Contudo, podem surgir dúvidas no decorrer dos estudos! Quando isso acontecer, anotem, acessem a plataforma e utilizem as ferramentas “quadro de avisos” ou “fórum” para interagir com seus colegas de curso ou com seu tutor. Sua participação é muito importante! E estamos preparados para ensinar e aprender com seus avanços. Bons estudos! 95 Introdução a Redes I 26 Seções de estudo 1. Apresentação da camada de enlace 2. A função de delimitação de quadros 3. A função de detecção e correção de erros 4. A função de controle de fluxo 5. A função de controle de acesso ao meio 1 1. Introdução A camada física não proporciona um canal de transmissão confiável, pois durante o transporte de bits do transmissor para o receptor podem ocorrer alterações devido a ruídos eletromagnéticos, perda de sincronismo, defeitos nos circuitos de transmissão, etc. Uma das funções da camada de enlace é detectar, e se necessário, corrigir esses erros. 1.1 Principais funções da camada de enlace As principais funções da camada de enlace são: agrupar os bits provenientes da camada física em quadros, detecção e correção de erros que eventualmente possam ter ocorrido na camada física, controle de fluxo da transmissão (evitar que um transmissor envie mais bits que um receptor possa processar). Outra função presente na camada de enlace é controlar o acesso ao meio de transmissão. Quando o meio de comunicação for compartilhado (redes por difusão), várias estações podem transmitir ao mesmo tempo, e com isso gerar o que em redes de computadores é chamado de colisões. Colisões alteram os dados transmitidos e os dados transmitidos são perdidos. Compete a camada de enlace controlar o acesso a esse meio compartilhado a fim de evitar colisões e no caso de sua ocorrência proporcionar a recuperação 1.2 Serviços oferecidos pela camada de enlace A camada de enlace oferece três tipos de serviços: sem conexão e sem reconhecimento, sem conexão com reconhecimento e orientado à conexão. O serviço sem conexão e sem reconhecimento é adequado às redes que possuem baixa taxa de erros no nível físico. O transmissor envia quadros ao receptor, não é necessário que o receptor confirme o recebimento desses quadros. Se um quadro for perdido, a camada de enlace não tentará recuperá-lo, essa tarefa será de responsabilidade das camadas superiores. Esse serviço é utilizado quando os atrasos nos dados causam mais danos do que os recebidos com falhas como, por exemplo, a fala humana. O serviço sem conexão e com reconhecimento é utilizado quando se quer transmitir pequenas quantidades de dados de maneira rápida e confiável sendo responsabilidade da camada a correção de erros. O serviço orientado à conexão garante que os quadros transmitidos serão entregues sem erros, na ordem que foram enviados e sem duplicação. O serviço orientado à conexão é realizado em três fases distintas: estabelecimento da conexão, transmissão dos dados e encerramento da conexão. Na primeira fase o transmissor e receptor negociam parâmetros e recursos para a transmissão. Na segunda fase, são transmitidos um ou mais quadros. Na terceira a conexão é desfeita e os recursos alocados são liberados. Até aqui aprendemos que a camada de enlace existe para colocar uma ordem na transmissão, visto que a camada física apenas realiza a transmissão bruta dos bits, não se atentando à ocorrência de erros e controle de fluxo. A camada de enlace possui as seguintes funções: enquadramento: agrupar os bits provenientes da camada física em quadros; detecção e correção de erros: erros que eventualmente possam ter ocorrido na camada física são detectado e se possível serão corrigidos pela camada de enlace. : evitar que um transmissor inunde o receptor com mensagens. controle de acesso ao meio: compete a camada de enlace gerenciar os meios de transmissões compartilhados (redes por difusão) para que não ocorra colisões ou proporcione mecanismos que faça a recuperação da colisões. Também aprendemos que a camada de enlace oferece três tipos de serviços: utilizado em redes de alta confiabilidade e com baixas taxas de erros. O receptor não sinaliza se o quadro chegou com erro ou não. Compete às camadas superiores realizar essa verificação. : nesse serviço o receptor sinaliza se o quadro chegou com sucesso ou não. Sendo competência da camada de enlace a detecção e recuperação dos erros. : nesse serviço é estabelecida uma conexão entre o transmissor e o receptor onde são negociados parâmetros de transferência, os quadros são entregues na sequência correta e sem duplicação. Compete a camada de enlace realizar a verificação e a recuperação de erros. 2 A camada física transmite um fluxo contínuo de bits, durante essa transmissão um ou mais bits pode ter seu(s) valor(es) alterado(s). A quantidade de bits enviada pode não corresponder à quantidade de bits recebida. A camada de enlace agrupa os bits provenientes da camada física em quadros, adiciona a ele um cabeçalho que conterá alguma informação que venha a poder identificar se algum bit do quadro sofreu alguma alteração, ou se está faltando. Quatro métodos são utilizados para delimitar os quadros: 96 27 flags; 1. Contagem de caracteres Essa técnica utiliza um campo no cabeçalho para especificar a quantidade de caracteres que o quadro contém (figura 2.1-a). A camada de enlace de destino saberá onde é o final do quadro através desse campo. O problema nessa técnica é caso ocorra uma adulteração no valor do campo de contagem de caracteres, o receptor perderá o sincronismo (figura 2.1-b). Figura 2.1. Contagem de caracteres. (a) correto (b) incorreto. Fonte: Acervo Pessoal. 1.2 Caracteres delimitadores Nesse método é utilizada uma sequência de caracteres especiais para delimitar o início e o final do quadro. Como, por exemplo, os códigos especiais ASCII: DLE (Data Link Escape), STX (Start of Text) e o ETX (End of Text). Uma sequência DLE-STX indica o início do quadro, enquanto uma sequência DLE- ETX indica o final. Caso uma dessas sequências fizer parte dos dados a serem transmitidos à camada de enlace transmissora insere um caractere DLE antes do DLE da sequência. Assim, quando a camada de enlace receptora receber e detectar a ocorrência de dois caracteres DLE, ela retirará o primeiro e incorporará os códigos especiais aos dados do quadro. A esse método chamados de inserção de caracter (char stuffing). Atualmente, os quadros não são compostos por caracteres e sim bits, então a utilização dos dois métodos citados acima quase não é adotada. Para delimitar o quadro escolhe-se uma sequência de bits (por exemplo, 6 bits 1 seguidos, 111111) para serem os delimitadores (flags). Para evitar a ocorrência dessas sequências de controle nos dados do quadro, é utilizada a seguinte técnica: após a ocorrência de cinco bits uns consecutivos, é adicionado um bit zero. A essa técnica damos o nome de inserção de bit (bit stuffing). Assim, dentro do pacote nunca ocorrerá uma sequencia de seis bits um. Caso tenha que se transmitir a sequência de bits 100111111101 (figura 2.2-a), a camada de enlace montaria o quadro conforme a figura 2.2-b. O receptor, ao receber o quadro, saberá que após a ocorrência de cinco bits 1 ele deverá remover o bit 0 (destuff) seguinte (figura 2.2-c). Esse método é utilizado somente em redes em que há redundância na codificação de bits no meio físico como, por exemplo, na codificação manchester um bit de dados é codificado utilizando dois bits físicos. Somente as seguintes transiçõessão válidas: alto-baixo e baixo-alto. As transições baixo-baixo e alto- alto gerariam um símbolo inválido. Esse método é nomeado de violação, pois utiliza essas transições inválidas para marcar o início e o fim de um quadro como, por exemplo, HHLLHHLL, de acordo com a figura 2.3. Figura 2.3. Delimitação de Quadro utilizando violação da camada física Camada física realiza somente a transmissão bruta dos bits. Compete a camada de enlace realizar a detecção e a recuperação desses erros. Para facilitar essa detecção de erros ela agrupa os bits a serem transmitidos em uma estrutura de dados chamada de quadros. Um quadro é constituído por um ou vários campos contendo informações de controle e outro campo contendo o dado a ser transmitido. São utilizadas quatro técnicas de delimitação de quadros: contagem de caracteres: nessa técnica o quadro é precedido por um campo que informa por quantos caracteres aquele quadro é formado. Assim se esse campo contiver o valor cinco logo os próximos cinco caracteres fazem parte desse quadro. o problema com essa técnica é no caso de haver uma alteração no valor do campo que informa a quantidade de caracteres. caracteres delimitadores: essa técnica utiliza caracteres especiais para marcar o início e o final de um quadro. Como exemplo utilizamos dois caracteres especiais para marcar o início do quadro 97 Introdução a Redes I 28 (dle e stx) e dois para marcar o final (dle e etx). Caso esses dois caracteres façam parte dos dados a serem transmitidos ela utiliza a técnica de inserção de caracteres, que consiste em colocar um caractere dle extra antes dos dois caracteres de controles que fazem parte dos dados. Por exemplo, se os caracteres dle etx fazem parte dos dados a serem transmitidos os seguintes caracteres serão transmitidos dle-dle- etx. Ao receber esses caracteres a camada receptora perceberá os dois dle indicando que não se trata dos caracteres de controle indicando o final do quadro e sim de dois caracteres de dados. Ela retira um dos dle e armazena os outros dois caracteres. flags: essa técnica utiliza basicamente a mesma lógica da anterior, só que ao invés de se utilizar caracteres que marcam o início e o final do quadro é escolhida uma sequência de bits que indicarão o início e o final do quadro. o mesmo problema acontece: o que fazer quando a sequência delimitadora fizer parte dos dados a ser transmitido? É utilizada uma técnica semelhante a adotada na técnica anterior, ao invés de ser inserção de caracteres se utiliza a inserção de bit. Após transmitir a sequência de controle é transmitido um bit 0. : essa técnica é utilizada somente quando se utiliza a codificação manchester. O que indica o início e o final do quadro são códigos inválidos dessa codificação. Assim, ao receber uma sequência inválida da codificação manchester ela sabe que está iniciando o quadro e ao receber outra sinalização inválida ela saberá que o quadro terminou. 3 recuperação de erros O mecanismo utilizado pela camada de enlace para verificar se ocorreu erro na transmissão de um quadro é adicionar uma sequência de bits a esses quadros. Esses bits adicionais são chamados de FCS (frame check sequence). O FCS é calculado através de um algoritmo que tem como entrada os bits do quadro. O receptor, ao receber o quadro, faz o mesmo cálculo e compara o FCS obtido com o que recebeu. Caso não sejam iguais, o quadro é descartado e, opcionalmente é enviado um aviso ao transmissor sobre o erro. O receptor pode também informar ao transmissor se o quadro chegou sem erros. O nível de enlace pode também utilizar de bits de redundância que permitem não somente detectar que houve erro, mas também corrigi-los, não havendo necessidade de retransmissão dos quadros defeituosos. Esse mecanismo é útil quando o custo de utilização do enlace e o retardo de transferência são elevados como, por exemplo, em enlace de satélites. 1. Código de correção de erros Esse mecanismo adiciona ao quadro a ser transmitido bits de redundância, com o propósito de não apenas detectar erros, mas também descobrir qual o bit que foi alterado. Para entender como isso é possível vamos estudar o conceito de bit de paridade. O bit de paridade é um bit que é adicionado ao final de uma sequência binária, a fim de torná-la com uma quantidade par ou ímpar de bits de valor um. Por exemplo: suponhamos que desejamos calcular o bit de paridade de 10010. Se utilizarmos a paridade par, um bit de valor zero deverá ser acrescido (agora a sequência ficaria 100100), caso fosse utilizado a paridade impar teríamos que acrescentar um bit de valor um (o resultado final da sequência tem que ter um número impar de bits com valor um), ficando a sequência 100101. O conceito de paridade é simples, mas não mostra onde está o erro. Ao transmitir a informação acima, suponhamos que ela chegou com o valor 000100 (estamos utilizando a paridade par), calculado o bit de paridade, detectamos um erro (o bit de paridade é zero e deveria ser um), mas não informa qual o bit que foi alterado (por exemplo, 10000 e 01000, a paridade indica um erro, mas não indica em qual bit ocorreu). Um método que ajuda a detectar em qual posição ocorreu um erro é o código de Hamming. Ele utiliza o cálculo de vários bits paridade que são inseridos em posições específicas na informação que vai ser transmitida. Segue o algoritmo: os bits de paridade ocuparão as posições de potência de 2 (posições 1, 2, 4, 8, 16, 32, etc.) as outras posições serão preenchidas com os dados a serem codificados (posições 3, 5, 6, 7, 9, 10, 11, 12, 13, 14, 15, 17, etc.) o cálculo dos bits de paridades par é efetuado da seguinte maneira: o bit de paridade da posição 1 considerará os bits 1, 3, 5, 7, 9, 11, 13, etc. no cálculo do bit de paridade, ou seja, verifica um e pula um; o de posição 2, irá verificar 2 bits e pulará 2 bits (2 e 3, 6 e 7, 10 e 11, 14 e 15, etc.). o de posição 4, verificará 4 bits e saltará 4. e assim sucessivamente. A figura 2.4 ilustra a codificação do dado a ser transmitido 10011010. Figura 2.4. Código de Hamming. Fonte: Arquivo Pessoal. De acordo com a figura 2.3, o dado a ser transmitido será: 011100101010. Suponhamos que essa sequência ao ser 98 29 transmitida o bit na posição 10 sofreu uma alteração de valor 0 para 1. O receptor irá fazer o cálculo e perceberá que o bit de paridade na posição 2 e 8 estão errados. Se adicionarmos 2 a 8 obteremos 10, que é a posição do bit que sofreu a alteração. 2. Correção de erros por retransmissão Uma técnica que a camada de enlace utiliza para recuperar um quadro quando é detectado um erro é a retransmissão de quadros. O receptor ao receber um quadro enviará ao transmissor um quadro de reconhecimento informando se foi detectado ou não erro de transmissão naquele quadro. Caso o reconhecimento seja negativo (foi detectado o erro) o transmissor enviará novamente o mesmo quadro e o receptor descarta o quadro com erro. Imaginemos a seguinte situação, o transmissor envia um quadro, o receptor detecta um erro e envia um reconhecimento negativo, mas esse quadro é destruído pelo meio físico, o transmissor ficará esperando para sempre por um reconhecimento que nunca chegará. Para contornar esse problema é utilizado um mecanismo chamado de timeout, que é um tempo de espera por uma resposta. Esse tempo deve ser suficiente para que um quadro seja transmitido, recebido e processado pelo receptor, o reconhecimento seja gerado, enviado e recebido pelo transmissor. Ou seja, o transmissor depois de enviado um quadro, esperará um intervalo de tempo pela chegada do reconhecimento, caso estoure esse tempo, ele enviará novamente o mesmo quadro. Suponha que o reconhecimento positivo de um quadro não chegue ao transmissor devido a um erro de transmissão. Depois de expirado o timeout o transmissor enviará o mesmo quadro novamente, o receptor ficará com duas cópias do mesmo quadro (duplicação). Algum mecanismo deveráser utilizado para que o receptor possa distinguir entre os quadros originais e as cópias reenviadas. Para isso os quadros são numerados. Os dois mecanismos mais utilizados para recuperação de erros por retransmissão são: o algoritmo de bit alternado e reconhecimento contínuo. a)Algoritmo de bit alternado No algoritmo de bit alternado o transmissor envia um quadro e espera pelo reconhecimento do mesmo. Como podem ocorrer retransmissões de um mesmo quadro, eles devem ser numerados para que o receptor possa distinguir os originais das cópias, evitando assim duplicações de quadros. Como o transmissor só envia um quadro após receber o reconhecimento do anterior, é necessário somente um bit para numerar os quadros (quadro zero e quadro um). O transmissor envia o quadro com numeração zero, espera pelo seu reconhecimento, depois envia o quadro com numeração um, espera pelo seu reconhecimento, envia outro quadro com a numeração zero, e assim sucessivamente. Note que o que se repete são as numerações dos quadros e não os quadros, os números que identificam os quadros que se repetem (uns e zeros). Se tivermos mil quadros para transmitir, quinhentos serão identificados com o número zero e quinhentos com número um. No exemplo da figura 2.5, temos o seguinte exemplo: o transmissor envia o quadro com numeração zero. Ao recebê- lo, o receptor calcula o FCS e compara com o FCS recebido, como são iguais envia um reconhecimento (ACK) do quadro número zero; o transmissor ao receber o reconhecimento, envia outro quadro, numerado como um; o receptor detecta um erro e envia o reconhecimento do quadro anterior, número zero (note que um reconhecimento do quadro zero implica na transmissão pelo transmissor do próximo quadro, no caso o um); ao receber é verificado que não houve erros na transmissão, é enviado o reconhecimento do quadro, mas este é destruído durante a transmissão; decorrido o timeout o transmissor reenvia o quadro 1 novamente, que chega ao destinatário sem problemas e o reconhecimento é enviado, agora sem problemas, ao transmissor, que passa a enviar o próximo quadro, e assim, sucessivamente. Figura 2.5. Algoritmo do bit alternado. Fonte: Arquivo Pessoal. O método do bit alternado é uma solução simples, porém ineficiente na utilização do meio de comunicação, pois o canal de comunicação fica ocioso enquanto se espera pelo reconhecimento. No método de reconhecimento contínuo o transmissor envia diversos quadros mesmo sem ter recebido reconhecimentos dos quadros anteriormente enviados. A quantidade máxima de quadros que pode ser enviada sem que tenha chegado um reconhecimento é chamada de largura da janela. O transmissor sabe que ocorreu um erro na transmissão de um quadro, através da não chegada do reconhecimento desse quadro (utilizando o timeout). Na retransmissão do quadro defeituoso, dois procedimentos podem ser implementados: retransmissão integral (go back-n): são retransmitidos todos os quadros a partir do que não foi reconhecido. retransmissão seletiva (selective repeat): são retransmitidos somente os quadros que não foram reconhecidos. 99 Introdução a Redes I 30 O receptor não precisa enviar o reconhecimento para todos os quadros que receber. Em vez disso, ele pode enviar um reconhecimento a cada x quadros que receber com sucesso. Ao reconhecer o quadro com numeração n indica que todos os anteriores foram recebidos com sucesso. Com isso, temos uma eficiência de utilização do canal de comunicação. Na figura 2.5, temos um exemplo do funcionamento desses dois métodos. No exemplo (A), notamos que a largura da janela é igual a três. Se depois de enviados três quadros não chegar o reconhecimento ele enviará novamente esses quadros. O exemplo começa enviando o primeiro quadro identificado com a numeração zero, depois o quadro um e o dois. Nesse momento ocorre um erro com esse quadro, o receptor começa então a descartar os próximos quadros recebidos (três, quatro e cinco). Depois de decorrido o timeout (transmitiu três quadros e não obteve resposta) ela enviará novamente a partir do último quadro reconhecido, nesse caso o quadro um. Note que o receptor enviou um reconhecimento do quadro de número um, indicando que os quadros zero e um foram recebidos sem erros. Então são transmitidos os quadros dois, três, quatro e cinco. Note que a janela do transmissor avança a cada reconhecimento recebido. Ao transmitir novamente o quadro de número dois o transmissor esperaria até a transmissão do quadro de número cinco por algum reconhecimento. Note que ao transmitir o quadro de número três ele recebeu o reconhecimento do quadro de número dois. Agora ele irá esperar até o quadro de número seis por um reconhecimento. Ao transmitir o quadro de número cinco ele recebeu o reconhecimento do quadro de número quatro. Agora ele espera que até o quadro de número oito chegue algum reconhecimento. No exemplo (B), o funcionamento por parte do transmissor é o mesmo, o que é alterado é a maneira como o receptor lida com os quadros recebidos após que há uma detecção de erro. Ao invés de descartar os próximos quadros ele os armazena e após recebido o quadro defeituoso ele reconhece o último armazenado. Com isso otimiza-se a transmissão. Note que no mesmo espaço de tempo no exemplo (A) foram transmitidos corretamente sete quadros e no (B) nove quadros. Figura 2.5. (a) Retransmissão Integral (b) Retransmissão Seletiva - Fonte: Arquivo Pessoal. Nesta seção aprendemos com é realizado a detecção e a correção dos erros que por ventura venham acontecer durante uma transmissão. Isso é possível adicionando ao quadro que será enviado bits adicionais. Esses bits são chamados de FCS e são calculados através de algoritmos que utilizam como entrada os bits do quadro a serem transmitidos e geram como resultado o FCS que será armazenado no cabeçalho do quadro. Nesse ponto já notamos que o quadro já possui dois campos, um chamado cabeçalho que conterá informações de controle, nesse caso o FCS e outro contendo o dado a ser transmitido. Ao chegar ao receptor o mesmo processo é realizado, aplica-se o mesmo algoritmo aos bits do quadro que chegou (excluindo o cabeçalho) e é obtido o FCS, que é comparado o FCS do quadro que chegou. Se forem iguais, a transmissão aconteceu sem erros. Se não forem iguais, medidas de correção de erros deverão ser tomadas. Os métodos vistos de detecção de erros foram: bit de Paridade: trata-se de um algoritmo simples para detecção de erros. Consiste em contar a quantidade de bits com valor um do campo de dados. O campo FCS contém apenas um bit e deverá ser um ou zero de maneira que todo o quadro (incluindo o FCS) tenha uma quantidade par ou ímpar de bits com valor um. Notamos que existe a paridade par e a ímpar. A mesma paridade deve ser adotada tanto pelo transmissor quanto pelo receptor. O problema com esse método é caso ocorra erro na transmissão do FCS, ficando; código de Hamming: utiliza o bit de paridade, ou melhor, vários bits de paridade para o mesmo quadro. Além de detectar o erro ele sinaliza em qual posição ocorreu o erro, permitindo que o erro seja corrigido; métodos de correção por retransmissão: foram dois os métodos por retransmissão estudados: o do bit alternado e o de reconhecimento contínuo. Nesses dois métodos os quadros são numerados para que haja distinção entre os já enviados dos que ainda não foram. No método do bit alternado somente são utilizados as numerações zero e um para distinguir os quadros. Isso se deve ao funcionamento do algoritmo, pois o transmissor só enviará um novo quadro somente quando o anterior for reconhecido pelo receptor. Assim ele envia o quadro identificado com o número zero e espera pelo seu reconhecimento, caso ele receba o reconhecimento positivo pelo receptor desse quadro ele enviará o próximo quadro que é identificado com o número um. Caso o receptor tenha que sinalizar um erro ele envia o reconhecimento doquadro anterior, em nosso exemplo se houve um erro ele enviaria o reconhecimento do quadro identificado com o número 1. Caso ocorra o timeout será enviado novamente o quadro que está esperando o reconhecimento. Note que esse algoritmo também prove um mecanismo de controle de fluxo (que é o próximo item a ser estudado). O receptor nunca irá receber uma quantidade de quadros que não possa processar. Pois ao reconhecer um quadro ele 100 31 automaticamente está sinalizando que está pronto para processar mais quadros. No método do bit alternado o meio de transmissão fica ocioso durante a espera do reconhecimento. Para solucionar essa ociosidade foram desenvolvidos outros métodos, os de reconhecimento contínuo. São dois os métodos: retransmissão integral e seletiva. Nesses métodos existe uma quantidade de quadro que é enviada sem que espere por um reconhecimento, a esse tamanho damos o nome de janela. Se após decorrido essa janela não ter chego o reconhecimento desses quadros ele irá transmitir novamente essa janela. O que diferencia os métodos de retransmissão integral e seletiva é a maneira como o receptor lida com os quadros recebidos após a detecção de um erro. Na integral ele descarta os quadros enquanto que na seletiva ele os armazena. 4 Outra função da camada de enlace de dados é a de compatibilizar as velocidades de transmissão entre o transmissor e o receptor, a fim de evitar que o transmissor envie quadros mais depressa que o receptor possa processar. No protocolo de bit alternado esse controle é feito pelo próprio algoritmo, pois um novo quadro só é enviado após o recebimento de um reconhecimento (positivo ou negativo). Nos algoritmos de reconhecimento contínuo o controle de fluxo é feito utilizando-se o protocolo de janelas deslizantes. No protocolo de janela deslizante o transmissor e o receptor têm uma janela de largura N. O transmissor a cada quadro que envia diminui o tamanho de sua janela, e a cada reconhecimento recebido aumenta o tamanho da janela. O receptor ao receber um quadro diminui a sua janela e ao enviar o reconhecimento, aumenta a janela. Figura 2.6. Protocolo de janela deslizante (n=4). Fonte: Arquivo Pessoal. Veja o exemplo da figura 2.6, no momento inicial temos o receptor e o transmissor com suas janelas de tamanho iguais a quatro. Ao transmitir dois quadros o transmissor diminui sua janela em dois quadros e o receptor ao receber também diminui o tamanho de sua janela em duas posições. Ao realizar o reconhecimento dos dois quadros que recebeu ela irá aumentar sua janela em dois quadros e o receptor ao receber esse reconhecimento irá aumentar a sua janela de transmissão em dois quadros. Caso ele não tivesse recebido esse reconhecimento ele iria transmitir mais dois quadros (o tamanho atual de sua janela). Note que o receptor possui mais dois quadros reservados para esses novos quadros. Enquanto o receptor não reconhece os quadros a janela do transmissor não irá aumentar. Assim o receptor sinaliza se possui ou não recursos para processar novos quadros. 5 ao meio Gerenciar o acesso ao meio de transmissão é outra função da camada de enlace. Em redes de longa distância o controle é mais simples, pois o enlace é ponto a ponto envolvendo dois roteadores. Em redes locais temos várias máquinas compartilhando o mesmo meio de comunicação. Isso gera uma concorrência para a utilização do meio de transmissão. Caso duas máquinas transmitam ao mesmo tempo ocorre uma colisão e os dados transmitidos por ambas serão perdidos. Necessitamos utilizar de algum mecanismo para disciplinar o acesso ao meio de comunicação. Devido à grande importância de gerenciar o acesso ao meio em redes locais, a camada de enlace foi divida em duas subcamadas, a LLC (cujas funções nós vimos anteriormente) e a subcamada de controle de acesso ao meio MAC (Médium Access Control). As duas técnicas mais utilizadas para o controle de acesso ao meio são baseadas em acesso por contenção (aleatório) e passagens de permissão A técnica de acesso por contenção é utilizada basicamente em redes com topologia em barramento. Dois métodos são utilizados ALOHA e a sua evolução o CSMA (Carrier Sense Multiple Access - Método de acesso múltiplo com detecção de portadora). 1.1 ALOHA puro Foi desenvolvido na Universidade do Havaí, para conectar via satélite às unidades distribuídas por quatro ilhas. A técnica utilizada por esse método é simples, um host quando necessita transmitir um quadro, ele transmite. Caso ocorra colisão (mais de um host transmitindo ao mesmo tempo), o quadro irá sofrer modificações e será descartado pelo receptor. O host transmissor irá detectar o erro pelo estouro de timeout de reconhecimento do quadro enviado. Ele esperará por um tempo aleatório e tentará novamente a transmissão. Note que o uso de um tempo aleatório e não prefixado evita que dois ou mais hosts tentem enviar ao mesmo tempo. Essa técnica tem como desvantagem que uma comunicação em curso pode ser prejudicada por um host que tenta iniciar uma transmissão. A capacidade máxima de utilização do canal é de somente 18%. Isso significa que 82% da capacidade total do canal é desperdiçada devido às colisões. 1.2 ALOHA particionado Nessa técnica uma estação mestre emite sinalizações em intervalos de tempo (o suficiente para transmitir um quadro). 101 Introdução a Redes I 32 Todas as outras estações podem transmitir somente no início de cada intervalo. Caso ocorra uma colisão, a estação esperará um tempo aleatório e após decorrido esse tempo, terá que esperar pelo início do próximo intervalo para poder transmitir. Essa técnica é igual a anterior, ela minimiza a colisão entre uma estação que já está transmitindo com outra que quer iniciar a transmissão. Essa técnica faz com que as colisões ocorram de maneira ordenada. A utilização do canal sobe para 36%, o dobro da anterior. Mas, mesmo assim é ineficiente quando se tem muitas estações querendo transmitir. A vantagem está na simplicidade dos dois métodos, com consequente baixo custo de implementação. 1.3 CSMA Os métodos que utilizam essa técnica “escutam” o meio de comunicação para saber se alguma transmissão está ocorrendo antes de tentar o envio de algum quadro. Esses métodos são Np-CSMA, p-CSMA e CSMA/CD. A diferença entre os dois primeiros e o último é a forma de detecção da colisão, os dois primeiros através da não chegada do reconhecimento, enquanto o último fica escutando o meio durante toda a sua transmissão. A diferença entre os dois primeiros métodos está no algoritmo que cada um utiliza ao encontrar o meio ocupado. O Np-CSMA, ao “perceber” que o meio está sendo utilizado ele esperará por um intervalo de tempo aleatório para depois tentar um novo acesso. O p-CSMA fica “escutando” o meio até que fique desocupado. Quando isso acontecer, ele transmitirá com probabilidade p (ou seja, dado um valor p entre 0 e 1, ele sorteará um valor x entre 0 e 1, caso x p, ele transmite), caso não consiga transmitir, espera por um intervalo de tempo aleatório e tenta transmitir novamente com probabilidade p, e assim fica até conseguir transmitir ou até que uma outra estação ganhe o acesso ao meio, voltando ao início do processo. A escolha do valor de p leva em conta vários fatores como: retardo de propagação, tamanho do quadro, tráfego na rede, taxa de transmissão, etc. Uma derivação desse método é o CSMA 1-persistente, que ao detectar que o meio está livre, transmitirá de fato. Pode ocorrer colisão quando dois hosts estão escutando o meio enquanto um terceiro o está utilizando. Esses dois métodos proporcionam uma taxa de utilização de 86% do meio, em baixo tráfego. A ineficiência dos dois métodos acima citados diz respeito à ineficiência de utilização do meio quando ocorre uma colisão, tendo-se que esperar o reconhecimento negativo da colisão. No CSMA-CD o transmissor continua escutando o meio enquanto transmite, e ao detectar que está ocorrendocolisão, cessa a transmissão e injeta no meio sinais espúrios a fim de reforçar para as outras estações a ocorrência da colisão. Caso seja detectada uma colisão é utilizada a técnica de espera aleatória exponencial truncada na retransmissão. A espera aleatória exponencial truncada é a mais utilizada e consiste em esperar por um tempo aleatório entre 0 e um limite t. Caso ocorram colisões sucessivas o limite é dobrado. E se após algumas retransmissões ainda acontecerem colisões, a transmissão é abortada. Os métodos baseados em passagem de permissão são utilizados em redes com topologia em anel. Essa técnica é baseada em um pequeno quadro (chamado de token) que fica circulando pelo anel. Uma estação poderá transmitir somente se possuir o token. De posse do token a estação transmite um quadro, que irá circular no anel até chegar ao destino. O destinatário checa se o quadro foi recebido com sucesso, coloca em um campo do quadro o reconhecimento (negativo ou positivo) de recebimento e transmite o quadro novamente pelo anel, que será recebido pelo transmissor, que após verificar que o emissor recebeu o quadro corretamente, o retirará do anel e passa o token para a próxima estação. Se a próxima estação não tem quadros a transmitir, passará o token para a próxima, e assim sucessivamente. O anel pode ter uma estação mestre que tem as seguintes tarefas: verificar se o token não se perdeu, tratar falhas no anel, remover quadros corrompidos, etc. O método de passagem de permissão pode também ser utilizado em redes com topologia em barramento. Nesse caso, o anel é formado de maneira lógica, ordenando os hosts por algum critério como, por exemplo, os endereços. Essas redes são chamadas de token bus. O token é composto por 3 bytes: o primeiro(DI) indica o início do token, através de transições inválidas do código Manchester diferencial. O segundo(CA) é utilizado para controlar o acesso ao meio, sendo composto de agrupamento de bits em 4 categorias: status (1 bit): indica se o token está livre ou não; monitor (1 bit): indica se o token passou pela estação mestre. A estação mestre sempre ativa esse bit quando o token passar por ela; prioridade (3 bits): indica a prioridade mínima dos quadros que podem ser transmitidos com a captura do token. O host com posse do token pode transmitir quadros com prioridade maior ou igual a desse campo. reserva (3 bits): indica a prioridade do próximo token. Se uma estação deseja reservar o token ele deve atribuir esse campo à prioridade dos quadros que têm a transmitir, caso essa prioridade seja maior que a prioridade de reserva corrente. Todo host que aumentar a prioridade da reserva e capturar o token deverá liberá-lo com prioridade menor. Isso deve acontecer para que a prioridade de reserva não cresça indefinidamente. O byte de tipo indica qual o tipo de informação o quadro carrega, se de dados ou de controle (utilizado para a manutenção do anel). a) Manutenção do token A primeira estação do anel a completar o ciclo de boot torna-se a estação mestre. Depois de completar o ciclo de boot a estação aguardará por um tempo de espera a passagem do token. Expirado esse tempo ela enviará pelo anel um quadro chamado CLAIM_TOKEN (requisitando a posse 102 33 do token), caso ela receba esse quadro sem alteração, ela se tornará a estação mestre (significando que não existe no anel outra estação além dela mesma). Caso esse quadro passe por uma estação mestre, esta alterará o quadro para ACTIVE_ MONITOR_PRESENT, indicando que já existe uma estação mestre no anel. As atribuições da estação mestre são: retirar do anel quadros corrompidos e órfãos (que não foram retirados pelo transmissor por falha de hardware ou software) e verificar se o token não se perdeu (a estação que o possui falhou em enviá-lo novamente no anel). A estação mestre retira quadros do anel, monitorando o bit monitor do campo CA (se ele estiver ativo, significa que é a segunda vez que o quadro está passando pela estação mestre, já deu uma volta completa no anel, e deve ser retirado). Caso uma estação demore muito tempo sem receber um token ela transmite um token de controle com o campo de informação tipo BEACON. Caso ela não receba esse token de volta, significa que o anel sofreu ruptura e fica em modo de espera, até restabelecer o anel novamente (indicado pela passagem de um token por ela). Quando o meio físico é compartilhado como em comunicações half- duplex onde não existe um canal exclusivo para transmissão e outro exclusivo para recepção deve ser adotado mecanismo que venham a prevenir ou que venha a prover mecanismos de recuperação de transmissões simultâneas. Sabemos que as transmissões são sinais elétricos e se duas estações transmitem ao mesmo tempo esses sinais se somarão produzindo um terceiro sinal que será desconhecido por ambas as estações. Existem dois tipos de métodos para controlar o acesso ao meio, os por contenção e os por passagem de permissão. Os métodos por contenção são utilizados em topologia de barramento. Temos os métodos ALOHA e a sua evolução o CSMA. No método ALOHA a estação quando possui dados a transmitir ela transmite, caso outra estação também transmita ao mesmo tempo ocorrerá uma colisão. O receptor não irá receber o quadro transmitido consequentemente não irá gerar um reconhecimento. O transmissor ao não receber o reconhecimento dentro de certo período de tempo (timeout) irá esperar por um período aleatório e transmitirá novamente. O segredo está nesse período aleatório que não será igual a todas as estações, ou seja, umas esperarão mais e outras menos para transmitir novamente. Com isso as chances de ocorrer uma nova colisão diminuem, mas se houver muitas estações no barramento a probabilidade aumenta. Existem duas variações do método ALOHA, o puro e o particionado. O que difere ambos é que no particionado existe uma estação central que emite pulsos periódicos. As estações só podem transmitir quando recebem esse pulso. Assim quando ocorrer uma colisão o disparo do tempo aleatório só poderá ser feito ao receber o pulso. Com isso previne-se a ocorrência de colisões no início de uma transmissão. Os métodos CSMA são derivados do ALOHA. O que os diferem é que o CSMA não transmite de imediato. Ele primeiro verifica se alguma transmissão está em curso. Somente no caso do meio de transmissão estar livre (não foi percebida uma transmissão) é que ele irá transmitir. As diferenças entre os diversos métodos CSMA está nessa maneira como cada um reage ao detectar o meio livre. O método np-CSMA ao perceber o meio livre sorteia um valor e espera decorrer esse tempo para poder transmitir. O p-CSMA possui um valor previamente escolhido que está entre zero e um, ao detectar o meio livre ele irá sortear um outro valor entre 0 e 1, se esse novo valor for maior que o que ele possuía ele irá transmitir. Com isso aumenta-se a aleatoriedade. Diminuindo a chance de duas estações tentarem transmitir ao mesmo tempo. Já o método CSMA/CD é semelhante ao np-CSMA diferindo na maneira como é sorteado o valor e que ele fica escutando o meio para verificar se ocorreu uma colisão. Com isso ele não espera pelo timeout, aumentando o desempenho. Ao detectar uma colisão ele sorteará um valor entre 0 e t. Caso ocorra uma nova colisão ele dobrará o valor de t, ou seja, ele poderá esperar por mais tempo. Caso ocorra várias colisões sucessivas ele abortará o processo de transmissão. Outro método de controle de acesso ao meio é o por passagem de permissão. O fundamento desse método está em permitir que somente uma estação transmita enquanto as outras somente escutam o meio. Isso é conseguido através de um quadro especial chamado de token. A estação que possui esse quadro está autorizada a transmitir. Após realizar a sua transmissão ela passará esse quadro a próxima estação. Essa técnica é utilizada em redes de topologia em anel. Existe uma estação, geralmente é a primeira estaçãodo anel que a ser ligada, que tem a função de monitorar o anel. Suas funções incluem: verificar se o token não foi destruído e retirar do anel pacotes danificados ou sem donos. Retomando a 1 Apresentação da camada de enlace Na primeira seção foram apresentadas as funções da camada de enlace, que são: Também aprendemos que a camada de enlace oferece três tipos de serviços: 2 A função de delimitação de quadros 103 Introdução a Redes I 34 Na seção 2, aprendemos sobre a função de delimitação de quadros. Vimos as quatro técnicas de delimitação de quadros: flags; 3 A função de detecção e correção de erros Nesta seção aprendemos com é realizado a detecção e a correção dos erros que por ventura venham acontecer durante uma transmissão. Os métodos vistos de detecção de erros foram: bit de paridade; hamming; os métodos por retransmissão estudados: o do bit alternado e o de reconhecimento contínuo. 4 Nesta seção nos foi apresentado a função de controle de fluxo. Essa função existe para evitar que um transmissor rápido envie mais dados que o receptor possa processar. Vimos que o algoritmo de bit alternado (que faz parte da função de correção de dados) também realiza o controle de fluxo. Pois o transmissor só irá transmitir outro quadro somente quando o receptor reconhecer positivamente o quadro anterior recebido. O método de controle de fluxo apresentado foi o de janelas deslizantes. Nesse método existe o conceito de janela, que é uma certa quantidade de quadros. Do lado do transmissor essa quantidade de quadros diminui a cada quadro transmitido, ou seja, a janela diminui de tamanho. E só irá voltar a aumentar de tamanho ao receber o reconhecimento do receptor. Do lado do receptor a janela diminui a cada quadro recebido e aumenta somente quando reconhece os quadros já recebidos. Se o tamanho da janela for igual a zero o transmissor não irá transmitir, isso significa que o receptor ainda não processou os quadros já enviados. 5 A função de controle de acesso ao meio Aprendemos que quando o meio físico é compartilhado como em comunicações half-duplex onde não existe um canal exclusivo para transmissão e outro exclusivo para recepção deve ser adotado mecanismo que venham a prevenir ou que venha a prover mecanismos de recuperação de transmissões simultâneas. Sabemos que as transmissões são sinais elétricos e se duas estações transmitem ao mesmo tempo esses sinais se somarão produzindo um terceiro sinal que será desconhecido por ambas as estações. Existem dois tipos de métodos para controlar o acesso ao meio, os por contenção e os por passagem de permissão. Os métodos por contenção são utilizados em topologia de barramento e são: aloha puro; aloha compartilhado; p-csma; np-csma; csma/cd. O método por passagem de permissão é utilizado em redes em topologia em anel. Nesse método o controle de acesso ao meio é realizado por um quadro chamado de token. Uma estação só transmite quando tem em sua posse tal quadro. A estação após transmitir seu quadro passa o token para a próxima estação do anel. Existe no anel uma estação mestre que possui a função de monitorar o token (verificar se o mesmo não foi destruído, e em caso de destruição criar um novo token) e também retirar do anel quadros danificados e órfãos (quadros que não possuem donos). Geralmente a primeira estação do anel a completar a sequencia de boot é a estação mestre. Vale a pena Disponível em: <http://pt.wikipedia.org/wiki/Fre- qu%C3%AAncia>. Disponível em: <http://pt.wikipedia.org/wiki/Modu- la%C3%A7%C3%A3o>. Disponível em: <http://www.projetoderedes.com.br/ artigos/artigo_redes_digitais_plesiocronas. php>. Disponível em: <http://pt.wikipedia.org/wiki/Comu- nica%C3%A7%C3%A3o_s%C3%ADncrona>. Disponível em: <http://pt.wikipedia.org/wiki/RS- 232>. Disponível em: <http://www.projetoderedes.com.br/ artigos/artigo_modelo_osi.php>. Disponível em: <http://forum.clubedohardware.com. br/camadas-modelo-osi/104771>. Disponível em: <http://pt.wikibooks.org/wiki/ Introdu%C3%A7%C3%A3o_%C3%A0_ c om uni c a %C3%A7%C3%A3o_e nt re _c om put a dore s_e _t e c nol ogi a s_de _ rede/O_modelo_OSI>. Disponível em: <http://www2.dem.inpe.br/ulisses/ estudos/adm-redes/arquitetura-osi.htm>. pena acessar Minhas anotações 104
Compartilhar