quinta-feira, 28 de fevereiro de 2013

Introdução as Redes de Computadores – Visão Geral (Parte 2)

  1. Comutação de circuitos x comutação de pacotes.
Sabemos que o computador é uma tecnologia relativamente recente e que a interconexão dos mesmo através de arquiteturas de redes é ainda mais recente. Porém, antes mesmo de se pensar em redes de computadores e consequentemente em internet, as redes de telefonia fixa já existiam a um bom tempo. Essas redes utilizavam o processo chamado de comutação de circuitos, que era responsável por enviar dados de voz através de um aparelho telefônico a outro. Tempos mais tarde, com o surgimento da internet, foi adotado o processo de comutação de pacotes, que tem objetivo semelhando ao da comutação de circuitos, mas a forma pela qual esse objetivo é alcançado é bastante diferente.
Comutação de Circúitos: a idéia básica da comutação de circuitos é que quando um sistema final precisa transmitir dados, este deve criar um circuito entre ele e o sistema final destinatário. Este circuito nada mais é do que uma conexão entre os dois sistemas finais, onde os recursos da rede(buffers, banda, etc.) são reservados para a conexão. Dessa maneira, uma vez que a largura de banda de cada enlace no caminho do circuito é reservada, é possível transmitir dados a uma largura de banda fixa. Como veremos mais tarde em outro post, o TCP é um protocolo que exige o estabelecimento de uma conexão (three-way-handshake) andes de transmitir dados. Entretanto, o TCP exige que apenas os sistemas finais estejam cientes dessa conexão, deixando o núcleo da rede completamente alheia a esta. No caso da comutação de circuitos, não só os sistemas finais precisam estar cientes da conexão, como também os comutadores precisam estar.
Uma vez que aplicações de tempo real como a telefonia são sensíveis ao atraso(mas não a perda de dados), seria mais interessante utilizar comutação de circuitos nesses casos, já que como a largura de banda é reservada, o atraso no recebimento dos dados é fixo fazendo com que o jitter(como veremos em um post futuro, o jitter é a variação estatística do atraso) seja 0. Entretanto, hoje em dia existem inúmeras aplicações multimídia que rodam em cima da internet. A grande sacada foi desenvolver protocolos de camada de aplicação(veremos o modelo em camadas no próximo post) mais inteligentes a ponto de conseguir amenizar os problemas causados pelo atraso variável oriundos da comutação de pacotes.
Comutação de pacotes: é o modelo utilizado pela internet. Com a comutação de pacotes, nenhuma conexão precisa ser estabelecida entretanto, como não há reserva de banda, um pacote que precise ser repassado para um enlace que está ocupado transmitindo outro pacote, deverá entrar na fila de espera pelo acesso ao enlace, o que pode gerar  atrasos. Além dos atrasos, sabemos que a memória onde a fila de espera é implementada é finita, se esta crescer de mais pode chegar ao esgotamento, o que irá causar perdas de pacotes.
Já que não há reserva de banda, se o enlace está livre, um sistema final pode transmitir seus pacotes na taxa total do enlace. Já sabemos que dois sistemas finais não estão conectados diretamente através de um único enlace. No lugar disso, são interconectados através de roteadores, que tem a função de receber um pacote por uma de suas interfaces e repassa-lo para outra de suas interfaces. Tantos nas interfaces dos sistemas finais, quanto nas interfaces de saída dos roteadores, se um pacote a ser transmitido para o enlace encontra o mesmo ocupado pela transmissão do outro pacote, este deve esperar o fim desta para iniciar aquela. Um pacote espera pela sua vez de ser transmitido em um buffer conhecido como fila de saída. Se a taxa de repasse do roteador for muito maior que a taxa do enlace, a fila pode aumentar indefinidamente. Uma vez que a fila é implementada em uma memória no hardware, está não é infinita e se a fila aumentar demais, cedo ou tarde a memória se esgotará. Se um pacote a ser repassado encontrar a fila cheia, um dos pacotes da fila, ou o pacote recém chegado precisará ser descartado.
Multiplexação na comutação de circuitos.
Sabemos que um enlace de comunicação é feito de materiais cujas propriedades físicas interferem diretamente na taxa de bits que podem ser transmitidos pelo mesmo. Visto isso, podemos concluir que a largura de banda total de um enlace é fixa e um hospedeiro pode transmitir seus dados na largura de banda total do enlace, ou dividi-la com outros hospedeiros. No caso da comutação de circuitos, a largura de banda total do enlace é compartilhada entre os diversos circuitos que por ele passam. Cada enlace na comutação de circuitos tem n circuitos, ou seja, pode suportar até n conexões simultâneas. Assim, cada circuito terá uma fração 1/n da largura de banda total do enlace.
Existem 2 maneiras de dividir(multiplexar) o enlace em circuitos: FDM e TDM
FDM(frequency-division multiplexing): nesse modelo, cada circuito no enlace transmite dados em uma determinada frequência. Assim, quando o circuito é estabelecido, a frequência correspondente ao mesmo é estabelecida e toda a rede(sistemas finais e comutadores) precisam estar cientes disso. Assim, a frequência total de transmissão de um enlace é dividida em um spectro de frequências, cada uma utilizada por um circuito.
TDM(time-division multiplexing): esse modelo pode ser visto como uma fila de pessoas esperando para descer num escorregador. Supondo que nós passemos a observar a fila no tempo 0 então, se numerarmos as pessoas na fila, teremos que a pessoa 1 escorregará no escorregador no tempo 1, a pessoa 2 escorregará no tempo 2 e assim sucessivamente até a pessoa n. Depois que todas as pessoas escorregarem, zeramos o tempo de modo que na próxima vez que a pessoa 1 escorregar, ela p fará também no tempo 1. Dessa maneira, a pessoa 1 sempre escorrega no tempo 1, a pessoa 2 no tempo dois e a pessoa n no tempo n. Fazendo uma comparação entre a atividade de escorregar no escorregador e a de transmitir dados, temos que cada circuito(pessoa) transmite dados(escorrega) no seu determinado tempo. Assim, o enlace(escorregador) é multiplexado, fazendo com que cada circuito(pessoa) transmita dados(escorregue) em seu determinado tempo. Esses tempos são chamados de compartimentos(slots) e o conjunto de todos os compartimentos, que representa uma quantidade de tempo fixa, é conhecido como quadro(frame). Isso significa que após as conexões terem sido estabelecidas, se o circuito pode transmitir 8000 quadros por segundo e cada compartimento tem 8 bits, então a taxa de transmissão do circuito será de 64Kb/s.
TDM
Figura 1 - Exemplo de TDM com 3 slots e 3 frames
Um problema simples de se perceber tanto com o FDM quanto com o TDM são os chamados períodos de silêncio. Períodos de silêncio são períodos onde por alguma razão não se está transmitindo dados através de um circuito(selêncio). A pesar da inatividade da conexão, todos os recursos reservados para ela continuam sem poder serem utilizados por outros hospedeiros, o que gera disperdício de recursos da rede

Nenhum comentário:

Postar um comentário