quinta-feira, 28 de fevereiro de 2013

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

Se você está lendo este post significa que você está usando algum dispositivo como celular, pda, tablet ou computador conectado a internet. Você já parou pra pensar o quão distante está o local onde a página deste post está armazenada neste momento? E ainda, porque mesmo aumentando a velocidade da sua conexão com a internet , algumas páginas insistem em demorar um pouco mais para serem exibidas? E mais, de que forma uma página é solicitada pelo navegador e é enviada, de forma correta, através de toda a distância que separa você do local de armazenamento da página?
As respostas para essas perguntas (e muitas outras), não são de forma alguma triviais. Ao contrário, exigem que tenhamos um bom conhecimento do funcionamento das redes de computadores (estou incluindo nesse termo tabém os dispositivos móveis como celulares, pdas, tablets e qualquer outro que possa ser conectado a uma rede) e da infraestrutura da internet como um todo. Obviamente que um post de blog nunca será tão completo quanto um bom livro portanto, volto a citar o livro Redes de Computadores e a Internet: uma abordagem top down, James F. Kurose, como uma excelente fonte de consulta e aprofundamento.
Uma rede de computadores é simplificadamente definida como um conjunto de dispositivos conectados entre si através de enlaces. Os dispositivos conectados são denominados sistemas finais ou hosts. Os enlaces que os conectam podem ser de vários materiais como fibra ótica, fios de cobre de par trançado, ondas de rádio, etc. Os sistemas finais entretanto, normalmente não estão conectados diretamente através de enlaces (imagine um enlace ligando o seu computador no Rio de Janeiro ao de um amigo em Tokio). Ao invés disso, eles são conectados a dispositivos denominados comutadores de pacotes. Um comutador de pacotes tem a função de encaminhar o bloco de dados que chega por um se seus enlaces de comunicação de entrada até um de seus enlaces de comunicação de saída. O bloco de dados que transita pelos enlaces é chamado de pacote. Dois exemplos de comutadores de pacotes são o switch e roteador, cada um com características bem distintas que serão abordadas em um momento oportuno.
Quando enviamos um pacote de um sistema final para outro através da internete, este passa por diversos enlaces e comutadores de pacotes no núcleo da rede. Cada vez que um roteador recebe um pacote por um de seus enlaces de entrada, este deve decidir para qual enlace de saída repassar o mesmo (a meneira pela qual o roteador realiza este trabalho será discutida em momento oportuno). O conjunto de enlaces que um pacote percorre desde um sistema final de origem até um sistema final de destino é conhecido como rota. Assim como existem diversas formas de ir de um bairro à outro em uma cidade, na internet também existem várias rotas diferentes para um pacote ir de um sistema final A até um sistema final B. Isso exige que seja tomanda uma decisão sobre qual rota o pacote deverá seguir e em computação, sempre que uma decisão é exigida, um algorítmo que a automatize é recomendável. Dentre os vários motivos para se optar por uma rota no lugar de outra estão o grande tráfego de dados na rota, a maior distância entre origem e destido, a maior disponibilidade de banda, etc.
Após termos estudado superficialmente  a parte física da rede (hardware), vamos falar um pouco sobre um conceito fundamental para a internet e para as redes de computadores de maneira geral, o protocolo. Um protocolo é uma definição formal de uma série de regras estabelecidas para que duas entidades possam se comunicar sem equívocos. Por exemplo, para que você possa perguntar as horas para uma outra pessoa na rua, você (uma pessoa educada) primeiro diz “oi” e a pessoa (também educada) responde com um “oi”. Em seguida você diz “O senhor poderia me informar as horas?” e a outra pessoa responde, “São 13:10”. Dessa maneira, utilizando o protocolo de perguntar a hora, você conseguiu se fazer entender e receber como resposta a informação desejada. Da mesma maneira que na vida real, as redes de computadores também utilizam protocolos para que diversas entidades de sua infraestrutura possam trocar informações com o objetivo de realizar sua função. Como exemplo de protocolo podemos citar o HTTP (será discutido em outro post). O HTTP é o protoculo usado pela aplicação mais famosa da internet, a WEB ( tão famosa que muitas pessoas acham que a WEB é a internet, o que não é verdade). A WEB é uma aplicação distribuída que roda sob o paradígma cliente-servidor, onde  um cliente (o navegador, por exemplo), faz requisição de objetos ( que podem ser páginas HTML, scripts, imagens, etc) a um servidor web. O servidor web recebe o pacote de requisição e envia como resposta os objetos solicitados. Essa comunicação entre cliente web e servdor web é regida pelo protocolo HTTP. O protocolo HTTP define várias informações  que devem ser trocadas entre cliente e servidor para que os objetos requisitados possam ser enviados com sucesso.
A figura abaixo da uma idéia de uma pequena rede (clique na imagem para amplia-la).
Rede de Computadores
Bom pessoal, esse post foi um arranhão na superfície da enorme caixa preta que é o assunto de redes de computadores. No próximo post, vou continuar a introdução  falando um pouco sobre comutação de pacotes e comutação de circuitos. Espero que tenham gostado, não esqueçam de aprofundar o conteúdo aqui explicado. Eu estou pensando em começar a fazer vídeo-aulas também, mas esse é um projeto para o futuro e vai depender de muitos fatores, dentre eles a implacável falta de tempo.

Nenhum comentário:

Postar um comentário