O documento discute vários tópicos relacionados a redes, incluindo:
1) Parques de servidores e proxies WEB que atuam como intermediários entre clientes e servidores;
2) Redes de entrega de conteúdo (CDNs) que distribuem conteúdo em servidores em diferentes localidades para melhorar o desempenho;
3) Redes peer-to-peer onde os nós da rede atuam tanto como clientes quanto servidores de forma descentralizada.
O documento discute vários tópicos relacionados a redes, incluindo:
1) Parques de servidores e proxies WEB que atuam como intermediários entre clientes e servidores;
2) Redes de entrega de conteúdo (CDNs) que distribuem conteúdo em servidores em diferentes localidades para melhorar o desempenho;
3) Redes peer-to-peer onde os nós da rede atuam tanto como clientes quanto servidores de forma descentralizada.
O documento discute vários tópicos relacionados a redes, incluindo:
1) Parques de servidores e proxies WEB que atuam como intermediários entre clientes e servidores;
2) Redes de entrega de conteúdo (CDNs) que distribuem conteúdo em servidores em diferentes localidades para melhorar o desempenho;
3) Redes peer-to-peer onde os nós da rede atuam tanto como clientes quanto servidores de forma descentralizada.
Conteúdo e Tráfego na Internet Parque de Servidores e Proxy WEB Um servidor Proxy é uma aplicação que atua como intermediário entre os pedidos de recursos de outros servidores, geralmente efetuados pelos Clientes. Um Cliente liga-se ao servidor Proxy requisitando um serviço disponível em um servidor, por exemplo a requisição de uma página Web ou outro recurso. O servidor Proxy verifica se o pedido não vai de encontro a nenhuma regra de filtragem estipulada, por exemplo podem haver filtros relacionados com endereços www, IP e/ou protocolos. Se o servidor validar a requisição do Cliente, então efetua o pedido do recurso em nome do Cliente. Proxy de Cache Um servidor Proxy de Cache, é um servidor que guarda as respostas às requisições dos Clientes. Ao invés do servidor requisitado responder ao pedido do cliente, o servidor Proxy responde, encaminhando a resposta armazenada do servidor requisitado, possibilitando assim uma maior rapidez no tratamento dos pedidos. Proxy de Filtro de Conteúdo Um Proxy de Filtro de Conteúdo, como o próprio nome indica, é utilizada para filtrar páginas da internet em alguns meios, trabalho, escolas, bibliotecas, etc… Proxy Aberto Um Proxy Aberto é um servidor acessível por um internauta. Geralmente, um servidor Proxy permite aos usuários dentro de um grupo na rede o estoque e o repasse de serviços da Internet, igualmente ao DNS ou páginas web para reduzir e controlar a banda larga utilizada pelo grupo. Proxy Aberto Vantagens: Um Proxy Aberto anônimo permite aos usuários conciliarem os seus endereços IP (e, consequentemente, ajudar a preservar o anonimato e manter a segurança) enquanto navega pela web ou usando outros serviços da Internet. Desvantagens: É possível para um computador rodar como um servidor Proxy Aberto sem que o dono tenha conhecimento da invasão. Isto pode ser causado por mudanças na configuração do programa instalado do Proxy, ou por infecção de um vírus ou cavalo de tróia. Se for causado por tais, o computador infectado é chamado de "computador escravo". Redes de Entrega de Conteúdo Quando você acessa um site da internet, o conteúdo dele é baixado — mesmo que temporariamente — para o seu computador. Para que isso aconteça, os desenvolvedores da página hospedam seus conteúdos em algum lugar, a partir do qual as informações são enviadas para a sua máquina e tudo funciona bem. Pois é, e é justamente aí que entra uma CDN — sigla em inglês para Content Delivery Network ou Rede de Distribuição de Conteúdo Atualmente, várias empresas oferecem esse tipo de serviço para que sites grandes e acessados de diferentes localidades possam garantir agilidade na entrega do seu produto. Redes de Entrega de Conteúdo Se visualizarmos o tamanho da internet atualmente, pensar que conteúdos seriam distribuídos para bilhões de dispositivos de lugares fixos é altamente inviável. O Google e o Facebook, por exemplo, trabalham com bilhões de acessos a todo o momento, o que provavelmente seria capaz de derrubar qualquer servidor se ele trabalhasse sozinho. Para oferecer conteúdo com agilidade e estabilidade é que existem as CDNs, que nada mais são do que redes não centralizadas em um único servidor. Elas hospedam um determinado conteúdo em servidores espalhados em várias partes, permitindo dessa forma a distribuição de conteúdo de forma eficaz independente de onde o acesso é realizado. Redes de Entrega de Conteúdo Aproveitando melhor a sua conexão Com o uso de uma CDN, o conteúdo é distribuído de forma mais eficaz, diminuindo a latência do processo de transferência e aproveitando melhor a largura da sua banda. Tirando as diferenças de conexão de uma região e outra (ou de um dispositivo e outro), o desempenho do processo acaba sendo igual devido ao uso de uma rede de distribuição. O que acontece é que o conteúdo sai do servidor original e fica cacheado em diversos outros lugares ao redor do planeta conforme a demanda. Desse modo, a CDN otimiza a rota, encontrando a que é mais curta entre a origem e o destino dos pacotes. O resultado da redução da distância é a diminuição do tempo para completar as transferências. Redes de Entrega de Conteúdo É possível afirmar que, sem uma tecnologia como a CDN, seria completamente inviável a existência de serviços como YouTube, sistemas de armazenamento nas nuvens do Xbox ou mesmo o futuro sistema de streaming de jogos Gaikai, do PlayStation. E talvez a navegação em sites que você usa diariamente, como Facebook e Twitter, fosse muito pior do que qualquer problema técnico enfrentado por tais serviços. Vantagens da CDN para o seu e-commerce. Uma CDN é uma rede de distribuição de informação que permite fornecer os dados de forma mais rápida e para um grande volume de usuários. O conceito é simples: essa rede é composta de diversos servidores espalhados pelo mundo. Redes de Entrega de Conteúdo Redução de tempo e de custos As CDNs fazem sucesso não só porque agilizam a transferência de dados entre os servidores e o seu computador, mas também porque são soluções mais baratas do que manter uma estrutura própria para fazer o serviço, especialmente se o público-alvo do site está espalhado em diversas regiões do mundo — ou de um grande país, como Brasil. Redes de Entrega de Conteúdo Curiosidades A Empresa Akamai, é a companhia de CDN mais utilizada no planeta, reunindo vários nomes do mundo da tecnologia em sua lista de clientes. Como todo monopólio de transmissão de dados e conteúdo, esse também levanta questionamentos sobre segurança, privacidade e até mesmo estabilidade de serviços. Segundo o site Baboo, a Empresa chega a realizar tráfego a 6 Tb por segundo em dias normais, o que equivale a 30% do tráfego de toda a rede mundial de computadores. Isso significa que qualquer problema técnico ou de segurança da Akamai, afetará o fluxo de um terço de todo o conteúdo transferido pela web diariamente. Redes Peer-To-Peer Contexto Nessa arquitetura a partilha de recursos e a performance são superiores. Como os recursos necessários são distribuídos entre os nós é possível conseguir um melhor desempenho de forma econômica. Com inexistência de um servidor central, a rede P2P apresenta uma maior robustez e segurança por não poder sofrer um ataque centralizado. Um sistema peer-to-peer implementa uma rede abstrata sobreposta, em cima da topologia da rede, utilizada para descobrir e indexar os pares da rede tornando o sistema P2P funcional independente da topologia da rede física. O conteúdo é trocado diretamente sobre o protocolo IP. Sistema peer-to-peer anônimos são um exceção, implementam camadas extras de roteamento para ocultar sua identidade de origem ou de destino. Redes Peer-To-Peer Contexto Na estrutura P2P, os pares são organizados com critérios e algoritmos, realizando sobreposição com topologias específicas. Estruturados sistemas são adequados para implementações em larga escala devido à alta escalabilidade e algumas garantias sobre o desempenho. Redes Peer-To-Peer História O P2P é o resultado da tendência natural do desenvolvimento de engenharia de software com a disponibilidade de tecnologia para a criação de redes maiores. A tendência das últimas décadas tem crescido com a necessidade das aplicações empresariais, resultando na substituição dos sistemas monolíticos por sistemas distribuídos. Assim houve a necessidade de ter a disponibilidade de pontos interligados, e quantos mais recursos houvesse, mais poderosa se tornava essa rede. A Internet foi um claro exemplo e uma explosão de utilizadores. Redes Peer-To-Peer História Na década de 90 que as redes P2P apareceram com força, quando aplicações como o Napster e o Gnutella foram desenvolvidas. Cada nó neste tipo de rede é conhecido como peer e pode servir com os mesmos direitos de cada peer da rede, serve tanto de cliente como de servidor. Os recursos e as informações passaram a ser disponibilizados de forma mundial. Estas redes tinham características, que quantos mais peers existissem mais estabilidade e mais autonomia tinham, e a rede tornava-se mais eficiente e rica em recursos com a comunicação direta que os peers tinham. Redes Peer-To-Peer Distribuição A organização de uma aplicação cliente-servidor numa arquitetura multicamadas distribui o processamento colocando componentes logicamente diferentes em máquinas diferentes. Essa distribuição tem o nome de distribuição vertical, ela facilita o gerenciamento dos sistemas pois divide as funções lógica e fisicamente entre várias máquinas. Os processos que constituem um sistema peer-to-peer são todos iguais. As funções necessárias devem estar em todos os processos que constituem o sistema distribuído. Como consequência, a maior parte da interação entre os processos é simétrica: cada processo atua como um "cliente" e um "servidor" ao mesmo tempo. Redes Peer-To-Peer Características Descentralização Os sistemas P2P não depende da existência de um sistema de administração centralizado. Significa que, não só todos os hospedeiros são iguais, mas também não há hospedeiros com atribuições especiais, como administração e descoberta de serviços. Heterogeneidade A heterogeneidade dos recursos envolvidos é uma preocupação que deve ser levada em consideração. Computadores e conexões administrados por diferentes usuários e organizações não possuem garantias que ficarão ligados, conectados ou sem falhas, isso torna a disponibilidade dos nós uma rede peer- to-peer imprevisível. Para se garantir o acesso aos recursos da rede, utiliza-se uma técnica chamada REPLICAÇÃO. Transformando todos os hospedeiros em replicadores dos recursos. Redes Peer-To-Peer Requisitos Para funcionar, os sistemas P2P devem se preocupar com os seguintes requisitos não funcionais Escalabilidade global Um dos objetivos das aplicações P2P é explorar os recursos de hardware de um grande número de hospedeiros conectados à Internet. Assim, essas aplicações devem ser projetadas de modo a suportar o acesso a milhões de objetos em dezenas ou centenas de milhares de hospedeiros. Otimização de interações locais entre nós vizinhos A "distância de rede" entre os nós que interagem tem um impacto substancial na latência das interações individuais, como por exemplo, clientes requisitando acesso à recursos. A carga do tráfego da rede também é impactada por isso. As aplicações devem colocar os recursos perto dos nós que mais os utilizam. Redes Peer-To-Peer Disponibilidade A maioria dos sistemas P2P são constituídos de computadores hospedeiros (que são livres para se juntar ou sair do sistema a qualquer hora). Quando novos hospedeiros se juntam, eles devem ser integrados ao sistema e a carga é redistribuída para esses novos hospedeiros. Quando eles saem do sistema, é detectada a sua partida, e é redistribuída as suas cargas e os seus recursos. Segurança dos Dados Um sistema de escala global com participantes de origens diversas, a questão da confiança deve ser construída com o uso de autenticação e mecanismos de criptografia para garantir a privacidade dos dados e da informação. Redes Peer-To-Peer Anonimidade, Negabilidade e Resistência à Censura Anonimidade é uma preocupação em muitas situações que demandam resistência à censura. Um requisito relacionado é que, os hospedeiros que guardam dados, devem ser capazes de negar a responsabilidade sobre a posse e o suprimento deles. Com a utilização de um grande número de hospedeiros, torna-se possível alcançar essas propriedades em um sistema P2P. Redes Peer-To-Peer Redes P2P - Estruturadas e Não-estruturadas Rede sobreposta Na rede sobreposta ou overlay, os nós são formados pelos processos e os enlaces são representados pelos possíveis canais de comunicação (que são tipicamente conexões TCP). Geralmente um processo não pode se comunicar diretamente com outro processo, mas só pode enviar mensagens através dos canais de comunicação disponíveis. Nesse sentido, cada nó possui um conjunto de vizinhos, que por sua vez possuirão outros conjuntos de vizinhos.
Existem basicamente dois tipos de redes sobrepostas:
As Redes Estruturadas e as Redes Não-estruturadas. Redes Peer-To-Peer Redes P2P Estruturadas e Não-estruturadas Arquitetura Estruturada Em uma arquitetura estruturada, a rede sobreposta é construída através de um procedimento que, organiza os processos através de uma Tabela Hash Distribuída (DHT). Os dados recebem uma chave aleatória e os nós da rede também recebem um identificador. Arquitetura Não Estruturadas Sistemas Não Estruturados se baseiam em algoritmos aleatorizados para a construção da rede. A ideia é que cada nó mantenha uma lista de vizinhos, que é construída mais ou menos de forma aleatória. Uma desvantagem desse tipo de busca é que consultas podem não ser respondidas caso o cliente e o hospedeiro estejam muito afastados na rede. Outra desvantagem é que mecanismos de inundação geralmente causam grande tráfego de sinalização, o que, muitas vezes, torna esse tipo de busca lenta. Redes Peer-To-Peer Plataformas, Frameworks e Aplicações P2P Inicialmente, as aplicações P2P precisavam implementar seu próprio protocolo de comunicação para permitir a operação entre os nós constituintes do seu sistema em rede. Porém, além de um grande retrabalho, estes esforços em requisitos não funcionais das aplicações implicavam na impossibilidade de comunicação entre sistemas diferentes, mesmo que os serviços providos por eles fossem equivalentes. Por exemplo, arquivos compartilhados em sistemas como o Kazaa, eMule e Gnutella ficam acessíveis exclusivamente dentro de suas próprias redes, levando usuários a manterem instalados em suas máquinas clientes para cada um dos sistemas de compartilhamento de arquivos que pretenda usar. Redes Peer-To-Peer Plataformas, Frameworks e Aplicações P2P O JXTA e o Windows P2P Networking são especificações de protocolos P2P e de uma API para utilização dos serviços, sendo o primeiro com implementações em Java e em C. O XNap provê, além de uma API de serviços peer-to-peer, também é um framework para desenvolvimento das aplicações em si, incluindo recursos de interface gráfica com o usuário. Redes Peer-To-Peer Plataformas, Frameworks e Aplicações P2P Kademlia - É um conceito de rede altamente descentralizada baseada em "nós" de rede. Os próprios usuários constituem a estrutura da rede dispensando servidores. Overnet - A rede Overnet é uma espécie de eDonkey "paga". É preciso comprar o programa da empresa que a desenvolveu. É uma variante do eDonkey totalmente descentralizada e mais rápida seguindo o conceito Kademlia e foi a primeira implementação da mesma. Gnutella - Rede open-source surgida no final de 2000 utilizada inicialmente por usuários do sistema Linux. Possui uma estrutura altamente descentralizada não havendo mesmo nenhum servidor central sequer. Os usuários constituem a estrutura da própria rede. Entre os programas que a utilizam, estão o BearShare, LimeWire, Azureus e agora o Shareaza. Kad Network - Rede paralela do programa eMule introduzida pelo autor deste em 2004; é uma implementação fiel ao conceito Kademlia. Essa rede tinha por objetivo inicial oferecer mais fontes aos usuários do programa e mais tarde se tornar uma rede P2P completa. Redes Peer-To-Peer Plataformas, Frameworks e Aplicações P2P DNS - Domain Name System - Sistema de Nomes de Domínios é um exemplo de sistema que mistura os conceitos de rede P2P com um modelo hierárquico de posse da informação. O mais incrível do DNS é o quanto ele tem escalado, dos poucos milhares de hospedeiros que ele foi projetado para suportar, em 1983, para as centenas de milhões de hospedeiros atualmente na Internet. Torrent - BitTorrent é um sistema de download de arquivos P2P. Quando um usuário procura por um arquivo, ele baixa "pedaços" do arquivo de outros usuários até que o arquivo fique completo. Um importante objetivo de projeto foi garantir colaboração. Na maioria dos sistemas de compartilhamento de arquivo, uma fração significante dos usuários somente baixa os arquivos e contribuem perto de nada. Para isso, um arquivo pode ser baixado somente quando o cliente que está baixando também está provendo conteúdo para alguém. Redes Peer-To-Peer Direitos Autorais Caso do Napster Os desenvolvedores do Napster argumentaram que eles não eram culpados pelo infringimento dos direitos autorais porque eles não participavam do processo de cópia, que foi inteiramente realizado por máquinas de usuários. Esse argumento foi derrubado porque os servidores de indexação foram anexados como parte essencial do processo. Como esses servidores eram localizados em endereços conhecidos, os seus operadores foram incapazes de se manterem anônimos e então se tornaram alvos dos processos. Um sistema de compartilhamento mais distribuído teria alcançado uma maior separação legal de responsabilidades, distribuindo a responsabilidade entre todos os usuários do Napster, e tornando o processo muito difícil, senão impossível. Redes Peer-To-Peer Direitos Autorais Caso do Napster Qualquer que seja a visão que alguém tenha sobre a legitimidade de cópia de arquivos para o propósito de compartilhamento de material protegido por direitos autorais, existe uma legítima justificativa social e política para a anonimidade de clientes e servidores em alguns contextos de aplicações. A justificativa mais persuasiva é usada quando anonimidade é utilizada para superar censura e manter a liberdade de expressão para indivíduos em sociedades e organizações opressivas. Redes Peer-To-Peer Direitos Autorais Brasil As redes P2P são acusadas no mundo todo de ferir os direitos autorais, por disponibilizar arquivos sem a autorização dos proprietários do copyright. Muitos usuários destas redes P2P defendem que a ausência de lucro na reprodução do copyright não deveria ser criminalizado. No Brasil, a Lei dos Direitos Autorais, proíbe qualquer tipo de reprodução de conteúdo protegido que não seja autorizado. FIM