Alexandre Carissimi
Juergen Rochol
Lisandro Zambenedetti Granville
Redes de computadores é uma área essencial na formação de qualquer profissional de computação. A literatura da área é vasta, e conta com vários títulos nacionais e internacionais. Consideramos, porém, que este livro apresenta os fundamentos do assunto de forma concisa e ao mesmo tempo inovadora, com contextualização abrangente e integrada ao atual estágio de desenvolvimento das redes de computadores com integração de serviços, sejam estes dados, voz ou multimídia.
Este livro foi elaborado para ser usado em disciplinas introdutórias de redes de computadores em cursos de graduação em computação e de engenharia elétrica. Ele serve ainda para profissionais e autodidatas que queiram compreender como as redes de computadores funcionam. Na medida do possível, o livro é auto-contido, apresentando os conceitos sem a necessidade de pré-requisitos específicos.
Uma das coisas que mais intriga as pessoas em geral é como uma informação pode ser enviada de um ponto a outro. Em nosso dia-a-dia, nos confrontamos com uma série de tecnologias que servem justamente para esse propósito, como as emissões de rádio, de televisão analógica, e agora a digital, passando pela telefonia celular. Todas elas têm um ponto em comum, a necessidade de a informação ser transformada de uma maneira que possa ser enviada pelo ar, em transmissões sem fio (wireless), ou por diferentes tipos de cabos. As redes de computadores apresentam exatamente o mesmo problema e não raras vezes empregam as mesmas soluções. Ainda é impossível apresentar o tema redes de computadores sem ter a Internet e as suas aplicações em mente, já que todos somos usuários dos serviços de correio eletrônico, de navegação na web, de recepção de áudio e de vídeo, de telefonia via Internet, de mensagens instantâneas, etc.
Passados 20 anos do surgimento do modelo de referência para interação de sistemas de arquitetura aberta (o MR-OSI), o livro segue uma abordagem que se amolda a tal referencial, sem, no entanto, se prender à rigidez das sete camadas definidas na época. A história do desenvolvimento em redes demonstrou que nem sempre é necessário adotar o modelo de sete camadas preconizado pelo ISSO. Porém, a abstração de complexidades e a dinâmica de fornecimento de conjuntos de serviços afins alcançadas com este modelo são cada vez mais adotadas pelos sistemas que interagem entre si nas modernas redes de comunicação de informação.
No capítulo 1, iniciamos abordando os conceitos básicos da teoria de informação e de comunicação de dados, que julgamos importantes no estudo de redes de computadores. No capítulo 2 é abordado, em uma visão moderna, o MR-OSI e sua dinâmica de interação baseada em camadas. Nos capítulos 3 a 7, adotamos uma abordagem do tipo bottom-up (de baixo para cima), preconizando um modelo de rede segundo cinco níveis, mais adequado para o modelo da Internet, baseado na plataforma TCP/IP, e para o estudo das modernas redes com integração de serviços.
O primeiro nível a ser estudado é o físico, no capítulo 3. São apresentados os principais conceitos envolvidos na comunicação de dados, mostrando como as informações são preparadas para transmissão em um meio físico. São abordados tópicos como codificação, sinais eletromagnéticos, multiplexação em freqüência e em tempo e as principais tecnologias de transmissão existentes.
No nível físico tudo que temos são sinais eletromagnéticos sem nenhum tipo de interpretação e ainda sujeitos a uma série de interferências. Para que dois dispositivos ou sistemas computacionais comuniquem-se é necessário dar um significado a esses sinais e tratá-los adequadamente. Essa é a tarefa do nível de enlace, abordada no capítulo 4. Nesse capítulo são apresentados conceitos que vão desde o controle de acesso ao meio físico, isto é, em que momento é possível um dispositivo iniciar uma transmissão, até a garantia da entrega correta dos dados ao destinatário final. Dessa forma, o nível de enlace define tecnologias que são empregadas para dois dispositivos se comunicarem quando eles estão na mesma rede física local. Esse capítulo aborda ainda o funcionamento de equipamentos de interconexão de redes como hubs, pontes (bridges) e switches.
A comunicação provida pelo nível de enlace é sempre vinculada a uma dada tecnologia e obriga os dispositivos a compartilharem um mesmo meio físico, mas o que acontece quando a origem e o destino não estão em uma mesma rede local física? A solução, nesse caso, consiste em permitir que as informações sejam encaminhadas de uma rede a outra e, ao mesmo tempo, se tenha a ilusão que tanto a origem quanto o destino pertençam a uma rede. Este é o principal objetivo do nível de rede e, para atingi-lo, a camada de rede cria a abstração de uma rede lógica única e a noção de roteamento. O capítulo 5 tem por objetivo discutir os principais conceitos , as técnicas e os algoritmos envolvidos no nível de rede. Para ilustrar na prática a aplicação desses tópicos emprega-se o Internet Protocol (IP). São apresentadas ainda as questões relacionadas ao projeto de endereçamento de redes IP e com a criação de subredes e de blocos de endereçamento (CIDR).
No capítulo 6 são apresentados os fundamentos do nível de transporte. Construído tradicionalmente acima do nível de rede, o nível de transporte é responsável pela comunicação fim-a-fim entre dois ou mais computadores. O capítulo descreve os serviços que o nível de transporte deve oferecer aos usuários, e a implantação de tais serviços numa arquitetura de redes. Os serviços de transporte e respectivas implementações são exemplificados através dos dois principais protocolos de transporte da pilha TCP/IP, isto é, o TCP (transport control protocol) e o UDP (user datagram protocol).
Acima do nível de transporte são encontradas, nas modernas arquiteturas de redes, as aplicações dos usuários, e estas, por sua vez, implementam seus próprios protocolos. No capítulo 7 são apresentados os protocolos do nível de aplicação mais disseminados na Internet. Alguns protocolos são auxiliares, como o DNS (domain name system), no sentido de que existem para complementar o funcionamento das redes. Outros protocolos, como o HTTP (hyper-text transportation protocol), possuem aplicações explicitamente associadas, como os navegadores de web. Aplicações mais modernas, implementadas através do uso de protocolos de aplicação clássicos, também são descritas. Em particular, o capítulo aborda web services, importantes na integração de sistemas na web, e aplicações peer-to-peer (P2P), inicialmente popularizadas por sistemas de compartilhamento de arquivos, mas que hoje podem ser encontradas em sistemas tão diversos como voz sobre IP e grades computacionais.
Finalmente, no capítulo 8, são abordados os principais tópicos relacionados com a questão da segurança em redes, principalmente no que se refere à identificação do usuário e a privacidade de seus dados.
Para concluir, os autores gostariam de agradecer a várias pessoas que contribuíram de diversas formas para que este livro se tornasse realidade. As primeiras conversas e ideias sobre escrever um livro de redes de computadores para a Série Livros Didáticos remontam ao ano de 2004. Desde que informamos essa nossa intenção aos professores Tiarajú Divério e Paulo Blauth Menezes, responsáveis pela série, recebemos um grande incentivo e apoio. A seguir, veio a cobrança, mas sempre com uma grande paciência com nossa “síndrome de pode ficar melhor” que atrasou algumas vezes nosso cronograma inicial. A vocês, nosso especial muito obrigado.
Queremos agradecer aos alunos de INF01154 – redes de computadores – dos cursos de ciência da computação e de engenharia da computação da UFRGS, que desde a primeira versão do material, em 2005, ainda como apostila, até 2008, nos auxiliaram a melhorar questionando, identificando problemas, apontando trechos onde conceitos pareciam confusos, ou não suficientemente claros, e fazendo sugestões. Isso nos permitiu aprimorar este livro. Queremos ainda que você, nosso leitor, se sinta à vontade parar discordar de nossas afirmações, informar sobre eventuais erros que, apesar de nosso cuidado, podem ter passado despercebidos, e fazer sugestões que colaborem para melhoria deste livro. Nós podemos ser contatados a partir da página oficial do Instituto de Informática da UFRGS (http://www.inf.ufrgs.br).