• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Redes de computadores   volume 1 f
 

Redes de computadores volume 1 f

on

  • 629 views

Livro fala sobre as redes de computadores, desde o conceito mais basicos, procurando ajudar o aluno no entedimento do conteúdo de forma disciplinar.

Livro fala sobre as redes de computadores, desde o conceito mais basicos, procurando ajudar o aluno no entedimento do conteúdo de forma disciplinar.

Statistics

Views

Total Views
629
Views on SlideShare
629
Embed Views
0

Actions

Likes
0
Downloads
17
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Redes de computadores   volume 1 f Redes de computadores volume 1 f Document Transcript

    • UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO (UFRPE) COORDENAÇÃO GERAL DE EDUCAÇÃO A DISTÂNCIA (EAD/UFRPE) Redes de Computadores Juliana Regueira Basto Diniz Fernando Antonio Aires Lins Obionor de Oliveira Nóbrega Volume 1 Recife, 2011
    • Universidade Federal Rural de Pernambuco Reitor: Prof. Valmar Corrêa de Andrade Vice-Reitor: Prof. Reginaldo Barros Pró-Reitor de Administração: Prof. Francisco Fernando Ramos Carvalho Pró-Reitor de Atividades de Extensão: Prof. Delson Laranjeira Pró-Reitora de Ensino de Graduação: Profª. Maria José de Sena Pró-Reitora de Pesquisa e Pós-Graduação: Profª Antonia Sherlânea Chaves Véras Pró-Reitor de Planejamento: Prof. Romildo Morant de Holanda Pró-Reitor de Gestão Estudantil: Prof. Valberes Bernardo do Nascimento Coordenação Geral de Ensino a Distância: Profª Marizete Silva Santos Produção Gráfica e Editorial Capa e Editoração: Rafael Lira, Italo Amorim e Arlinda Torres Revisão Ortográfica: Rita Barros Ilustrações: Moisés de Souza Coordenação de Produção: Marizete Silva Santos
    • Sumário Apresentação. ................................................................................................................ 4 . Conhecendo o Volume 1................................................................................................. 5 Capítulo 1 – Introdução a Redes de Computadores......................................................... 6 1.1 Introdução..................................................................................................................6 1.2 Visão Geral de Redes..................................................................................................9 1.3 Tipos de Redes..........................................................................................................13 Capítulo 2 – TCP/IP e OSI: uma visão comparativa......................................................... 24 2.1 Modelo de Referência OSI........................................................................................26 2.2 Modelo de Referência TCP/IP...................................................................................30 2.3 OSI versus TCP/IP......................................................................................................33 . Capítulo 3 – Camada de Aplicação. ............................................................................... 36 3.1 Conceitos Gerais.......................................................................................................36 3.2 Entendendo o Transporte de Dados na Internet......................................................40 3.3 Principais Protocolos da camada de aplicação.........................................................42 Considerações Finais..................................................................................................... 58 Conheça os Autores...................................................................................................... 59
    • Apresentação Caro(a) aluno(a), Seja bem-vindo(a) ao curso de Redes de Computadores. Este curso é composto por 4 volumes. Neste primeiro volume, vamos estudar os conceitos introdutórios e os principais modelos de referência na área Redes de Computadores. Também estudaremos, neste volume, as principais aplicações utilizadas em ambiente de Internet (por exemplo, navegação na Web, correio eletrônico, telefonia via Internet, dentre outros). No segundo volume, serão abordados os protocolos que fazem transporte de informações em uma rede. Um outro assunto que será abordado é a identificação e localização de computadores em um ambiente de Rede. No terceiro volume, você aprenderá sobre como os dados são enviados através dos meios físicos de comunicação com e sem fio. Por fim, o quarto e último volume abordará tópicos de gerenciamento e segurança de redes de computadores. Concluindo a nossa disciplina, apresentaremos conceitos sobre a Próxima Geração de Redes de Computadores. Bons estudos! Juliana R. Basto Diniz, Fernando A. Aires Lins e Obionor O. Nóbrega Professores Autores 4
    • Redes de Computadores Conhecendo o Volume 1 Módulo 1 – Introdução a Redes de Computadores e Aplicações Carga Horária: 15 h/aula Objetivo: Introduzir os conceitos das redes de computadores, seus modelos, arquiteturas e protocolos. Conhecer com detalhes os protocolos das aplicações utilizadas na Internet e nas redes atuais. Conteúdo Programático » Introdução a Redes de Computadores; » TCP/IP e OSI: Uma visão comparativa; » Camada de Aplicação. 5
    • Redes de Computadores Capítulo 1 – Introdução a Redes de Computadores Vamos conversar sobre o assunto? Caro(a) aluno(a), Estamos, neste momento, iniciando um dos assuntos mais atuais e desafiadores da área de computação: Redes de Computadores. Talvez você, até este momento, não tenha parado para imaginar como somos dependentes atuais desta tecnologia. Você consegue imaginar a sua vida, nos dias atuais, sem o uso desse importante recurso de comunicação? Sem as redes, como você realizaria pesquisas sobre temas mais exóticos e que geralmente não são abordados pelos livros da biblioteca que você costuma frequentar? E se você tivesse que enviar uma mensagem de feliz aniversário a um amigo querido que esteja aniversariando hoje, o que você usaria? Correios? Ou enviaria uma mensagem via correio eletrônico? Você já pagou suas contas bancárias via Internet ou prefere enfrentar longas filas de banco para realizar esta operação? Por fim, você iria aceitar um convite para conhecer um novo país que você saiba que não tem Internet? Um ponto muito interessante é que mal aprendemos a usar todos os recursos atuais das redes, novas aplicações começam a ser desenvolvidas para nos trazer mais facilidades e entretenimento. Por esta razão, é importante não apenas aprendermos a usar suas ferramentas (como o seu navegador de Internet), mas entendermos os princípios e teorias fundamentais associadas a esta área. 1.1 Introdução Nos últimos anos, temos acompanhado grandes modificações no ambiente de negócios das organizações. Como exemplos dessas modificações, podemos citar: » Surgimento da economia global; » Transformação das economias baseadas em indústrias para economias baseadas no conhecimento e na informação; » Transformações no conceito de emprego e relações de trabalho, onde cada vez mais se tem cobrado trabalho colaborativo e em equipe. Todas essas transformações foram e estão baseadas em um recurso fundamental: a informação. De forma resumida, podemos afirmar que uma informação é composta por dados concatenados tendo em vista um determinado fim. O grande diferencial competitivo das empresas nos dias atuais, é a posse de informações precisas, completas e em tempo hábil. Neste cenário, a geração, o armazenamento e o envio/ recebimento de informações estão se apresentando como atividades relevantes e, em especial, lucrativas para as empresas. Somos inegavelmente dependentes dos computadores e dos serviços/dispositivos responsáveis pela conexão dos mesmos. Se você estagia ou é funcionário de uma empresa, 6
    • Redes de Computadores não consegue fazer praticamente nada sem redes. Imagine a sua reação ao saber que terá que trabalhar com um computador sem conexão com a Internet (rede global de computadores geograficamente dispersos e conectados entre si). Você irá precisar se comunicar de forma prática e rápida com colegas de trabalho, clientes e fornecedores. A comunicação corporativa atual é feita através de sistemas interligados, e-mail, celulares e computadores portáteis conectados em redes sem fio. Você irá precisar também usar a Internet para pesquisar sobre assuntos importantes relacionados à sua atividade de trabalho. Um dado importante em relação à Internet é a rapidez com que ela atingiu um número elevado de usuários. A Figura 1.1 mostra um comparativo da Internet com diversos outros dispositivos de computação. A comparação foi realizada baseada na quantidade de anos que o dispositivo levou para atingir a marca de 50 milhões de usuários. Alguns dispositivos clássicos, como o rádio, a televisão e o telefone foram inseridos. A Internet levou menos da metade do tempo do que todos os outros dispositivos para atingir a marca comentada. Atualmente, estima-se que mais de 1 bilhão de pessoas tenham acesso à Internet. Um dado também interessante é que o Brasil está entre os países que apresentam maior número de usuários em todo o mundo. Figura 1.1 - Tempo para atingir 50 milhões de usuários De forma resumida, as redes de computadores ajudam as empresas em dificuldades organizacionais clássicas, como: » Empresas geograficamente distantes se tornam melhor administráveis. Por exemplo, comunicação entre matriz e filiais se torna mais eficaz, especialmente em se tratando de empresas de porte internacional; » Empresas com diversos departamentos podem usufruir das diversas aplicações para redes existentes para se comunicar e compartilhar recursos/aplicativos. Ao invés de sua empresa comprar 10 impressoras para os seus 10 departamentos, ela pode comprar apenas 1 e compartilhar via rede entre todos os departamentos; » Empresas locais agora podem entrar e competir em mercados globais. O comércio eletrônico e o marketing digital possibilitam a inserção do produto em mercados antes improváveis e de difícil acesso. Custos com ligações à distância e ligações internacionais inviabilizavam este tipo de comércio em um passado recente. 7
    • Redes de Computadores Neste momento caro(a) aluno(a), você pode estar se perguntando sobre as redes telefônicas e as redes de computadores. Uma dúvida muito comum é sobre que rede estamos operando quando fazemos determinada ação. Quando utilizamos nosso telefone convencional, estamos utilizando qual rede? A rede telefônica ou a rede de computadores? E mais ainda, quando você liga do seu computador para alguém, que rede você irá utilizar? A resposta para a primeira pergunta é a rede telefônica. Quando tiramos o telefone do gancho e discamos um número, estamos nos conectando com a rede de telefonia convencional para realizar uma chamada. Mas, e no segundo caso? Quando fazemos uma chamada pelo computador para outros computadores ou até mesmo para telefones convencionais, que rede estamos usando? Neste caso, está sendo usada a rede de computadores. Sobre este cenário, vamos contar uma rápida história sobre as redes. Figura 1.2 - Redes de computadores Poucos anos atrás, e inclusive atualmente, as empresas, de modo geral, utilizavam dois tipos de redes diferentes: a rede de telefonia e a rede de computadores. Inclusive, existiam dois terminais e cabos diferentes para fazer essa conexão. Entraremos mais a fundo na questão de cabeamento nos próximos capítulos, mas por enquanto podemos adiantar que o cabo de rede que você utiliza geralmente é um cabo azul que se conecta na placa de rede de seu computador; cabo esse que é diferente do cabo que sai do seu telefone convencional. Pode-se pensar, com razão, que a rede telefônica iria tratar com a comunicação de voz e que a rede de computadores iria tratar da comunicação de dados. Pode-se afirmar que, durante muito tempo, esta foi a realidade das empresas. Contudo, um fato que incomodava e muito os usuários eram as altas tarifas cobradas pelas companhias telefônicas (ex.: Telemar e a antiga Telpe), que eram detentoras da rede de telefonia. Então, neste cenário, surgiu a ideia de utilizar as redes de computadores para fazer comunicação de voz. No início, como as redes ainda não tinham uma qualidade eficaz o suficiente para este serviço, não se podia transmitir e receber o tráfego de voz dentro de um tempo aceitável. Para a infelicidade das empresas de telefonia, essa realidade foi mudando em anos recentes. As tecnologias de interconexão foram melhorando e muito o seu desempenho, passando a suportar o tráfego de voz com uma qualidade aceitável e, em especial, com um custo muito reduzido. Você pode hoje fazer ligações de voz de um computador para outro, em qualquer lugar do mundo com acesso à Internet, sem pagar nenhum centavo por isso. Ainda mais, você pode até mesmo ligar do seu computador para um telefone fixo ou celular internacional e pagar uma tarifa significativamente mais acessível do que a cobrada pela companhia telefônica. O grande segredo é que essas ligações de voz feitas por 8
    • Redes de Computadores programas como o Skype utilizam a infra-estrutura da Internet para se comunicar, evitando, assim, a utilização das tradicionais redes de telefonia. Portanto, a ligação passa pela rede de computadores mundial, a Internet, e não pela rede de telefonia convencional. Uma tendência atual que pode ser observada é que as redes de computadores e as redes de telefonia estão se fundindo em uma única rede digital. Embora esse seja um processo complexo e que tem diversas consequências econômicas e estruturais, a tendência é de convergência entre as redes de computadores e telefones. Basta olhar para o mercado e ver diversas empresas oferecendo serviços de Internet, telefonia e até de programas televisivos (a famosa TV a cabo). 1.2 Visão Geral de Redes A grande quantidade de computadores pessoais sendo utilizada no mundo inteiro já está chegando à marca de 1 bilhão. Um outro dado importante neste contexto é a rapidez da evolução dos seus principais componentes, como: processador, memória principal e dispositivos de interconexão. Cada vez mais, usuários têm à sua disposição equipamentos mais velozes e com maior capacidade de armazenamento. Esse fator influencia decisivamente na necessidade de comunicação entre as aplicações. Vamos imaginar, por exemplo, uma área como jogos computacionais. Se você, caro(a) aluno(a), gosta dessa área, sabe que a resolução gráfica e os efeitos visuais/sonoros vêm melhorando muito nos últimos anos. Por exemplo, a realidade alcançada pelos atuais simuladores de corrida é impressionante. Nos dias atuais, além de você contar com imagens de excelente qualidade e áudio muito semelhante à realidade, podemos comprar até equipamentos que podem ser integrados ao computador, como volante e pedais. Neste ambiente, surge com muita naturalidade a possibilidade de jogar em rede com um amigo seu. Um outro bom exemplo é o ambiente virtual de aprendizagem (AVA) que você utiliza no seu curso de Educação a Distância. Desde as funções mais simples, como envio e recebimento de mensagens, até as mais complexas, é inegável que este tipo de tecnologia veio ajudar, e muito, a aprendizagem a distância. Recursos como teleconferência e videoconferência, tão importantes neste cenário, só puderam ser viabilizados não apenas pela existência das redes de computadores, mas em especial pelo desenvolvimento delas. Essas novas demandas estão mudando a forma com que as empresas usam as redes e, em especial, como vender seus produtos. Imagine que você fosse o produtor responsável pelo jogo de simulação ou pelo desenvolvimento do ambiente virtual de aprendizagem. Como você lidaria com a questão da conectividade? Você seria capaz de fazer essa produção sem nenhum recurso de comunicação? Certamente que não. Finalmente, como podemos caracterizar uma rede de computadores? Se você tiver dois ou mais computadores conectados entre si em casa, você tem uma rede. Se você conectar a Internet de qualquer lugar, você também estará em uma rede de computadores. Desta forma, como podemos saber o que é exatamente uma rede? De uma forma mais simples, podemos afirmar que uma rede consiste em dois ou mais computadores conectados entre si. Um componente fundamental para o computador entrar em uma rede é a sua placa de rede ou interface de rede (NIC – network interface card). Atualmente, a necessidade de se conectar a redes é tão grande que, via de regra, esse componente já vem com essa placa/interface rede. Outro ponto importante a ser destacado são os diversos tipos de meios físicos que podem ser utilizados na transmissão. As redes utilizam diferentes meios de transmissão para o envio e recebimento de mensagens, onde cada meio apresenta vantagens e desvantagens. 9
    • Redes de Computadores Os meios de transmissão serão alvo de estudo mais detalhado em capítulos posteriores; contudo, iremos apresentar uma rápida visão dos mesmos. Podemos destacar quatro tipos principais de meios de transmissão: Cabo coaxial Antigamente, em se tratando de transmissão de dados, este era o cabo mais utilizado. Ele é formado basicamente por um fio de cobre isolado e de grande espessura, sendo coberto por um condutor cilíndrico externo. Devido a sua construção blindada, o cabo coaxial é menos sensível à interferência do que o seu concorrente direto, o par trançado. Ele é também considerado um cabo leve, relativamente barato, flexível e de fácil manipulação. Em termos de tamanho máximo de comprimento, estudos mostram que o cabo coaxial pode chegar, em média, a 1 km. Contudo, ele vem perdendo mercado devido à redução de custos e melhorias técnicas experimentadas pelos seus concorrentes, em especial cabo de par trançado e fibras ópticas. Ele também apresenta muitos problemas com mau contato. Mesmo experimentando um declínio em sua utilização nos últimos anos em redes de computadores, o cabo coaxial ainda é muito utilizado nos mercados de transmissão de vídeo, voz e dados. Como exemplo, caro(a) aluno(a), se você quiser conhecer um cabo coaxial, basta olhar o utilizado pela sua televisão a cabo. A arquitetura geral de um cabo coaxial é apresentado na Figura 1.3. Figura 1.3 - Exemplo de cabo coaxial Par trançado Meio de transmissão baseado em fios de cobre trançados aos pares em forma de espiral. Em sua versão mais usual, são usados 4 pares, totalizando 8 fios. Esses trançados visam essencialmente eliminar o ruído elétrico e magnético causado pelos pares adjacentes e de outras fontes, como motores e transformadores. A Figura 1.4 apresenta uma ilustração básica deste tipo de cabo. Atualmente, em redes cabeadas, este é o principal meio de conexão utilizado, especialmente pelo seu baixo curso e por ser amplamente difundido. Contudo, ele é tido como lento e ruidoso para a transmissão de dados (em comparação com outros meios cabeados). O par trançado também sofre limitações de distância (não consegue alcançar longas distâncias). Pesquisas mostram que este cabo consegue alcançar, com a eficiência desejada, apenas algumas dezenas de metros. Além disso, a quantidade de dados que pode 10
    • Redes de Computadores ser trafegada é reduzida. Para transmissões de quantidades consideráveis de dados, uma outra opção, como fibras ópticas, é mais recomendada. Contudo, novas tecnologias estão sendo utilizadas para aumentar a capacidade de transmissão deste meio, que atualmente pode atingir a velocidade de um milhão de bits por segundo. Se você quiser um exemplo deste tipo de transmissão, basta olhar para trás do seu computador e observar um cabo azul que sai da sua placa de rede. Figura 1.4 - Visão interna de um cabo de par trançado Fibra óptica Uma fibra óptica é um meio fino, flexível, que tem a capacidade de conduzir um feixe óptico. A transmissão ocorre através de pulsos modulados de luz. Nenhum impulso elétrico é transportado no interior do cabo. Desta forma, logo de início, podemos afirmar que este é um meio mais seguro para o transporte de dados, pois não terá influência de nenhuma corrente elétrica (e toda corrente elétrica gera campos magnéticos). A capacidade em transmissão da fibra óptica é muito alta; na prática, centenas de Gpbs (gigabits por segundo, unidade de transmissão em redes) podem ser trafegados neste meio, capacidade esta muito superior às apresentadas pelo cabo coaxial e pelo cabo de par trançado. Ele também tem um limite de comprimento muito superior aos seus tradicionais concorrentes: estudos práticos revelam que ele pode alcançar até dezenas de quilômetros sem ter a sua eficiência reduzida. Esse meio de transmissão apresenta também um menor tamanho e menor peso do que os seus concorrentes (em situações muito adversas, essa pode ser uma vantagem crucial, como ao passar pelas estruturas já pequenas dos nossos prédios). Uma pergunta natural que pode surgir é: com tantas vantagens, então por que não os usamos para tudo? A primeira razão é porque seu custo associado ainda é muito elevado em relação a seus concorrentes. Uma segunda razão também crucial é a exigência de um suporte técnico especializado para a sua instalação e manutenção. Fibras ópticas exigem certos cuidados específicos que não existem em cabos coaxiais ou cabos de par trançado. Desta forma, podemos afirmar que é interessante a utilização de fibras ópticas em situações que necessitem ou de elevada capacidade de transmissão ou para interligar distâncias muito altas. Redes sem fio Um outro meio de transmissão existente que difere bastante em relação aos já apresentados é a transmissão sem fio baseada em sinais de rádio. Esse tipo de comunicação é amplamente utilizado em diversos contextos atualmente. Esse meio de transmissão será devidamente descrito em capítulos posteriores (mais especificamente, no Capítulo 9, Redes sem Fio), por isso não será alvo de estudo detalhado no presente momento. Por ora, é importante notar que está sendo vastamente usada em diversos contextos, especialmente 11
    • Redes de Computadores naqueles onde criar uma estrutura cabeada pode apresentar muitas dificuldades. Pontos importantes que serão vistos posteriormente são a qualidade da conexão deste tipo de meio de transmissão e, em especial, a segurança em termos de acessos não-autorizados. Você Sabia? Você sabia que o cabo de par trançado, utilizado para conectar seu micro a rede, não pode ser utilizado para conectar dois computadores diretamente? Os cabos de par trançado podem ser diretos ou cruzados (essa diferenciação se dá através da disposição dos fios dentro do cabo). Cada tipo apresenta uma configuração específica para os cabos internos. O cabo que liga você aos equipamentos é o chamado cabo par trançado direto. Geralmente, é esse cabo que você encontra no mercado e que está lhe conectando a Internet, por exemplo. O cabo que liga o seu computador diretamente a outro computador é chamado de par trançado cruzado (ou cross-over). Veremos mais detalhes sobre essa diferenciação em capítulos posteriores. Agora que vimos o equipamento que você deve ter no seu computador para acessar uma rede de computadores (placa/interface de rede) e os meios de transmissão que podem ser utilizados, como fazer efetivamente para enviar/receber dados? Como acessar a Internet? Inicialmente, é necessário encaminhar as mensagens para os seus destinatários e administrar as comunicações dentro de uma rede. Dentro de uma rede, o responsável por realizar a maioria dessas funções é o servidor. Este servidor, basicamente, tem como função autenticar usuários, armazenar páginas Web, armazenar configurações pessoais dos seus clientes, dentre outros. Eles podem fazer funções bem mais avançadas, como permitir ou negar o seu acesso à Internet e bloquear a navegação para endereços indevidos ou a utilização de serviços proibidos. Esses servidores possuem softwares específicos para o correto desempenho do seu papel, como, por exemplo, o Microsoft Windows Server 2008 e diversos softwares servidores baseados no sistema operacional Linux. Ainda neste cenário, diversos outros equipamentos, além do servidor, são necessários. Por exemplo, como você iria fazer para conectar um número razoável de computadores em uma sala de aula (por exemplo, 30)? Iria ligar todos os computadores entre si? Felizmente, existe um equipamento centralizador denominado hub que faz a conexão entre os computadores. Basicamente, todos se conectam diretamente no hub e o mesmo retransmite as mensagens que são recebidas para todos os envolvidos. Você pode estar se imaginando que essa pode ser uma solução não muito eficiente. Imagine que, em uma reunião, você precise se comunicar especificamente com um dos seus chefes para alertá-lo de algum fato despercebido. O que seria mais eficiente, enviar a mensagem diretamente para ele ou falar em voz alta para todos da mesa a sua mensagem? Todos iriam para a reunião, olhar para você e analisar se aquela mensagem possa interessar de alguma forma. Situação semelhante ocorre nas redes de computadores. Então, um outro equipamento de rede foi desenvolvido, o switch. Ao invés do switch mandar todos os dados recebidos para os usuários a ele conectados, ele envia os dados somente para o micro que deve receber a informação. Você pode ver um switch como um “hub inteligente”. Resumindo: um hub simplesmente retransmite todos os dados que chegam para todas as estações conectadas a ele, fazendo com que a rede fique muito lenta. Um switch encaminha a mensagem apenas para o seu destinatário correto, aliviando o congestionamento na rede. A grande vantagem do hub é o seu preço, ele é comparativamente mais barato do que um 12
    • Redes de Computadores switch. Tanto o hub como o switch serão estudados em capítulos posteriores. Os switches são comumente utilizados dentro de redes locais ou individuais. Se você quiser conectar duas ou mais redes distintas, é necessário utilizar um dispositivo chamado roteador. Este equipamento tem como função principal escolher um caminho para a sua mensagem chegar ao seu destino (inclusive, se tiver apenas um). Em redes grandes, podem existir diversos caminhos, sendo o roteador responsável por escolher que caminho deve ser percorrido. Os roteadores têm também a missão de interligar redes com arquiteturas diferentes. Por fim, é importante lembrar que nós, usuários, precisamos nos conectar a um provedor de serviço Internet para ter acesso aos diversos recursos que a grande rede nos fornece. Em geral, este não é um serviço gratuito, e você tem que pagar para ter esse acesso. O usuário residencial em geral tem uma boa noção deste ponto, pois ele em geral paga uma taxa a seu provedor de Internet para obter acesso. A Figura 1.5 apresenta uma visão geral de como um usuário comum (nós) fazemos para conectar à Internet em nossas residências, de modo geral. Figura 1.5 - Modo pelo qual o usuário residencial conecta a Internet 1.3 Tipos de Redes Existem diversos tipos de redes, cada qual com suas especificidades. Desta forma, é importante tentar classificá-las levando-se em consideração algum aspecto. Na verdade, existem diversos aspectos que podem ser levados em conta para fazer esta classificação. O primeiro aspecto que pode ser levado em consideração é o tamanho da rede, em especial sua distância geográfica. Neste caso, podemos classificar as redes em quatro tipos: Rede Local Também conhecida como LAN (Local Area Network). Esse tipo de rede está associada a pequenos espaços físicos, geralmente restritos a um edifício, andar ou até mesmo uma sala deste edifício. Normalmente, ela é formada por computadores pessoais 13
    • Redes de Computadores e com um custo relativamente baixo. Ela é importante porque permite o compartilhamento de recursos dentro da unidade de negócio (por exemplo, você não precisa comprar uma impressora para cada computador da empresa; basta comprar uma e compartilhá-la através da rede local). Esse tipo de rede tornou-se praticamente universal em organizações de todo o mundo e das mais diversas áreas. As velocidades de transmissão internas, via de regra, são comparativamente superiores do que as redes que veremos em seguida. Um exemplo prático é o laboratório de informática que você utiliza; ele é formado por diversas máquinas conectadas por um equipamento (geralmente, hub ou switch) limitadas por um espaço físico pequeno (no caso, uma sala). Rede de campus Conhecida também como CAN (Campus Area Network), essas redes são caracterizadas por serem instaladas em área bem específicas, como um centro/campus de uma faculdade ou de um grande centro de pesquisa. Ela é comparativamente maior do que a rede local, contudo é bem menor do que a que veremos em seguida, a rede metropolitana. Rede metropolitana Conhecida também como MAN (Metropolitan Area Network), esse tipo de rede ocupa um tamanho intermediário entre as LANs e as WANs. Existe uma tendência na nãoutilização de técnicas tradicionais de rede, como as redes cabeadas tradicionais. No atual contexto de inclusão digital que vivemos, disponibilizar Internet sem fio para toda uma cidade é vista como uma solução mais social. Uma MAN tem como objetivo básico oferecer o serviço com um custo muito reduzido (e, às vezes, inexistente) e com qualidade comparável a do provedor tradicionalmente utilizado. Projetos inovadores, como o Garanhuns Digital, são exemplos claros deste tipo de rede. Rede remota Conhecida também como WAN (Wide Area Network), as WANs normalmente cobrem uma considerável área geográfica (estados, países, continentes). Normalmente, para se viabilizar a construção de uma rede deste porte, uma série de equipamentos (ex.: roteadores e servidores) são necessários. Qualquer mensagem enviada por um cliente conectado a esta rede irá ser direcionada por esses equipamentos até o seu destino. O grande exemplo que temos de WAN é a Internet, que é a maior rede de computadores existente neste planeta. A Internet é uma rede global de computadores geograficamente dispersos e ligados entre si que compartilham informações que são acessíveis em qualquer lugar. Pela sua grande popularidade, a Internet ganhou diversas terminologias que vem sendo utilizadas em diversas obras, como: “Rede das Redes”, “A Grande Rede” ou “Rede Mundial de Computadores”. A Internet é composta por centenas de redes (LANs, CANs e MANs) espalhadas pelo mundo. O assunto Internet será melhor discutido em capítulos posteriores; por ora, basta sabermos que ele é o maior exemplo de rede remota que temos atualmente. Uma outra forma bastante comum de se classificar redes, em especial as redes locais (LANs), é através de sua topologia. De forma básica, a topologia de uma rede é a forma com que ela se apresenta fisicamente. Baseado neste critério (topologia), três tipos de redes podem ser destacadas: 14
    • Redes de Computadores Topologia em barra (ou barramento) Na topologia em barra, um cliente transmite mensagens de forma que ela trafega em um canal compartilhado para todos os clientes dessa rede. Na prática, todos os computadores recebem a mensagem, contudo, eles verificam se a mesma é endereçada a ele. Se for, ele toma a atitude apropriada. Se não for, a mensagem é simplesmente descartada. A Figura 1.6 apresenta um exemplo de rede em barra. Figura 1.6 - Topologia em barra Topologia em anel Já no caso da topologia em anel, como o próprio nome diz, os computadores são conectados de forma circular, semelhante a um anel. Nesta topologia, cada computador está ligado a apenas dois outros computadores. Redes em anel são capazes de transmitir e receber dados em apenas uma direção; como só existe um caminho e o computador é conectado em círculo, ele só pode enviar a mensagem para outro computador específico. Desta forma, não existirá nenhum problema relacionado ao roteamento/encaminhamento das mensagens. O grande problema desta arquitetura é que se, por acaso, alguma das máquinas falharem, todos os computadores serão incapazes de enviar/receber entre si, já que a mensagem só navega em uma direção. A Figura 1.6 apresenta uma rede em anel. Vale ressaltar que este tipo de rede já está ficando obsoleto, sendo usado apenas por redes locais mais antigas (as chamadas redes de Token Ring) ou em contextos/situações específicos. 15
    • Redes de Computadores Figura 1.7 - Topologia em anel Topologia em estrela Neste tipo de topologia, toda a informação deve passar obrigatoriamente por uma estação central inteligente, que terá a função de interconectar todos os seus clientes e transmitir as mensagens de forma que cada estação receba apenas as suas mensagens. Esta estação central pode ser inclusive um hub inteligente (que sabe enviar as mensagens para os destinatários corretos) ou um switch. É importante ressaltar que uma rede local que use um hub comum não é considerada uma rede do tipo estrela, pois ela encaminha a mensagem para todos os clientes conectados. A diferença é sutil, então cuidado para não confundirem! As redes em estrela atuais, em geral, utilizam cabos de par trançado e um switch como estação central na rede. Esta topologia de rede é muito difundida atualmente; observe a configuração do laboratório de informática que você utiliza e não se espante se ele for exatamente como descrevemos aqui. A Figura 1.6 apresenta um exemplo deste tipo de topologia. 16
    • Redes de Computadores Figura 1.8 - Topologia em estrela Então, para finalizar o tópico sobre tipos de rede, uma outra classificação básica divide as redes em redes cliente-servidor e redes ponto a ponto. Essa divisão, caro aluno, está relacionada sobre como o computador é visto na rede. Na rede ponto a ponto, todos os computadores compartilham recursos de forma mútua, não existindo nenhuma relação hierárquica entre as máquinas. Todos mandam mensagens, todos requisitam e fornecem serviços, e ninguém controla ninguém. Já nas redes baseadas no tipo cliente-servidor, uma máquina (ou um grupo delas) centraliza todos os serviços da rede (por exemplo, autenticação, envio de mensagens eletrônicas etc.) oferecidos às outras máquinas. Neste caso, quem requisita é o cliente, e quem responde a requisição é o servidor. As máquinas clientes quase sempre são computadores pessoais ou estações de trabalhos que apresentam uma interface mais amigável para o usuário, usando sistemas operacionais conhecidos por todos (ex.: Windows XP) e softwares amigáveis. Os servidores, máquinas geralmente com configurações mais robustas, são muitas vezes acessadas apenas pela equipe técnica de TI e possibilita o acesso de todos os clientes da rede aos seus serviços. A Figura 1.7 apresenta uma visão básica da arquitetura cliente-servidor. 17
    • Redes de Computadores Figura 1.9 - Arquitetura cliente-servidor Nas últimas décadas, as redes baseadas na arquitetura clienteservidor vêm sendo mais utilizadas do que as redes ponto a ponto. Diversas razões colaboram para este fato; em especial, existe uma tendência para administração centralizada de rede. Servidores para você entrar na rede, servidores para vocês enviar mensagens eletrônicas, servidores para você usar o programa de sua empresa... a convergência atual para a tecnologia clienteservidor é inegável. Portanto, para finalizar o tópico sobre tipos de rede, existem duas abordagens clássicas quando abordamos envio de informação na rede: comutação de circuitos e comutação de pacotes. A função de comutação em uma rede se refere à alocação de recursos na rede para que seja possível a transmissão e recebimentos de informações na rede. Antes de iniciar a explicação, vamos apresentar um exemplo bastante intuitivo. Imagine, caro(a) aluno(a), que você precisa enviar uma mensagem para uma pessoa. Se você enviar pelo correio, você não irá utilizar exclusivamente o canal, não é mesmo? Várias pessoas podem usar o correio ao mesmo tempo. Mais ainda, se duas pessoas enviarem cartas para o mesmo destinatário, as duas cartas irão chegar. Concorda? Por outro lado, quando você está conversando com uma pessoa ao telefone, a linha fica dedicada (ou seja, ninguém mais consegue se conectar a ela). Se alguém tentar, poderá acabar ouvindo o sinal de ocupado. Desta forma, podemos verificar que existem duas formas significativamente diferentes de se enviar informações pela rede. Vamos então destacar as principais características de cada uma: Comutação de circuitos: Neste tipo de rede, os recursos necessários ao longo da rede ficam dedicados para a conexão em questão. Desta forma, o “caminho” entre o usuário inicial e o final fica reservado desde o início até o término da conexão. Ou seja, para que efetivamente o cliente envie uma mensagem para o seu destino, é necessário que um seja primeiramente reservado um circuito entre os dois enlaces. Uma vantagem desse tipo de rede é a questão de exclusividade do canal, que torna a comunicação mais rápida (ou, no mínimo, menos suscetível a interferência). Uma desvantagem associada é que este é um método que consome recursos em demasia, já que para qualquer comunicação entre dois clientes um canal dedicado deve ser criado e recursos alocados exclusivamente aos dois clientes envolvidos. Note, também, que o recurso permanece sempre alocado e dedicado até que um dos envolvidos decida finalizar a conexão. Desta forma, se o tráfego não for constante, a capacidade previamente alocada da rede será desperdiçada (ocasionando 18
    • Redes de Computadores os chamados períodos de silêncio). Este paradigma, a comutação de circuitos, é muito utilizado atualmente nos sistemas telefônicos recentes. A Figura 1.8 apresenta um exemplo de comutação de circuito. É importante notar, neste caso, que a ligação física é exclusiva/ dedicada. Finalmente, neste paradigma, três passos devem sempre ser executados: » Estabelecimento do circuito; » Envio/recebimento de informações; » Liberação da conexão (desconexão). Figura 1.8 - Comutação de circuitos Comutação de pacotes: Este paradigma consiste na comunicação de informações em que mensagens (pacotes) são individualmente enviados entre clientes da rede através de conexões e recursos tipicamente partilhados por outros clientes. Este contrasta com o paradigma anterior, a comutação de circuitos, que estabelece uma ligação dedicada entre ambos os clientes para uso exclusivo de recursos durante a transmissão (mesmo quando não há nada a transmitir). A Figura 1.9 apresenta um exemplo de comutação de pacotes. Além disso, neste tipo de rede, não é necessário o estabelecimento de um circuito dedicado entre as duas entidades. A comutação de pacotes é utilizada para aperfeiçoar a largura de banda da rede, minimizar a latência (tempo que o pacote demora a atravessar a rede) e aumentar a robustez da comunicação. O próprio tamanho máximo da mensagem a ser enviada tem um valor máximo (mensagens acima deste valor são “quebradas” para conseguirem ser transmitidas). Essas mensagens menores é que são chamadas de pacotes. A própria comutação de pacotes pode se subdividir em: » Circuito virtual (com conexão): É estabelecido um caminho virtual fixo e todos os pacotes seguirão por este caminho (contudo, sem parâmetros fixos). Vantagem: garante a entrega das informações de forma ordenada (afinal, um circuito, mesmo virtual, é dedicado para isso). » Datagrama (sem conexão): Informações (pacotes) são encaminhados independentemente, sem a necessidade de se estabelecer um caminho fixo. Vantagem: maior flexibilidade a falhas, já que caminhos que apresentem defeitos podem ser imediatamente alterados. 19
    • Redes de Computadores Figura 1.9 - Comutação de pacotes Atualmente, observamos que a comutação de pacotes é muito mais usada em redes de computadores do que a comutação de circuitos. O principal fator associado a esta comparação é a eficácia do uso dos recursos. Os principais críticos da comutação de pacotes colocam que, sob um ponto de vista prático, comunicação por circuitos leva diretamente ao desperdício (em especial, pela ociosidade vista nos períodos de silêncio). Em uma própria conversa telefônica com um amigo seu, calcule a quantidade de tempo que cada um não fala nada (ou seja, vocês estão em silêncio). Neste tempo, recursos estão sendo, de maneira ineficaz, alocados exclusivamente a vocês (e ninguém pode usar). Aprenda Praticando Agora é chegada a hora de você praticar os conceitos aprendidos. Para isso, alguns exercícios foram selecionados para você avaliar seu entendimento do nosso primeiro capítulo. Você deverá procurar entender os exercícios resolvidos e suas respectivas respostas com o intuito de consolidar os conceitos aprendidos neste capítulo. Algumas questões dos exercícios propostos fazem parte das atividades somativas que você deverá responder em relação ao capítulo 1, do Volume 1, de acordo com as orientações e prazos sugeridos pelo seu professor e tutor. Lista de Exercícios Propostos 1. Explique, com suas palavras, o que é uma rede de computadores. Qual a motivação e quais vantagens para a sua utilização? 2. Faça uma breve descrição da rede do seu laboratório de informática. Descreva, com os respectivos nomes, os principais elementos físicos que compõem essa rede. 3. Quais os principais meios físicos para transmissão de dados atualmente? Faça um comparativo entre eles tomando como base distância máxima, velocidade e custo. 20
    • Redes de Computadores 4. Defina e exemplifique as seguintes siglas: MAN, WAN e LAN. 5. Descreva os principais equipamentos de rede que uma LAN geralmente deve possuir. Lembre-se que o cabeamento também é essencial para o funcionamento. 6. Imagine a situação hipotética que você queira fazer uma pequena rede em casa, com dois computadores. Baseando-se no custo-benefício, você compraria um hub ou um switch? Justifique a sua resposta. 7. Quais as principais características de uma rede em barra e quais as suas vantagens e desvantagens? 8. Quais as principais características de uma rede anel e quais as suas vantagens e desvantagens? 9. Quais as principais características de uma rede estrela e quais as suas vantagens e desvantagens? 10. Considere o seguinte problema: Um escritório de engenharia e arquitetura ainda não possui uma rede de computadores. Todos os seus funcionários, inclusive o dono, possuem um computador. Quando eles compartilham informações, eles fazem verbalmente ou utilizam disquetes para copiar arquivos, trocando-os entre si. O volume de projetos permaneceu estável nos últimos quatro anos, mas aumentou recentemente e para aumentar a produtividade, seu proprietário deseja implantar uma rede de computadores. Você como projetista da rede vai ajudá-lo. Nesta empresa trabalham seis pessoas: o proprietário (diretor), dois engenheiros civis, um arquiteto, uma secretária e um corretor de vendas. Ela ocupa duas salas em um edifício comercial e na primeira delas estão alocados os dois engenheiros e o arquiteto, enquanto que na segunda, estão a secretária, o proprietário e o corretor de vendas. O escritório também possui uma impressora a lazer e um ploter. Baseado neste cenário responda: a) Qual a topologia que você indicaria para esta rede? Justifique. b) Analise as três topologias padrão baseado no ambiente físico acima. c) Que equipamentos de rede você julga necessários para a situação indicada acima? 11. Uma rede conectada através de um switch é considerada como topologia em barra ou topologia em estrela? Justifique sua resposta. 12. Com relação ao desempenho, o que podemos dizer das redes barramento, estrela e anel? 13. Descreva, com suas palavras, o que é a Internet. 14. Sobre a arquitetura de rede associada ao ambiente virtual de aprendizagem (AVA) utilizado em seu curso a distância, você a classificaria como uma aplicação clienteservidor ou ponto a ponto? 15. Explique, de forma resumida, a principal diferença entre a comutação de circuitos e a comutação de pacotes. 21
    • Redes de Computadores Conheça Mais Caro(a) aluno(a), existe um vídeo muito interessante sobre os conceitos fundamentais de redes de computadores e que mostra, de uma forma divertida, todos os conceitos apresentados neste capítulo. O nome deste vídeo é Warriors of The Net (“Os Guerreiros da Rede”). O vídeo é em inglês, mas tem versão legendada. Ele pode ser encontrado facilmente em sites de vídeos como www.youtube. com. Segue um link válido para esse acesso direto: http://www.youtube.com/ watch?v=QTdR6SnE0zQ. Não perca tempo, assista ao vídeo quanto antes! São menos de 10 minutos. Atividades e Orientações de Estudos Dedique, pelo menos, 5 horas de estudo para o Capítulo 1. Você deve organizar uma metodologia de estudo que envolva a leitura dos conceitos que serão apresentados neste volume e pesquisas sobre o tema, usando a Internet e livros de referência. Vamos trocar ideias nos fóruns temáticos desta disciplina no ambiente virtual, pois a interação com colegas, tutores e o professor da disciplina irá ajudá-lo a refletir sobre aspectos fundamentais tratados aqui. Os chats também serão muito importantes para a interação em tempo real com o seu tutor virtual, seu professor e seus colegas. Também é importante que você leia atentamente o guia de estudo da disciplina, pois nele você encontrará a divisão de conteúdo semanal, ajudando-o a dividir e administrar o seu tempo de estudo semanal. Procure responder as atividades propostas como atividades somativas para este capítulo, dentro dos prazos estabelecidos pelo seu professor, pois você não será avaliado apenas pelas atividades presenciais, mas também pelas virtuais. Muitos alunos não acessam o ambiente e isso poderá comprometer a nota final. Não deixe que isso aconteça com você! Os assuntos abordados neste capítulo podem ser encontrados no Quiz de número 1 da disciplina de Redes de Computadores. Através do Quiz você poderá avaliar o seu próprio desempenho. Após respondê-lo, você terá o resultado de seu desempenho e conhecerá as suas deficiências, podendo supri-las nas suas próximas horas de estudo. Vamos Revisar? Neste capítulo, você aprendeu a definição e conceitos essenciais associados às redes de computadores. Vimos a importância das redes nos dias atuais e quanto somos dependentes delas. Vimos também uma visão comparativa das tradicionais redes de telefonia e das atuais redes de computadores. O primeiro capítulo também abordou questões físicas cruciais para o projeto de redes de computadores. Inicialmente, o meio físico foi alvo de estudo, onde os principais meios foram destacados, a saber: cabo coaxial, par trançado, fibra óptica e redes sem fio. Após esta etapa, vimos equipamentos necessários a interconexão de redes, em especial 22
    • Redes de Computadores hub, switch e roteador. Aprendemos as principais e importantes funções associadas a cada equipamento destacado. Por fim, foram apresentados os diversos tipos de redes existentes. Foram vistos diversos, e é fundamental entender que critério foi usado em cada caso para se fazer a classificação. Se o critério for distância, podemos dividir as redes em rede local (LAN), rede de campus (CAN), rede metropolitana (MAN) e rede remota (WAN). Se o critério for topologia, as redes podem ser divididas como topologia em barra, em anel e em estrela. Se a ideia do critério é como o computador é visto na rede, podemos ter duas classificações: cliente-servidor e ponto a ponto. Se o critério for como são alocados recursos na rede, podemos ter redes baseadas em comutação de circuitos ou redes baseadas em comutação de pacotes. No próximo capítulo, iremos aprender os principais modelos de referência da área de redes de computadores, como os modelos TCP/IP e OSI. Além disso, conceitos fundamentais como protocolo serão apresentados. 23
    • Redes de Computadores Capítulo 2 – TCP/IP e OSI: uma visão comparativa Vamos conversar sobre o assunto? Agora que já introduzimos o tema de redes de computadores no primeiro capítulo, você já possui as noções básicas para entender o que será tratado neste capítulo. Sabemos que não é suficiente apenas que os computadores sejam conectados através de meios físicos para que tenhamos uma rede em funcionamento. Para se ter uma rede, precisamos de hardware e software que trabalhem conjuntamente, cada um fazendo o seu papel. Para que dois computadores conversem é necessário que eles “falem a mesma língua”. É necessário um conjunto de regras para coordenar esse diálogo entre computadores numa rede. Baseando-se nisso, foram criados modelos de referências para determinar regras a serem estabelecidas para que a comunicação em um ambiente de rede aconteça. É nesse contexto que surgem os modelos de referência OSI e TCP/IP, que iremos abordar neste capítulo. Figura 2.1 Computadores trocando mensagens numa Rede 24
    • Redes de Computadores De acordo com Tanembaum (2003), quando as primeiras redes de computadores foram estudadas, a principal preocupação foi com o desenvolvimento de hardware adequado. Apenas em um segundo momento, o software passou a ser desenvolvido chegando a sua estruturação dos dias atuais. Entretanto, desenvolver software para fazer com que dois ou mais computadores estabeleçam uma comunicação não é tão simples. Por ser uma tarefa difícil, se imaginou uma abordagem do tipo “dividir para conquistar”. Mas o que significa isso? A partir do momento em que se estrutura o software de redes em níveis ou camadas com funções específicas, a união dessas camadas irá gerar o modelo completo de software para rede. Com a divisão em camadas, atribui-se a cada uma das camadas tarefas específicas, reduzindo então a complexidade e tornando mais fácil a conquista do objetivo. Dessa forma, as camadas são colocadas uma sobre as outras, criando assim um modelo de pilha. Em cada rede, o número de camadas na pilha pode ser diferente, porém em todas as redes, a divisão da pilha em camadas, atende o principal objetivo que é de que cada camada ofereça determinados serviços às camadas superiores, abstraindo essas camadas dos detalhes de implementação dos serviços oferecidos. Também é de senso comum a todas as redes, que a camada X de uma máquina se comunique com a camada X de outra máquina. Para que essas camadas de computadores distintos se comuniquem, elas precisam usar o mesmo conjunto de regras. A esse conjunto de regras dá-se o nome de Protocolo. Um software de redes é composto por um ou vários protocolos. Poderemos usar uma analogia entre regras e convenções existentes em nossa sociedade. Por exemplo, no Brasil, dificilmente dois homens se beijam ao se cumprimentarem. O gesto mais comum neste cumprimento é o aperto de mãos. Já as mulheres se cumprimentam normalmente através de beijos no rosto. Porém, nossos vizinhos argentinos se cumprimentam usando um beijo no rosto, independentemente de ser um homem ou uma mulher que o cumprimente. Isso se dá devido a uma convenção local. Se pensarmos em um outro exemplo, no próprio Brasil, a depender do estado ou região, as pessoas se cumprimentam com um, dois ou três beijos no rosto. Ou seja, essas regras e convenções estabelecidas pela sociedade normalmente são cumpridas para que a comunicação possa fluir sem atropelos. Similarmente, em um ambiente de rede, a violação do protocolo dificultará a comunicação. Figura 2.2 Se você observar a Figura 2.3, verá um esquema de 4 camadas. A camada 4 do host 1 se comunica com a camada 4 do host 2. Da mesma forma, a camada 3 do host 1 se comunica com a camada 3 do host 2. Embora isso seja o sugerido pelo esquema apresentado na Figura 2.2, o que acontece de fato é que os dados não são transferidos diretamente da camada X de uma máquina para a camada X de outra máquina. Em vez disso, cada camada 25
    • Redes de Computadores transfere os dados e as informações de controle para a camada imediatamente abaixo dela e assim sucessivamente até chegar a camada 1. Essa camada mais inferior normalmente é o meio físico através do qual ocorre a passagem da mensagem de comunicação. Figura 2.3 - Camadas de um Protocolo Através da junção de um conjunto de camadas e protocolos surge um conceito muito importante que é o de arquitetura de redes. Uma arquitetura de rede é composta por um conjunto de camadas e protocolos. A especificação de uma arquitetura deve conter informações suficientes para permitir que alguém desenvolva o programa ou construa o hardware de cada camada, de forma que ela obedeça corretamente ao protocolo adequado. No decorrer deste capítulo, discutiremos duas importantes arquiteturas de redes: o modelo de referência OSI e o modelo de referência TCP/IP. O modelo de referência OSI não apresenta protocolos utilizados atualmente, porém possui características descritas para as camadas, que de uma forma geral, são bastante importantes. Já o modelo TCP/IP tem características distintas, pois embora o modelo em si não seja muito utilizado, os protocolos contidos nele são bastante comuns nas redes atuais. 2.1 Modelo de Referência OSI O modelo de referência OSI (Open Systems Interconnection) foi baseado em proposta desenvolvida pela ISO (International Standards Organization) para padronização de protocolos tratando da interconexão de sistemas abertos. O modelo é composto por 7 camadas, a saber: física, enlace de dados, redes, transporte, sessão, apresentação e aplicação. 26 Cada camada deve executar uma função bem definida e oferecer serviços à camada imediatamente superior e utilizar os serviços da camada imediatamente inferior. Os limites entre as camadas devem ser escolhidos, de modo a reduzir o fluxo de informações transportadas entre as interfaces. Uma interface define as operações e os serviços que a camada inferior tem a oferecer à camada que se encontra acima dela. A pilha de protocolo
    • Redes de Computadores do modelo OSI é apresentada na Figura 2.4. Figura 2.4 - Modelo OSI No decorrer deste capítulo, você conhecerá cada uma das camadas apresentadas na Figura 2.3. Começaremos pela camada de aplicação que contém vários protocolos necessários aos usuários. A camada de aplicação (camada 7) apresenta uma interface consistente para todos os softwares de computadores, também chamada de API (Application Programming Interface) que será melhor explicada no capítulo 3 do presente volume. São exemplos de protocolos com funções da camada de aplicação do modelo OSI: HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), SNMP (Simple Network Management Protocol), FTP (File Transfer Protocol), dentre outros. O HTTP, por exemplo, constitui a base para a World Wide Web. Quando um navegador deseja uma página da Web, ele envia o nome da página desejada ao servidor utilizando o HTTP. Este protocolo especifica as regras para a comunicação entre navegadores e servidores Web. As solicitações HTTP são enviadas como texto ASCII, com várias palavraschave que permitem diferentes ações. O SMTP, por sua vez, é o protocolo utilizado para troca de e-mails (correio eletrônico). Este protocolo permite que o remetente se identifique apropriadamente, especificando um receptor e transferindo uma mensagem de e-mail. Você deve estar se perguntando se a transferência de e-mail não é um processo simples, porém o protocolo SMTP trata de muitos detalhes, como por exemplo, exigir a entrega confiável, ou seja, o remetente deve manter uma cópia da mensagem até que o receptor tenha armazenado uma cópia em disco. O SMTP também permite que o remetente pergunte a um computador remoto se existe uma determinada caixa de correio. Atenção Para se ter uma transmissão segura através de uma rede não-segura, como a internet, em geral, se utiliza o protocolo HTTPS, que fornece certificados de conexão e de sessão, fazendo criptografia dos dados. O SNMP é um protocolo utilizado no gerenciamento de redes. O FTP é utilizado para transferência de arquivos e permite mover dados de uma máquina para outra. Esses e outros protocolos que apresentam as funções da camada de aplicação do modelo OSI, vocês terão a oportunidade de estudá-los no Capítulo 3 deste volume. Dando continuidade a nossa conversa sobre as camadas encontradas na Figura 2.3, abordaremos agora a camada de Apresentação (camada 6). Esta camada está preocupada 27
    • Redes de Computadores com a sintaxe e a semântica das informações transmitidas, gerenciando as estruturas de dados abstratas e permitindo a definição e o intercâmbio de estruturas de dados de nível mais alto (aplicação). Ela se responsabiliza pelas conversões da representação de dados utilizada na aplicação para a representação padrão da rede, e vice versa e pela criptografia e compressão de dados. Na compressão, os dados recebidos na camada 7 são compactados e a camada 6 do dispositivo receptor fica responsável por descompactar esses dados. Neste caso, a transmissão se dá de forma mais rápida, já que haverá menos dados a serem transmitidos, devido à compactação. Atenção Você sabia que as camadas 7, 6 e 5 são frequentemente referenciadas como camadas altas? E sabia que os hosts são os únicos dispositivos que operam das camadas 4, 5, 6 e 7? A camada 5 é a camada de Sessão que se responsabiliza por estabelecer, manter e finalizar uma sessão de comunicação na rede. Esta camada é responsável por gerenciar o controle de tráfego e os serviços de sincronização, de modo que na ocorrência de uma falha, apenas os dados transferidos depois do ponto de sincronização tenham de ser repetidos. Também é de responsabilidade da camada de sessão, o reconhecimento de nomes e algumas características de acesso, como por exemplo, quando e por quanto tempo um dispositivo pode transmitir. Para ficar mais claro, imagine a situação onde você está baixando e-mails de um servidor e acontece uma falha na rede. Quando a rede voltar a estar operacional, a sua tarefa continuará do ponto em que parou, não sendo necessário reiniciá-la. A camada 4 é chamada de Camada de Transporte sendo responsável pela preparação dos dados a serem transmitidos. Ela aceita dados da camada de sessão, dividindo-os em unidades menores, e passa-os para camada de rede garantindo que as unidades cheguem corretamente a outra extremidade. Além disso, dentre outras atividades, esta camada gerencia o controle do fluxo e a correção de erros. Ela impede que um transmissor rápido envie rajadas de informações a um receptor lento. Você certamente já ouviu falar em pelo menos um protocolo que possui funções da camada 4: o protocolo TCP (Transfer Control Protocol). Além desse, existe um outro bem conhecido que você também deve ter ouvido falar: o UDP (User Datagram Protocol). Esses dois protocolos são utilizados com frequência na Internet sob todos aqueles protocolos de aplicação citados anteriormente neste capítulo. Eles também serão abordados nos volumes subsequentes deste livro. Abordaremos agora a camada 3 é que é denominada camada de Redes e é responsável por controlar como os pacotes da rede são levados da origem para o destino. Esta camada atribui um endereço único e global a cada dispositivo e prover direções de qualquer ponto na rede, para qualquer outro ponto. Também se responsabiliza por realizar o controle de congestionamento devido à presença de vários pacotes dividindo o mesmo caminho, o que poderá provocar gargalos. Nesta camada são resolvidos problemas do tipo: endereçamento, tamanho do pacote e interconexão de redes heterogêneas. Existem dois tipos de protocolos usados na camada 3: protocolos roteados e protocolos de roteamento. São exemplos de protocolos roteados: IP, IPX e AppleTalk. Eles são responsáveis por funções de endereçamento. Como exemplos de protocolos de roteamento, podemos citar RIP, OSPF e BGP. Estes últimos devem prover um caminho livre de ida e volta através da rede. Certamente você nunca ouviu falar nesses protocolos, mas não se preocupe, pois os estudaremos em outro volume deste livro, entretanto, certamente você já escutou falar do IP (Internet Protocol). Quem já escutou falar desse protocolo, foi no contexto de endereçamento, ou seja, escutou algo do tipo “Qual o endereço IP da sua máquina?”. É isso mesmo, o IP, como um protocolo roteável, é responsável pelo endereçamento. Cada máquina apresenta um endereço IP, através do qual, outras máquinas poderão enviar mensagens para ela usando 28
    • Redes de Computadores a rede. A camada imediatamente abaixo da terceira é a camada de Enlace de dados (camada 2) que possibilita a transformação de um canal de transmissão bruto de dados, em uma linha que pareça livre dos erros de transmissão não detectados na camada de rede. Os dados de entrada são divididos em quadros que são transmitidos sequencialmente acrescidos dos endereços das placas de rede de origem e destino. Esta camada responsabiliza-se em resolver problemas causados pelos quadros repetidos, perdidos e danificados e pela realização do controle de fluxo e de erros. Você deve estar se questionando em relação à quantidade de funções que a camada 2 possui. De fato são muitas atribuições e por este motivo ela foi dividida em duas subcamadas: controle lógico de enlace e controle de acesso ao meio que serão mais bem exploradas nos volumes subsequentes. Para concluir a nossa apresentação sobre o modelo de camadas OSI, comentaremos sobre a camada física. Nesta camada estão localizados todos os tipos de meio de transmissão como cabos e conectores, por exemplo. Quem define se a presença de tensão elétrica em uma linha de transmissão será representada por um bit “1” ou por um bit “0” é a camada física. A camada física trata da transmissão de bits brutos por um canal de comunicação. O projeto da rede deve garantir que, quando um lado enviar um bit 1, o outro lado o receberá como um bit 1, não como um bit 0. Após analisarmos as funções de cada camada do modelo OSI, vamos pensar em um caso prático que envolva ações de todas as camadas. Suponha uma situação rotineira, em que você peça para seu programa de e-mails baixar suas mensagens. Você estará solicitando que o seu programa de e-mail inicie uma transmissão de dados na camada de aplicação (camada 7) do protocolo utilizado (SMTP) com o servidor de e-mails. O seu pedido será processado pela camada de aplicação, acrescentando informações referentes a esta camada e passando os dados à camada imediatamente inferior (camada de apresentação). Esse repasse de informações continua até que, ao chegar à camada física, o quadro será enviado para o meio de transmissão, chegando, em seguida, ao dispositivo receptor que fará o processo inverso, até que a mensagem chegue à camada de aplicação, que no nosso caso, é o programa servidor de e-mail. Para ficar mais claro, você poderá observar o esquema ilustrado na Figura 2.5. Toda informação que é colocada por uma determinada camada na máquina do transmissor, será retirada pela camada adjacente na máquina do receptor. 29
    • Redes de Computadores Figura 2.5 - Meio Físico (Cabeamento de rede) E então, ficou mais claro agora? Bem, agora que você já conhece o modelo de referência OSI, será apresentado um outro modelo, onde três camadas do modelo OSI foram suprimidas: o modelo de referência TCP/IP. Este modelo será apresentado na seção a seguir. 2.2 Modelo de Referência TCP/IP O modelo de Referência TCP/IP surgiu com a ARPANET, uma rede de pesquisa patrocinada pelo Departamento de Defesa americana e a percussora da Internet. Com o passar dos anos, universidades e institutos de pesquisa americanos passaram a integrar a ARPANET. As conexões utilizavam linhas telefônicas. Entretanto, novas redes via satélite foram criadas e com elas também apareceram os problemas. A maioria deles estava associada à falta de padrões de protocolos utilizados e isso levou à criação de uma nova arquitetura de referência (TANEMBAUM, 2003). Foi para atender a esse objetivo de padronização que surgiu o modelo de referência TCP/IP. Ele foi assim chamado devido a dois principais protocolos que compõem a sua arquitetura: o TCP e o IP. Quando conversamos anteriormente sobre o modelo OSI, já falamos sobre esses protocolos, e para algumas pessoas, eles já não são tão estranhos, pois continuam sendo utilizados atualmente na Internet. Um dos fatores que levaram este modelo a se popularizar foi a sua arquitetura aberta, de modo que qualquer fabricante pode adotar sua própria versão dos protocolos em seu sistema operacional, sem precisar pagar pelos direitos autorais. O modelo de referência TCP/IP também adotou a abordagem de camadas, similarmente ao OSI, porém com 3 camadas a menos, ficando, então com 4 camadas: Aplicação, Transporte, Inter-rede e Host-rede, conforme você pode observar na Figura 2.6. 30
    • Redes de Computadores Figura 2.6 - Modelo de Referência TCP/IP Você terá a oportunidade de conhecer um pouco das funções e dos protocolos das camadas que compõem este modelo neste e nos outros volumes deste Livro, pois são utilizados amplamente no mundo das redes de computadores. Começaremos introduzindo a camada de Aplicação, pois é a camada superior e consequentemente aquela que está mais perto de nós, os usuários dos aplicativos das redes. No modelo TCP/IP, as camadas de sessão e de apresentação foram compactadas à camada de Aplicação, pois os projetistas deste modelo não identificaram funcionalidades necessárias para tais camadas. Os protocolos que operam nessas camadas já foram apresentados na seção anterior, quando falamos da camada de Aplicação do modelo OSI. São eles: HTTP (HyperText Transfer Protocol), FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), dentre outros. A camada de Aplicação se comunica com a camada imediatamente inferior (camada de transporte) através de uma porta virtual. As portas são numeradas e as aplicações padrão utilizam sempre a mesma porta. Por exemplo, o protocolo HTTP utiliza a porta 80, ou seja, quando você solicita uma página ao seu web-browser, o protocolo HTTP se comunica com o protocolo da camada de Transporte usando a porta 80. A identificação dessas portas permite ao protocolo da camada de Transporte saber qual é o tipo de informação que o pacote de dados contém. Por exemplo, se vem pela porta 80, significa que é um conteúdo de página web e se vem pela porta 25, é um conteúdo de e-mail (a porta 25 é referente ao protocolo SMTP). A Figura 2.7 ilustra a separação dos pacotes por porta na camada de Aplicação. Figura 2.7 - Funcionamento da camada de aplicação A segunda camada do modelo TCP/IP é a camada de Transporte que é responsável por pegar os dados da camada de aplicação e transformá-los em pacotes que serão repassados à camada inferior. Para este modelo, dois protocolos foram definidos nesta camada: TCP (Transmission Control Protocol) e UDP (User Datagram Protocol). O TCP é um protocolo confiável orientado à conexão, que permite a entrega sem erros de um fluxo de bytes originado de uma determinada máquina. É responsável por cuidar do controle de fluxo, impedindo que um transmissor rápido sobrecarregue 31
    • Redes de Computadores um receptor lento com volume de mensagens muito grande. No destino, o processo TCP receptor volta a montar as mensagens recebidas no fluxo de saída, pegando os pacotes passados pela camada inferior e os colocando em ordem. Na recepção também é verificado se todos os pacotes chegaram corretamente. Já o protocolo UDP é sem conexão e não confiável, sendo utilizado em aplicações que não necessitem de controle de fluxo nem de manutenção da sequência de mensagens enviadas. Ele é atualmente usado em aplicações onde a entrega imediata é mais importante que a entrega precisa, como, por exemplo, aplicações de vídeo-conferência. Abaixo da camada de transporte do modelo TCP/IP está a camada Inter-rede, que possui a função de entregar pacotes IP em qualquer rede e garantir que eles trafegarão independentemente até o destino. Os pacotes podem até chegar em uma ordem diferente daquela em que foram enviados, obrigando as camadas superiores a reorganizá-los, caso a entrega em ordem seja desejável. Esta camada é responsável pelo roteamento de pacotes, ou seja, são adicionadas ao datagrama, informações sobre o caminho que ele deverá percorrer. O principal protocolo desta camada é o IP (Internet Protocol), porém outros protocolos também operam nessa camada. São eles: ARP (Address Resolution Protocol), RARP (Reverse Address Resolution Protocol) e ICMP (Internet Control Message Protocol). Como você já sabe, o protocolo IP é o principal desta camada. Talvez o que você não saiba é que ele é não orientado a conexão, o que significa que ele não verifica se um datagrama chegou ao seu destino. Essa tarefa fica a cargo do protocolo da camada de transporte, caso seja orientado à conexão, como é o caso do TCP. A principal função do IP é o roteamento, podendo inclusive fazer uso de mecanismos que possibilitem que o datagrama chegue o mais rápido possível ao seu destino. O ARP é o protocolo responsável por fazer a tradução de endereços IP para endereços MAC das placas de rede. Mas o que é um endereço MAC? Toda placa de rede possui um endereço previamente atribuído durante o momento de sua fabricação. Esse é o endereço MAC. Mas você sabe por que é necessária essa tradução? Em uma grande rede como a Internet, os pacotes IPs são encaminhados até a rede de destino através dos roteadores. Você não sabe o que são roteadores? Não tem problema, pois eles são equipamentos de redes que serão explicados no Volume seguinte deste livro. Até o momento o que você precisa compreender é que, quando os pacotes IPs chegam à rede de destino, o ARP atua para detectar o endereço MAC da placa de rede para qual o pacote deve ser entregue (máquina de destino), já que o pacote só possui o endereço IP e não o endereço MAC da placa de rede. O protocolo RARP, por sua vez, faz o papel inverso, permitindo que uma máquina descubra um endereço IP através de um endereço MAC. O modelo de referência TCP/IP não especifica bem o que está abaixo da camada Inter-rede. Você pode observar na Figura 2.6 que existe uma última camada denominada host-rede. Como o próprio nome já sugere, esta camada está relacionada à conexão do host com a rede, desde que seja utilizado algum protocolo que envie pacotes IP. O modelo não especifica esse protocolo que está abaixo do IP e pode variar de host para host e de rede para rede. Você poderá observar na Figura 2.8, a síntese dos protocolos encontrados no modelo TCP/IP e citados neste texto e os seus respectivos posicionamentos com relação às camadas dos modelos OSI e TCP/IP (TANEMBAUM, 2003). 32
    • Redes de Computadores Figura 2.8 - Principais Protocolos do Modelo OSI 2.3 OSI versus TCP/IP Agora que você já conhece os dois principais modelos de referência para redes de computadores, já podemos fazer um paralelo entre eles. Que diferenças você observou entre os modelos OSI e TCP/IP? E as semelhanças? Podemos citar algumas semelhanças: » Ambos se baseiam no modelo de camadas onde cada uma oferece serviços à camada superior e utiliza os serviços da camada inferior; » As camadas equivalentes de ambos os modelos possuem funções semelhantes, exceto pelo fato que as camadas 5 e 6 do modelo OSI foram eliminadas no TCP/IP porque seus projetistas as julgaram sem importância; » Uma camada tem um conjunto de métodos (operações) que os processos externos podem invocar; Com relação às diferenças, o que podemos citar são: » O modelo OSI define três conceitos fundamentais: Serviços, Interfaces e Protocolos e tenta tornar explícita a distinção entre eles. O modelo TCP/IP, por sua vez, não distinguia com clareza a diferença entre esses conceitos; » Os protocolos do modelo OSI são mais bem encapsulados que os do modelo TCP/IP, o que facilita a substituição dos mesmos, à medida que a tecnologia evolui; » O modelo OSI é mais flexível e genérico, pois não limita o uso de determinados protocolos em cada camada, como faz o modelo TCP/IP que limita a adaptabilidade a outras pilhas de protocolos; » N o modelo TCP/IP, os protocolos vieram antes do próprio modelo e só através deles foi criado a sua estrutura, não tendo uso para outras redes que não fazem uso do protocolo TCP/IP; » O modelo TCP/IP é amplamente utilizado nas redes atuais enquanto que o modelo OSI serve apenas como referência, mas praticamente caiu em desuso. Com relação a esse último tópico, você tem alguma ideia do motivo? Por que será que o modelo OSI caiu em desuso e o TCP/IP está em uso contínuo? De acordo com Tanembaum (2003), alguns fatores contribuíram para o crescente uso do modelo TCP/IP e o desuso do OSI. O lançamento do modelo OSI foi precipitado, pois neste mesmo momento, os 33
    • Redes de Computadores protocolos da pilha TCP/IP já estavam sendo amplamente utilizados nas universidades e centros de pesquisa, de modo que alguns fabricantes começaram a oferecer produtos TCP/ IP. No momento em que surgiu o modelo OSI, poucos estavam dispostos a investir em uma nova proposta, a menos que fosse uma imposição do mercado. Se você parar para observar as funções das camadas do modelo OSI, verá que ações de controle de fluxo e controle de erros, por exemplo, aparecem repetidamente em algumas camadas. Segundo Saltzer e colegas (1984), essa repetição de ações pode gerar ineficiência e isso apresenta-se como um ponto negativo do modelo OSI. Já no modelo TCP/IP, essa separação das funções evitando-se a repetição foi uma preocupação para a definição do mesmo. Aprenda Praticando Agora é chegada a hora de você praticar os conceitos aprendidos. Para isso, alguns exercícios foram selecionados como exercícios propostos. Você deverá tentar resolver todos os exercícios propostos com o intuito de consolidar os conceitos aprendidos neste capítulo. As questões de número 3 e 9 da Lista de Exercícios Propostos fazem parte das atividades somativas que você deverá responder em relação ao capítulo 2, do Volume 1, de acordo com as orientações e prazos sugeridos pelo seu professor e tutor. Lista de Exercícios Propostos 1. Explique para que serve um protocolo considerando um ambiente de comunicação de dados. 2. Explique os princípios das camadas que são utilizados no modelo de referência OSI. 3. Cite as sete camadas apresentadas pelo modelo OSI. Quais dessas camadas foram desconsideradas para o modelo de referência TCP/IP? 4. Descreva a pilha TCP/IP, considerando todas as suas camadas, protocolos existentes em cada uma e os serviços oferecidos. 5. Descreva o que significam protocolos orientados a conexão e não orientados a conexão. 6. Qual a diferença entre protocolos de roteamento e protocolos roteados? 7. Qual a diferença entre os protocolos TCP e UDP? Quando cada um deles deve ser utilizado? Eles são protocolos de que camada do modelo TCP/IP e do OSI? 8. Qual foi a motivação para o surgimento do modelo de referência TCP/IP? 9. Considerando o modelo de referência OSI, cite algumas atividades importantes realizadas pelas seguintes camadas: a) Camada de enlace de dados; b) Camada de redes; c) Camada de transporte. 34
    • Redes de Computadores Atividades e Orientações de Estudos Dedique 10 horas de estudo para o Capítulo 2. Você deve organizar uma metodologia de estudo que envolva a leitura dos conceitos serão ditos apresentados neste volume e pesquisas sobre o tema, usando a Internet e livros de referência. Vamos trocar ideias nos fóruns temáticos desta disciplina no ambiente virtual, pois a interação com colegas, tutores e o professor da disciplina irá ajudá-lo a refletir sobre aspectos fundamentais tratados aqui. Os chats também serão muito importantes para a interação em tempo real com o seu tutor virtual, seu professor e seus colegas. Também é importante que você leia atentamente o guia de estudo da disciplina, pois nele você encontrará a divisão de conteúdo semanal, ajudando-o a dividir e administrar o seu tempo de estudo semanal. Procure responder as atividades propostas como atividades somativas para este capítulo, dentro dos prazos estabelecidos pelo seu professor, pois você não será avaliado apenas pelas atividades presenciais, mas também pelas virtuais. Muitos alunos não acessam o ambiente e isso poderá comprometer a nota final. Não deixe que isso aconteça com você! Os assuntos abordados neste capítulo podem ser encontrados no Quiz de número 2 da disciplina de Redes de Computadores. Através do Quiz você poderá avaliar o seu próprio desempenho. Após respondê-lo, você terá o resultado de seu desempenho e conhecerá as suas deficiências, podendo supri-las nas suas próximas horas de estudo. Vamos Revisar? Neste capítulo, você aprendeu que para o pleno funcionamento de uma rede, são necessários hardware e software. O hardware de redes é composto pelo meio físico de transmissão (cabos ou o ar, para redes sem fio) e pelas interfaces de comunicação, como por exemplo, as placas de rede. Já o software de redes é composto por um ou vários protocolos. Um protocolo é um conjunto de regras que permitem que computadores distintos se comuniquem. O presente capítulo também abordou os principais modelos de referência utilizados em ambientes de redes: os modelos TCP/IP e OSI. O modelo TCP/IP e seus protocolos são amplamente utilizados na Internet nos dias atuais. Já o modelo OSI, embora mais abrangente, não tem aplicação prática, mas é utilizado didaticamente para explicar os conceitos, as funcionalidades e as relações entre as camadas. Foi possível observar os fatores que levaram o OSI ao desuso e a ampla aceitação do TCP/IP no mercado das redes de computadores. Aspectos comparativos, em relação aos dois modelos, também foram apresentados neste capítulo. Você estudará as principais aplicações utilizadas em ambiente de Internet, no próximo capítulo. Aplicações como navegação na Web, correio eletrônico, telefonia via Internet, dentre outras serão apresentadas a seguir. 35
    • Redes de Computadores Capítulo 3 – Camada de Aplicação Vamos conversar sobre o assunto? Atualmente todos nós precisamos utilizar a Internet ou até mesmo computadores em redes locais para acessar sites, programas, pagar contas, ler e-mails, assistir a vídeos, telefonar e fazer buscas. Fazemos estas tarefas de forma tão automática que às vezes nos perguntamos: » Como os computadores conseguem se comunicar? » Como trocam informações entre si? » Como transmitem dados de forma tão transparente para nós usuários? A cada dia estas dúvidas do funcionamento das redes e aplicações aumentam entre os usuários e exatamente por isso, neste capítulo, será apresentado o funcionamento da camada de aplicação, possibilitando o melhor entendimento do funcionamento da Internet. Ao longo dos últimos 40 anos, diversas aplicações foram desenvolvidas e aprimoradas. Desde aplicações mono-tarefas e mono-usuária, como era o caso dos editores de textos no início dos computadores pessoais, até aplicações multi-usuárias, multi-tarefas em rede, como correio eletrônico, transferência de arquivos e chats. Atualmente, com o aumento da velocidade de acesso e da inclusão de dados multimídias, novas aplicações surgiram, como WWW (World Wide Web), voz sobre IP (VoIP) e Vídeo na Internet, como os apresentados no site youtube (www.youtube.com). Desta forma, podemos concluir que o surgimento de novas aplicações está condicionado a dois principais fatores: necessidades do usuário e o desenvolvimento de novos equipamentos e computadores. 3.1 Conceitos Gerais Quando comentamos sobre softwares aplicativos se comunicando por uma rede, devemos ter em mente que não são os softwares que se comunicam, mas sim seus processos. Podemos entender um processo como sendo um programa que está em execução tanto em um computador local, como em um computador remoto, e a comunicação entre estes processos é dada através da troca de mensagens. Neste capítulo, estaremos focando apenas os processos que se comunicam em computadores distintos, ou seja, através de uma rede de computadores. Um processo de envio cria e envia mensagens, enquanto um processo de recepção recebe e possivelmente responde esta mensagem de volta. Os protocolos da camada de aplicação definem exatamente os formatos e as ordens das trocas de mensagens entre os processos, assim como, qual a ação que deve ser executada ao receber ou enviar uma mensagem. 36
    • Redes de Computadores Figura 3.1 - Troca de mensagens entre processos Se esta troca de mensagens ocorrer através de uma rede, onde de um lado temos uma máquina cliente enviando mensagens e do outro uma máquina servidora recebendo e respondendo estas mensagens, dizemos que temos uma arquitetura cliente-servidor. Uma arquitetura cliente-servidor é composta por duas partes, de um lado temos a máquina cliente, que faz requisições, por exemplo, um pedido de informações ou uma página de um site, de outro lado tem a máquina servidor, que tem a função de receber as requisições, processá-las e respondê-las. Esta arquitetura é ilustrada na Figura 3.2, utilizando como exemplo a utilização de um browser para o acesso a um determinado site. Veja que neste caso o browser é o aplicativo da máquina cliente que faz um pedido ao um servidor, no caso o Google. Este servidor processa o pedido e responde ao cliente. Veremos maiores detalhes ainda esta seção. Figura 3.2 - Um exemplo da Arquitetura cliente-servidor do http Como vimos na Figura 3.1, uma aplicação envolve dois processos em duas máquinas diferentes comunicando-se através de uma rede. Estes dois processos se comunicam entre si através de mensagens de requisições e respostas através de seus sockets. 37
    • Redes de Computadores Podemos imaginar um socket como um processo que imita portas de entrada e saída. Ou seja, quando um processo envia uma mensagem para outro processo em outro computador, esta mensagem sai por uma porta de saída, assumimos que existe uma infraestrutura de transporte para enviar a mensagem a uma determinada porta de entrada do socket destino. A Figura 3.3 ilustra este exemplo. Abordaremos mais detalhes sobre socket no volume 2. Figura 3.3 - Exemplo da comunicação por portas Como podemos verificar na Figura 3.3, que o socket é uma interface entre a camada de aplicação e a camada de transporte de um computador. Esta Interface de programas de aplicação (API – Application Program Interface) é um conjunto de instruções e padrões estabelecidos por um software para a utilização das suas funcionalidades por programas aplicativos. Ou seja, cada protocolo fornece um conjunto de serviços, e a API fornece a sintaxe por meio da qual esses serviços são acessados pelo Sistema operacional. Para entendermos melhor, podemos tomar o exemplo de um sistema operacional que possui grande quantidade de funções na API, permitindo ao programador criar janelas, acessar arquivos, criptografar dados, etc. Neste caso, a API costuma ser dissociada de tarefas mais essenciais, como manipulação de blocos de memória e acesso a dispositivos, deixando estas tarefas para o núcleo do sistema (kernel). Atualmente, o uso de APIs se generalizou com o aparecimento dos plugins, uma vez que os autores do programa principal fornecem uma API específica para que outros criem plugins, para estender as funcionalidades do programa para outros usuários. Figura 3.4 - Processos, sockets e os protocolos de transportes 38
    • Redes de Computadores Mas você deve estar se perguntando, “como uma mensagem consegue chegar a um computador e saber qual processo irá recebê-la?”. Na hora que um processo for enviar uma mensagem a um computador destino, ele deve identificar o endereço da máquina destino, através do número IP e qual o processo destino estará apto para receber, através da porta de recepção do processo destino. Logo, podemos definir inicialmente um socket como a junção do número IP com a porta. É como se você fosse entregar uma carta (mensagem) a alguém em um prédio, logo você precisaria de um endereço do prédio (número IP) e o número do apartamento (porta) que a pessoa (processo destinatário) estará esperando. Você deve estar pensando: mas como uma aplicação pode saber qual a porta que estará apta a receber suas mensagens no computador destino? Existe um padrão? Quem padroniza? A padronização é necessária para que um processo saiba exatamente qual porta destino deverá enviar uma mensagem. O órgão responsável pela padronização é o IANA (Internet Assigned Numbers Authority) que disponibiliza uma relação de portas e seus respectivos protocolos no endereço: http://www.iana.org/assignments/port-numbers Na tabela 1, podemos verificar os principais protocolos utilizados atualmente e suas respectivas portas. Protocolo Porta FTP 20, 21 SSH 22 TELNET 23 SMTP 25 HTTP 80 POP3 110 IMAP 143 SIP 5060 Tabela 1 - Protocolos e Portas segundo o IANA Conheça Mais Vale a pena visitar o site da IANA na página http://www.iana.org/assignments/portnumbers para verificar todos os protocolos padronizados e suas respectivas portas. Porém, não podemos pensar que por apenas dizer o endereço completo para a entrega de uma mensagem a um determinado meio de transporte, ela será entregue tranquilamente. Imaginemos que, dependendo do meio de transporte, a mensagem pode ser extraviada, perdida, sofrer atraso na entrega, etc. Assim como pode ocorrer para uma mensagem na vida real, entre computadores interligados por uma rede, também pode ocorrer o mesmo. Por isso, a aplicação deve escolher muito bem o seu “meio de transporte”, dando importância principalmente para três parâmetros: » Perda de pacotes Atenção Embora seja comum encontrar a referência das portas para a RFC 1700, esta já está obsoleta, e foi substituída pela RFC 3232 que apenas indica que devemos procurar no site do IANA. 39
    • Redes de Computadores » Largura de Banda » Atraso A perda de pacotes está relacionada a algumas aplicações como correio eletrônico, transferência de arquivos, transferência de documentos via web, etc., que necessitam que seus dados sejam transferidos de forma totalmente confiável, ou seja, tudo que foi enviado tem que ter chegado ao destino corretamente. Existem aplicações tolerantes a pequenas perdas, como é o caso de aplicações em tempo-real, de voz ou vídeo, que é mais importante a entrega mesmo que parcial dos dados, do que a espera por todos os dados terem chegados para só então ser executado. Para entender melhor este caso, você pode se imaginar assistindo a uma final de Copa do Mundo, onde no último minuto do jogo vai ser cobrado um pênalti, e neste exato momento, você recebe 5 minutos de vídeo do jogo que foi perdido do primeiro tempo. Seria um desastre não? Não seria melhor deixar pra lá estes minutos perdidos, pois já não importavam mais, e sim o momento atual, o do pênalti. Por este motivo existe a possibilidade de transportes que se importam com a perda de pacotes e outros que não se importam, pois dependerá do tipo de aplicação. A largura de banda é um parâmetro importante, pois certas aplicações necessitam de uma determinada largura de banda para que seus dados possam fluir sem problemas, como é o caso da telefonia IP. Imagine que neste caso específico, a voz é empacotada a uma determinada velocidade de 64kbps (utilizado a codificação G.711), e como existe uma certa sincronia entre a fala de duas pessoas, o canal ou meio de transporte deve levar os dados a pelo menos esta velocidade. Caso não seja possível, ou a aplicação não consegue enviar os dados por este meio, ou ela deverá se adaptar a uma nova largura de banda, como por exemplo, mudando a codificação a G.729a que necessita de uma taxa de 8Kbps, diminuindo gradativamente sua qualidade de áudio. Mas devemos pensar, é melhor falarmos com uma menor qualidade da voz, ou não falar nada? Este tipo de aplicação é chamado aplicação elástica ou adaptativa à largura de banda. Caso a aplicação só possa utilizar uma determinada largura de banda, dizemos que é uma aplicação sensível à largura de banda. Outro fator importante que devemos levar em conta é o atraso fima-fim. Principalmente devido a aplicações interativas de tempo-real, como telefonia IP, vídeoconferência e jogos multi-players on-line, que necessitam uma constante entrega de dados para serem eficientes. Existem aplicações que são isócronas, ou seja, devem transmitir em intervalos de tempo iguais, logo o atraso é um componente que atrapalhará esta aplicação. Existem, porém, aplicações nas quais o atraso não é prioridade, e sim a entrega correta dos pacotes, como é o caso do protocolo de transferência de arquivos FTP. 3.2 Entendendo o Transporte de Dados na Internet Abordaremos muito ao longo deste capítulo sobre meio de transporte e da importância da aplicação escolher um meio adequado às suas necessidades. Para você começar a entender melhor é necessário apresentar os protocolos da camada responsável pelo transporte dos dados de uma aplicação através de uma rede. Como já comentado no capítulo 1, os principais protocolos da camada de transporte são o TCP (Transfer Control Protocol) e o UDP (User Datagram Protocol). 40 Sempre que um programador for desenvolver uma aplicação para uma rede (Local,
    • Redes de Computadores Internet, etc.), ele deverá escolher qual o protocolo de transporte sua aplicação irá utilizar para enviar ou receber seus dados. Cada protocolo possui diferentes características que podem influenciar diretamente no melhor funcionamento da aplicação. Figura 3.5 - A escolha protocolo de transporte depende da aplicação Serviços TCP O TCP proporciona um serviço orientado a conexão, serviço de transferência de dados confiável, controle de congestionamento, controle de fluxo entre outros. Veremos com detalhes todos estes serviços no Volume 2. No momento, é importante apenas entendermos os seguintes serviços: » Serviço orientado à conexão: para iniciar uma transmissão utilizando o protocolo TCP, é necessário o estabelecimento de uma conexão, visando garantir que o receptor saberá que o transmissor enviará dados, quando irá iniciar a transmissão, qual a capacidade de transmissão suportada pelo destinatário por envio, e quando a transmissão finalizará. Para ter acesso a estes dados o transmissor inicia um procedimento chamado de three-way handshake, ou aperto de mão em três vias. Na realidade, este “aperto de mão” significa a troca de mensagens de sincronismo para garantir a conexão. Figura 3.6 - O estabelecimento da conexão com o three-way handshake 41
    • Redes de Computadores » Serviço de transporte confiável: outra característica importante no protocolo TCP é a necessidade de saber se um determinado dado ou mensagem foi entregue sem erros, na ordem correta e sem duplicação. O mecanismo que o TCP utiliza para garantir a entrega chama-se acknowledgement ou simplesmente, confirmação de recepção. Para cada dado enviado, é esperada uma confirmação de recebimento, garantindo a entrega do dado. Figura 3.7 - Serviço de entrega confiável de dados Serviços UDP O protocolo UDP é um serviço mais leve, que não se preocupa em garantir nenhum dos serviços que o TCP oferece. Ou seja, ele não é orientado à conexão, não garante a entrega confiável de dados, não faz controle de fluxo nem de congestionamento. Logo você deve estar se perguntando então para que existe este protocolo? Este protocolo serve para identificar, por meio dos números das portas origem e destino, para qual o processo deve ser entregue os dados. Tendo praticamente apenas esta funcionalidade, este protocolo deve ser leve, pois é utilizado em aplicações que necessitem agilidade na formação do pacote ( o cabeçalho UDP possui somente 8 bytes, enquanto TCP possui 20 bytes). Para este tipo de aplicação, também é mais importante a entrega dos dados no tempo hábil, do que a retransmissão dos pacotes perdidos. No Volume 2 serão apresentados detalhadamente estes dois protocolos, suas funções, seus cabeçalhos, vantagens e desvantagens. 3.3 Principais Protocolos da camada de aplicação Agora que vimos todos estes principais conceitos, temos condições de entender melhor o funcionamento de alguns dos principais protocolos utilizados na camada de aplicação. 42
    • Redes de Computadores É importante saber que existem milhares de protocolos de aplicação, e que ficaria inviável explicarmos todos, pois a cada dia são criados novos protocolos ou atualizado os antigos. Por este motivo, vamos apresentar apenas os protocolos de hipertextos (HTTP), de Correio eletrônico, de transferência de arquivos, de controle de mídia e de multimídia, que são os mais utilizados atualmente. Vale apena lembrar que não podemos confundir camada de aplicação, com aplicativos. A camada de aplicação é uma abstração onde os protocolos exercem determinadas funções. Os aplicativos são softwares que utilizam os protocolos da camada de aplicação. Por exemplo, o aplicativo Internet Explorer utiliza o protocolo HTTP para transmitir e receber páginas web, ou um programa de aceleração de download, que utiliza o protocolo FTP para transferir os dados. World Wide Web (HTTP) Para entendermos melhor o funcionamento da Internet atual, vale a pena viajarmos um pouco no tempo. Você consegue imaginar como era a Internet no início dos anos 90 aqui no Brasil? Antigamente acessávamos a Internet através de terminais textos, onde podíamos usar um chat, trocar arquivos ou acessar informações nos quadros de avisos conhecidos comos BBS (Bulletin Board Systems). Isso a uma velocidade de 2.4Kbps a no máximo 14.4Kbps. Realmente eram tempos difíceis, se comparados com os atuais. Mas o que deu este Boom no acesso à Internet? Por que mais e mais pessoas queriam comprar um computador e estar conectado na “grande rede”? A resposta desta pergunta se chama protocolo de transferência de hiper-textos ou HTTP (Hypertext Transfer Protocol). Com este protocolo utilizando o ambiente gráfico de um browser poderíamos ter acesso a informações em modo texto, gráficos, figuras ou links que ligavam este documento a outros textos. Estava criada assim a grande teia desta rede mundial de computadores, desde então o resto é história. A principal ferramenta ainda utilizada hoje é um navegador 61 Redes de Computadores (browser) que ao adicionarmos o endereço de um site, ele ”abre a página” solicitada. Na realidade, temos que saber que este endereço chamamos de URL (Uniform Resource Locators) e fornecem na realidade informações sobre a localização de objetos na Web; Ele tem a seguinte forma: http://www.ead.edu.br/index.html Ao digitar esta URL específica, seu navegador vai criar uma conexão TCP com o servidor Web na máquina denominada www.ead.edu.br, recuperar e mostrar o arquivo chamado index.html. Nestas páginas, estão contidos textos, figuras, áudio, vídeo e muitas vezes outras URLs que apontam para outros arquivos. São estas URLs que chamamos de links de hipertextos ou simplesmente links. Assim, você pode passar de uma página para outra, “navegando” entre elas. Quando você digita uma URL para acessar uma página web, seu navegador (máquina cliente) busca a página do servido Web utilizando o protocolo HTTP, que é executado sobre o TCP. Logo, você já deve estar associando ao que falamos sobre arquitetura cliente-servido. O protocolo HTTP é um protocolo orientado a texto, onde cada mensagem possui a seguinte forma: Você Sabia? Atualmente os navegadores mais populares são o IE (Internet Explorer) e o Mozilla Firefox. E os servidores Web são o Apache e o IIS (Internet Information Server) da Microsoft. START_LINE <CRLF> MESSAGE_HEADER <CRLF> <CRLF> MESSAGE_BODY <CRLF> 43
    • Redes de Computadores Isto, a princípio, é a estrutura que uma mensagem possui. A linha START_LINE indica se é uma mensagem de solicitação ou de resposta. As mensagens de solicitação especificam três coisas: a operação a ser realizada, a página a Web na qual a operação deve ser realizada e a versão do HTTP sendo usado. As linhas MESSAGE_HEADER podem ou não existir, onde podemos ter mensagens de solicitação e mensagem de resposta. As duas operações mais comuns são GET que buscam a página Web especificada e HEAD que busca informação e estado da página Web especificada. Um exemplo da START_LINE de solicitação é: GET http://www.ead.edu.br/ HTTP/1.1 As mensagens de resposta começam com uma única linha START_LINE com a especificação da versão do HTTP que está sendo utilizado, um código de três dígitos que indica se a solicitação foi bem sucedida ou não, e uma string que apresenta o motivo da resposta. Por exemplo, caso o servidor atenda à solicitação, será enviado uma mensagem HTTP/1.1 202 Accepted; Caso a solicitação seja negada por não encontrar a referida página, a mensagem será HTTP/1.1 404 Not Found. O corpo da mensagem está na linha de MESSAGE_BODY onde tipicamente é vazia para as mensagens de solicitação. Porém, nas mensagens de respostas podem conter a página texto em HTML (HyperText Markup Language), assim como imagens e outros. A seguir podemos olhar uma mensagem se resposta HTTP: HTTP/1.1 200 OK Connection: close Date: Thu, 06 Out 2009 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jul 2009 20:15:24 GMT Content-Length: 8231 Content-Type: text/html dados dados dados dados dados ... O Correio Eletrônico O correio eletrônico é uma das formas mais populares de troca de informações na Internet. Para entendermos melhor seu funcionamento imagine o correio convencional onde você tem uma série de caixas postais, em que as pessoas enviam cartas para você, o correio pega, organiza estas cartas e coloca dentro de sua caixa postal. Um dia você vai lá, pega sua chave, abre sua caixa postal, pega suas cartas e lê. O mecanismo é basicamente o mesmo. Onde você vai ter uma caixa postal que vai receber as informações sem que você precise estar conectado na Internet. Então mesmo com o computador desligado, você está recebendo e-mail. Quando você se conecta, a sua máquina “automaticamente” vai ao servidor buscar as informações da sua caixa postal e trás para você, e só então você poderá ler suas mensagens. As mensagens de correio eletrônico podem incluir hiperlinks, texto ASCII puro ou em formato HTML, imagens, áudio e vídeo. Iremos agora examinar os protocolos de camada de aplicação que são os elementos centrais dos sistemas de correio eletrônicos na Internet. O principal protocolo da camada de aplicação para envio de correio eletrônico na 44
    • Redes de Computadores Internet é o SMTP (Simple Mail Transfer Protocol) que é definido pela RFC 5321, atualizado em outubro de 2008. Este protocolo é o responsável pela transmissão de e-mail entre o cliente e o servidor, ou seja, na hora em que você envia um e-mail, a mensagem eletrônica está sendo transmitida por este protocolo; e a troca de e-mails entre servidores de e-mail. Mas, o que acontece realmente quando se envia um e-mail? Esta é uma dúvida que muitas pessoas possuem. Quando você envia um e-mail, o SMTP cria uma conexão TCP na porta 25 do servidor do cliente destino, no caso o servidor SMTP. Espera aí, mas você deve estar se perguntando; e como eu sei qual é o servidor de e-mail do cliente destinatário? Lembra que um e-mail possui a seguinte sintaxe: “joasilva@ ead.br”? Então, tudo que vier depois do “@” - arroba é o servidor de e-mail. Entendeu agora? Assim que o aplicativo do cliente estabelece uma conexão TCP (com o threeway handshake) na porta 25 do servidor SMTP e então iniciam uma apresentação como se fossem duas pessoas se conhecendo e trocando informações. Depois de transferir as informações para o servidor destino, é finalizada a conexão. Para entendermos melhor vejamos a Figura 3.8, onde o cliente destinatário “joaosilva@ead.br” estará recebendo em sua caixa postal o e-mail da cliente transmissora “mariajosebelemail.com”. A transmissão do e-mail pode ser feito diretamente entre cliente remetente – cliente destinatário (pois todo cliente executa um processo SMTP por padrão), cliente remetente – servidor do cliente destinatário e entre servidor remetente e servidor destinatário. Estes servidores são também conhecidos como gateway de correio, pois servem para armazenar temporariamente em disco um e-mail até o seu dono buscá-lo. Outro fator interessante é que este protocolo não utiliza servidores intermediários para transmitir o e-mail até o destino. Ele simplesmente cria uma conexão TCP entre o servidor do cliente que originou o e-mail, com o servidor do cliente destinatário, e só então transmite os dados. Figura 3.8 - Troca de informação entre cliente e servidor de e-mail É importante entender que estamos considerando mensagens que contenham um corpo no formato texto ASCII puro, mas atualmente, devido ao MIME( Multipurpose Internet Mail Extensions) definido pelas RFCs 2045 e 2046, é permitido que o corpo da mensagem carregue qualquer tipo de dados. Estes dados podem ser apresentados em formato texto não necessariamente legíveis, visto que possa ser uma figura codificada. 45
    • Redes de Computadores Então, agora que entendemos como funciona o envio de e-mail, precisamos saber como recebemos os e-mails. Para recepção utilizamos outros protocolos especificamente para esta função, no caso os protocolos IMAP (Internet Mail Access Protocol) definido pela RFC 3501, POP3 (Post Office Protocol - Version 3) definido pela RFC 1939 e HTTP. Figura 3.9 - Protocolos SMTP e, IMAP e POP3 O protocolo POP3 é um protocolo simples e limitado de leitura de e-mail. Para iniciar a leitura, o cliente cria uma conexão TCP na porta 110 do servidor de e-mail. Assim que estabelece a conexão, o protocolo passa por três fases: autorização, transação e atualização. Na fase de autorização, o protocolo envia o nome e a senha do cliente para autenticar o download das mensagens do cliente; Na segunda fase o cliente pode marcar mensagens para serem apagadas, entre outros. A terceira fase ocorre quando o cliente executa um comando de saída do sistema, finalizando a sessão POP3; É neste momento que o servidor de e-mail apaga as mensagens marcadas anteriormente. “O interessante deste protocolo é que o usuário pode configurá-lo para fazer os “downloads e apagar” os e-mails, ou fazer os “downloads e mantê-los” na caixa de correio. O problema de configurar para o modo “fazer o download e apagar” é que o usuário pode querer acessar os arquivos de outro computador, e neste caso, as mensagens anteriores estarão apenas na máquina que foi feito o download. Uma vez feito o download dos e-mails, o usuário pode querer criar pastas, e movê-los para organizá-los nestas pastas. Mas temos um problema, estas pastas estão localmente em um computador, e no caso do usuário querer acessar seus e-mails por outros computadores, não terá esta estrutura hierárquica de pastas, nem os e-mails. Então, como resolver este problema? Pensando nisso, foi criado o protocolo IMAP que contém muito mais características que o POP3 e por isso é muito mais complexo. Foi desenvolvido para permitir que usuários possam manipular seus e-mails e pastas remotamente como se estivessem em uma máquina local, podendo mover e-mails de uma pasta para outra, fazer pesquisas utilizando um determinado critério, entre outros. Muitos programas de acesso ao correio eletrônico usam estes dois protocolos. Como por exemplo, o Outlook Express da Microsoft. Mas você já deve ter percebido que atualmente mais e mais pessoas utilizam serviços de e-mail baseados em browsers como o Hotmail e o Gmail. Desta forma, um usuário com um simples browser pode tanto acessar sua caixa de correio eletrônico via HTTP quanto mandar e-mail para um servidor de e-mail. Neste caso, é utilizado HTTP em lugar de SMTP para o envio e HTTP para a leitura dos e-mails ao invés dos protocolos IMAP ou POP3. Mas a troca de mensagens entre servidores continua sendo via SMTP. 46
    • Redes de Computadores Protocolo de Transferência de Arquivos Quando necessitamos transferir dados de um computador para outro, precisamos que um protocolo específico controle e garanta a transferência correta dos dados. Definido pela RFC 959, o FTP (File Transfer Protocol) é um protocolo baseado na arquitetura cliente-servido e provê o controle e transferência de dados através de sessões estabelecidas paralelamente. Vejamos como este protocolo funciona: Em uma sessão FTP, o usuário está fisicamente utilizando um computador local e precisa transferir dados para um computador (ou servidor) remoto. Para isto primeiramente é necessário que o usuário tenha uma conta na máquina remota e acesse-a utilizando sua identificação (login) e senha. Esta sessão é criada através de uma conexão TCP. É importante entendermos que o FTP utiliza duas conexões simultâneas via TCP, uma utilizando a porta 20, para transferência dos dados e a outra utilizando a porta 21 para controle da conexão de dados. (Lembre-se que estes números de portas são apenas no lado servidor) Uma vez autenticado, o usuário poderá transferir arquivos do sistema local para o sistema de arquivo remoto (o que comumente chamamos de upload) ou transferir arquivos do sistema remoto para a máquina local (que chamamos de download). Figura 3.10 - conexões FTP Aplicações Multimídia Atualmente todos nós que usamos a Internet, assistimos a vídeos no youtube (ou outro site) ou/e conversamos via skype (ou outros aplicativos). Todas estas aplicações multimídia estão revolucionando o acesso e a utilização da Internet, e barateando o acesso e a troca de informações. Nós utilizamos estas aplicações e ficamos maravilhados nos perguntando, como isso tudo é possível? E para eliminar esta curiosidade, iremos apresentar os principais protocolos da camada de aplicação que fazem com que tudo isso se torne possível. Para controlar o estabelecimento e o término de uma conexão, ajustar os parâmetros da comunicação e controlar a sua qualidade, um conjunto de protocolos foi desenvolvido possibilitando a criação de uma arquitetura completa para a comunicação multimídia entre dois computadores conectados por uma rede IP. Esses protocolos podem ser divididos em três categorias: sinalização, qualidade de serviço e transporte de mídia, como mostra a Figura 3.11. O protocolo SIP (Session Initiation Protocol) está na categoria de sinalização, o RSVP (Resource ReSerVation Protocol) e o RTSP (Real-Time Stream Protocol) estão na categoria de qualidade de serviço e o RTP (Real- Time Transport Protocol) está na categoria de transporte de mídia. O protocolo RSVP tende a melhorar o funcionamento do RTP com relação aos níveis de qualidade de serviço, pois o RTP em conjunto com o RTCP cuidam do controle e qualidade do transporte das mídias. 47
    • Redes de Computadores Figura 3.11 - Pilha de Protocolos de aplicações multimídia O protocolo SIP (Session Intiation Protocol) é o padrão do IETF (Internet Engineering Task Force) para o estabelecimento de conexões VoIP(Voice over IP, Voz sobre IP) ou a comumente conhecida telefonia na Internet. Este é um protocolo de controle no nível de aplicação para criação, modificação e término de sessões com um ou mais participantes. Sua arquitetura é similar ao HTTP, onde requisições são geradas pelo cliente e enviadas ao servidor. O servidor processa as requisições e então envia a resposta ao cliente. Uma requisição e suas respostas constituem uma transação. O SIP possui mensagens INVITE e ACK que definem o processo de abertura de um canal confiável através do qual mensagens de controle de chamadas podem ser passadas. O SIP faz mínimas suposições sobre o protocolo de transporte que está por baixo. Ele próprio fornece a confiabilidade e não depende do TCP. O SIP depende do Protocolo de Descrição de Sessão – SDP (Session Description Protocol) para conduzir a negociação da identificação do codificador. O sistema SIP consiste de dois componentes: Agentes do usuário: um agente do usuário é um sistema atuando em nome do usuário. Ele possui duas partes: um cliente e um servidor. A porção cliente é usada para iniciar uma requisição SIP, enquanto uma porção do servidor recebe as requisições e retorna as respostas em nome do usuário. Servidores de rede: existem três tipos de servidores dentro da rede. Um servidor de registro recebe atualizações sobre a localização atual dos usuários. Um servidor proxy recebe as requisições e as encaminha a um próximo servidor de redirecionamento que recebe as requisições, determina o próximo servidor e retorna seu endereço ao cliente ao invés de encaminhar a requisição. Uma visão geral do protocolo SIP para voz sobre IP pode ser vista na Figura 3.12. 48
    • Redes de Computadores Figura 3.12 - Visão geral de Voz sobre IP As partes chamadoras e chamadas são identificadas por um endereço SIP. Quando uma chamada SIP é feita, o chamador primeiro precisa localizar o serviço apropriado e enviá-lo uma requisição. O chamador pode alcançar a parte chamada diretamente ou indiretamente através dos servidores de redirecionamento. O campo de identificação de uma chamada (Call ID) O SIP foi desenvolvido visando à Internet, portanto possui a vantagem de ser mais simples e possuir menos overhead que o H.323. Por isto, atualmente é o protocolo de arquitetura aberta mais utilizado no mercado. Existem outros protocolos no mercado, como o IAX (Inter Asterisk Exchange) que vem sendo também muito utilizado devido ao software Asterisk, o MGCP (Media gateway Control Protocol), o MEGACO, entre outros. O protocolo RTSP (Real-Time Streaming Protocol), utiliza uma técnica que em vez de armazenar uma grande quantidade de arquivos multimídia e só então reproduzi-los, os dados multimídias são usualmente enviados através da rede em fluxos. Os fluxos quebram os dados em pacotes com um tamanho ideal para a transmissão entre servidores e clientes. Os dados em tempo real fluem através da transmissão, descompressão e reprodução, em paralelo. Um cliente pode reproduzir o primeiro pacote, descomprimir o segundo, enquanto recebe o terceiro. Portanto o usuário pode desfrutar da mídia sem ter 49
    • Redes de Computadores que esperar o final da transmissão. O RTSP é um protocolo de apresentação multimídia clienteservidor, que possibilita uma entrega controlada de um fluxo de dados multimídia, através de uma rede IP. O RTSP foi projetado para trabalhar com protocolos de nível mais baixo, como o RTP e o RSVP, fornecendo um serviço completo de fluxo através da Internet. Ele fornece meios para escolher canais de entrega (tais como UDP, UDP multicast e TCP), e mecanismos de entrega baseados no protocolo RTP, funcionando em eventos multicast e unicast. O RTSP visa fornecer os mesmos serviços de fluxo de áudio e vídeo como o HTTP faz para texto e gráficos. Ele foi projetado intencionalmente para ter sintaxe e operações similares de modo que a maioria dos mecanismos de extensão do HTTP possa ser adicionada ao RTSP. No RTSP, cada apresentação e fluxo de mídia são identificados por uma URL RTSP. A apresentação e as propriedades da mídia são definidas em um arquivo de descrição de apresentação, que pode incluir a codificação, idioma, URLs RTSP, endereços destinos, e outros parâmetros. O arquivo de descrição de apresentação pode ser obtido pelo cliente usando HTTP, e-mail ou outros meios. Mas o RTSP difere do HTTP em vários aspectos. Primeiro, enquanto o HTTP é um protocolo sem estados, um servidor RTSP precisa manter os estados da sessão de modo a correlacionar as requisições RTSP com um fluxo. Segundo, o HTTP é basicamente um protocolo assimétrico onde o cliente requisita e o servidor responde, mas no RTSP tanto o servidor de mídia como o cliente podem fazer requisições. Atualmente existem diferentes aplicativos que suportam o uso do RTSP, como mozilla-mplayer, o Windows Media Player e o QuickTime da Apple apresentados na Figura 3.13. Figura 3.13 - Exemplos de aplicativos que utilizam RTSP O protocolo RSVP (Resource ReSerVation Protocol), é o protocolo de controle de rede que permite ao receptor de dados requisitar um nível de qualidade de serviço (QoS – Quality of Service) fim-a-fim, ao longo do caminho de transmissão, de forma que a largura de banda requisitada esteja disponível quando a transmissão se iniciar. O RSVP é usado para reservar recursos da rede. Quando uma aplicação em um host (o receptor de fluxo de dados) requisita uma QoS específica para seu fluxo de dados, ele usa o RSVP para entregar suas requisições aos roteadores que estão posicionados ao longo do caminho do fluxo. O RSVP é responsável pela negociação dos parâmetros da conexão com esses roteadores. Se a reserva é feita, ele também é responsável por manter os estados dos roteadores e do host, fornecendo o serviço requisitado. O processo de reserva não transmite os dados e fornece a qualidade de serviço requisitada. Mas através da reserva, o RSVP garante que os recursos da rede estarão disponíveis quando a transmissão realmente acontecer. Como ilustra a Figura 3.14. 50
    • Redes de Computadores Embora o RSVP fique acima do IP na pilha de protocolos, ele não é um protocolo de roteamento, mas um protocolo de controle de interredes. Na verdade, o RSVP confia nos protocolos de roteamento que estão abaixo dele para encontrar onde ele deve entregar as requisições de reserva. Figura 3.14 - A reserva de recursos do RSVP nos roteadores Vale a pena ressaltarmos que este protocolo só poderá ser utilizado plenamente se todos os roteadores ao longo do caminho origemdestino estiverem implementados com este protocolo e concordarem com o pedido de requisição do transmissor. Logo, na prática, ele só funciona em redes particulares (por exemplo, uma MAN ou WAN), pois neste caso, como a empresa é dona de todos os roteadores em questão, ela pode implementar esta política. O que não ocorre na Internet, pois temos roteadores com vários donos e cada um tendo sua diferente política de utilização da rede. Na categoria de transporte de mídia em redes por comutação de pacotes, as aplicações em tempo real tais como VoIP e fluxo de vídeo (stream video) têm um número de requisitos que as distinguem dos serviços de dados tradicionais da Internet: » Sequência: Os pacotes devem ser reordenados em tempo real no receptor, caso eles cheguem fora de ordem. Se um pacote é perdido, ele deve ser detectado e compensado sem retransmissão. » Sincronização intramídia: o intervalo de tempo que existe entre pacotes sucessivos deve ser transmitido ao receptor como informação de controle. Por exemplo, nenhum dado é geralmente enviado durante períodos de silêncio na fala. A duração desse silêncio deve ser reconstruída adequadamente. » Sincronização intermídia: Se um número de diferentes mídias está sendo usado em uma única sessão, deve haver meios de sincronizá-las. Com isso, é possível sincronizar o sinal de voz reproduzido com o de vídeo. Isso também é conhecido como lip-sync. » Identificação do payload: Na Internet, frequentemente é necessário modificar a codificação da mídia dinamicamente para ajustar-se à disponibilidade de largura de faixa ou a novos usuários que se juntam a um grupo. Algum tipo de mecanismo é necessário para identificar a codificação utilizada em cada pacote. » Identificação do frame: Vídeo e voz são enviados em unidades lógicas chamadas frames. É necessário indicar para o receptor onde é o início ou o fim do frame, de forma a auxiliar na entrega sincronizada aos níveis superiores. Os serviços descritos acima são providos por um protocolo de transporte no modelo OSI. Na Internet o RTP (Real Time Transport Protocol) é usado para esse objetivo. 51
    • Redes de Computadores O RTP tem dois componentes. O primeiro é o próprio RTP, e o segundo é o RTCP (Real Time Control Protocol). O RTP fornece algumas funcionalidades e características próprias que foram criadas com o intuito de solidificar a multimídia em tempo real na Internet: Multicast-friendly: O RTP e o RTCP foram projetados para multicast . De fato, eles foram projetados para desde pequenos grupos multicast, como aqueles usados em uma ligação telefônica compartilhada por três pessoas, até para muitas pessoas, como em eventos broadcast. Independência da mídia: O RTP fornece serviços a mídias de tempo real genéricas, tais como voz e vídeo. Os cabeçalhos e semânticas de qualquer codificação específica são definidos para cada mídia em especificações separadas. Mixers e Translators: Os Mixers são dispositivos que coletam mídias de vários usuários, as misturam e enviam o fluxo resultante. Os Translators pegam um único fluxo de mídia, converte-o para outro formato e então o envia a seu receptor. Retorno da QoS: O RTCP permite aos receptores fornecer um retorno a todos os membros de um grupo, enviando informação sobre a qualidade da recepção. As fontes RTP podem usar essa informação para ajustar a sua taxa de comunicação, enquanto que outros receptores podem determinar se os problemas na qualidade do serviço são locais ou gerais. Observadores externos podem usar essa informação para o gerenciamento da QoS. Controle de sessão livre: Com o RTCP, os participantes podem trocar informações de identificação tais como nome, e-mail, número telefônico, e mensagens curtas. Criptografia: Os fluxos de mídia RTP podem ser criptografados usando-se chaves que são trocadas por algum método não RTP, como, por exemplo SIP (Session Initiation Protocol) ou SDP (Session Description Protocol). A Figura 3.15 apresenta um fluxo controlado pelo RTP e tento o retorno da QoS, como atraso, perda de pacotes, variação de atrasos, etc. Figura 3.15 - Troca de pacotes RTP e RTCP Aprenda Praticando Mais uma vez é chegada a hora de você praticar os conceitos aprendidos. Para isso, alguns exercícios foram selecionados como exercícios propostos e exercícios resolvidos. Você deverá procurar fazer o exercício prático, entender os exercícios resolvidos e suas respectivas respostas e finalizar os estudos resolvendo os exercícios propostos com o intuito de consolidar todos os conceitos aprendidos neste capítulo. Exercício proposto Você gostaria de ver uma mensagem de resposta HTTP real? Isto é muito fácil de fazer! Primeiro utilize um ambiente texto (Shell do Linux ou prompt do DOS com o comando 52
    • Redes de Computadores cmd.exe no Windows). Neste ambiente, utilizando o programa TELNET e estando conectado à Internet, digite a mensagem de requisição de um objeto que esteja hospedado em um servidor, por exemplo: telnet www.ufrpe.br 80 [aperte enter] GET /index.html [aperte enter] Figura 3.16 - tela de entrada de comando do Windows Estas linhas de comando irão abrir uma conexão na porta 80 do host www.ufrpe. br e enviar uma mensagem/comando GET. Você deverá ver como mensagem de resposta um texto em html. Calma, não se assuste! Como você não está neste momento usando um browser, irá aparecer apenas textos, que provavelmente sejam incompreensíveis neste momento para você. Figura 3.17 - Tela de saída de comando do Windows Para podermos entender, vamos utilizar um browser e acessar este mesmo endereço. Neste caso, estes dados textos e incompreensíveis serão interpretados pelo browser e aparecerá a página web mostrada na Figura 3.18: 53
    • Redes de Computadores Figura 3.18 - Página Web interpretada pelo browser Agora que você viu na prática o funcionamento do protocolo HTTP, responda a seguinte questão: Questão: Como funciona o protocolo HTTP ? Resposta: O protocolo cliente-servidor HTTP é um protocolo de hipertexto que, através de um aplicativo interpretador da linguagem HTML (o browser), faz requisições de páginas na porta padrão 80 do servidor, e recebe respostas, que podem conter textos, figuras, áudio e vídeos. As questões de número 8 a 10 da lista de exercícios propostos fazem parte das atividades somativas que você deverá responder em relação ao capítulo 3, do Volume 1, de acordo com as orientações e prazos sugeridos pelo seu professor e tutor. Lista de Exercícios Propostos 1. Como os processos existentes em dois computadores interligados através de uma rede conseguem se comunicar? 2. Explique a arquitetura cliente-servidor utilizada nas aplicações da Internet. 3. Como podemos definir um socket? 4. Quais os principais parâmetros que uma aplicação deve levar em consideração na hora de transmitir dados? Perda de pacotes, atraso, largura de banda? 5. Sobre correio eletrônico, o que diferencia os protocolos SMTP, IMAP e POP3? 6. Quais as portas e suas respectivas funções utilizadas pelo protocolo FTP? 7. Explique de forma generalizada a funcionalidade do protocolo RTSP. 8. Utilizando um analisador de pacotes, capture a troca de mensagens entre um cliente (browser) http e um servidor web, desde o início da conexão, passando pelo 54
    • Redes de Computadores envio das respostas de requisição, até o encerramento da conexão. Foque na troca de mensagens HTTP. 9. Com um analisador de pacotes, capture pacotes de uma conversação multimídia e analise os seguintes protocolos: a) RTP b) RTCP 10. Com o mesmo analisador de pacotes, verifique agora a toca de mensagens SIP na criação de uma sessão de telefonia IP. Atividades e Orientações de Estudos Dedique 10 horas de estudo para o Capítulo 3. Você deve organizar uma metodologia de estudo que envolva a leitura dos conceitos que foram apresentados neste volume e pesquisas sobre o tema, usando a internet e livros de referência. Vamos trocar ideias nos fóruns temáticos desta disciplina no ambiente virtual, pois a interação com colegas, tutores e o professor da disciplina irão ajudá-lo(a) a refletir sobre aspectos fundamentais tratados aqui. Os chats também serão muito importantes para a interação em tempo real com o seu tutor virtual, seu professor e seus colegas. Também é importante que você leia atentamente o guia de estudo da disciplina, pois nele você encontrará a divisão de conteúdo semanal, ajudando-o a dividir e administrar o seu tempo de estudo semanal. Procure responder as atividades propostas como atividades somativas para este capítulo, dentro dos prazos estabelecidos pelo seu professor, pois você não será avaliado apenas pelas atividades presenciais, mas também pelas virtuais. Os assuntos abordados neste capítulo podem ser encontrados no Quiz de número 3 da disciplina de Redes de Computadores. Através do Quiz você poderá avaliar o seu próprio desempenho. Após respondê-lo, você terá o resultado de seu desempenho e conhecerá as suas deficiências, podendo supri-las nas suas próximas horas de estudo. Vamos Revisar? Neste capítulo, você aprendeu como funcionam os protocolos de aplicação que utilizam as redes para se comunicarem. Vimos que utilizam seus processos e, através de sockets, que são o conjunto de número IP e porta, conseguem identificar para quem devem enviar uma mensagem ou de quem devem receber uma resposta. Vimos também que estas aplicações dependem de outros fatores para funcionarem bem, como a largura de banda necessária para fluir seus dados até o destino, devem ter uma atenção com as perdas de pacotes nas transmissões, não se descuidando dos atrasos que estes pacotes sofrerão durante o percurso até a entrega. Todos estes fatores dependem exclusivamente do tipo de aplicação, e suas prioridades quanto ao atraso ou a garantia de entrega dos pacotes. O presente capítulo também abordou os principais protocolos utilizados atualmente na Internet, como o HTTP, que utilizamos para acessar as páginas Web, os principais 55
    • Redes de Computadores protocolos de correio eletrônico como SMTP, IMAP e POP3; O FTP como protocolo de transporte de arquivos e os protocolos mais utilizados por aplicativos multimídia na Internet atualmente. 56
    • Redes de Computadores Referências ROSS, Keith W. ; KUROSE, James F. Redes de Computadores e a Internet. Pearson Brasil, 2005. J. H. Saltzer, D. P. Reed, D. D. Clark. End-to-end arguments in system design, ACM Transactions on Computer Systems (TOCS), v.2 n.4, p.277-288, Nov. 1984. Tanem baum , Andrew. Redes de Computadores. Campus, 2003. TORRES, G. Redes de Computadores: Curso Completo. Editora Axcel Books, 2002. 57
    • Redes de Computadores Considerações Finais Olá, cursista! Esperamos que você tenha aproveitado este primeiro volume da disciplina de Redes de Computadores. No próximo volume, estudaremos a Internet e os Protocolos do Modelo TCP/IP. Você vai perceber a importância de entender melhor o funcionamento dos protocolos das camadas de inter-redes, redes e transporte. Nesse sentido, o final deste módulo já é uma motivação para que você fique curioso(a) para as próximas reflexões sobre como na prática os pacotes são transferidos entre computadores ligados à Internet. Aguardamos sua participação no próximo volume. Até lá e bons estudos! Os Autores 58
    • Redes de Computadores Conheça os Autores Juliana Regueira Basto Duniz Juliana Regueira Basto Diniz possui graduação em engenharia eletrônica pela Universidade Federal de Pernambuco, mestrado e doutorado em Ciência da Computação pela Universidade Federal de Pernambuco. Atualmente é professora da Universidade Federal Rural de Pernambuco (UFRPE), desenvolvendo trabalhos no grupo de Educação a Distância desta universidade. Seus temas de interesse em pesquisa são: Sistemas Distribuídos, Computação Ubíqua e Ensino a Distância. Fernando Antonio Aires Lins Fernando Antonio Aires Lins é formado em Engenharia da Computação pela Universidade de Pernambuco e mestre em Ciência da Computação pela Universidade Federal de Pernambuco. Atualmente faz doutorado na área de Redes e Sistemas Distribuídos. Atua na área de Educação a Distância, sendo vice-coordenador do curso de Bacharelado em Sistemas de Informação pelo programa Universidade Aberta do Brasil UAB/UFRPE. Obionor de Oliveira Nóbrega Obionor de Oliveira Nóbrega é formado em Processamento de Dados pelo Centro de ensino Superior do Pará, especialista em Tecnologia da Informação e Mestre em Ciência da Computação pela Universidade Federal de Pernambuco. Possui também MBA em Finanças Corporativas e atualmente é doutorando do Centro de Informática da UFPE. 59