Prévia do material em texto
Autora: Profa. Christiane Meiler Baptista Colaboradores: Prof. Roberto Macias Profa. Elisângela Mônaco de Moraes Prof. Fábio Vieira do Amaral Fundamentos de Redes de Dados e Comunicação Professora conteudista: Christiane Meiler Baptista Mestre em Engenharia Elétrica pelo Departamento de Computação e Sistemas Digitais da Escola Politécnica da USP, no Laboratório de Arquitetura e Redes de Computadores (LARC) Christiane Meiler Baptista teve sua pesquisa focada em tecnologias para o aprendizado eletrônico (e-learning). Possui MBA em Redes de Computadores pela mesma instituição e é engenheira eletrônica, com ênfase em telecomunicações, formada pela Escola de Engenharia Mauá. Atua como professora da Universidade Paulista e do Instituto Brasileiro de Tecnologia Avançada nos cursos de Análise e Desenvolvimento de Sistemas, Sistemas da Informação, Ciências da Computação e Gerenciamento em Redes de Computadores. Nestas instituições leciona as disciplinas Organização de Computadores, Arquitetura de Redes e Engenharia de Software. Participou de diversos projetos de Redes de Computadores e Aprendizado Eletrônico no LARC e trabalhou na multinacional Tracker do Brasil (Lojack) como Analista de Negócios e na coordenação de projetos. Atualmente é responsável pela área de educação da empresa Sciere Plataformas Educacionais, na qual atua como gerente de projetos e consultora dos ambientes educacionais que a empresa desenvolve voltados para cursos colaborativos, de apoio ao ensino presencial e de estudo individual (e-learning). © Todos os direitos reservados. Nenhuma parte desta obra pode ser reproduzida ou transmitida por qualquer forma e/ou quaisquer meios (eletrônico, incluindo fotocópia e gravação) ou arquivada em qualquer sistema ou banco de dados sem permissão escrita da Universidade Paulista. Dados Internacionais de Catalogação na Publicação (CIP) B222r Baptista, Christiane Meiler Fundamentos de Redes de Dados e Comunicação / Christiane Meiler Baptista. – São Paulo, 2014. 144 p., il. Nota: este volume está publicado nos Cadernos de Estudos e Pesquisas da UNIP, Série Didática, ano XIX, n. 2-113/14, ISSN 1517-9230. 1. Redes de computadores. 2. Telecomunicações. 3. Informática I. Título. CDU 681.324 Prof. Dr. João Carlos Di Genio Reitor Prof. Fábio Romeu de Carvalho Vice-Reitor de Planejamento, Administração e Finanças Profa. Melânia Dalla Torre Vice-Reitora de Unidades Universitárias Prof. Dr. Yugo Okida Vice-Reitor de Pós-Graduação e Pesquisa Profa. Dra. Marília Ancona-Lopez Vice-Reitora de Graduação Unip Interativa – EaD Profa. Elisabete Brihy Prof. Marcelo Souza Prof. Dr. Luiz Felipe Scabar Prof. Ivan Daliberto Frugoli Material Didático – EaD Comissão editorial: Dra. Angélica L. Carlini (UNIP) Dra. Divane Alves da Silva (UNIP) Dr. Ivan Dias da Motta (CESUMAR) Dra. Kátia Mosorov Alonso (UFMT) Dra. Valéria de Carvalho (UNIP) Apoio: Profa. Cláudia Regina Baptista – EaD Profa. Betisa Malaman – Comissão de Qualificação e Avaliação de Cursos Projeto gráfico: Prof. Alexandre Ponzetto Revisão: Elaine Fares Amanda Casale Sumário Fundamentos de Redes de Dados e Comunicação APRESENTAÇÃO ......................................................................................................................................................7 INTRODUÇÃO ...........................................................................................................................................................7 Unidade I 1 REDES DE COMPUTADORES E A INTERNET ..............................................................................................9 1.1 O que é internet? .....................................................................................................................................9 1.2 Componentes de rede ........................................................................................................................ 10 1.3 Serviços .................................................................................................................................................... 12 1.4 Protocolos ................................................................................................................................................ 13 1.5 Redes de acesso .................................................................................................................................... 14 1.5.1 Conexão discada (dial-up) .................................................................................................................. 14 1.5.2 DSL ................................................................................................................................................................ 15 1.5.3 Cabo ............................................................................................................................................................. 18 1.5.4 FTTH (Fiber To The Home) .................................................................................................................... 19 1.5.5 Ethernet ...................................................................................................................................................... 20 1.5.6 WiFi ............................................................................................................................................................... 21 2 TRANSMISSÃO DE INFORMAÇÃO E ARQUITETURA DE CAMADAS .............................................. 22 2.1 Transmissão de informação.............................................................................................................. 22 2.1.1 Modulação ................................................................................................................................................. 22 2.2 O núcleo da rede ................................................................................................................................... 24 2.3 Topologias de redes ............................................................................................................................. 25 2.3.1 Barramento ............................................................................................................................................... 25 2.3.2 Anel ............................................................................................................................................................. 26 2.3.3 Estrela .......................................................................................................................................................... 26 2.3.4 Árvore .......................................................................................................................................................... 26 2.3.5 Malha ........................................................................................................................................................... 27 2.3.6 Híbrida ........................................................................................................................................................ 27 2.4 Arquitetura de camadas ................................................................................................................... 27 2.4.1 Modelo OSI ................................................................................................................................................ 29 2.4.2 Arquitetura TCP/IP .................................................................................................................................. 33 Unidade II 3 CAMADA DE APLICAÇÃO .............................................................................................................................. 45 3.1 Princípios de aplicações .....................................................................................................................45 3.2 Funções específicas da Camada de Aplicação .......................................................................... 46 3.3 Comunicação entre processos e processos cliente-servidor .............................................. 47 3.4 WWW: a World Wide Web e o protocolo HTTP ........................................................................ 53 3.5 Transferência de arquivos e o FTP.................................................................................................. 57 3.6 Correio eletrônico e seus protocolos ............................................................................................ 59 3.7 Serviços de diretório de nomes – DNS ........................................................................................ 64 4 CAMADA DE APRESENTAÇÃO E SESSÃO ............................................................................................... 70 4.1 Camada de Apresentação ................................................................................................................. 70 4.1.1 Principais funções................................................................................................................................... 70 4.2 Camada de Sessão ................................................................................................................................71 4.2.1 Visão geral ................................................................................................................................................. 72 4.2.2 Principais serviços................................................................................................................................... 72 Unidade III 5 CAMADA DE TRANSPORTE .......................................................................................................................... 79 5.1 Serviços de transporte ........................................................................................................................ 79 5.1.1 A origem e o destino das mensagens ............................................................................................. 84 5.2 Protocolos de transporte ................................................................................................................... 86 5.2.1 O protocolo UDP ..................................................................................................................................... 86 5.2.2 O protocolo TCP ....................................................................................................................................... 89 6 CAMADA DE REDE .......................................................................................................................................... 98 6.1 O protocolo IP ......................................................................................................................................100 6.1.1 Fragmentação .........................................................................................................................................102 6.2 Endereçamento IPv4 .........................................................................................................................103 6.2.1 Classes e formatos de endereço IP ................................................................................................104 6.2.2 Máscaras de sub-rede .........................................................................................................................106 6.2.3 Endereços IP reservados .....................................................................................................................109 6.2.4 NAT e DHCP ............................................................................................................................................. 110 6.3 Roteamento .......................................................................................................................................... 110 6.3.1 Algoritmos e protocolos de roteamento ......................................................................................111 Unidade IV 7 CAMADA DE ENLACE ................................................................................................................................... 118 7.1 Enquadramento .................................................................................................................................. 119 7.2 Controle de erros ................................................................................................................................ 119 7.3 Controle de fluxo ................................................................................................................................120 7.4 Problemas na transmissão ..............................................................................................................120 7.5 Detecção e correção de erros ........................................................................................................121 7.6 Protocolos elementares ...................................................................................................................122 7.6.1 Simplex ..................................................................................................................................................... 122 7.6.2 Duplex ....................................................................................................................................................... 122 8 CAMADA FÍSICA .............................................................................................................................................122 8.1 Par de fios de cobre ...........................................................................................................................123 8.2 Cabo coaxial .........................................................................................................................................124 8.3 Fibra óptica ...........................................................................................................................................124 8.4 Transmissão via rádio terrestre .....................................................................................................124 8.5 Transmissão via rádio satélite .......................................................................................................125 7 APRESENTAÇÃO Fundamentos de Redes de Dados e Comunicação é uma das disciplinas-base para o profissional formado nos cursos de Tecnologia em Gerenciamento de Redes, Gestão em Tecnologia da Informação e Engenharia da Computação, entre outros. Em Arquitetura de Redes de Computadores e Organização de Computadores você aprende o funcionamento do computador em detalhes. Em Telecomunicação considera-se um equipamento transmissor ou receptor dos sinais que se estuda. O objetivo deste curso é que você aprenda a interligar os computadores utilizando padrões que permitem a troca de dados, o compartilhamento de recursos computacionais e a execução de aplicações a distância. Este livro-texto está dividido em quatro unidades de leitura. São elas: • Unidade I – Redes de computadores e a internet e Transmissão de informação e arquitetura de camadas. • Unidade II – Camadas de alto nível de protocolos e seus modelos de serviços: Camadas de Aplicação, Apresentação e Sessão. • Unidade III – Camadas fundamentais para a transferência de mensagens por meio da rede: Camadas de Transporte e de Rede. • Unidade IV – Camadas de baixo nível de protocolos de estrutura da rede: Camada de Enlace e Camada Física. Ao final da disciplina, você estará preparado para compreender, por meio de embasamento teórico, o funcionamento das aplicações distribuídas e para aplicar seu conhecimento na prática em seu dia a dia de trabalho. INTRODUÇÃO Esta disciplina apresentará, de forma estruturada,os principais conceitos teóricos e práticos de fundamentos de redes de dados e comunicação. Nossa jornada se inicia com a exposição dos elementos e componentes básicos da Rede Internet para, em seguida, apresentarmos a forma com que a informação é distribuída por meio das redes de computadores. Aqui será levado em consideração o modelo de referência OSI, um modelo de camadas didático que permite fazer uso de padrões para implementar os diversos níveis. A abordagem deste livro-texto foca o aprendizado top-down do modelo de camadas, que compreende uma visão geral, desde as aplicações que fazem parte de nosso dia a dia até a infraestrutura computacional básica de transmissão dos dados. Para tanto, serão considerados os conceitos de comunicação entre as camadas e apresentadas as principais arquiteturas que embasam as redes de computadores e a comunicação entre sistemas distribuídos. 9 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Unidade I 1 REDES DE COMPUTADORES E A INTERNET Nesta unidade inicial, iremos nos familiarizar com alguns conceitos interessantes que envolvem as telecomunicações e as redes de computadores. Este livro-texto foi elaborado pensando em trazer o que há de mais recente para você, usando uma linguagem agradável e prazerosa. Boa leitura! 1.1 O que é internet? A internet é, sem dúvida, muito importante nos dias atuais. Diariamente são mencionados seu nome, suas aplicações e vantagens. Mas o que vem a ser esse enorme sistema de engenharia? Antes, vejamos um breve resumo da sua história. A internet surgiu durante a Guerra Fria. Estados Unidos e União Soviética disputavam palmo a palmo a liderança tecnológica quando os soviéticos lançaram o Sputnik, que foi o primeiro satélite artificial de comunicação. Buscando se recuperar na disputa, os Estados Unidos criaram a Advanced Research Projects Agency (Agência de Projetos de Pesquisa Avançada), conhecida como ARPA. Essa agência passou a desenvolver diversas tecnologias, importantes até os dias atuais, inclusive as primeiras redes de comunicação interligando diversos radares por todo o território norte-americano. Porém, essas redes utilizavam o sistema de comutação de circuito que, por essência, é frágil a ataques. Alguns anos mais tarde, os Estados Unidos adotaram o sistema de comutação por pacotes e esse foi o primeiro passo para o surgimento da internet como a conhecemos. No decorrer deste livro-texto, veremos o que são e quais as principais diferenças entre a comutação por pacotes e a comutação por circuito. Voltando à pergunta: o que é internet? Há várias respostas que podem ser dadas, podemos enxergá-la do ponto de vista da estrutura, da aplicação ou da topologia. Veremos a estrutura da internet no próximo tópico – Componentes de rede. A aplicação talvez seja a mais fácil de entender e, ao mesmo tempo, a mais difícil de explicar: é infinita, já que o limite é a imaginação humana, tudo é de todos e, ao mesmo tempo, não é de ninguém, e nela a informação é mais veloz do que nossa capacidade de absorvê-la. A topologia da internet é um conglomerado de redes privativas interligando milhões de computadores pelo mundo e utilizando os protocolos TCP/IP. 10 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Observação TCP e IP são dois protocolos muito utilizados na internet e serão apresentados mais detalhadamente nas próximas unidades. As redes privativas são independentes e se conectam por meio de redes de acesso aos backbones de comunicação, ambas administradas por operadoras de telecomunicações. Os backbones (espinha dorsal) são redes de alta velocidade que concentram o acúmulo de dados de diversas outras redes para conexão. Hierarquicamente falando, temos um backbone de ligação intercontinental recebendo tráfego de backbones internacionais que, por sua vez, concentram os backbones nacionais que receberam os dados gerados nas redes regionais. Lembrete Um exemplo de rede privativa é a rede que você utiliza na sua empresa. Já o backbone é uma rede de alta velocidade que concentra várias redes privativas. 1.2 Componentes de rede Na internet são milhares de dispositivos computacionais trabalhando para que bilhões de pessoas possam se interconectar. Até pouco tempo, os dispositivos de acesso eram basicamente computadores. Hoje temos muitos outros elementos participando da rede: televisores, geladeiras, carros, máquinas de produção, celulares, video games etc. Por isso, é comum serem chamados de sistemas finais, também conhecidos como hospedeiros da rede. Eles necessitam de um sistema emissor, que normalmente é uma placa de rede, para se conectar às redes de computadores. A internet tem como um dos principais elementos o comutador de pacote, também conhecido como roteador. Ele encaminha os pacotes, que são gerados por um sistema final, e os endereça ao seu destino. Ou seja, o roteador é o responsável por entregar a requisição de um usuário ao servidor que a possui. Cada roteador está interligado a diversos outros e conhece o caminho para as diversas redes existentes no mundo. Se comparado aos correios, cada roteador seria um carteiro, que é o responsável por distribuir as correspondências destinadas ao seu bairro de trabalho. Ele também deve recolher as cartas que forem remetidas nesse bairro e direcioná-las à agência dos correios mais próxima, que, por sua vez, irá encaminhá-las à outra agência que esteja mais próxima do destino, que irá entregá-las ao carteiro daquele bairro. A soma dos roteadores chamamos de nuvem. Ela é responsável pelo encaminhamento dos dados de um ponto ao outro e leva esse nome porque, apesar de sua importância, é quase invisível para o usuário. A figura 1, a seguir, traz uma visão deste conceito. 11 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Figura 1 - Exemplo de nuvem da internet (elaborada pela autora) Para acessar a nuvem, é preciso contratar uma rede de acesso, que será o meio necessário para estabelecer conexão entre o sistema final e o primeiro roteador disponível. Veremos mais detalhes sobre as redes de acesso em seguida. Você sabia que a expressão “computação nas nuvens” vem do inglês cloud computing? Está associada a uma nova visão na área de computação. Essa nova estrutura desloca o processamento da infraestrutura computacional para a rede. Entre outras coisas, proporciona redução de custos com software e hardware (VAQUERO et al, 2009). Os principais conceitos de computação na nuvem são: • Virtualização: são ambientes amigáveis para os usuários que escondem as características físicas da plataforma computacional. • Escalabilidade: é a possibilidade de aumento ou redução do tamanho dos ambientes virtuais. • Modelo de pagamento sob demanda (pay-per-use): o usuário só paga pelos serviços de que realmente necessita. Conheça a definição apontada por Vaquero et al (2009, p. 47) no texto a seguir: Computação nas nuvens, como o próprio nome sugere, engloba as chamadas nuvens, que são ambientes que possuem recursos (hardware, plataformas de desenvolvimento e/ou serviços) acessados virtualmente e de fácil utilização. Esses recursos, devido à virtualização, podem ser reconfigurados dinamicamente de modo a se ajustar a uma determinada12 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 variável, permitindo, assim, um uso otimizado dos recursos. Esses ambientes são, em geral, explorados através de um modelo pay-per-use. Saiba mais Para saber mais a respeito do tema, sugerimos a leitura do artigo Cloud computing: prepare-se para a nova onda em tecnologia, disponível no link indicado abaixo: <http://computerworld.uol.com.br/gestao/2008/04/17/cloud- computing-prepare-se-para-a-nova-onda-em-tecnologia/>. 1.3 Serviços Já falamos de como é composta a internet e de seus elementos principais. Agora vamos abordar sua aplicação. Podemos imaginar a web como uma ferramenta para prover serviços como o e-mail, navegação web em sites, mensagens instantâneas, voz sobre IP (VoIP), streaming de vídeo, acesso remoto e muitos outros. Todas as aplicações são executadas nos sistemas finais e não sofrem influência dos elementos de rede por onde passam. Os sistemas finais proveem uma Interface de Programação de Aplicação (API – Application Programming Interface), que determina como o componente do serviço que está sendo requisitado será encaminhado à internet. Podemos entender então que a API da internet é um conjunto de regras que o software emissor deve cumprir para permitir que a internet possa encaminhar os dados ao destino. Por exemplo, se queremos enviar uma carta, não podemos escrevê-la e simplesmente entregar a qualquer pessoa. Primeiro, nós a colocamos em um envelope, preenchemos os dados pessoais e postais do destinatário no envelope, selamos a carta e a colocamos em uma caixa oficial dos Correios. Essa carta deve chegar ao destinatário porque todas as regras foram cumpridas. Voltando à internet, a carta seria o dado que queremos transmitir, os Correios, a própria internet, e as regras citadas de postagem, a API. Observação API é um conjunto definido de mensagens de requisição e resposta. A partir da Unidade II falaremos com detalhes sobre as diversas APIs das aplicações web. Então também podemos entender a internet como uma plataforma de serviços e aplicações baseada no conteúdo criado por seus próprios usuários, que podem ser grandes empresas, como o Google, ou usuários comuns, como eu e você, por meio de blogs, por exemplo. 13 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 1.4 Protocolos Os protocolos são regras que definem a troca de informações entre dois elementos. Podemos usar como exemplo a língua falada por um povo. No Brasil, usamos a língua portuguesa, que é a mesma usada em Angola, Cabo Verde, Guiné-Bissau, Guiné Equatorial, Moçambique, Portugal, São Tomé e Príncipe, Timor-Leste e na região de Macau, na China. Todos nós usamos o mesmo protocolo de comunicação e, portanto, podemos trocar informações sem maiores dificuldades. O mesmo serve para as máquinas: é preciso que ambas as pontas estejam falando a mesma língua, usando o mesmo protocolo de comunicação. Os protocolos também são regras que dizem como os dispositivos devem iniciar, manter e encerrar uma comunicação por meio da rede. Vamos para outro “exemplo humano”, porque, afinal, nós usamos diversos protocolos diariamente. Duas pessoas se encontram na rua e uma delas deseja saber as horas. Segundo o protocolo de boas maneiras, a conversa se inicia por uma saudação, em que aquele que deseja estabelecer o contato deve dizer um “olá”. Se o interlocutor responder com um “olá” também, então temos a conversação estabelecida. Em seguida, o primeiro pergunta as horas e aguarda uma resposta. Se o segundo tiver meios de informar, deve responder. Caso o primeiro esteja satisfeito com a resposta, deve confirmar o recebimento dela com um agradecimento. O encerramento é iniciado por uma despedida e, caso o interlocutor não tenha mais nada a dizer, irá também se despedir. Oi Olá 14h30 tempo Que horas são? Requisição TCP Página da UNI Get http://www.unip.br Resposta de conexão TCP Figura 2 - Exemplo de protocolo Então vejamos nas redes de computadores como funciona: estabelecemos a comunicação solicitando a informação, confirmamos o recebimento dela e depois encerramos o contato. A figura 2 mostra a analogia entre um “exemplo humano” e o de uma requisição de página na internet. Ao digitar www.unip.br, uma requisição TCP é solicitada ao servidor (que armazena o site da UNIP). Ele devolve uma resposta em que a conexão TCP é estabelecida. Em seguida, a página inicial do site da UNIP é exibida no navegador do usuário. 14 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Mas nem todos os protocolos são assim – cada um atende a uma necessidade e, portanto, estabelece uma regra. Veremos mais detalhes adiante. 1.5 Redes de acesso Rede de acesso é o enlace físico que interliga o sistema final ao roteador mais próximo, também conhecido como roteador de borda. Observação Um roteador de borda também é aquele que executa mais de um protocolo de roteamento. Os protocolos de roteamento serão abordados em detalhes quando falarmos da camada 3 do modelo OSI - a Camada IP. Para acessar a nuvem a partir de sua casa, é necessário contratar um provedor de acesso à internet, os chamados ISP (Internet Service Providers), que normalmente são empresas de telecomunicações com uma rede regional bastante capilarizada, que por um lado alcança os domicílios e por outro se conecta aos backbones regionais para permitir ao usuário acesso a qualquer rede que também esteja conectada à web. Existem atualmente diversas tecnologias nas redes de acesso. A seguir, veremos as principais delas. 1.5.1 Conexão discada (dial-up) Em meados da década de 1990, era bem comum o uso dessa tecnologia nas residências pelo mundo. Ela utiliza a rede de par trançados das linhas telefônicas – isso mesmo, aquele par de fios que você usa para fazer chamadas telefônicas – e um modem conectado ao computador. Aliás, modem significa modulador e demodulador. Basicamente, o que ele faz é pegar o sinal digital binário do computador e transformá-lo em sinal analógico apropriado para ser enviado pela linha e vice-versa. Nesse sistema, todo o legado das redes de telefonia pôde ser reaproveitado e a expansão da internet foi vertiginosa, já que o investimento, tanto do usuário como das empresas de telecomunicação, foi bem pequeno. Um sistema final que utiliza acesso dial-up necessariamente deverá se conectar antes a um provedor de acesso (ISP – Internet Server Provider). Isso porque o modem deverá discar (do inglês dial) para o número do ISP (por exemplo, o IG), que estabelece uma chamada telefônica e, a partir de então, o sinal analógico enviado pelo modem através da linha telefônica será recebido pelo modem do ISP, que fará a conversão para um sinal digital e enviará para o roteador de borda do provedor, como mostrado na figura 3: 15 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Usuário Internet Rede telefônica Provedor de acesso Figura 3 - Topologia de rede dial-up (elaborada pela autora) O acesso discado ainda é um importante meio deconexão, utilizado principalmente em regiões rurais (do Brasil e do mundo) ou naquelas em que ainda não há acesso à banda larga. Segundo o Ibope//NetRatings, de maio de 2010, estima-se que ao menos 4,2 milhões de usuários brasileiros ativos de internet residencial, ou quase 19% do total, tenham acesso discado. Boa parte, por falta de opção. Lembrete Apesar de ainda atender a muitas pessoas, o acesso discado é muito lento para os padrões da internet atual. Sua velocidade nominal é de 56 kilobits por segundo, mas na prática trafega em velocidades muito menores. Outro problema do acesso discado é que mantém a linha telefônica ocupada durante a navegação. 1.5.2 DSL Um dos mais populares acessos de banda larga existentes no Brasil, o Digital Subscriber Line (Linha Digital para Assinante) ou simplesmente DSL, vem para revolucionar a maneira como o usuário residencial se conecta à web. Normalmente oferecido pela mesma empresa que presta o serviço de telefonia, o DSL tem velocidades que podem variar de 128 Kbps a 24 Mbps, dependendo da tecnologia utilizada. No Brasil, a mais comum é a ADSL (Asymmetric Digital Subscriber Line ou Linha Digital Assimétrica para Assinante), que, como o próprio nome diz, tem como principal característica a assimetria entre envio e recepção dos dados. Para entender melhor: a linha telefônica conduz, em paralelo, dados e sinais telefônicos. O par de fios de cobre que chega até as residências possui três canais. Então, veja na figura 4 que tipicamente temos: 16 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 • canal de telefone bidirecional comum: banda de 0 a 4 KHz; • canal upstream1 de média velocidade: 4 KHz a 50 KHz; • canal downstream2 de alta velocidade: banda de 50 KHz a 1 MHz. Voz Upstream Downstream 0 - 4KHz 4KHz - 50KHz 50KHz - 1MHz Figura 4 - Canais do sistema DSL (elaborada pela autora) Dessa maneira, o DSL age como se fossem três conexões distintas, em que cada uma pode funcionar independente das outras. Por isso, podemos acessar a internet enquanto falamos ao telefone. A essa técnica dá-se o nome de multiplexação (veremos um pouco mais sobre essa técnica à frente). Um divisor de frequências, ou Splitter, separa o sinal de dados do sinal telefônico, evitando que eles causem interferências entre si. Diferentemente do dial-up, no caso do DSL, tecnicamente não é necessário um provedor, já que o usuário está diretamente ligado ao DSLAM (Digital Subscriber Line Access Multiplexer ou Multiplexador de Acesso à Linha Digital do Assinante) da empresa de telefonia. O DSLAM está conectado ao roteador de borda e permite acesso direto do usuário à internet. A velocidade real do sistema DSL está inversamente ligada a distância em que se encontra o usuário da central telefônica. Isso porque o cabo de cobre que é utilizado é bastante sensível a interferências e, quanto maior a distância, mais interferência existirá. Hoje, em países como Japão e Coreia, existe uma variação do DSL chamada de VDSL (Very-high-bit- rate Digital Subscriber Line), tecnologia que atinge incríveis 55 Mbps de download. O DSL tem duas principais vantagens: a velocidade, que ultrapassa a conexão dial-up em muitas vezes, e a possibilidade de compartilhamento de dados e voz no mesmo meio físico. Usuários de internet no Brasil Segundo o portal do grupo Teleco (http://www.teleco.com.br), uma empresa de consultoria da área de telecomunicações, o número de usuários de internet no Brasil cresceu generosamente desde 2005. 1 Upstream: do cliente para o servidor (upload). 2 Downstream: do servidor para o cliente (download). 17 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO O quadro a seguir mostra a quantidade destes usuários, em milhões: Tabela 1 Milhões 2005 2006 2007 2008 2009 Fonte: PNAD* 32,1 - 55,9 67,9 Fonte: TIC Domicílios - 35,3 44,9 53,9 63 Fonte: Ibope** 32,5 39 62,3 66,3 Fonte: Teleco. Disponível em: <http://www.teleco.com.br/internet.asp>. Acesso em: 26 abr. 2012. • * população de 10 anos ou mais de idade que acessou a internet, pelo menos uma vez, nos 90 dias que antecederam a entrevista. • ** total de pessoas com mais de 16 anos com acesso à internet em qualquer ambiente. Os dados de 2010 ainda não foram computados, mas, segundo o ComScore, até o mês de maio de 2010 existiam 73 milhões*** de usuários de internet no Brasil. • ***dos 73 milhões, 40,7% estiveram ativos em maio de 2010, sendo 11,9% com idade entre 6 e 14 anos e 56,1% com idade entre 15 e 34 anos. Internet banda larga no Brasil O grupo Teleco divulgou ainda o total de conexões de banda larga no Brasil ao longo dos últimos anos. Tabela 2 Milhares 2002 2003 2004 2005 2006 2007 2008 2009 2010 % ADSL 526 993 1.907 3.152 4.341 5.590 7.001 7.678 7.982 67% TV assinatura (cabo) 135 203 342 629 1.200 1.753 2.589 3.132 3.238 27% Outros (Rádio)* 31 40 50 75* 115 375 420 570 650 5% Total Brasil 692 1.236 2.299 3.856 5.656 7.718 10.010 11.380 11.870 100% * estimativa Teleco. Não inclui satélite. (Dados revisados em Ago/07). Fonte: Operadoras, Anatel (2002 e 2003), ABTA. Disponível em: <http://www.teleco.com.br/blarga.asp>. Acesso em: 26 abr. 2012. Apesar de não existirem números oficiais recentes, é possível dizer que ainda há muitas pessoas que utilizam acesso discado por meio de provedores para conectar-se à internet. O governo brasileiro iniciou em 2011 o Plano Nacional de Banda Larga, com o com o objetivo de massificar, até 2014, a oferta de acessos banda larga e promover o crescimento da capacidade da infraestrutura de telecomunicações do país. Os objetivos deste programa são: 18 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 — Acelerar a entrada da população na moderna Sociedade da Informação; — Promover maior difusão das aplicações de Governo Eletrônico e facilitar aos cidadãos o uso dos serviços do Estado; — Contribuir para a evolução das redes de telecomunicações do país em direção aos novos paradigmas de tecnologia e arquitetura que se desenham no horizonte futuro, baseados na comunicação sobre o protocolo IP; — Contribuir para o desenvolvimento industrial e tecnológico do país, em particular do setor de tecnologias de informação e comunicação (TICs); — Aumentar a competitividade das empresas brasileiras, em especial daquelas do setor de TICs, assim como das micro, pequenas e médias empresas dos demais setores econômicos; — Contribuir para o aumento do nível de emprego no país; — Contribuir para o crescimento do PIB brasileiro.3 Saiba mais Conheça mais sobre esse plano no link abaixo: <http://www.mc.gov.br/images/pnbl/o-brasil-em-alta-velocidade1. pdf>. 1.5.3 Cabo Se a tecnologia DSL utiliza a estrutura da telefonia local, o acesso via cabo aproveita a rede de cabos da televisão por assinatura. Da mesma maneira que no sistema DSL, o acesso via cabo necessita de um modem especial, responsável por preparar o sinal vindo do computador. Tanto o cabo coaxial (aquele branco que chega até o televisor ou modem) como a fibra óptica fazem parte do sistema, por isso, essa rede é denominada HFC (Hybrid Fiber Coax ou Fibra Coaxial Híbrida). Cada junção da rede pode comportar de 500 até 5.000 pontos de acesso.Nesse caso, a capacidade da fibra óptica é compartilhada entre todos os que estão ligados à sua junção. Portanto, em um momento em que diversos usuários estejam realizando um download, por exemplo, a velocidade real do acesso será comprometida. 3 Disponível em: <http://www.mc.gov.br/images/pnbl/o-brasil-em-alta-velocidade1.pdf>. Acesso em: 26 abr. 2012. 19 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO De imediato, podemos pensar que a conexão do DSL é mais estável se comparada com a híbrida, já que ela é considerada ponto a ponto, ou seja, o usuário está conectado por um meio exclusivo até a central, no caso, o seu cabo de par trançado. Isso que os defensores do DSL dizem é verdade, uma vez que, sendo conhecida a sua distância da central e, portanto, o quanto seu acesso estará sujeito a interferências, a velocidade não sofrerá grandes variações. Contudo, os defensores das redes HFC dirão que a rede oferece a possibilidade de taxas de transferências maiores e que basta um sistema bem-dimensionado, em que não haja gargalos no ponto de acesso entre a fibra óptica e o cabo coaxial, que sua capacidade de transmissão será superior. 1.5.4 FTTH (Fiber To The Home) Fiber To The Home ou simplesmente FTTH é uma tecnologia capaz de transmitir telefonia, TV digital e internet com alta velocidade. Esse meio, até pouco tempo atrás, era utilizado ou como ponto de acesso aos backbones das prestadoras de telecomunicações ou para usuários de grande porte, como empresas e indústrias. No FTTH, as taxas chegam à ordem dos gigabits, mas usualmente utilizam-se entre 100 e 500 Mbps. Hoje é crescente a oferta de FTTH nas grandes capitais com taxas similares a essas. Existem diversas maneiras de distribuição da fibra óptica. A rede mais simples é a chamada fibra direta, na qual existe uma fibra saindo diretamente da central telefônica para a residência do assinante. Dessa maneira, podemos atingir altíssimas velocidades, já que o usuário terá uma fibra dedicada para si, não havendo concorrência. Outra maneira seria a chamada Rede Óptica Passiva (PON – Passive Optical Network). Nela, cada fibra que sai da central telefônica é compartilhada entre diversas residências. É também chamada de rede ponto-multiponto, já que um emissor atende a diversos receptores. Nas PONs, o sinal óptico é transmitido por uma única fibra e depois é derivado para os usuários finais por meio de divisores ópticos passivos (POS). Seu custo de implementação é diversas vezes mais barato do que o da fibra dedicada e torna viável o uso dessa tecnologia. No Brasil, o FTTH vem crescendo, mas ainda é pouco difundido. Existe uma organização chamada FTTH Council4 que tem o objetivo de compartilhar conhecimentos e construir um consenso sobre questões importantes em torno da tecnologia de Fiber To The Home. Sua missão é educar o público e governos quando às soluções FTTH e promover a popularização dessa tecnologia. NGN: Next Generation Network NGN é o conceito abrangente que define como serão as próximas redes de telecomunicações. Em geral é uma rede convergente de transporte de diversos serviços, como: voz, dados e vídeos, inclusive televisão sob demanda. 4 Conheça mais sobre essa iniciativa em: <http://www.ftthcouncil.org>. Acesso em: 24 abr. 2012. 20 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Vale destacar que NGN não é uma tecnologia, e sim um conceito. É o estabelecimento de uma plataforma plural de serviços sobre as redes atuais, principalmente as redes FTTH, que permitem maior velocidade de tráfego de dados. Essa convergência visa à redução de custos e à consequente oferta de serviços mais baratos. Além disso, surgem novas possibilidades, como televisão sob demanda, em que o telespectador pode acessar seus programas favoritos em qualquer horário, em qualquer dia. No mesmo ponto de acesso haverá conexão para internet, sinal para TV digital, voz, videoconferência, entre outras. Somando isso à possibilidade de acesso às novas tecnologias, como WI-MAX e WI-FI, será possível ver essa transformação em pouco tempo. Saiba mais Para saber ainda mais sobre esse assunto, sugerimos a leitura de Next- Generation Network Services, de Robert Wood, um guia da Cisco para a construção de redes orientadas a serviços. 1.5.5 Ethernet A rede Ethernet é, sem dúvida, a tecnologia de acesso mais utilizada em redes locais (LAN – Local Area Network). Nela, os usuários estão conectados via cabos de cobre trançados a um comutador. Hoje em dia é mais comum o uso de switches, já que a Ethernet Comutada (Switched Ethernet) oferece maior largura de banda e cabeamento mais simplificado. Observação Você sabia? O nome Ethernet vem da Teoria do Éter. Cientistas antigos a idealizaram após a descoberta de que a luz era uma onda eletromagnética, para explicar como ela podia viajar no espaço. O Éter preenche todo o espaço e assim a luz tem um meio para se propagar. Outra opção é a Hubs Ethernet, em que todos os pacotes são endereçados a todos os computadores. Isso tem dois problemas principais: o primeiro deles é o consumo excessivo e desnecessário de banda e o segundo, o alto risco de colisão de pacotes. Veremos mais adiante detalhes a respeito de colisão de pacotes. Com a internet comutada, o switch reconhece onde cada computador está na rede e direciona os pacotes ao seu endereço, poupando, assim, tráfegos. Normalmente a rede Ethernet trafega a 100 Mbps, enquanto os servidores possuem acesso de 1 Gbps ou, em alguns casos, 10 Gbps. 21 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 1.5.6 WiFi Wireless Fidelity (Fidelidade sem Fio) ou simplesmente WiFi é uma tecnologia que permite o acesso à internet por meio de dispositivos em sistemas finais sem fio. Hoje um grande número de equipamentos é capaz de utilizar o sistema WiFi, como laptops, PCs, celulares, televisores, geladeiras, câmeras de segurança, video games e muitos outros. Há basicamente dois tipos de acesso sem fio, ambos muito conhecidos. Um deles é a Wireless LAN, em que a conexão se dá por meio de um roteador wireless, também chamado de ponto de acesso ou hotspot, e os pacotes são transmitidos ao roteador, que se encarrega de enviá-los à rede com fio. Muitas pessoas utilizam essa tecnologia nas suas casas, permitindo o compartilhamento de sua internet entre diversos computadores, sem precisar com isso distribuir cabeamento por toda a residência. O raio de ação de um roteador wireless é limitado a alguns metros. Eventualmente pode-se usar uma antena com ganho de sinal, o que permite aumentar em algumas vezes o campo de recepção. O padrão utilizado é o 802.11 e sua taxa de transmissão pode chegar a até 54 Mbps. Outra tecnologia de acesso sem fio importante é a das redes celulares. Por meio dela, podemos acessar a internet em velocidades teóricas de até 8 Mbps nas redes 3,5G, também conhecidas como HSDPA (High-Speed Downlink Packet Access). Nesse caso, fatores como a distância em que o usuário está da ERB (Estação Rádio Base) ou número de assinantes conectados ao mesmo tempo podem interferir na velocidade máxima alcançada. Tipicamente, a velocidade média é de 1 Mbps, o que é bastante considerável, já que é um acesso que nos permite uma mobilidade nuncaantes vista. As empresas do SMP (Serviço Móvel Pessoal, o famoso celular) estão investindo amplamente nessas novas tecnologias de acesso à internet, visando a um público que cada vez mais necessita de conexões rápidas, estáveis e amplas. Imagina-se que as tecnologias sem fio serão os principais meios de acesso em um futuro não muito distante. Brasil com 24,9 milhões de celulares 3G em Maio/11 Segundo dados da Anatel, o Brasil terminou maio de 2011 com 24,9 milhões de celulares 3G, sendo 19,8 milhões de aparelhos WCDMA e 5,1 milhões de terminais de dados 3G (11,6% dos celulares do Brasil são 3G). Das adições líquidas de 749 mil acessos 3G no mês, 633 mil foram via aparelhos WCDMA e 116 mil por terminais de dados 3G. A Anatel considera banda larga móvel a soma dos acessos WCDMA com todos os terminais de dados, sejam eles 3G ou não. Pelo critério da Anatel existiriam 26,3 milhões acessos de banda larga móvel em maio de 2011, sendo 19,8 milhões aparelhos WCDMA e 6,5 milhões terminais de dados, que apresentaram adições líquidas de 59 mil acessos em maio de 2011.5 5 Disponível em: <http://www.teleco.com.br/3g_brasil.asp>. Acesso em: 26 abr. 2012. 22 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Tabela 3 - Celulares 3G em Abril/11 (Dados Preliminares da Anatel). milhares Dez / 10 Jan / 11 Fev / 11 Mar / 11 Abr / 11 Mai / 11 Acesso 3G por aparelhos (WCDMA) 14.614 16.469 17.400 18.146 19.127 19.760 Terminais de dados 3G 4.253 4.425 4.597 4.779 5.001 5.117 Total de acessos 3G 18.867 20.894 21.997 22.924 24.128 24.877 Terminais de dados (3G e não 3G) 6.014 6.098 6.187 6.289 6.436 6.495 Total Banda Larga Móvel (Anatel) 20.628 22.568 23.587 24.434 25.562 26.254 Nota: Anatel considera Banda Larga Móvel a soma dos acessos 3G por aparelhos (WCDMA) com o total de terminais de dados (3G ou não 3G). O total de terminais de dados 3G é estimado pela Teleco. Disponível em: <http://www.teleco.com.br/3g_brasil.asp>. Acesso em: 26 abr. 2012. 2 TRANSMISSÃO DE INFORMAÇÃO E ARQUITETURA DE CAMADAS 2.1 Transmissão de informação 2.1.1 Modulação Modulação é o processo sistemático de alteração de uma onda portadora por meio de uma onda modulante para conter uma informação. Parece confuso, mas não é. Veja, quando falamos também ocorre um processo de modulação, no caso, modulação de uma onda acústica. O som que é gerado pelas cordas vocais é alterado pelos movimentos da boca e do maxilar para conter informações. Basta tentar falar uma palavra sem mover a boca que será possível notar a presença da onda portadora, mas sem o sinal modulante, que nesse nosso exemplo seriam as consoantes e vogais que pretendemos emitir. Podemos resumir, então: modulação é a soma da informação com uma onda adequada para transmissão. Simples assim. A maioria dos sinais de informação gerados não pode ser diretamente enviada, então eles são modulados com uma onda elétrica portadora ou simplesmente “portadora”, como é conhecida. No processo de modulação podemos alterar a amplitude, a fase ou a frequência, deformando o sinal da portadora. Sabemos como o sinal da portadora deveria chegar e temos o sinal irradiado. A diferença entre elas, ou seja, entre a portadora original e a recebida, é o nosso sinal modulante ou a informação. Basta demodular, no caso, extrair a portadora, e restam os dados. 23 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Lembrete O equipamento responsável por modular e demodular um sinal é conhecido como modem. Existem diversas técnicas de modulação de um sinal, cada qual indicada para uma situação. • Modulação em amplitude (Amplitude Modulation – AM): o sinal senoidal da portadora é modificado em sua amplitude pelo sinal modulante. Portadora modulante Saída Figura 5 - Modulação AM (elaborada pela autora) • Modulação em fase (Phase Modulation – PM): o sinal da portadora é alterado na sua fase pelo sinal modulante. Mais comumente usado para transmissões digitais. Portadora modulante Saída Figura 6 - Modulação PM (elaborada pela autora) 24 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Observação A modulação em fase é especialmente utilizada na transformação de um sinal digital (onda quadrada) em um sinal analógico (senoidal). • Modulação em frequência (Frequency Modulation – FM): o sinal da portadora agora é alterado em sua frequência pelo sinal modulante. Portadora modulante Saída Figura 7 - Modulação FM (elaborada pela autora) 2.2 O núcleo da rede Existem duas abordagens fundamentais para tráfego de dados em redes de enlaces e roteadores: as redes de comutação em circuito e as redes de comutação em pacote. Em redes de comutação de circuito, um caminho é estabelecido e reservado enquanto a sessão estiver em andamento, mesmo que não haja troca de informações. Nas redes de comutação de pacotes, todos os recursos são compartilhados, de maneira que cada pacote de dados, quando chega a um nó da rede, aguarda em uma fila para ser enviado ao próximo nó. As redes telefônicas são exemplos de comutação de circuito. A partir do momento em que se estabelece uma ligação, todos os recursos daquele par de cobre que sai da sua casa até chegar na casa do destinatário estarão reservados a você. A chamada se inicia no seu telefone, chegando até a central telefônica mais próxima. Essa central, por sua vez, conecta-se com a central mais próxima da casa do destinatário, que se liga à residência do destinatário. Dessa maneira, isso garantirá todos os recursos desse meio. 25 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Na comutação de pacotes, a transmissão também ocorre em enlaces, contudo não há reserva de recursos. Quando mandamos um pacote para a internet, por exemplo, em cada roteador que ele chegar terá de concorrer com outros pacotes e aguardar sua vez na transmissão. Caso haja um tráfego maior do que o suportado pelo nó da rede, deverá aguardar em um buffer até que possa ser enviado. Na internet não temos garantia de entrega imediata. Contudo, dessa maneira também não há desperdício, porque todos os recursos são sempre compartilhados e otimizados para atender o maior número de pessoas com o menor custo. Observação Nas redes de acesso discadas, o primeiro trecho de conexão entre a residência e o provedor é comutação de circuito. A partir daí, passa a ser comutação de pacote, que é o padrão da internet. 2.3 Topologias de redes Como topologia de rede, podemos entender o desenho dos enlaces e a distribuição dos elementos nos enlaces. Há duas maneiras de descrever a topologia de uma rede: topologia física, em que consideramos a aparência e as distribuições dos enlaces, e topologia lógica, em que o que vale é o fluxo de dados na rede. Vejamos a seguir as topologias mais comuns. 2.3.1 Barramento Nessa topologia, todos os computadores estão conectados em um mesmo barramento físico de dados, como mostra a figura 8. Apesar de apenas uma máquina poder transmitir por vez, todos os outros elementosrecebem ao mesmo tempo. A placa de rede é responsável por gerenciar os pacotes que devem ser descartados. São usados cabos coaxiais que se subdividem para cada elemento. É pouco utilizada atualmente, pela disposição física dos elementos, mas sua lógica ainda acompanha as redes Ethernet. Figura 8 - Topologia de barramento (elaborada pela autora) 26 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 2.3.2. Anel Nessa topologia, os dispositivos estão ligados em série, formando um grande círculo, como mostra a figura 9. Os dados são enviados em uma única direção, de nó em nó, até o seu destino. O sinal é mais imune a ruídos e distorções, já que as distâncias são menores, e cada nó também age como um repetidor. Contudo, isso gera atraso na transmissão. Lembrete Repetidor é um equipamento de rede com a função de regenerar eletricamente um sinal recebido através do meio físico. Figura 9 - Topologia em anel (elaborada pela autora) 2.3.3 Estrela Essa é a topologia mais utilizada na comutação de pacotes. Várias máquinas se conectam a um concentrador da rede – como mostrado na figura 10 –, que, por sua vez, é responsável por repetir para todas as máquinas o sinal transmitido. É utilizada em redes de pequeno porte, já que os concentradores normalmente disponibilizam oito ou dezesseis portas. Podemos configurar redes estrela de maneira roteada, ou seja, os pacotes somente serão enviados à porta de destino, desconsiderando as outras máquinas. Figura 10 - Topologia em estrela (elaborada pela autora) 2.3.4 Árvore A topologia em árvore é composta por barramentos conectados em alguns pontos, como mostra a figura 11. Geralmente temos barramentos principais, barramentos secundários e terciários. A velocidade dessa rede é tipicamente menor, porque haverá derivações em que o sinal deverá propagar-se por dois caminhos distintos. 27 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Figura 11 - Topologia em árvore (elaborada pela autora) 2.3.5 Malha Nessa topologia, cada elemento está conectado a diversos outros, como mostra a figura 12, permitindo que cada um possua comunicação direta e privilegiada com os outros. Apesar da topologia em malha possuir altas taxas de transmissão e baixa incidência de erros, seu custo de implantação a torna inviável. Figura 12 - Topologia em malha (elaborada pela autora) 2.3.6 Híbrida A característica dessa topologia é a flexibilidade, podendo ter pedaços de cada uma das topologias anteriores; dessa maneira, a rede se adapta plenamente às necessidades de cada local. Vale a criatividade de explorar os benefícios de cada uma das topologias existentes. 2.4 Arquitetura de camadas A internet é um sistema extremamente complicado, que possui muitos componentes: inúmeras aplicações e protocolos, vários tipos de sistemas finais e conexões entre eles, roteadores, além de vários tipos de meios físicos de enlace. Com tamanha diversidade de elementos nas redes, é necessário organizar a arquitetura de rede. Fazendo uma analogia, podemos descrever o sistema de uma companhia aérea, desde o momento em que é solicitada a compra de uma passagem até o momento após o desembarque, quando o passageiro pode fazer uma reclamação à companhia aérea, se o serviço não foi bem prestado. Trata-se de um sistema complexo, com emissão de passagens, pessoal para embarque, bagagem, pilotos, aviões, controle de tráfego aéreo etc. Podemos definir algumas das ações que você realiza quando viaja por uma empresa aérea: 28 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 • compra a passagem; • despacha as malas; • dirige-se ao portão de embarque; • entra no avião; • decola até o destino. Após a aterrissagem, você: • desembarca no portão; • recupera as malas; • se a viagem for ruim, você reclama na agência de viagens que lhe vendeu a passagem. As ações descritas acima podem ser agrupadas em níveis ou camadas, como mostra a figura 13, para melhor organizar a estrutura de discussão de uma viagem por uma empresa aérea. A passagem pode ser comprada antes da viagem e, se houver algum problema, pode-se reclamar com a empresa aérea que a vendeu, na volta da viagem. A bagagem poderá ser despachada antes do embarque e deverá ser recuperada após o desembarque. O embarque de passageiros é feito por meio dos portões e, após a aterrissagem, eles também permitem o desembarque. Com os passageiros a bordo, o avião decola. Após a decolagem, a aeronave segue a rota até a aterrissagem no seu destino. Por meio das camadas, é possível perceber que cada uma, combinada com as camadas abaixo dela, implementa alguma funcionalidade, algum serviço. Cada camada provê seu serviço: • realizando certas ações dentro da camada; • utilizando os serviços da camada inferior imediatamente. Passagem Comprar Passagem Reclamar Bagagem Despachar Bagagem Recuperar Portões Embarcar Portões Desembarcar Decolagem Aterrissagem Roteamento de aeronave Roteamento de aeronave Roteamento de aeronave Figura 13 - Analogia de arquitetura em camadas (KUROSE; ROSS, 2010) Repare que o embarque e o desembarque de passageiros podem ser feitos de diversas formas, variadas as circunstâncias: o responsável pelo embarque pode avisar que, devido ao tamanho da aeronave, o embarque será realizado em etapas e que primeiro deverão embarcar apenas passageiros das poltronas do final da aeronave para depois embarcar passageiros que viajarão nas poltronas frontais. O mesmo pode acontecer no momento do desembarque. 29 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Nesse caso, a funcionalidade principal da camada “portões”, de embarcar e desembarcar passageiros, mantém-se, embora existam novas regras para o embarque ou desembarque acontecerem. Com uma arquitetura em camadas, repare que fica mais fácil discutir uma “parte” da viagem, ou seja, discutir uma parcela específica e bem-definida de um sistema complexo (simplificação). Torna-se mais fácil também modificar, quando necessário, a implementação do serviço oferecido pela camada, contanto que utilize os mesmos serviços da camada inferior e forneça os mesmos serviços para a camada superior. É importante notar que modificar a implementação de um serviço é muito diferente de mudar o próprio serviço. Voltando às redes de computadores, para reduzir a dificuldade de projeto, os projetistas de rede organizam os protocolos – e o hardware e o software de rede que implementam os protocolos – em camadas. Com uma arquitetura de protocolo em camadas, cada protocolo pertence a uma das camadas. Quando tomados em conjuntos, os protocolos das várias camadas são denominados pilha de protocolos (KUROSE, 2010). 2.4.1 Modelo OSI A ISO (International Standards Organization) desenvolveu um modelo de referência chamado OSI (Open Systems Interconnections), para facilitar a interconexão de sistemas de computadores e para que os fabricantes pudessem criar protocolos a partir dele. Assim, passaram a existir padrões de protocolos. É um modelo didático que nosfaz entender como seria um protocolo ideal nas redes de computadores. Para se chegar às sete camadas, existem alguns princípios que são seguidos: • uma camada deve ser criada onde houver necessidade de outro grau de abstração; • a camada deve executar uma função bem definida; • a função de cada camada deve ser escolhida segundo a definição de protocolos padronizados internacionalmente; • os limites da camada devem ser selecionados para reduzir o fluxo de informações transportadas entre as interfaces; • o número de camadas deve ser grande o bastante para que funções distintas não precisem ser necessariamente colocadas na mesma camada e pequeno o bastante para que a arquitetura não se torne difícil de controlar. As camadas consideradas pelo modelo OSI estão apresentadas na figura 14 e serão detalhadas ao longo deste livro-texto, nas próximas unidades. 30 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 14 - Arquitetura de camadas do Modelo OSI (TANENBAUM, 2003) Algumas arquiteturas não seguem esse modelo, como é o caso da arquitetura TCP/IP, que implementa apenas 4 níveis dos 7 considerados pelo modelo OSI. O modelo de referência OSI foi desenvolvido pela ISO no início da década de 1980. Conheça a seguir um pouco sobre essa história: A história do modelo OSI Nas primeiras redes, apenas computadores de um mesmo fabricante poderiam se comunicar. Isto por questões de compatibilidade, pois cada fabricante adotava seu próprio padrão. Na época, os dois fabricantes que dominavam o mercado eram a IBM e a DEC (Digital Equipment Corporation, que hoje é a HP). Esse problema estava dando dor de cabeça a muitos empresários, pois, se uma empresa “A” que tinha a IBM como solução em TI comprasse uma empresa “B” que utilizasse recursos DEC, a fusão das duas seria muito complicada, senão impossível tecnologicamente falando. Insatisfeito com a situação atual, os consumidores exigiram que esse problema fosse solucionado o mais rápido possível. No início da década de 1980, a ISO (International Standards Organization) se reuniu com representantes de várias empresas para tentar resolver este impasse. Foi quando em 1984 o modelo OSI (International Systems Interconnections) foi criado, permitindo a comunicação de dados entre hardwares e softwares de fabricantes diferentes e, mais do que isso, o modelo OSI também padronizou a forma como os dados são preparados, organizados, enviados, recebidos, interpretados e utilizados, tudo organizado por camadas, em que cada camada tinha um conjunto de protocolos (regras), tudo padronizado para que todos os fabricantes “falassem a mesma língua”. O modelo ficou conhecido como arquitetura em camadas. 31 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO O governo americano tentou impor esse modelo e, em seguida, o governo brasileiro também o fez através da Lei da Informática, porém, todas as tentativas fracassaram e lentamente esse modelo foi sendo ultrapassado por outros. O modelo OSI foi o mais bem-estruturado de sua época, porém, não foi o primeiro modelo de referência independente de fabricantes. Outro modelo já estava rondando as redes havia um bom tempo, mas sem a ISO lhe “apadrinhando”, era o modelo TCP/IP. Não era estruturado como o OSI nem tinha a ISO como endosse, como dito anteriormente, por isso dizia-se que era um modelo informal, entretanto era, e é ainda hoje, muito mais flexível que o modelo OSI e muito mais fácil de ser aplicado. Desenvolvido na Universidade de Standford e homologado com sucesso por Bob Kahn e Vintong G. Cerfg em 1974, ainda não era um modelo e sim um conjunto de protocolos cujo TCP era o principal. O Departamento de Defesa Americana (DoD – Departament of Defense) abriu uma espécie de licitação na época, para a criação de um modelo confiável, flexível e fácil de ser implementado, temendo ataques nucleares. O TCP/IP foi o escolhido e adotado. Em 1976, o TCP/IP foi implementado na ARPANET (Advanced Research Projects Agency Network) pela DoD, por isso alguns autores chamam o modelo TCP/IP de modelo DoD. Inicialmente só para uso militar, o que seria a internet na época, era chamada de ARPANET, sendo muito vulnerável. O modelo TCP/IP foi amadurecendo e hoje é o padrão por se tratar de um modelo flexível e fácil de ser implementado.6 Saiba mais Leia o livro CCNA 4.1 – guia completo de estudo, de Marco Aurélio Filippette. O guia é a ferramenta ideal para preparar o candidato rumo ao exame Cisco 640-802, pois abrange 100% dos tópicos abordados por ele e complementa a parte teórica com cenários que podem ser facilmente implementados em laboratório ou no simulador Dynamips. Esta obra contém, ainda, dois cenários avançados, que reproduzem alguns problemas do mundo real encarados por um administrador de redes, acompanhados de sua devida resolução. 6 FILIPPETTE, M. A. CCNA 4.1 - guia completo de estudo. Florianópolis: Visual Books, 2008. 32 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Antes de iniciar o estudo detalhado sobre cada camada, que faremos ao longo deste livro-texto, é importante destacar rapidamente as principais funções de cada camada deste modelo didático OSI: Camada de Aplicação Executa funções específicas de utilização dos sistemas pelos usuários finais e foca nos processos de aplicação. Alguns exemplos de aplicações são: correio eletrônico, transferência de arquivos, serviço de diretório, processamento de transações, terminal virtual, acesso a bancos de dados, gerência de rede e formato de dados, entre outras diversas existentes. Camada de Apresentação A Camada de Apresentação lida com a transparência de representação dos dados, ou seja, interpreta as diversas sintaxes entre o transmissor e o receptor. Entre os exemplos existentes podemos citar a codificação das aplicações e a conversão de informações, como criptografia. Camada de Sessão Esta camada é responsável pelo sincronismo de diálogo entre o receptor e o transmissor. Sua função é recuperar conexões de transporte sem perder as conexões de sessão. Para isso, possui mecanismos de verificação (sincronização) e não efetua multiplexação da Camada de Transporte, utilizando a mesma conexão de transporte para várias conexões de sessão não simultâneas. Camada de Transporte A transferência de dados transparente, independente de sub-redes, deve ser executada fim a fim, ou seja, da origem ao destino, independente de topologias de redes por onde os dados também passam. Esta camada é responsável pelo controle de qualidade de serviço de rede de forma global, detecta e é capaz de recuperar erros de transmissão, como perda de pacotes, por exemplo. Camada de Rede É a camada que concentra as funcionalidades essenciais para o bom funcionamento da internet. Ela é responsável pela interconexão das redes e sub-redes, pelo endereçamento lógico e roteamento dos pacotes. Camada de Enlace Ela esconde características físicas do meio de transmissão, provendo meio de transmissão confiável entre dois sistemas adjacentes, ou seja, entre dois nós na rede. As principais funções dessa camada são: delimitação dos quadros de acordo com a tecnologia da rede,detecção de erros e recuperação de erros (ainda de forma simples), sequencialização e controle de fluxo. 33 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Camada Física Trata da transmissão transparente de sequências de bits pelo meio físico, contém padrões mecânicos, funcionais, elétricos e procedimentos para acesso a esse meio físico. Além disso, mantém a conexão física entre sistemas e considera vários tipos de conexão, dentre elas: ponto a ponto ou multiponto, full ou half duplex, serial ou paralela. 2.4.2 Arquitetura TCP/IP A arquitetura TCP/IP é o modelo de camadas utilizado em todas as redes de computadores, a ARPANET e a internet. Em 1974, um estudo propôs um grupo de protocolos centrais para satisfazer as seguintes necessidades: • roteamento entre redes e sub-redes diferentes; • independência da tecnologia de redes utilizada para poder conectar as sub-redes; • independência do hardware; • possibilidade de recobrar-se de falhas. Originalmente esses protocolos foram chamados de NCP (Network Control Program), mas, em 1978, passaram a ser chamados de TCP/IP. Em 1983, foi exigida a implementação do TCP/IP em todos os computadores que quisessem se conectar à ARPANET. Assim, ocorreu a criação de uma arquitetura flexível, capaz de se adaptar a aplicações com necessidades divergentes, como a transferência de arquivos e a transmissão de dados e voz, em tempo real (KOVACH, 2009). A arquitetura TCP/IP é um modelo de quatro camadas e pode ser comparada com o modelo OSI, como mostra a figura 15: TCP/IP OSI 4 Aplicação 7 Aplicação 6 Apresentação 5 Sessão 3 Transporte 4 Transporte 2 Internet 3 Rede 1 Interface com a rede 2 Enlace 1 Física Figura 15 - Modelo de camadas da arquitetura TCP/IP (TANENBAUM, 2003) Comparando com o modelo OSI, a Camada de Aplicação da arquitetura TCP/IP implementa as camadas de Aplicação, Apresentação e Sessão correspondentes ao modelo OSI. Embora tenha as mesmas funcionalidades, a Camada de Rede do modelo OSI é aqui chamada de internet, por ser a arquitetura 34 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 TCP/IP a padrão utilizada pela rede internet. A camada mais inferior desse modelo está internamente dividida em Enlace e Física, como o modelo OSI, mas é considerada aqui encapsulada em uma única camada denominada Interface com a Rede. A figura 16 mostra a pilha de protocolos da arquitetura TCP/IP, considerando os principais protocolos em cada camada e a relação entre eles nos diversos níveis. Aplicação do usuário (Internet Explorer, Outlook Express etc.) Aplicação Transporte Internet Enlace Física Telnet FTP HTTP SMTP DNS TCP UDP ICMP IP ARP Interface com a rede Meio físico Figura 16 - Pilha de principais protocolos da arquitetura TCP/IP (KOVACH, 2009) Encapsulamento e desencapsulamento Na comunicação entre dois nós de uma rede, quando uma mensagem precisa ser enviada a um nó cujo destino está distribuído em outro ponto da rede, à mensagem da Camada de Aplicação é adicionado um cabeçalho que contém informações que serão utilizadas por esta camada, no destino. A Camada de Aplicação encaminha esse conjunto de dados mais o cabeçalho à camada logo abaixo dela, que adicionará o cabeçalho referente à sua camada e ele será interpretado pela camada de mesmo nível, no destino. Ao processo de agrupar cada cabeçalho, camada a camada, na origem, damos o nome de encapsulamento. Observação Em redes, o cabeçalho que é adicionado em cada uma das camadas tem a função de permitir que os dados sejam recuperados na outra ponta. Cada protocolo terá sua própria estrutura de cabeçalho. No destino, ao contrário do encapsulamento, cada camada lê as informações presentes no cabeçalho referente à sua camada, utiliza essas informações para executar suas tarefas e serviços na camada, retira o cabeçalho e encaminha o que restou (dados e os cabeçalhos das camadas superiores) às próximas camadas. A esse processo denominamos desencapsulamento. 35 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Assim, todo pacote que viaja através da rede é encapsulado na origem e desencapsulado no destino, como mostra o exemplo a seguir, de um pacote de uma aplicação FTP que sai da origem e viaja através da rede até o destino. Saiba mais Veja no link indicado abaixo algumas animações que ilustram o que foi dito: <http://vimeo.com/32170600>. Na origem, os dados (U) na Camada de Aplicação recebem o cabeçalho do protocolo da aplicação, neste caso o FTP com o cabeçalho “F”, como mostra a figura 17: Arquitetura TCP/IP FTP FTPF U TCP TCP IP IP Eth Eth Estação A Estação D Figura 17 - Exemplo do cabeçalho FTP da Camada de Aplicação (elaborada pela autora) A Camada de Aplicação (camada 5), após executar as ações que são pertinentes a ela, encaminha os dados e o cabeçalho para a camada logo abaixo, a Camada de Transporte (camada 4). Como a aplicação FTP utiliza o protocolo TCP no nível de transporte, o cabeçalho do TCP é adicionado ao segmento que veio da camada anterior, acima dela, como mostra a figura 18, abaixo. Repare que no nível TCP não interessa o que são dados e o que é protocolo da camada anterior de aplicação. Ambos são tratados como informações que vieram da camada acima, representados por agora por “A” na imagem a seguir: 36 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Arquitetura TCP/IP FTP FTP T ATCP TCP IP IP Eth Eth Estação A Estação D Figura 18 - Cabeçalho TCP sendo adicionado às informações que vieram da camada acima (elaborada pela autora) A Camada de Transporte, após executar seus serviços, passa as informações para a camada 3, ou Camada de Rede, que fará o mesmo processo anterior, adicionando o cabeçalho que lhe é pertinente (neste caso, o IP) ao bloco de cabeçalhos, como mostra a figura 19: Arquitetura TCP/IP FTP FTP TI A TCP TCP IP IP Eth Eth Estação A Estação D Figura 19 - Cabeçalho IP sendo adicionado às informações que vieram da Camada de Transporte (elaborada pela autora) A camada do protocolo IP fará o mesmo processo anterior, em que adiciona o seu cabeçalho, e passará as informações para a camada 2, abaixo dela, ou Camada de Enlace. Neste exemplo, o protocolo que está operando neste nível é o Ethernet que, como os demais anteriores, adicionará seu cabeçalho às informações recebidas da camada IP, como mostra a figura 20: 37 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Arquitetura TCP/IP FTP FTP TIE EA TCP TCP IP IP Eth Eth Estação A Estação D Figura 20 - Cabeçalho Ethernet sendo adicionado às informações que vieram da Camada de Rede (elaborada pela autora) Observação Você deve ter reparado que o Ethernet adicionou dois cabeçalhos na Camadade Enlace. Isso é uma característica específica deste protocolo, com a qual você não deve se preocupar neste momento. A Camada de Enlace, ao finalizar as ações que lhe são pertinentes, encerra o processo de encapsulamento e envia as informações para a Camada Física, responsável por transportar os dados entre a origem e o destino através do meio físico, como mostra a figura 21: Arquitetura TCP/IP FTP FTP TCP TCP IP IP Eth Eth Estação A Estação D Figura 21 - Os dados sendo transportados da origem ao destino, através do meio físico (elaborada pela autora) Quando chega ao destino, os dados chegam à camada 2 novamente, com as mesmas informações de dados e cabeçalhos que saíram da origem, neste mesmo nível. A figura 22 38 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 mostra os cabeçalhos de todas as camadas encapsulados na origem. Aqui se inicia o processo de desencapsulamento. Arquitetura TCP/IP FTP FTP T I EE A TCP TCP IP IP Eth Eth Estação A Estação D Figura 22 - Início do processo de desencapsulamento pela Camada do cabeçalho Ethernet (elaborada pela autora) No destino, a Camada de Enlace abre o cabeçalho referente à sua camada (cabeçalho Ethernet) e executa as ações que lhe são pertinentes. Em seguida, descarta os cabeçalhos Ethernet e entrega o restante à camada acima dela, como mostra a figura 23: Arquitetura TCP/IP FTP FTP T IA TCP TCP IP IP Eth Eth Estação A Estação D Figura 23 - Cabeçalhos Ethernet descartados e o restante passado para a Camada de Rede (elaborada pela autora) Na Camada de Rede, o protocolo IP faz a mesma ação da camada anterior, ou seja, abre o cabeçalho IP e, após executar as tarefas que lhe são pertinentes, descarta o seu cabeçalho e encaminha o restante à camada superior a esta, como mostra a figura 24: 39 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Arquitetura TCP/IP FTP FTP TATCP TCP IP IP Eth Eth Estação A Estação D Figura 24 - Cabeçalho IP descartado e o restante encaminhado para a Camada de Transporte (elaborada pela autora) O processo se repete para a Camada de Transporte neste exemplo com o protocolo TCP, que, após descartar seu cabeçalho, passa para a Camada de Aplicação. O protocolo FTP desta aplicação específica também repetirá o processo de desencapsulamento, agora separando os dados do cabeçalho FTP da aplicação, como mostra a imagem da figura 25: Arquitetura TCP/IP FTP FTPFU TCP TCP IP IP Eth Eth Estação A Estação D Figura 25 - Cabeçalho TCP descartado na Camada de Aplicação os dados e cabeçalho FTP restantes (elaborada pela autora) A imagem da figura 26 mostra a visão geral do processo de encapsulamento e desencapsulamento em cada um dos níveis, na origem e no destino: 40 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FTP FTPF F AA AA U U U U TCP TCPTT TT AA TT IP IPII IIEth EthEEEE Estação Origem Estação Destino Figura 26 - Encapsulamento e desencapsulamento de pacotes (elaborada pela autora) Operação entre as camadas Na operação entre as camadas, dizemos que existe uma comunicação virtual entre os níveis de camadas correspondentes na origem e no destino, pois quando analisamos a comunicação de uma camada do transmissor com a mesma camada do receptor, normalmente não nos preocupamos com a comunicação nas camadas inferiores ou não precisamos saber como ela está ocorrendo. Se voltarmos à figura 26, veremos que os cabeçalhos e dados em cada nível de camada são os mesmos, na origem e no destino. É como se virtualmente não existisse todo o processo de encapsulamento e desencapsulamento e as camadas se comunicassem diretamente. A figura 27 demonstra de forma simplificada essa comunicação: Origem Destino 7 Aplicação 7 Aplicação 6 Apresentação 6 Apresentação 5 Sessão 5 Sessão 4 Transporte 4 Transporte 3 Rede 3 Rede 2 Enlace 2 Enlace 1 Física 1 Física Figura 27 - Comunicação virtual entre camadas (KOVACH, 2009) Neste momento é importante destacar que em cada camada o dado (ou pacote) transportado é chamado de uma maneira específica. Nas três camadas de alto nível, o pacote tem o nome de mensagem. Na Camada de Transporte é chamado de segmento, na de Enlace, quadros, e, na camada mais baixa, a Camada Física, os bits são transferidos individualmente, como mostra a figura 28. 41 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Origem Destino 7 Aplicação mensagem 7 Aplicação 6 Apresentação 6 Apresentação 5 Sessão 5 Sessão 4 Transporte segmento 4 Transporte 3 Rede datagrama 3 Rede 2 Enlace quadros 2 Enlace 1 Física bits 1 Física Figura 28 - Como os pacotes são chamados em cada nível (KOVACH, 2009) Lembrete Note que a operação entre as camadas funciona sempre da mesma maneira, independente da arquitetura. Aqui foi demonstrada no modelo OSI, mas também se aplica à arquitetura TCP/IP. Resumo Essa unidade mostrou uma breve história do surgimento da internet através da ARPA e fez uma introdução dos elementos que a compõem. Lembre-se de que os backbones são as redes de alta velocidade que interligam as diversas redes privativas e que os sistemas finais são os elementos que permitem conectar-nos a essas redes. Os roteadores são responsáveis por endereçar os pacotes na internet. A soma dos roteadores é chamada de nuvem. Vimos alguns dos principais tipos de serviços disponibilizados na internet e entendemos que existe uma infinita possibilidade de muitos outros. Falamos das APIs, que são as interfaces que adaptam as aplicações para serem trafegadas na rede. Os protocolos de redes são regras que definem a comunicação entre dois sistemas finais. As redes de acesso permitem interligar o sistema final ao roteador mais próximo, que chamamos de roteador de borda. Através dos ISPs é possível que os usuários em suas casas acessem a nuvem da internet. As 42 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 redes de acesso podem fazer uso de diferentes tipos de tecnologias, como conexão discada (dial-up), DSL, cabo, FTTH, Ethernet, WiFi, entre outras. Vejamos: • Dial-up: conexão discada através de modem, de baixa velocidade para os padrões atuais. • DSL: banda larga com três canais: 2 de dados e 1 de voz. • Cabo: normalmente utiliza cabo coaxial e consegue suportar maiores velocidades. • FTTH: redes de altíssima velocidade baseadas nas fibras ópticas. • Ethernet: é uma tecnologia utilizada para interconectar redes locais. • WiFi: tecnologia de rede de acesso sem fio. Modulação é a soma da informação com uma onda portadora adequada para transmissão. A comutação de pacotes possui meios compartilhados sem garantias de recursos. Já na comutação de circuitos, o meio é exclusivo, entretanto o uso da rede é pouco eficiente.Existem diversas topologias de rede, cada qual com um leiaute diferente que caracteriza o tráfego de informações e como os dispositivos estão conectados. Nesta unidade conhecemos os seguintes tipos: barramento, anel, estrela, árvore, malha e híbrida. Iniciamos também os conceitos de arquitetura de camadas, explicando como ela facilita o estudo e a implementação das arquiteturas de rede. Falamos do Modelo OSI, explicando de forma simplificada as funções de cada uma das sete camadas importantes para esse estudo. Cada camada deste modelo implementa protocolos responsáveis por executar as funções em cada nível. A Arquitetura TCP/IP, embora não implemente todas as camadas do modelo OSI, tem grande importância por se tratar da arquitetura da rede Internet. Vimos o que são cabeçalhos e de que forma são utilizados nos processos de encapsulamento e desencapsulamento em cada aplicação distribuída através da rede. Com cada camada sendo responsável por executar seus serviços sem se preocupar com os demais níveis, dizemos que a operação entre as camadas pode ser interpretada por uma comunicação virtual e, em cada um dos níveis, os pacotes recebem nomes distintos, a lembrar: 43 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • Aplicação, apresentação e sessão: mensagem • Transporte: segmento • Rede: datagrama • Enlace: quadros • Física: bits Exercícios Questão 1. Leia o exemplo a seguir e responda à questão proposta, assinalando a afirmativa correta. Duas pessoas se encontram na rua, e uma delas deseja saber as horas. Segundo o protocolo de boas maneiras, a conversa se inicia por uma saudação, em que aquela que deseja estabelecer o contato deve dizer um “olá”. Se o interlocutor responder com um “olá” também, então temos a conversação estabelecida. Em seguida, a primeira pergunta as horas e aguarda uma resposta. Se a segunda tiver meios de informar deve responder informando as horas. Caso a primeira esteja satisfeita com a resposta, deve confirmar o recebimento dela com um agradecimento. O encerramento é iniciado por uma despedida e, caso o interlocutor não tenha mais nada a dizer, irá também se despedir. O que são protocolos para a comunicação? A) Conexão. B) Regras. C) Acesso. D) Enlace. E) Transporte. Resposta correta: alternativa B. Análise das alternativas: A) Alternativa incorreta. Justificativa: conexão é o nome que se dá ao se estabelecer uma ligação entre o sistema final e o primeiro roteador disponível. 44 Unidade I Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 B) Alternativa correta. Justificativa: os protocolos são regras que definem a troca de informações entre dois elementos; também são regras que dizem como os dispositivos, através da rede, devem iniciar, manter e encerrar uma comunicação. C) Alternativa incorreta. Justificativa: acesso ou Rede de Acesso será o meio necessário para estabelecer conexão entre o sistema final e o primeiro roteador disponível. D) Alternativa incorreta. Justificativa: enlace físico é o que interliga o sistema final ao roteador mais próximo, também conhecido como roteador de borda. E) Alternativa incorreta. Justificativa: transporte é o nome dado a uma camada do protocolo TCP/IP. Questão 2. Em determinada topologia, todos os computadores estão conectados em um mesmo barramento físico de dados. Apesar de apenas uma máquina poder transmitir por vez, todos os outros elementos recebem ao mesmo tempo. Estamos identificando qual tipo de arquitetura de rede? A) Anel. B) Estrela. C) Barramento. D) Malha. E) OSI. Resolução desta questão na Plataforma. 45 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Unidade II Camadas de alto nível de protocolos e seus modelos de serviços Começaremos o estudo das camadas do modelo OSI com uma abordagem que se inicia pela Camada de Aplicação e, de cima para baixo, desce até a Camada Física. Tal abordagem facilita o entendimento, já que as aplicações estão muito próximas dos usuários. Elas são muitas vezes conhecidas por eles e, portanto, de fácil aprendizado. Entendendo as aplicações, torna-se fácil entender os serviços necessários para suportar tais aplicações e identificar as diversas maneiras como esses serviços são fornecidos ou implementados nas camadas mais baixas. 3 CAMADA DE APLICAÇÃO Em primeiro lugar, é importante sabermos que a Camada de Aplicação faz a interface entre o protocolo de comunicação e o aplicativo que pediu ou receberá a informação através da rede. Dizemos que ela é o nível que possui o maior número de protocolos existentes, porque está mais próxima do usuário e este possui as mais diferentes necessidades. Com a evolução do software, as diversas aplicações evoluem e geram novas necessidades, aumentando, assim, cada vez mais, a quantidade de diferentes protocolos existentes nessa camada. 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 29 - Camada de Aplicação do Modelo OSI (KOVACH, 2009) 3.1 Princípios de aplicações Dizemos que as aplicações de rede são “a razão de ser” de uma rede de computadores. Isso quer dizer que, para baixar seus e-mails, o seu aplicativo de e-mail entrará em contato com a Camada de Aplicação do protocolo de rede, efetuando esse pedido. Transferir um arquivo entre os dois sistemas finais requer uma forma de trabalhar com as incompatibilidades deles, e essa é a função da Camada de Aplicação. O dado entregue pelo usuário 46 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 à Camada de Aplicação do sistema recebe a denominação de SDU (Service Data Unit). A Camada de Aplicação junta à SDU (no caso, os dados do usuário) um cabeçalho chamado PCI (Protocol Control Information). O objeto resultante dessa junção é chamado de PDU (Protocol Data Unit), que corresponde à unidade de dados especificada de certo protocolo da Camada de Aplicação. Lembrete O processo que descrevemos agora é o mesmo mostrado no exemplo de encapsulamento, apresentado na Unidade I deste livro-texto. 3.2 Funções específicas da Camada de Aplicação A Camada de Aplicação é responsável por diversas funções importantes no processo de transmissão de informação através das redes de computadores. São elas: • categorização dos processos de aplicação; • processamento de transações; • acesso a bancos de dados; • gerência de rede, entre outras. Exemplos de aplicações nessa camada incluem: transferência de arquivos, serviços de diretório, terminal virtual, world wide web, entre outros. Nesta camada, as aplicações são consideradas processos distribuídos em comunicação. Elas são executadas nos sistemas finais (hospedeiros), nas interfaces de usuário e trocam mensagens para implementar a aplicação. As mensagens essenciais trocadas entre as aplicações são as de pedido e resposta, que são conhecidas como processos cliente-servidor e serão detalhadas no próximo item. Dizemos que os protocolos da Camada de Aplicação são uma “parte” da aplicação de rede quedefine mensagens trocadas por aplicações e ações tomadas. Exemplos: web e HTTP, correio eletrônico e SMTP. Um protocolo da Camada de Aplicação define: • os tipos de mensagens trocadas (requisição e resposta); • a sintaxe dos vários tipos de mensagens (campos e suas delimitações); • a semântica dos campos (significado da informação); • as regras para determinar quando e como um processo envia e responde às mensagens. 47 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 3.3 Comunicação entre processos e processos cliente-servidor Quando falamos da Camada de Aplicação e de como ela pode ser construída, é necessário ter um entendimento básico de como os programas que rodam em vários sistemas finais comunicam-se entre si, os quais chamamos de processos que se comunicam. Podemos imaginar um processo como um programa que está rodando dentro de um sistema final. Dois processos se comunicam enviando e recebendo mensagens através de suas portas, que é uma via de acesso ao processo. Um processo é um programa que é executado em um hospedeiro; dois processos no mesmo hospedeiro se comunicam usando o que chamamos de comunicação interprocessos, definida pelo sistema operacional. Quando falamos de comunicação através das redes de computadores – que é no que de fato estamos interessados neste livro-texto –, dois processos em hospedeiros distintos se comunicam usando um protocolo da Camada de Aplicação, ou seja, eles se comunicam pela troca de mensagens por meio da rede de computadores. Dessa forma, um processo originador cria e envia mensagens para a rede; um processo destinatário as recebe e possivelmente responde, devolvendo outras. Os processos se comunicam utilizando a Camada de Aplicação através da pilha de cinco camadas da arquitetura TCP/IP. O que chamamos de porta é a interface de programação entre a Camada de Aplicação e a Camada de Transporte (socket), também chamada de API (Application Programming Interface), pela qual as aplicações em rede são inseridas na internet. Dizemos que, na internet, dois processos se comunicam enviando dados para um socket ou lendo dados de um socket. Para identificar na origem e no destino os processos com os quais se quer comunicar, é necessário que eles se identifiquem por meio de endereços. Observação Endereçamento dos processos é como chamamos um processo que identifica o outro com o qual quer se comunicar. Duas informações são essenciais nessa identificação: endereço IP do hospedeiro do outro processo e o “número de porta”. Isso permite que o hospedeiro receptor determine a qual processo deve ser entregue a mensagem. Quando falamos de processos, é importante ainda mencionar que existem mecanismos que permitem a comunicação transparente entre a aplicação de rede e o usuário. Um agente de usuário (User Agent – UA) é uma interface entre o usuário e a aplicação de rede que implementa o protocolo da Camada de Aplicação. Por exemplo, www: navegador (browser); correio: leitor ou compositor de mensagens; streaming de áudio e vídeo: tocador de mídia. 48 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Lembrete Por que se diz “agente de usuário” em vez de “browser”? Embora os browsers sejam importantes interfaces dos documentos HTML e XHTML, existem outros programas e sistemas que também interpretam esses documentos. Aplicativos de e-mail são um exemplo e não são browsers. Ao preferir o termo “agente de usuário”, queremos destacar um sentido mais amplo e diferenciá-lo de browser simplesmente. Uma aplicação de rede típica possui duas partes: o lado cliente em um hospedeiro que se comunica com o lado servidor de outro hospedeiro. Para muitas aplicações, um hospedeiro implementa ambos os lados, cliente e servidor de uma aplicação, e pode inclusive implementá-los ao mesmo tempo para um dado serviço. Um exemplo de aplicação que implementa ao mesmo tempo o lado cliente e o lado servidor é o correio eletrônico. Quando o servidor de correio envia é considerado cliente, e quando o servidor recebe é chamado servidor. É intitulado cliente aquele que inicia contato com o servidor (quem “fala primeiro”), ou seja, quem tipicamente solicita serviço do servidor. Por exemplo, para a web, o navegador, e para o correio eletrônico, o leitor de mensagens. Um servidor provê ao cliente o serviço requisitado. Como exemplos de servidores, podemos considerar: o servidor web envia a página solicitada e o servidor de correio entrega as mensagens. A figura 30 mostra que a Camada de Aplicação que originou a mensagem, o chamado cliente, é aquela que faz a solicitação do pedido à outra aplicação na mesma camada, no destino. Este, por sua vez, devolve uma mensagem de resposta. 49 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Aplicação Transporte Rede Enlace Física Aplicação Transporte Rede Enlace Física Resposta Pedido Figura 30 - Aplicações do tipo cliente e servidor (KUROSE; ROSS, 2010) Vejamos agora para quais serviços uma aplicação necessitaria de um protocolo de transporte. O quadro 4 nos dá exemplos de aplicações que consideram tais parâmetros como requisitos de transmissão através das redes. Perda de dados Algumas aplicações, como o áudio, podem tolerar algum tipo de perda de informação. Outras, como transferência de arquivos e acesso remoto, requerem transferência 100% confiável. A alteração ou perda de um único bit pode fazer com que a leitura de um arquivo transferido não seja mais possível. Largura de banda Algumas aplicações, como multimídia, requerem certa quantia mínima de banda para serem consideradas viáveis. Elas são sensíveis à largura de banda. Outras aplicações chamadas de aplicações elásticas conseguem usar qualquer quantia de banda disponível e se moldar às condições da rede de acordo com a banda. 50 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Sensibilidade temporal Para as aplicações em tempo real, como telefonia sob internet (VoIP) e jogos interativos, é preferível um atraso pequeno, tolerável, para que sejam consideradas viáveis. As aplicações do tipo assíncronas, como o correio eletrônico, já possuem tolerância a atrasos, porque não são executadas em tempo real. Lembrete Lembre-se da diferença entre aplicações síncronas e aplicações assíncronas: as síncronas são as que possuem interação ou comunicação em tempo real, como é o caso dos comunicadores de mensagens instantâneas; as assíncronas são aquelas em que a interação acontece sem a intervenção em tempo real, como o e-mail, que você envia e aguarda a resposta e que pode ocorrer a qualquer momento. No quadro 4 vemos diversos exemplos de aplicações e como elas são consideradas em cada um dos parâmetros mencionados acima. Quadro 1 - Exemplos de aplicações e seus requisitos na rede Aplicação Perda de dados Largura de banda Sensibilidade temporal Transferência de arquivos Não tolera Elástica Não é sensível Correio eletrônico Não tolera Elástica Não é sensível Objetos da www (HTTP) Não tolera ElásticaNão é sensível Áudio ou vídeo em tempo real Tolerante Áudio: 5 Kb - 1 MbVídeo: 10 Kb - 5 Mb Sensível, acima de 100 mseg Áudio ou vídeo gravado Tolerante Áudio: 5 Kb - 1 MbVídeo: 10 Kb - 5 Mb Sensível, acima de alguns seg Jogos interativos on-line Tolerante Maior que alguns Kbps Sensível, acima de 100 mseg Aplicações bancárias Não tolera Elástica Pode ou não ser sensível As aplicações de transferência de arquivos não toleram qualquer tipo de perda nos dados, porque ao final da transferência um bit faltante sequer impediria a abertura do arquivo no destino. O mesmo se aplica ao correio eletrônico e aos objetos carregados em páginas da web. Aplicações bancárias também não podem sofrer perdas ou alterações nos dados, pois uma simples mudança pode gerar erros catastróficos para o usuário da aplicação. Entretanto, aplicações em tempo real, como o áudio, podem superar a perda de uma palavra durante uma frase falada, por exemplo. Dependendo da quantidade de perda, torna-se tolerável também a transmissão de vídeos gravados, que passam a ser exibidos com alguns pixels ou quadros faltantes, mas o usuário é capaz de interpretar o contexto final. Jogos interativos on-line podem ser os mais delicados para se considerar perdas, mas também são toleráveis, dependendo da quantidade de perda de dados. 51 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Se na transferência de arquivos a largura de banda de transmissão for pequena, fará com que a transmissão se torne lenta, ao passo que se a largura de banda for grande, a transferência se tornará mais rápida, ou seja, a aplicação se molda às condições da rede – é elástica. O mesmo acontece para as aplicações de correio eletrônico, objetos carregados em páginas da www e aplicações bancárias. Já para as aplicações em tempo real, um certo limite de largura de banda mínima é necessário para serem executadas. Abaixo do mínimo considerado podem se tornar inviáveis. As aplicações de transferência de arquivos, correio eletrônico e objetos da www não são sensíveis a atrasos, justamente por serem aplicações assíncronas. Já as aplicações síncronas, ou de tempo real, como áudio, vídeo e jogos, são sensíveis a atrasos na transmissão e podem ser prejudicadas, dependendo do atraso. Um limite máximo de atraso deve ser considerado para garantir a boa experiência do usuário na utilização do serviço. Aplicações bancárias, dependendo da transação, podem sofrer erros críticos originados do atraso, já que trabalham com curtos períodos de sessão devido a questões de segurança. Observação Atraso é considerado em geral um problema para muitas aplicações. Entretanto, a variação do atraso, também chamado de jitter, em geral é pior, pois reduz a qualidade do serviço (QoS) na transmissão. Qualidade de Serviço – QoS O termo QoS (acrônimo de “Quality of Service”) ou “Qualidade de Serviço”, em português, refere-se à capacidade de fornecer um serviço com qualidade que atenda às exigências em matéria de perdas, tempos de resposta e de banda concorrida. Associado ao QoS temos o termo nível de serviço (service level), que define o nível de exigência para a capacidade de uma rede de fornecer um serviço fim a fim, ou seja, de um hospedeiro a outro na rede com velocidade e nível de perdas controlados. Geralmente são considerados três níveis de QoS: • Melhor esforço (em inglês best effort), que não fornece nenhuma diferenciação entre as várias redes e, por consequência, não permite nenhuma garantia, já que não se sabe qual será o seu caminho na nuvem. Este nível de serviço é também chamado lack of QoS. • Serviço diferenciado (differenciated service ou soft QoS), que permite definir níveis de prioridade num caminho predeterminado na nuvem, sem contudo fornecer uma garantia estrita, já que não há reserva de recursos e sim priorização. • Serviço garantido (em inglês guaranteed service ou hard QoS), que consiste em reservar recursos na rede para certos tipos de fluxos. O principal mecanismo utilizado para obter tal nível de serviço 52 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 é o RSVP (Resource reSerVation Protocol, que se pode traduzir como Protocolo de Reserva de Recursos). Problemas relacionados às transmissões Existem alguns problemas que podem acontecer durante as transmissões na web e podem ter as mais variadas causas. Vejamos a seguir. Perda de Pacote (Dropped Packets): os roteadores lidam com um número gigantesco de bits a cada segundo, são centenas de milhares de pacotes que chegam e que eventualmente podem ultrapassar a capacidade de processamento do equipamento. Nesses casos, os pacotes são armazenados em buffers que formam um fila aguardando para serem processados. Algumas vezes essa fila no buffer ultrapassa a capacidade de armazenagem, a partir desse momento os novos pacotes serão descartados. Atraso: o mesmo vale para atraso, mesmo que o pacote não seja descartado, o tempo em que esteve aguardando para ser processado gerou demora no seu envio e consequente atraso. São muitos os motivos para gerar atrasos na recepção, alguns deles são inerentes à própria rede. A esse atraso damos o nome de “atraso fim a fim”, que engloba o tempo de processamento dos pacotes nos roteadores, o tempo de transmissão (uma série de bits que formam um pacote só poderá ser transmitida até o próximo roteador quando todos tiverem sido recebidos) e o tempo de propagação (pulso elétrico percorre o meio físico). O atraso é imprevisível e variável de acordo com o momento da rede. Jitter: acontece quando os pacotes de uma determinada fonte chegam ao seu destino com diferentes atrasos. Este é o inimigo número um da qualidade do streaming de vídeo ou do serviço VoIP. Out-of-Order Delivery: quando é roteado através da internet, um conjunto de pacotes pode tomar diversas rotas de acordo com o momento da rede, já que os pacotes são sempre direcionados para o caminho com menos tráfego. Isso pode fazer com que a entrega seja feita fora da sequência. Este problema obrigou que fossem criados protocolos especiais complementares para rearranjar os pacotes “desordenados”. Erro: muitas vezes os pacotes perdem seu caminho para o destino ou simplesmente sofrem interferências do meio de transmissão e acabam corrompidos. O receptor detecta esse erro e descarta o pacote, enviando à origem uma solicitação de reenvio. 53 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Saiba mais Leia o artigo “Afinal, o que é Qualidade de Serviço?”, de José Mauricio Santos Pinheiro (2004) para entender um pouco mais sobre o tema. Ele está disponível no seguinte endereço: <http://www.projetoderedes.com.br/artigos/artigo_qualidade_servico. php>. Você pode ainda ler o livro Redes convergentes - entenda a evolução das redes de telecomunicações a caminho da convergência, de José Umberto Sverzut. As seções a seguir detalharão as principais aplicações consideradas na Camada de Aplicação. 3.4 WWW: a World Wide Web e o protocolo HTTP No início da década de 1990, entrou em cena a aplicação-chave da internet: a World Wide Web ou www. Ela foi considerada a terceira grande tecnologia de comunicação que transformou drasticamente a maneira como as pessoas interagem dentro e fora deseus ambientes de trabalho. O rádio e a televisão foram as duas primeiras, respectivamente. Essas, sem dúvida, trouxeram grandes mudanças às pessoas, além de inovações na forma de pensar e agir, mas têm o inconveniente de forçar o usuário a sintonizar quando o provedor disponibiliza o conteúdo. A principal característica da web é a sua capacidade de prover conteúdo sob demanda, o que revolucionou nossa maneira de interagir com os diversos conteúdos oferecidos por ela. À medida que o usuário deseja, ele acessa as informações que quiser, quando quiser, e elas estarão sempre disponíveis, diferentemente da transmissão de rádio e televisão, que o obriga a receber o conteúdo transmitido naquele canal e horário. A web é formada por diversos hiperlinks e dispositivos de busca e possui interação com páginas e sites a um baixo custo. Como grande parte das aplicações, dizemos que esta também está implementada em dois programas: um cliente e um servidor, executados em diferentes sistemas finais, e eles “conversam” pela troca de mensagens HTTP (Hypertext Transfer Protocol). Esse é o protocolo das aplicações web. A www é formada por diversas páginas web. Quase todas as páginas consistem de pelo menos uma página-base HTML e vários objetos referenciados nela. Um objeto é simplesmente um arquivo que pode ser acessado com uma única URL (Uniform Resource Locator). Por exemplo, se uma página web contiver um texto HTML e três imagens, então ela terá quatro objetos: o arquivo-base HTML e mais três imagens. O arquivo-base referencia os outros objetos na página por meio dos URLs dos objetos. 54 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Dizemos que cada URL possui dois componentes: o nome de hospedeiro do servidor, que abriga o objeto, e o nome de caminho do objeto. Por exemplo, na URL www.unip.br/algum-depto/ pic.gif, www.unip.br é o nome do hospedeiro e /algum-depto/pic.gif é o nome do caminho. O agente de usuário para www é chamado navegador (ou browser). Alguns exemplos de navegadores comuns são: MS Internet Explorer, Mozilla Firefox, Chrome, Safari, entre outros. Servidor para www se chama “servidor web”. São servidores web populares o Apache, de domínio público, e o Microsoft Internet Information Server (IIS), da gigante Microsoft. Você sabia? Participação de cada um dos navegadores no mercado Segundo a Net Market Share (Usage Share Statistics for Internet Technologies), um levantamento feito em maio de 2011 ainda aponta o Internet Explorer, da Microsoft, como o navegador mais utilizado. Veja no gráfico abaixo como o mercado de navegadores está dividido: Microsoft Internet Explorer Mozilla Firefox Google Chrome Apple Safari Opera Opera mini Outros 0,9 1,27 2,03 7,28 12,52 21,71 54,7 Figura 31 - Participação de cada um dos navegadores no mercado Como já mencionamos, o protocolo HTTP da Camada de Aplicação para web define a estrutura de troca de mensagens. Ele identifica como os clientes requisitam páginas aos servidores e como eles as transferem aos clientes. Na troca de mensagens cliente-servidor, dizemos que o cliente é o navegador que pede, recebe e exibe objetos www, enquanto o servidor web envia objetos em resposta aos pedidos recebidos dos clientes, como mostrado na figura 32: 55 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO PC executa Explorer MAC executa Safari Servidor executando WWW na UNIP Pedido http Resposta http Ped ido http Resp osta htt p Figura 32 - Pedido e resposta HTTP (KUROSE; ROSS, 2010) O protocolo HTTP usa o TCP como protocolo de transporte e segue a seguinte rotina para troca de mensagens: 1. O cliente inicia conexão TCP (cria socket) com o servidor, na porta 80 (porta padrão do HTTP). 2. O servidor aceita a conexão TCP do cliente. 3. As mensagens HTTP (mensagens do protocolo da Camada de Aplicação) são trocadas entre os navegadores (clientes HTTP) e servidores web (servidores HTTP). 4. A conexão TCP é encerrada. Dizemos que o protocolo HTTP é “sem estado”, ou seja, o servidor não mantém nenhuma informação sobre pedidos anteriores do cliente. Assim, a cada vez que um objeto é solicitado, ele o reenvia, pois é como se tivesse esquecido completamente o que fez antes. Protocolos que mantêm “estado” são complexos, pois o histórico (estado) tem que ser guardado. Caso a conexão cliente-servidor seja interrompida, suas visões do “estado” podem ser inconsistentes e devem ser reconciliadas. Dependendo da aplicação que está sendo utilizada e de que forma as requisições HTTP em uma aplicação web serão executadas em cima do protocolo TCP, o criador da aplicação pode decidir se os pares de requisição/resposta devem utilizar apenas uma conexão TCP para transferir todas as páginas web (conexão persistente) ou se as requisições devem ser enviadas por conexões TCP distintas (conexões não persistentes). Embora o HTTP utilize conexões persistentes em seu modo padrão, os clientes e os servidores podem utilizar conexões não persistentes. Cada uma tem suas vantagens e desvantagens, que entenderemos a seguir. Percorrendo as etapas de uma página web na sua transferência de um servidor para um cliente, vejamos o que acontece com as conexões não persistentes. Suponhamos que usuário digite a URL: www.unip.br/arquitetura/inicial.index, que contém texto, referências e 10 imagens jpeg: 56 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 1a. O cliente http inicia conexão TCP com o servidor http (processo), www.unip. br. A porta 80 é padrão para o servidor http. 1b. O servidor http no hospedeiro www. unip.br espera por conexão TCP na porta 80. “Aceita” a conexão, avisando ao cliente. 2. O cliente http envia mensagem de pedido de http (contendo URL) através do socket da conexão TCP. 3. O servidor http recebe mensagem de pedido, formula mensagem de resposta contendo objeto solicitado (arquitetura/inicial.index) e envia mensagem via socket. 4. O servidor http encerra conexão TCP. 5. O cliente http recebe mensagem de resposta contendo arquivo html, visualiza html. Analisando arquivo html, encontra 10 objetos jpeg referenciados. 6. Os passos 1 a 5 são repetidos para cada um dos 10 objetos jpeg. Assim, foi possível perceber que as conexões TCP foram encerradas logo após o servidor enviar o objeto, ou seja, a conexão não persiste para outros objetos. Além disso, vimos que a cada conexão são transferidas exatamente uma mensagem de requisição e uma mensagem de resposta. As conexões não persistentes utilizam a versão 1.0 do protocolo HTTP. Uma desvantagem é que cada objeto sofre partida lenta para ser transportado, já que depende de uma nova conexão TCP. Observação Embora a porta 80 seja a porta padrão dos servidores web, é possível configurar um servidor web para usar qualquer outra porta TCP. Nestes casos, torna-se necessário especificar a porta ao acessar o site. Nas conexões persistentes, o servidor mantém a conexão TCP aberta após enviar a resposta para que as próximas conexões possam ser enviadas por meio da mesma conexão. O servidor HTTP se encarrega de fechar uma conexão TCP, que não é utilizada a certo intervalo de tempo (pausa) configurável. Ao receber requisições sem interrupções, os objetossão enviados em sequência ou até mesmo em paralelo. Uma desvantagem das conexões persistentes, utilizadas a partir da versão 1.1 do protocolo HTTP, é que as conexões estabelecidas, ao serem mantidas para cada objeto solicitado, podem sobrecarregar o servidor web. Devem ser alocados buffers e conservadas algumas informações da conexão TCP tanto no lado cliente como no lado servidor. 57 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Proxy/Cache Web Em linhas gerais, toda vez que você acessa uma página web é estabelecida uma conexão TCP com o servidor hospedeiro, que envia os arquivos solicitados para seu browser e este monta a página visitada. Como você viu no texto anterior, essas conexões são do tipo persistente, que consomem recursos do servidor em questão. Agora, por exemplo, imagine uma empresa que tenha 1.000 funcionários e que todos os dias esses funcionários acessem o Google cinco vezes ao dia. Você deve conhecer a página inicial do Google e sabe que ela tem uma caixa de texto, um botão e o logotipo da empresa. Portanto, a cada nova visita de um funcionário, os servidores do Google vão estabelecer uma conexão TCP persistente e enviar esses três objetos. Até aí nenhum problema, certo? Certo. Os servidores do Google estão dimensionados para atender quantos usuários queiram acessá-los. O problema está no tráfego de dados na internet dessa empresa. Vamos calcular: cada um dos 1.000 funcionários acessando cinco vezes ao dia o site do Google, requisitando os mesmos três objetos que têm 49 Kb, dá um total, por dia, de incríveis 245.000 Kb ou 245 Mb de dados trafegados somente com a página inicial do Google. Assustador, não? Veja o volume de ocupação da banda com a mesma informação, aqueles mesmos três objetos representariam por volta de 10% do consumo de uma empresa que tivesse uma banda de 20 Mbps. Um desperdício! Para contornar esse desperdício foi criado o servidor Proxy, também conhecido por Cache Web. Em resumo, toda vez que um usuário solicita uma página web, antes do Proxy solicitar ao servidor de destino os arquivos, ele estabelece a conexão TCP e envia um código solicitando somente os nomes e datas de alteração dos arquivos da página web em questão. Depois disso, verifica se tem esses arquivos armazenados em seus registros e suas datas de modificação. Caso sejam válidos, encaminha-os aos usuários sem necessidade de tráfego na web. Lembrete Cache é mais um exemplo de aplicação cliente e servidor. Quando recebe requisições de um navegador e lhe envia respostas, é um servidor. Quando envia requisições para um servidor de origem e recebe respostas dele, é um cliente (KUROSE, 2010). 3.5 Transferência de arquivos e o FTP A transferência de arquivos é uma aplicação que existe desde 1971, quando a internet ainda era uma experiência. FTP (File Transfer Protocol) é o protocolo utilizado para transferir um arquivo de um hospedeiro a outro. 58 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Veja na figura 33 como funciona uma sessão FTP: para o usuário transferir arquivos, ao digitar no navegador o endereço FTP, ele deve fornecer uma identificação e uma senha. Assim que o servidor autorizar o usuário, ele copiará um ou mais arquivos armazenados no seu sistema de arquivos local para o sistema de arquivos remoto (ou vice-versa). Usuário na estação Sistema de arquivos local Sistema de arquivos remoto Transferência do arquivo Interface do usuário FTP Cliente FTP FTP servidor Figura 33 - Exemplo de uma sessão FTP (KUROSE; ROSS, 2010) O FTP se assemelha muito ao HTTP. A diferença notável é que o FTP utiliza duas conexões TCP paralelas, enquanto o HTTP utiliza apenas uma, como apresentado na figura 34. As duas conexões paralelas fazem uso de duas portas diferentes e servem para transporte de informações distintas: uma delas transporta apenas informações de controle, como os dados de autenticação (usuário e senha) e o diretório que se deseja manusear, enquanto a outra transporta os arquivos que serão trocados. No modelo cliente-servidor, é considerado cliente o lado que inicia a transferência (de ou para um sistema remoto) e considerado servidor o hospedeiro remoto. Conexão de controle TCP porta 21 Conexão de dados TCP porta 20 Figura 34 - Duas conexões paralelas FTP (KOVACH, 2009) Resumindo, o processo de transferência de dados FTP pode ser realizado da seguinte maneira: 1. O cliente FTP contata o servidor FTP, na porta 21, especificando o TCP como protocolo de transporte. 2. São abertas duas conexões TCP paralelas: • controle: para troca comandos, respostas entre cliente e servidor (porta 21); • dados: dados de arquivo de/para servidor (porta 20). 59 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 3. O servidor FTP mantém o “estado” em relação ao usuário: ele associa a conexão de controle à autenticação. 4. Caso o navegador seja fechado e reaberto em um intervalo curto de tempo, os dados de controle estarão mantidos, não sendo necessária nova autenticação. Lembrete O FTP utiliza o protocolo de transporte TCP nas suas transmissões. Ele utiliza as portas de número 20 e 21 para executar as conexões TCP na transferência de arquivos. 3.6 Correio eletrônico e seus protocolos A aplicação de correio eletrônico foi a primeira que usou as redes de computadores, fazendo com que as pessoas passassem a utilizá-las intensamente. Ela existe desde o início da internet e é composta de três grandes elementos: agentes de usuário, servidores de correio e protocolos. Saiba mais Assista a uma das primeiras reportagens sobre correio eletrônico que mostra que, no início dos anos 1990, mandar mensagens pela internet era coisa de aficionado de computador. Acesse <http://vimeo. com/32171111> A figura 35 mostra os elementos presentes em uma aplicação de correio eletrônico. Como falamos anteriormente, o agente de usuário desta aplicação é o leitor de correio, que serve para compor, editar e ler mensagens de correio. São exemplos de leitores de correio: Microsoft Outlook, Netscape Comunicator, Gmail, entre outros. 60 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Agente de usuário Agente de usuário Agente de usuário Agente de usuário Agente de usuário Agente de usuário Servidor de correio Servidor de correio Servidor de correio Fila de mensagens de saída SMTP SMTP SMTP Caixa de correio do usuário Figura 35 - Elementos que compõem os correios eletrônicos (KUROSE; ROSS, 2010) As mensagens de saída e chegada são armazenadas no servidor. A caixa de correio contém mensagens de chegada (ainda não lidas) para o usuário. A fila de mensagens contém mensagens de saída (a serem enviadas), e o protocolo SMTP é utilizado na comunicação entre servidores de correio para transferir mensagens de correio. Conheça! Clientes de e-mail no mercado A empresa Campaign Monitor desenvolveu um método para descobrirqual cliente de e-mail está sendo mais utilizado pelas pessoas. Para isso envia e-mails diários com imagens e, quando o cliente de e-mail solicita ao servidor da empresa a imagem, é possível detectar, via protocolo TCP, qual é esse cliente de e-mail. Essa solução é bastante inteligente, mas, como a empresa mesmo admite, gera uma distorção, inflando os clientes de e-mail que exibem imagens automaticamente por padrão, como o Outlook 2000 e o iPhone. E também reduz o número para aqueles que bloqueiam as imagens por padrão, como o Gmail e Outlook 2007. Os clientes de e-mail que não são capazes de exibir imagens, como os modelos mais antigos do Blackberry e outros dispositivos móveis, não foram considerados neste estudo. De qualquer maneira, esse é o estudo mais abrangente já feito até hoje e pode dar pistas do que está acontecendo no mercado de e-mails atual. 61 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 27,62% Outlook 16,01% iOS Devices (iPhone, iPad and iPod) 12,14% Hotmail 11,13% Apple mail 9,54% Opera 7,02% Yahoo Mail 1,84% Gmail 1,70% Windows Mail 1,25% AOL 1,21% Thunderbird Figura 36 Saiba mais Conheça a empresa Campaign Monitor e veja outros resultados de estudos estatísticos sobre a área levantados por ela. Acesse <http://www. campaignmonitor.com>. A aplicação de correio eletrônico também é uma aplicação do tipo cliente-servidor. Nesse caso, o cliente é o servidor de correio que envia mensagens e o servidor é o servidor de correio que recebe mensagens. Os protocolos dessa aplicação utilizam o protocolo TCP para a transferência confiável de mensagens do correio do cliente ao servidor, na porta 25, por meio das três fases da transferência: handshaking (cumprimento), transferência das mensagens e encerramento. Talvez você não saiba, mas o correio eletrônico surgiu antes mesmo da internet. A aplicação de e-mail foi o primeiro passo para a criação e o desenvolvimento da rede internacional de computadores. Em 1965 surgiu o primeiro sistema de troca de mensagens eletrônicas de que se tem notícia e permitia a comunicação de computadores do tipo mainframe. Segundo um relato existente, em 1969 houve a primeira troca de mensagens de correio eletrônico na rede ARPANET. A mensagem seguiu do computador do laboratório de Kleinrock na UCLA para o de Douglas Engelbart no Stanford Research Institute, passando pela rede da ARPA (Advanced Research Projects Agency). Foi o programador Ray Tomlinson que em 1971 iniciou o uso do sinal @ para separar os nomes do usuário e da máquina no endereço de correio eletrônico. Os protocolos de correio eletrônico mais importantes são os citados a seguir: 62 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 • SMTP (Simple Mail Transfer Protocol): utilizado na entrega e no armazenamento de mensagens no servidor do receptor. • Protocolos de acesso ao correio: recuperam mensagens do servidor: — POP (Post Office Protocol); — IMAP (Internet Mail Access Protocol): mais comandos que o POP, porém mais complexo com relação ao manuseio de mensagens armazenadas no servidor; — HTTP (Hypertext Transfer Protocol): apresenta mensagens recuperadas do servidor através de páginas web. Exemplos: Gmail, Hotmail, Yahoo! Mail, Webmail etc. Veja agora o que acontece quando Maria envia um e-mail para João e em que momento cada um desses protocolos são utilizados durante a transmissão: Agente de usuário de Maria Servidor de correio de João Servidor de correio de Maria SMTP SMTP POP3, IMAP ou HTTP Agente de usuário de João Figura 37 - Protocolos de correio eletrônico utilizados em cada etapa da interação (KUROSE; ROSS, 2010) 1. Maria utiliza sua interface de correio eletrônico ou agente de usuário para escrever sua mensagem. Assim, ela fornece o endereço do João, compõe uma mensagem e dá instruções ao agente de usuário para que ele possa enviá-la. Ao enviar a mensagem, o agente de usuário o faz utilizando o protocolo SMTP. 2. O agente de usuário de Maria envia a mensagem para seu servidor de correio, também através do protocolo SMTP, onde ela é colocada na fila de mensagens. 3. O lado cliente do SMTP, ou seja, que roda no servidor de correio de Maria, vê a mensagem na fila e abre uma conexão TCP para um servidor SMTP, que roda no servidor de correio de João. 4. O cliente SMTP envia a mensagem de Maria por meio da conexão TCP. 5. No servidor de correio de João, o servidor SMTP recebe a mensagem e a coloca na caixa postal de João. 6. João utiliza seu agente de usuário para ler as mensagens recebidas. 63 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Observação O correio eletrônico utiliza o protocolo TCP da Camada de Transporte para o envio de mensagens. A conexão TCP para esta aplicação utiliza a porta de número 25. Primeira mensagem de correio eletrônico Está publicada em uma reportagem no Diário Digital de Portugal a primeira mensagem de correio eletrônico enviada há mais de 40 anos: Primeira mensagem de correio electrónico enviada há quarenta anos A primeira mensagem de correio electrónico entre dois computadores (e-mail em rede) situados em locais distantes foi enviada em 29 de outubro de 1969, quase dois meses depois do primeiro nó que deu origem à Internet. O texto dessa primeira mensagem continha apenas duas letras e um ponto - “LO.”. O investigador da Universidade da Califórnia em Los Angeles (UCLA) Leonard Kleinrock queria escrever “LOGIN”, mas o sistema foi abaixo a meio da transmissão. A mensagem seguiu do computador do laboratório de Kleinrock na UCLA para o de Douglas Engelbart no Stanford Research Institute, utilizando como suporte a recém-criada rede da ARPA (Advanced Research Projects Agency), agência financiada pelo governo norte-americano. O primeiro nó de ligação entre dois computadores da Arpanet tinha sido estabelecido pouco tempo antes, em 02 de setembro de 1969, pelo que a história da Internet e do e-mail em rede se confundem. No início da década de 1960, surgiram alguns sistemas de troca de mensagens entre terminais de um mesmo computador, em tempo diferido (1961) e em tempo real (1965), mas o primeiro e-mail em rede foi transmitido apenas em 1969. Dois anos depois, em 1971, Ray Tomlinson inventou os primeiros programas para envio de e-mails em rede através da Arpanet e criou a arroba (“at”, em Inglês - @) para separar o login do utilizador do domínio do servidor. Em 1976, a rainha de Inglaterra, Isabel II, enviou o seu primeiro e-mail, e em 1978 surgiu o primeiro spam, entendido como mensagem de correio electrónico enviada para múltiplos destinatários sem consentimento destes. 64 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Quarenta anos depois, 70% dos e-mails enviados diariamente são spam, uma “praga” que acompanha o crescimento dos vírus e do marketing na internet, mas que tem sido combatida, com relativosucesso, por diversos sistemas de filtragem entretanto desenvolvidos. [...] “Pela sua formalidade, o e-mail é algo pouco apelativo para os utilizadores mais jovens. Os blogs e o Twitter ocupam um espaço menos informal”, disse à agência Lusa Libório Silva, autor do livro sobre correio electrónico mais vendido em Portugal, “e-mail”, editado em 2008. Libório Silva afirmou que o e-mail continua a ser uma ferramenta em expansão em todo o mundo, pela facilidade de utilização e pela capacidade de envio de ficheiros associados a mensagens. Libório Silva destacou como principal ruptura na história do e-mail o surgimento dos serviços de webmail, que são actualmente líderes de mercado entre utilizadores individuais, mas não nas empresas, que continuam a preferir servidores internos.1 3.7 Serviços de diretório de nomes – DNS Podemos iniciar esta seção fazendo uma nova analogia, dizendo que as pessoas possuem muitos identificadores, por exemplo, nome, número de CPF, número de identidade, número identificador nas escolas, entre outros. Um identificador pode ser mais adequado que outro, dependendo do uso, ou seja, para seu banco, você é identificado por seu número de CPF, mas, na sua escola, você é identificado por um número que o identifica como aluno. Na internet, dizemos que hospedeiros e roteadores devem ser identificados pelo nome do hospedeiro, como www.unip.com.br, www.google.com.br e www.yahoo.com.br. Esses nomes são fáceis de lembrar, por isso nós gostamos deles. Por meio desses endereços, não é possível identificar a localização desses hospedeiros na internet. Pelo final br sabemos que provavelmente esse servidor está no Brasil, mas essa é a única informação que temos. Esses nomes de hospedeiros são os mais variados, podendo ter um tamanho grande ou, inclusive, conter caracteres alfanuméricos, que seriam difíceis para os roteadores que devem encaminhar as mensagens aos hospedeiros e identificá-los através de tais nomes. Assim, roteadores não identificam hospedeiros por meio de nomes, mas sim por meio de endereços IP. Nesse momento, a única informação que devemos ter em mente é que os endereços IP possuem um formato padrão em sua versão – 4, por ser formado de um conjunto de 4 bytes. Falaremos mais detalhadamente sobre endereços IP na Unidade III. 1 Disponível em: <http://diariodigital.sapo.pt/news.asp?section_id=18&id_news=417591>. Acesso em: 27 abr. 2012. 65 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Assim, há duas maneiras de identificar os hospedeiros na internet: por meio de seu nome, como nós preferimos, e por meio de endereços IP, que é como os roteadores preferem. A fim de conciliar essas preferências surge a aplicação de serviço de diretório de nomes ou sistema de nomes de domínio (DNS – Domain Name System), que tem por objetivo traduzir os nomes dados aos hospedeiros para endereços IP. Dizemos que o DNS é uma base de dados distribuída e implementada na hierarquia de muitos servidores de nomes, como mostra o exemplo da figura 38: raiz com 200 172 64 221 21 25 62 64 100 105 250 101 comcom com org gov sp reg pr mg rpo spo br us de net Figura 38 - Hierarquia do serviço de nomes (elaborada pela autora) O protocolo da Camada de Aplicação permite que hospedeiros, roteadores e servidores de nomes se comuniquem para resolver nomes, ou seja, fazer o serviço de tradução de nome para endereço IP. Embora muitos não tenham clara essa informação, é importante salientar que o DNS é função imprescindível da internet e é implementado como protocolo de Camada de Aplicação. O DNS é um serviço que roda sobre UDP e TCP e utiliza a porta 53 (KUROSE, 2010). O DNS provê outros serviços importantes, além da tradução de nomes de hospedeiros para endereços IP. Vejamos: • Apelidos de hospedeiros: também chamado de alias (pseudônimo, em inglês), o nome do hospedeiro (também conhecido como nome canônico) pode ter mais de um apelido. Os apelidos existem para facilitar a lembrança pelo nome canônico, por serem mais fáceis de lembrar. Por exemplo, se digitarmos http://www.folha.uol.com.br ou www.folha.com.br, ambas as formas devem retornar à mesma página web. 66 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 • Apelidos de servidor de correio eletrônico: pode-se obter o nome canônico a partir do apelido, ou seja, como é adequado que endereços de e-mail sejam fáceis de ser lembrados. Assim, o DNS pode ser chamado por uma aplicação de correio para obter o nome canônico a partir de um apelido fornecido, assim posso enviar uma mensagem para maria@hotmail.com, mas na verdade o nome canônico é maria@relay1.hotmail.com. Diversos registros de nomes podem ter o mesmo apelido. • Distribuição de carga: realizada entre servidores replicados, trata-se de um conjunto de endereços IP associado a um único nome canônico. As respostas do DNS contêm o conjunto de endereços (é feito um rodízio na ordem dos endereços) para sites movimentados que necessitam distribuir as requisições dos clientes aos servidores replicados, diminuindo o tráfego de informações. O DNS é um sistema complexo, mas neste livro-texto mencionaremos apenas os aspectos fundamentais de sua operação. Observação TCP e UDP são protocolos de Camada de Transporte e serão detalhados mais adiante. Algumas aplicações, como é o caso do DNS, utilizam ambos para executar seus serviços. Um exemplo pode ser visualizado na figura 39: Servidores DNS raiz Servidores DNS com Servidores DNS org Servidores DNS edu Servidores DNS yahoo.com Servidores DNS amazon.com Servidores DNS pbs.org Servidores DNS poly.edu Servidores DNS umass.edu Figura 39 - Servidores de DNS (KUROSE; ROSS, 2010) Antigamente, os hospedeiros e seus endereços eram armazenados somente em um servidor e em um único arquivo hosts.txt, que centralizava todas as informações para que as traduções fossem executadas. Com as informações concentradas em um único lugar, percebeu-se que era um único ponto de falha e que, se houvesse algum problema com o servidor de nomes, toda a internet ficaria sem comunicação. Além disso, esse formato fazia com que o volume de tráfego se tornasse muito grande, pois era necessário manipular todas as consultas DNS de milhões de hospedeiros. Com uma única base de dados, ela jamais estaria perto de todos os clientes que fizessem consultas e eventualmente precisariam viajar desnecessariamente até o outro lado do globo para que a tradução fosse executada. 67 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO A manutenção dessa base de dados centralizada também não era nada simples, já que atualizações eram necessárias para novas entradas de dados na base. Com a descrição desse cenário, torna-se óbvio que a centralização do DNS em uma única base de dados não é escalável. Saiba mais Veja uma animação sobre o funcionamento desta aplicação no DNS Explained – CENTR. Acesse diretamente o link: <http://www.centr.org/main/6200-CTR/5418-CTR.html>. Atualmente, nenhum servidor mantém todos os mapeamentos de nomes para um endereço IP. Existe uma base de dados distribuída e hierárquica ao redor de todo o mundo. Veja os tipos deservidor-padrão considerados: • Servidor de nomes local: cada provedor ou empresa tem um servidor de nomes local (padrão). O pedido DNS de hospedeiro vai primeiro ao servidor de nomes local. • Servidor de nomes oficial: para hospedeiros, guarda o nome e o endereço IP deles e pode realizar tradução nome/endereço para esse nome. • Servidores de domínio de alto nível (Top-Level Domain – TLD): responsáveis por domínios de alto nível, genéricos e de países, como com, org, net, edu, gov, br, uk, ca etc. • Servidores de nomes com autoridade: responsáveis por domínios das organizações e domínios de segundo nível. Kurose (2010) mostra um exemplo claro das interações entre os servidores DNS, no momento de uma requisição: Suponha que a Universidade de Massachusetts tenha um servidor de nomes para a universidade, denominado dns.umass.edu. Imagine também que cada um dos departamentos da universidade tenha seu próprio servidor de nomes e que cada servidor de nomes departamental seja um servidor de nomes com autoridade para todos os hospedeiros do departamento. Nesse caso, quando o servidor de nomes intermediário dns.umass.edu receber uma consulta para um hospedeiro cujo nome termina com cs.umass. edu, ele retornará a dns.poly.edu o endereço IP de dns.cs.umass.edu, que tem autoridade para todos os nomes de hospedeiro que terminam com cs.umass.edu. Então, o servidor de nomes local dns.poly.edu enviará a consulta ao servidor de nomes com autoridade, que retornará o mapeamento desejado para o servidor de nomes local e que, por sua vez, o repassará ao hospedeiro requisitante. Nesse caso, serão enviadas 10 mensagens DNS no total. A figura 40 ilustra esse exemplo: 68 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Servidor de nomes raiz gaia.cs.umass.edu Servidor de nomes local dns.poly.edu Hospedeiro solicitante dns.poly.edu Servidor de nomes com autoridade dns.cs.umass.edu Servidor de nomes TLD 2 3 4 5 6 7 1 8 Figura 40 - Interação de vários servidores de DNS (KUROSE; ROSS, 2010) O espaço de nomes do DNS é dividido em zonas não superpostas (KUROSE, 2010): • zona que inclui os hospedeiros administrados diretamente por um servidor; • zona que contém uma parte da árvore e servidores de nomes que armazenam informações referentes à zona; • zona que contém um servidor principal (obtém suas informações a partir do disco) e servidores secundários (obtém suas informações a partir do servidor principal). Lembrete Os servidores de diretórios responsáveis por prover informações como nomes e endereços das máquinas são normalmente chamados servidores de nomes. Na internet, o serviço de nomes usados é o DNS, que apresenta 69 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO uma arquitetura cliente/servidor, podendo envolver vários servidores DNS na resposta a uma consulta. Em 2009, foram computados 13 servidores DNS raiz no mundo todo e sem eles a internet não funcionaria. Veja como estão distribuídos na figura 39. Destes 13, repare na concentração geográfica dos servidores nos Estados Unidos. Dez estão localizados por lá, um na Ásia e dois na Europa. a NSI Herndon, VA c PSInet Herndon, VA d U Maryland College Park, MD n ARL Aberdeen, MD j NSI (TBD) Herndon, VA e NASA Mt View, CA f Internet Software C. Palo Alto, CA b USC-ISI Marina del Rey, CA i ICANN Marina del Rey, CA k RIPE London i NORDUnet Stockholm m WIDE Tokyo Figura 41 - Servidores DNS raiz em 2009 - nome, organização e localização (KUROSE; ROSS, 2010) Para aumentar a base desses servidores, foram criadas réplicas localizadas por todo o mundo, inclusive no Brasil. O site oficial dos servidores DNS raiz disponibiliza um mapa com os servidores DNS distribuídos pelo mundo. A figura 42 foi retirada do site <http://www.root-servers.org> e teve sua última atualização em 2009. Figura 42 - Servidores DNS em 2009 70 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 DNS – um pouco de história O sistema de distribuição de nomes de domínio teve início em 1984 e com ele os nomes de hospedeiros residentes em um banco de dados puderam ser distribuídos entre servidores múltiplos, diminuindo assim a carga em qualquer servidor que provê administração no sistema de nomeação de domínios. A implementação do DNS-Berkeley foi desenvolvida originalmente para o sistema operacional BSD UNIX 4.3. A implementação do Servidor de DNS Microsoft se tornou parte do sistema operacional Windows NT na versão Server 4.0. O DNS passou a ser o serviço de resolução de nomes padrão a partir do Windows 2000 Server, como a maioria das implementações de DNS teve suas raízes nas RFCs 882 e 883, e foi atualizado nas RFCs 1034 e 1035.2 4 CAMADA DE APRESENTAÇÃO E SESSÃO 4.1 Camada de Apresentação Também chamada de Camada de Tradução, essa camada é a segunda camada mais alta da pilha de protocolos, destacada na figura 43. Ela converte o formato do dado recebido pela Camada de Aplicação em um formato comum a ser usado na transmissão desse dado, ou seja, um formato entendido pelo protocolo usado. Ela é responsável pela transformação e formatação de dados e pela sintaxe de seleção. 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 43 - Camada de Apresentação do modelo OSI (KOVACH, 2009) 4.1.1 Principais funções Para facilitar o entendimento, um exemplo comum da Camada de Apresentação é a compressão de dados e criptografia. 2 Fonte: Disponível em: <http://www.inteligensis.pt/bc/bc.htm>. Acesso em: 24 abr. 2012. 71 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO A compressão de dados pega os dados recebidos da camada 7 e os comprime (como se fosse um compactador comumente encontrado em PCs, como o Zip ou o Arj), e a camada 6 do dispositivo receptor fica responsável por descompactar esses dados. Dessa forma, a transmissão dos dados torna-se mais rápida, já que haverá menos dados a serem transmitidos: os dados recebidos da camada 7 foram “encolhidos” e enviados à camada 5.3 A Camada de Apresentação pode ainda ter outros usos, como a conversão do padrão de caracteres (código de página), quando, por exemplo, o dispositivo transmissor usa um padrão diferente do ASCII. Exemplos de diferenças entre formatos de dados incluem ordem de bytes (poderia ser lido da esquerda para a direita ou vice-versa) e conjunto de caracteres (caracteres ASCII ou conjunto de caracteres EBCDIC, da IBM), bem como diferenças na representação numérica. Para aumentar a segurança, é possível utilizar algum esquema de criptografia nesse nível, sendo que os dados só serão decodificados na camada 6 do dispositivo receptor. Assim, no dispositivo de origem, a mensagem é enviada criptografada, ou seja, os dados da informação original são modificados em um formato para enviar. A formatação de dados serve para que o nó receptor entenda o que o nó emissor envia. A figura 44 ilustra o momento em que os dados são encriptados na origem, ou seja, codificados para seremtransportados através da nuvem sem correr o risco de serem identificados caso haja uma interceptação no meio. Apenas no nível da apresentação do destino é que a informação é decriptada. Rede Dado encriptadoDado encriptado Dado decriptado Aplicação Apresentação Sessão Transporte Rede Enlace Física Aplicação Apresentação Sessão Transporte Rede Enlace Física Figura 44 - Exemplo de criptografia na Camada de Apresentação (elaborada pela autora) 4.2 Camada de Sessão A Camada de Sessão é uma das camadas superiores do modelo OSI e está situada logo abaixo da Camada de Apresentação, destacada na figura 45. Essa camada foi criada pela ISO, não sendo encontrada em redes de computadores que antecedem esse modelo. O principal objetivo da Camada de Sessão é 3 Disponível em: <http://www.lucalm.hpg.ig.com.br/osi.htm>. Acesso em: 27 abr. 2012. 72 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 oferecer às camadas de apresentação cooperantes meios de organizar e sincronizar sua comunicação. Ela permite que duas aplicações em computadores diferentes estabeleçam uma sessão de comunicação. 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 45 - Camada de Sessão do modelo OSI (KOVACH, 2009) 4.2.1 Visão geral Como toda estrutura de camadas, a Camada de Sessão oferece seus serviços à Camada de Transporte, que fará a quebra do datagrama, incluindo uma marcação lógica ao longo da transmissão para identificar os blocos já recebidos, e solicitará retransmissão somente das partes necessárias. É na Camada de Sessão que as aplicações definem como será feita a transmissão dos dados e adiciona a eles marcações durante a transmissão. Isso porque, se houver em algum momento falha na rede, os computadores que estão no processo de comunicação reiniciam a transmissão dos dados considerando a última marcação recebida pelo computador receptor. Os protocolos de Camada de Sessão tratam de sincronizações (checkpoints) na transferência de arquivos.4 4.2.2 Principais serviços Os principais serviços oferecidos por essa camada consideram: • Intercâmbio de dados: atividade responsável pelo estabelecimento da conexão, troca de dados e fechamento da conexão com a outra ponta; • Gerenciamento de diálogos: através dos chamados tokens é possível negociar a troca de dados, sincronização dos dados e a liberação da conexão durante a sessão. Os tokens são os responsáveis por “ter a vez de falar”. Assim, a máquina que estiver com o token é que poderá transmitir naquele momento; • Sincronização: quando há interrupção na rede, uma forma de retornar ao ponto onde parou é através dos chamados “pontos de sincronização” nos diálogos. Os pontos 4 Disponível em: <http://www.projetoderedes.com.br/artigos/artigo_modelo_osi.php>. Acesso em: 27 abr. 2012. 73 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO de sincronização são marcações em dois níveis, para permitir retornar com maior precisão; • Gerenciamento de atividades: divide as mensagens no nível da aplicação em unidades lógicas menores e independentes, chamadas atividades; • Relatório de exceções: permite retomar as ações executadas no nível de sessão por meio de relatórios que detalham os problemas acontecidos com mensagens que retornaram. Como cada camada oferece seus serviços para a camada diretamente acima, a Camada de Sessão considera o chamado Ponto de Acesso aos Serviços da Sessão (PASS), que permite a utilização dos seus serviços pela Camada de Apresentação. Intercâmbio de dados Os dados no nível da sessão devem ser organizados para o estabelecimento da comunicação e transmissão adequada. Assim, utiliza o chamado Intercâmbio de Dados nessa ação, que envolve três fases: estabelecimento, utilização e liberação. O estabelecimento de sessão é feito por meio de um pedido de conexão com a camada de transporte. Envolve a negociação entre os usuários e os diversos parâmetros da conexão. Alguns desses parâmetros são pertinentes à conexão de transporte e são simplesmente passados para essa conexão sem qualquer modificação.5 A liberação pode ser feita de duas formas na Camada de Sessão: • De forma abrupta: análoga à desconexão na Camada de Transporte e, uma vez emitida, a conexão não recebe mais nenhum dado. É utilizada para abortar conexões. • Disciplinada: utiliza um handshake completo: pedido, indicação, resposta e confirmação. Essa forma de liberação pode aceitar mensagens até que uma confirmação seja enviada. Gerenciamento de diálogos Existem muitas situações em que o software da camada superior está estruturado de forma a esperar que os usuários se revezem (comunicação half-duplex). Para tal, foram introduzidos controles para determinar de quem é a vez de transmitir. O gerenciamento de diálogos foi implementado por meio do uso de tokens de dados. Assim, ao se estabelecer uma sessão, pode ser utilizado um parâmetro que indique o modo (half-duplex) e outro parâmetro que diga qual dos lados recebe inicialmente o token. Somente o usuário que está com o token pode transmitir, enviando o token para o outro usuário assim que encerrar sua transmissão. 5 Disponível em: <http://penta2.ufrgs.br/rc952/trab2/sessao2.html>. Acesso em: 27 abr. 2012. 74 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Sincronização A sincronização é utilizada para devolver às entidades na Camada de Sessão um estado conhecido. Isso pode ser necessário no caso de ocorrerem erros ou divergências. Pode parecer desnecessário, uma vez que a Camada de Transporte cuida dos erros de comunicação, porém podem ocorrer erros na camada superior.6 A informação na Camada de Sessão pode ser dividida em páginas. Essas páginas podem ser separadas por pontos de sincronização. Se ocorrer algum problema, é possível reiniciar a partir de um ponto de sincronização anterior (ressincronização). Quando essa ressincronização ocorre, o salvamento de mensagens e a retransmissão subsequente ocorrem acima da Camada de Sessão. Existem dois tipos de pontos de sincronização: os principais, que delimitam partes logicamente significativas da aplicação, chamadas unidades de diálogo, e outros pontos de sincronização secundários. Os pontos de sincronização principais são subdivididos em vários pontos de sincronização secundários. Quando ocorre a interrupção e a necessidade de ressincronização, retorna-se até o ponto de sincronização principal mais recente ou a um ponto de sincronização secundário, desde que este não tenha sido precedido de um ponto principal. Para a fixação de pontos de sincronização, são utilizados tokens. Existem dois tokens independentes para o ponto principal e o secundário. Esses tokens são distintos entre si e diferentes também dos utilizados para controle de dados na comunicação half-duplex. Gerenciamento de atividades É utilizado para permitir que o usuário divida o fluxo de mensagens em unidades lógicas (atividades), que é completamente independente de outra subsequente ou anterior. O usuário determina o que deve constituir cada atividade (e não a Camada de Sessão). Tudo o que a Camada de Sessão faz é transmitir para o receptor as indicações de início, finalização, retomada, interrupçãoou descarte de uma atividade. Porém, a Camada de Sessão não sabe quando as solicitações de atividades são feitas e como são as reações do receptor. O gerenciamento de atividades é a forma principal de se estruturar uma sessão. Assim, para que não ocorram pedidos simultâneos de início de atividades, todo gerenciamento é controlado por um token (o mesmo utilizado para pontos de sincronização principal), que pode ser passado e solicitado de maneira independente de dados e de tokens de sincronização secundários. A ISO concluiu que, se um usuário iniciar uma atividade enquanto o outro estiver fazendo uma sincronização secundária, podem ocorrer problemas. Para solucionar isso, 6 Disponível em <http://penta2.ufrgs.br/rc952/trab2/sessao2.html>. Acesso em: 27 abr. 2012. 75 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO antes que uma atividade ou operação de sincronização seja iniciada, o usuário deve reter os tokens de atividade, de sincronização secundária e de dados. Outra questão importante é a relação entre as atividades e os pontos de sincronização. Cada vez que é iniciada uma nova atividade, os números de séries dos pontos de sincronização são reinicializados e é criado um ponto de sincronização principal. Podem ser criados pontos de sincronizações adicionais, secundários ou não, dentro de atividades. Uma vez que uma atividade é iniciada, se ocorrer uma ressincronização, não é possível retornar para uma atividade anterior. Relatório de exceções Esse serviço é utilizado para que sejam relatados erros inesperados. Se o usuário tiver algum problema, ele pode relatá-lo ao seu parceiro, explicando o que aconteceu. O relatório de exceções não se aplica apenas a erros detectados pelo usuário, mas também para problemas internos na Camada de Sessão ou problemas relatados pelas camadas inferiores. Porém, a decisão da ação que deve ser tomada é sempre feita pelo usuário.7 Resumo Essa unidade teve foco nas camadas mais altas do Modelo OSI. A Camada de Aplicação é responsável pela interface entre o protocolo de comunicação e o aplicativo que está sendo executado pelo usuário final. Devido às diversas necessidades de aplicações existentes, são inúmeros os protocolos que residem nesta camada. Embora os protocolos sejam muito importantes neste nível, é importante lembrar que eles são apenas uma parte da aplicação de rede. Dizemos que a comunicação entre duas aplicações que estão distribuídas são possíveis graças aos processos que rodam na aplicação de origem e na aplicação de destino, através de suas portas, ou APIs. Diversas aplicações são do tipo cliente-servidor. Intitulamos cliente a aplicação que “fala primeiro” e servidor aquele que provê serviço ao cliente que faz a solicitação. Algumas aplicações podem, inclusive, implementar ao mesmo tempo o lado cliente e o lado servidor, como é o caso do correio eletrônico. 7 Disponível em: <http://penta2.ufrgs.br/rc952/trab2/sessao2.html>. Acesso em: 27 abr. 2012. 76 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 Alguns parâmetros são importantes para analisar qual protocolo de transporte será utilizado durante e implementação da aplicação. São eles: perda de dados, largura de banda e sensibilidade temporal. Conhecemos algumas das aplicações típicas de rede e seus respectivos protocolos: a World Wide Web, com o protocolo http; transferência de arquivos, com o FTP; correio eletrônico, com o SMTP, POP, IMAP e http, e o serviço de diretório de nomes, com o DNS. A www tem sua grande importância por ter revolucionado a forma de pensar das pessoas quando entrega conteúdo sob demanda. O protocolo responsável pelas aplicações web é o HTTP e o agente de usuário aqui é o navegador. O HTTP utiliza conexões do tipo cliente-servidor através do protocolo TCP de transporte na porta 80. Vimos que a versão mais atual o protocolo HTTP é mais robusta que sua versão inicial, que utilizava uma conexão TCP a cada vez que precisava carregar um objeto nas páginas web. A aplicação de transferência de arquivos tem sua importância por ser uma necessidade antiga e que nos acompanha até hoje. O protocolo que rege esta aplicação é o FTP, que também usa o TCP no estabelecimento das conexões com o servidor. A aplicação utiliza duas portas distintas para a transmissão das informações: as portas 20 e 21, pois assim reserva uma exclusiva para transmitir os dados enquanto a outra lida com as operações de controle. Aqui consideramos o lado cliente o que inicia a transferência e o lado servidor o que hospeda os arquivos, remotamente. A aplicação de correio eletrônico é a mais antiga das aplicações das redes de computadores. Ela utiliza protocolos diferentes, dependendo da ação que é executada. Os protocolos mais conhecidos são o SMTP, POP3, IMAP e o próprio HTTP, quando se trata de correio web. Os elementos importantes que não podem ser esquecidos são: fila de mensagens de saída, servidores de correio, caixa de correio do usuário e os agentes de usuário que, neste caso, são os leitores de correio. Esta aplicação, com o protocolo SMTP, utiliza a porta de número 25. O serviço de diretório de nomes serve para que os roteadores possam identificar os nomes que são digitados pelos usuários quando acessam páginas da internet. O protocolo utilizado é o DNS, que é o responsável por converter nomes por endereços IP. Vimos que o DNS é formado por uma grande estrutura hierárquica e distribuída para ser eficiente no processo de tradução. Para isso, alguns tipos de servidores são considerados: servidores de nomes local, servidores de nome oficial, servidores de domínio de alto nível e servidores de nomes com autoridade. 77 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Dentre os serviços que o DNS provê estão incluídos: apelidos de hospedeiros, apelidos de servidor de correio eletrônico e distribuição de carga. O DNS se apoia tanto no TCP como no UDP, como protocolos de Camada de Transporte, e utiliza a porta 53. A Camada de Apresentação é responsável pela tradução e conversão do formato recebido pela Camada de Aplicação. Dentre os exemplos de aplicações que fazem uso da Camada de Apresentação estão criptografia, compressão dos dados e formato do padrão de caracteres. A Camada de Sessão é responsável especialmente por oferecer às camadas de apresentação, ou diretamente à aplicação, formas de organizar e sincronizar a comunicação, estabelecendo sessões. Para isso ela trabalha com marcações e sincronismos que permite garantir o retorno da aplicação do ponto onde parou, caso alguma interrupção na rede tenha acontecido. Dentre os principais serviços que ela executa, destacam-se: intercâmbio de dados, gerenciamento de diálogos, sincronização, gerenciamento de atividades e relatório de exceções. Exercícios Questão 1. O que é o jitter na comunicação? A) Variação do atraso. B) Teste de ruído. C) Nível de serviço. D) Serviço diferenciado. E) Melhor esforço. Resposta correta: alternativa A. Análise das alternativas: A) Alternativa correta. Justificativa: jitter é o nome dado à variação do atraso na comunicação. Atraso é considerado em geral um problema para muitas aplicações. Entretanto, a variação doatraso, ou jitter, em geral é pior, pois reduz a qualidade do serviço (QoS) na transmissão. 78 Unidade II Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 -| |- 2 ª R ev isã o Su el i - C or re çã o Fa bi o 28 /0 5/ 12 B) Alternativa incorreta. Justificativa: teste de ruído é a verificação do perfil de inconsistência do sinal. C) Alternativa incorreta. Justificativa: nível de serviço (service level) é o que define o nível de exigência para a capacidade de uma rede. D) Alternativa incorreta. Justificativa: serviço diferenciado (diferencia ted service ou soft QoS) que permite definir níveis de prioridade num caminho predeterminado na nuvem, sem contudo fornecer uma garantia estrita, já que não há reserva de recursos, e sim priorização. E) Alternativa incorreta. Justificativa: melhor esforço (best effort, em inglês) não fornece nenhuma diferenciação entre as várias redes e, por consequência, não permite nenhuma garantia, já que não se sabe qual será o seu caminho na nuvem. Este nível de serviço é também chamado lack of QoS. Questão 2. (Forouzan, Behrouz A. Comunicação de dados e redes de computadores) Qual é protocolo projetado para fornecer serviços de segurança e de compressão de dados gerados na Camada de Aplicação? A) SSL. B) AS. C) SADB. D) SPI. E) SAR. Resolução desta questão na plataforma. 79 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Unidade III Esta unidade tem como principal objetivo apresentar as camadas, sem dúvida as mais importantes, que devem ser largamente entendidas pelo profissional da área de tecnologia da informação. Isso porque essa unidade apresenta as camadas que são responsáveis pela comunicação fim a fim nas redes de computadores (Camada de Transporte) e detalha a maneira com que as mensagens são encaminhadas através das redes, em todo seu percurso, até chegar ao destino final (Camada de Rede). 5 CAMADA DE TRANSPORTE A Camada de Transporte, camada central da pilha de protocolos (figura 46), desempenha o papel fundamental de fornecer serviços de comunicação diretamente aos processos de aplicação, que rodam em hospedeiros diferentes. 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 46 - Camada de Transporte do modelo OSI (KOVACH, 2009) 5.1 Serviços de transporte Agora vamos entender o funcionamento da Camada de Transporte e sua relação com a Camada de Rede que está logo abaixo dela. Você deve se lembrar daquele exemplo que usamos comparando as redes aos serviços de correio. Vamos agora aprofundar um pouco mais. É muito comum a confusão entre as funções pertinentes à Camada de Transporte e as pertinentes à Camada de Rede. Como falamos, a Camada de Transporte estabelece comunicação lógica entre processos em hospedeiros diferentes. Já a Camada de Rede fornece comunicação lógica entre os hospedeiros. Para entender melhor, vamos ilustrar com uma história de amor entre João e Maria. João era um jovem loucamente apaixonado por Maria. Ele morava em Florianópolis e ela, em São Paulo. Eles se conheceram quando ela foi passar férias na casa de uma de suas tias. Durante as férias, João nunca teve coragem de convidar Maria para um cinema e ela acabou indo embora sem que ele tivesse se declarado a ela. 80 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Depois disso, arrependido, João passou a enviar uma carta para sua amada todas as semanas (pobre João, não tinha MSN nessa nossa história). Sempre com o mesmo pedido, que Maria aceitasse se encontrar com ele. Ela nunca respondia a seus lamentos. No edifício onde João morava, o correio passava toda sexta-feira para recolher as correspondências dos moradores e deixar outras. José, o porteiro no edifício, era o responsável por recolher as cartas dos moradores, entregá-las ao correio e por receber as cartas do carteiro e distribuí-las em cada um dos apartamentos. José era um porteiro que fazia o seu trabalho, que era distribuir as cartas aos apartamentos e entregar ao correio as cartas dos moradores. João passou meses nesse sofrimento, mandando cartas para seu amor, e nunca recebeu qualquer resposta. Estava quase desistindo. Foi quando surgiu Carlos na história. Carlos se chamava na verdade Teófilo Carlos Prates, mas gostava de ser chamado de Carlos mesmo. Isso aconteceu em uma das férias do José. Carlos passou a ser o responsável pela entrega e recepção das cartas no prédio de João. Mas ele era um porteiro e tanto e tomava todo o cuidado para garantir que as cartas haviam sido entregues aos seus destinos. Perguntava ao carteiro todas as vezes se tudo tinha corrido bem. Logo ficou sabendo que as cartas de Carlos não estavam sendo entregues à sua amada. O carteiro contou que o endereço tinha um erro e que os envelopes estavam sendo descartados. Carlos correu para avisar João, que não sabia se ficava triste ou feliz com a novidade. Enquanto estava na dúvida, correu na casa da tia da Maria e confirmou o endereço. Ele tinha anotado errado! Imediatamente escreveu uma nova carta para Maria e recomendou que Carlos fosse o responsável por encaminhá-la ao correio. Meu amado João, Há meses venho esperando essa sua carta, sonhando com o dia em que poderia lhe dizer, meu amor, que essa nossa história, na verdade, não passa de uma metáfora para explicar o funcionamento dos protocolos de transporte UDP (José) e TCP (Carlos). Maria Agora vamos ilustrar nossa história falando como acontece no ambiente das redes de computadores. O processo se inicia com o preparo de sua mensagem na Camada de Aplicação, que em nossa história foi representada pelas cartas de João, para ser enviada à rede através da API, que cumpre as regras de envio. Esse pacote, ainda da Camada de Aplicação, é enviado para a Camada de Transporte, representada pelos porteiros do prédio de João, José e Carlos, como mostra a figura 47: 81 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Figura 47 - Mensagem sendo enviada à Camada de Transporte (elaborada pela autora) A Camada de Transporte é responsável por adicionar o seu cabeçalho. Dependendo do serviço solicitado, adiciona o cabeçalho UDP ou TCP. Na nossa história, José pode ser representado pelo protocolo UDP, que não garantia a entrega das cartas, enquanto Carlos, pelo TCP, que tomava todo cuidado para garantir as entregas. Em seguida, é direcionado à Camada de Rede, representada pelo correio em nossa história e ilustrada na figura 48: Figura 48 - O protocolo de transporte encaminhando a mensagem à Camada de Rede (elaborada pela autora) A Camada de Rede é responsável por encaminhar os pacotes ao seu destino e lá entregá- los à Camada de Transporte. Em nossa história podemos representá-la pelo correio entregando a mensagem ao porteiro do prédio de Maria, quando o endereço não tinha mais erros. Como vimos, a Camada de Rede (ou correio) não se preocupa com as mensagens endereçadas erradas. Se ela não encontra o destino, simplesmente descarta sem nem mesmo enviar qualquer tipo de aviso ao remetente. A figura 49 mostra a mensagem chegando na Camada de Transporte do destinatário: 82 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Figura 49 - A Camada de Rede entregando a mensagem à camada de transporte, no destino (elaborada pela autora) No destino, a Camada de Transporte executa suas funções e remove oscabeçalhos, entregando a mensagem à Camada de Aplicação. Em nossa história é representada finalmente pelo recebimento da carta de João à Maria. A figura 50 ilustra essa entrega da Camada de Transporte no número de porta correspondente à aplicação de origem, na Camada de Aplicação de destino: Figura 50 - A Camada de Transporte entregando a mensagem à Camada de Aplicação, no destino (elaborada pela autora) E assim a aplicação distribuída na rede é executada no sistema final do destino. Detalhando um pouco mais como todo o processo da Camada de Transporte se dá, na origem, ela converte as mensagens que recebe de um processo de aplicação remetente em pacotes de Camada de Transporte (que, como vimos, chamamos neste nível de segmentos). Isso é possível, pois as mensagens que vêm da Camada de Aplicação podem ser fragmentadas em pedaços menores e, adicionado a cada pedaço, um cabeçalho da Camada de Transporte para criar o segmento dessa camada. A Camada de Transporte é também responsável pela qualidade na entrega e recebimento dos dados. No destino, depois de os dados já estarem endereçados na Camada de Rede, é hora de começar o transporte dos mesmos. A Camada de Transporte é que gerencia esse processo. Nesse 83 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO momento, vale destacar que, para assegurar, de maneira confiável, o sucesso no transporte dos dados, é considerado um serviço que atua de forma interativa chamado QoS – Qualidade de Serviço (Quality of Service). A figura 51 traz uma visão dos sistemas finais nas duas pontas. A aplicação origem entrega a mensagem para o protocolo da Camada de Transporte, e o protocolo da Camada de Transporte entrega a mensagem para o protocolo de rede, que no destino entrega-a ao protocolo de transporte e, consequentemente, à aplicação de destino. A A T T IP IP E E F F Figura 51 - As operações da Camada de Transporte (KOVACH, 2009) Se considerarmos a rede vista pela aplicação, é como se a comunicação entre as camadas de transporte na origem e no destino fosse direta, sem passar pelas demais camadas abaixo, como está representado na figura 52: A A T T Figura 52 - A rede vista pela aplicação (KOVACH, 2009) Na Camada de Transporte, os protocolos proveem comunicação lógica, e não física, entre processos de aplicação, executando em hospedeiros diferentes. Pode haver mais de um protocolo de Camada de Transporte disponível para aplicações de rede, mas os protocolos de transporte executam em sistemas finais, e tudo se passa como se os hospedeiros estivessem conectados diretamente, como mostra a figura 53: 84 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Aplicação Transporte Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Aplicação Transporte Rede Enlace Física Rede Enlace Física Transporte lógico fim a fim Figura 53 - Elementos que compõem os correios eletrônicos (KUROSE; ROSS, 2010) 5.1.1 A origem e o destino das mensagens A identificação das aplicações de destino, que devem receber as mensagens na Camada de Transporte, é feita por meio de processos de aplicação, ou seja, a comunicação lógica é feita entre processos. Como vimos anteriormente, processo é um programa que está rodando em uma determinada máquina. Os processos são identificados por meio de portas (números de 16 bits). Esses números são conhecidos como portas de protocolo. Antes de fazer uma comunicação, as aplicações devem ser identificadas por um número, isto é, devem se associar a um número de porta. Na origem, somente após se associar a um número as aplicações passam a ter condições de solicitar serviços da Camada de Transporte. O sistema operacional local fornece uma interface por meio da qual os processos podem se associar a uma porta. A figura 54 representa as portas numeradas associadas a cada uma das aplicações correspondentes entre os níveis de aplicação e transporte, já que a aplicação entrega ao protocolo de transporte, dependendo do número de porta. Repare que a porta serve para identificar a aplicação em execução: 85 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO FTP FTP TCP TCPUDP UDP 21 2180 8053 535060 5060 HTTP HTTPSIP SIP IP IP DNS DNS = Porta Aplicação Transporte Rede Figura 54 - Elementos que compõem os correios eletrônicos (KOVACH, 2009) Lembrete Lembre-se do processo de encapsulamento e desencapsulamento, que permite a identificação das aplicações no destino por meio do cabeçalho correspondente à camada. Existem dois tipos de portas: as estáticas e as dinâmicas. Portas estáticas ou conhecidas são portas associadas a processos que fornecem serviços (programas servidores) e que, normalmente, não mudam com o tempo. Por exemplo, o servidor SMTP está sempre associado à porta 25. Portas dinâmicas são portas associadas a processos que solicitam serviços a servidores (programas clientes) e são normalmente assinaladas dinamicamente pelo sistema operacional, ou seja, mudam a cada execução do programa. Portas com faixas de 0 a 1023 são chamadas de portas conhecidas, ou seja, estão associadas a uma aplicação comum, conhecida. Acima de 1023 são chamadas portas altas e é possível associá-las a uma aplicação desconhecida. Alguns exemplos de portas baixas conhecidas estão na Tabela 1: Tabela 4 - Exemplos de portas baixas conhecidas Protocolo Número da porta FTP 21/TCP Telnet 23/TCP SMTP 25/TCP BOOTP 67/UDP HFTP 69/UDP HTTP 80/TCP HOSTNAME 101/TCP 86 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 POP3 110/TCP NTP 123/UDP SNMP 161/UDP BGP 179/TCP IRC 194/TCP IMAP 220/TCP, UDP Na entrega da mensagem no destino, a Camada de Transporte é responsável por examinar os campos que contêm a identificação da porta que deverá ser a receptora da mensagem. A tarefa de entregar os dados contidos em um segmento da Camada de Transporte à porta correta é denominada demultiplexação. Para que a demultiplexação aconteça dessa forma, é certo que na origem as informações provenientes das diversas portas foram reunidas em um único segmento para passarem à Camada de Rede e serem transmitidas ao destino. A esse trabalho de reunir diversas informações em um único segmento denominamos multiplexação. 5.2 Protocolos de transporte Cada aplicação da internet usa pelo menos um protocolo da Camada de Transporte para enviar e receber dados. São dois os principais protocolos de Camada de Transporte: TCP (Transmission Control Program) e UDP (User Datagram Protocol). Veremos que, embora tenham o mesmo objetivo, tais protocolos possuem características muito diferentes entre si, e a escolha de associação com as aplicações depende das características que se esperam da aplicação. Tabela 5 - Aplicações populares da internet e seus protocolos de transporte Aplicação Protocolo de Camada de Aplicação Protocolo de Camada de Transporte Correio eletrônico SMTP TCP Acesso a terminal remoto Telnet TCP Web HTTP TCP Transferência de arquivo FTP TCP Recepção de multimídia Tipicamente proprietária UDP ou TCP Telefonia por internet Tipicamente proprietária UDP ou TCP Gerenciamento de rede SNMP Tipicamente UDP Protocolo de roteamento RIP Tipicamente UDP Tradução de nome DNS Tipicamente UDP 5.2.1 O protocolo UDP O UDP (User Datagram Protocol) é um protocolo da Camada de Transporte que forneceum serviço de entrega rápida aos protocolos de aplicação e é considerado um protocolo de transporte da internet mínimo, “sem frescura”. Ele executa o serviço de “melhor esforço”, ou seja, 87 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO segmentos UDP podem ser perdidos ou entregues à aplicação fora de ordem. Não existe nenhum tipo de configuração inicial entre remetente e receptor, e os segmentos são tratados de forma independente (sem conexão). Destaca-se por ser um protocolo não orientado à conexão, ou seja, eliminando o estabelecimento de conexão, torna-se rápido, mas possui transferência não confiável de dados. Além disso, não possui controle de fluxo e de congestionamento, ou seja, pode transmitir o mais rápido possível. O UDP é considerado simples, pois não se mantém o “estado” da conexão no remetente/receptor e possui cabeçalho de segmento bastante pequeno e simples, se comparado ao TCP. O UDP é muito utilizado para aplicações de meios contínuos (voz, vídeo), que são tolerantes a perdas e sensíveis à taxa de transmissão, assim como todas as aplicações isócronas (aplicações quem precisam reproduzir-se na mesma taxa com que foram geradas). Também é utilizado nas aplicações de DNS e SNMP (protocolo de gerenciamento de rede). Nas aplicações que utilizam UDP, é comum a necessidade de transferência confiável mínima. Nesses casos, é necessário incluir a confiabilidade na Camada de Aplicação, e a recuperação de erro também fica específica à aplicação. Segmento UDP O cabeçalho do segmento UDP é simples, se comparado ao TCP, que será apresentado na próxima seção. Ele é composto por 4 campos essenciais, como mostra a figura 55: 16 16 16 16 Porta de origem Porta de destino Tamanho Checksum Mensagem Figura 55 - Cabeçalho UDP (KOVACH, 2009) • Porta de origem: identifica o número de porta relacionado com a aplicação de origem. Este campo representa a direção de resposta do destinatário. Entretanto, é um campo não obrigatório, ou seja, seu preenchimento pela aplicação de origem é opcional e, neste caso, será preenchido com zero (utilizado para mensagens unidirecionais). • Porta de destino: identifica o número de porta relacionado com a aplicação de destino. • Tamanho da mensagem: identifica o tamanho total do segmento UDP, incluindo-se o cabeçalho. • Checksum: campo reservado para verificação de integridade do segmento no destino. Repare que do lado do remetente, na Camada de Transporte, o cabeçalho UDP é agrupado à mensagem, formando o segmento UDP, que é passado integralmente à Camada de Rede, que adicionará seu cabeçalho IP, como mostra a figura 56: 88 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Porta de origem Cabeçalho IP Tamanho da mensagem Mensagem de aplicação Porta de destino Checksum 0 Camada de transporte Camada de rede Segmento UDP 15 16 31 Figura 56 - Segmento UDP (KOVACH, 2009) O segmento TCP recebe a mensagem da Camada de Aplicação, que adiciona o número da porta de destino no campo correspondente. O endereço IP de destino, apontado pela aplicação, é enviado diretamente para a Camada de Rede, pois ela cuidará de entregar ao IP de destino correto. Lembre-se de que o segmento UDP fica encapsulado no nível de rede, como mostra a figura 57: Cabeçalho IP Segmento UDP Aplicação Transporte Rede Endereço IP destino Endereço IP destino UDP IP Porta de destino Mensagem Porta de origem Porta de destino Tamanho Checksum Mensagem Datagrama IP Figura 57 - Encapsulamento UDP (KOVACH, 2009) Recordando como funciona o processo de encapsulamento nos sistemas finais, ao utilizar-se o UDP como protocolo de transporte a uma aplicação, é o cabeçalho do UDP que vai sendo passado à camada do encapsulamento, como vimos anteriormente. A figura 58 ilustra essa ação: 89 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Datagrama Segmento Quadro Mensagem Mensagem Mensagem Mensagem Cabeçalho UDP Cabeçalho UDP Cabeçalho UDP Cabeçalho IP Cabeçalho IP Cabeçalho EthernetCabeçalho Ethernet Figura 58 - Encapsulamento de transporte com o protocolo UDP (KOVACH, 2009) Observação Checksum é o nome dado ao processo de verificação da integridade da mensagem transmitida. De forma ampla, pode-se dizer que na origem o remetente é responsável por fazer uma “conta mágica” com os dados (bits) da mensagem. O resultado dessa conta é armazenado no cabeçalho na origem. Quando chega ao destino, o receptor refaz a “conta mágica” com os dados da mensagem recebidos. O resultado ele compara com o valor armazenado no cabeçalho de origem. Se for igual, é porque a mensagem chegou íntegra, ou seja, não houve perda ou alteração da mensagem original. 5.2.2 O protocolo TCP TCP (Transmission Control Protocol) é um protocolo da Camada de Transporte que fornece um serviço de entrega confiável aos programas de aplicação. Diferente do UDP, o TCP é um protocolo mais lento, por possuir alguns tipos de validação que tornam os segmentos confiáveis e garantem a entrega das mensagens enviadas pela origem ao destino. Considerando suas principais características, o protocolo TCP destaca-se por ser orientado à conexão, em que, antes de enviar os dados, o aplicativo deve solicitar o estabelecimento de uma conexão com o outro aplicativo, isto é, deve fornecer o endereço antes de passar os dados, como mostra a figura 59: 90 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Aplicação Transporte Rede Endereço IP destino Endereço IP de destino Porta de destino Após armazenar o endereço e aporta de destino, o TCP envia um segmento do TCP destino para ver se ele aceita estabelecer uma sessão (ou “conexão”). UDP IP Porta de destino Figura 59 - Protocolo TCP, fornecendo apenas o endereço e porta de destino no estabelecimento da conexão (KOVACH, 2009) Depois, a aplicação passa apenas a mensagem até o término da conexão, como está representado na figura 60: Aplicação Transporte Rede Endereço IP destino Endereço IP de destino Porta de destino UDP Porta de destino Cabeçalho IP Segmento UDP IP Mensagem Datagrama IP Porta de origem Porta de destino Outros campos Mensagem Figura 60 - A aplicação passando a mensagem depois (KOVACH, 2009) Dizemos que o TCP possui transferência confiável de dados, pois ele usa números de sequência e reconhecimento positivo com retransmissão para entrega confiável dos dados. Assim, o TCP é um protocolo utilizado por diversas aplicações que não aceitam perdas de informações e devem garantir a entrega e a integridade das mesmas. Os números de sequência são usados para determinar a ordem dos dados que chegam e para detectar pacotes que estão faltando. O reconhecimento positivo com retransmissão exige que o receptor envie um pacote de reconhecimento (Ack) ao remetente sempre que recebe um dado. 91 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO A figura 61 mostra o remetente enviando um dado que não chega ao destino porque sofreu algum problema no meio do caminho. O remetente, depois de enviado o dado, fica aguardando por um tempo programado uma resposta de reconhecimento do dado enviado. Se não recebê-la durante o tempo programado, ele reenvia o dado. Dados 1 Dados 1 Ack Ack = acknowledgment= reconhecimento errotimeout Figura 61 - Transferência confiável de dados do TCP (elaborada pela autora) Segmento TCP Da mesma forma que o UDP, segmento é a unidade de transferência de dados trocada entre as estações que usam o protocolo TCP, pois ambos são de camada de transporte. O segmento TCP é composto pela mensagem que veio da Camada de Aplicação mais os campos do cabeçalho TCP, como mostra a figura 62: 16 16 16 16 16 16 16 32 Porta de origem Porta de destino Num seq Num ack SYN, FIN, RST, ACK Tam Janela Checksum Opções Mensagem Cabeçalho IP Segmento UDP Datagrama IP Figura 62 - O segmento TCP (KOVACH, 2009) Vale lembrar aqui que os segmentos são usados para: • estabelecer conexões; • terminar conexões; • transferir dados; • enviar reconhecimentos; • fazer controle de fluxo. 92 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 O formato do segmento TCP, diferente do UDP, é mais complexo e possui uma variedade de campos e controles, justamente por ter que se preocupar com os detalhes da entrega confiável dos dados. Assim como no UDP, o segmento TCP, mostrado na figura 63, possui os dois primeiros campos referentes aos números de porta (porta origem e destino). Mostraremos a seguir o significado de cada um dos campos do cabeçalho TCP. Porta de origem Porta de destino Número de sequência Número de Ack HLEN Reserv U A P R S F Checksum Urgent pointer Opções Padding Mensagem Figura 63 - O formato do cabeçalho TCP (KOVACH, 2009) • Portas de origem e destino: identificam as aplicações na origem. • Número de sequência: indica o número de sequência do primeiro byte deste segmento, ou seja, a posição relativa do primeiro byte que está sendo carregado. Este número não é absoluto e sim relativo, devido a questões de segurança. • Número de ACK: é o reconhecimento de que ele está recebendo e indica o número do próximo byte que o destino espera receber. Este campo fica válido apenas quando o bit ACK estiver ativado (campo “A”). • HLEN: é o comprimento do cabeçalho, representado por um número inteiro, que especifica o tamanho do cabeçalho em blocos de 32 bits. Geralmente possui 20 bytes (5 blocos de 32 bits), ou seja, o tamanho normal deste segmento, sem o campo opções. • U (URG): indica que o campo Urgent Pointer é válido e deve ser interpretado. Assim, o módulo TCP deve processar o dado urgente antes de processar qualquer outro dado. • A (ACK): bit usado para indicar que o segmento contém um reconhecimento. Quando A=1, significa que tem Ack. Se A=0, esse campo torna-se insignificante e não é tratado. • P (PSH): solicita ao módulo TCP receptor para enviar os dados imediatamente para a aplicação, ou seja, força o envio imediato de dados (sem esperar dados adicionais). Normalmente, TCP “bufferiza” os dados que chegam até atingir certo valor antes de enviar para a aplicação. Por exemplo, Telnet usa esse bit para forçar a entrada do caractere digitado no servidor, diminuindo o atraso na geração dos ecos. • R (RST): é utilizado para rejeitar um estabelecimento de conexão. Normalmente, o TCP envia um segmento com este bit setado (=1) quando detecta um problema com a conexão. • S (SYN): bit usado para indicar fase de estabelecimento de conexão. Ele informa também o número inicial de sequência. 93 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • F (FIN): bit usado para indicar fase de término de conexão. Ele fecha apenas o fluxo de dados no sentido da sua transmissão. O módulo receptor deve também enviar uma mensagem com FIN ativado para fechar completamente a conexão. • Tamanho da janela: indica quantos bytes o receptor está disposto a aceitar o envio sem confirmação (ack). É usado pelo lado do receptor para informar o tamanho máximo do seu buffer - controle de fluxo. • Checksum: abrange o cabeçalho, os dados e o pseudocabeçalho. É baseado na soma em complemento de um. • Opções: esse campo é usado pelo módulo TCP para uma das pontas da conexão informar à outra ponta o tamanho máximo de segmento (MSS - Maximum Segment Size) que ele está disposto a receber. A opção MSS só é válida num segmento com o campo SYN ativado. Se o MSS não for transmitido, o TCP assume um MSS default que é de 536 bytes. • Urgent Pointer: é usado para identificar um bloco de dados urgentes dentro do campo de dados. • Padding: campo de preenchimento usado para garantir que o tamanho do cabeçalho seja múltiplo de 32 bits. Veja na figura 64 como funciona o estabelecimento de uma conexão TCP, que utiliza os campos SYN, Número de sequência, Ack e Número de Ack, conhecido como tree way handshake. 1. O cliente inicia uma solicitação de conexão ao servidor 2. O servidor responde, informando que está disposto 3. O cliente envia um reconhecimento, estabelecendo a conexão SYN; Num Seq = x; MSS = 1460 SYN; Num Seq = y; MSS = 1460; ACK ;Num Ack = x + 1 ACK ; Num Ack = y + 1 Figura 64 - Estabelecimento de uma conexão TCP (KOVACH, 2009) • No exemplo da figura, é como se o cliente iniciasse a solicitação dizendo para o servidor receptor não enviar mais do que 1460 de tamanho máximo do segmento. • O servidor analisa o pedido e, se ele aceitar as condições da conexão (SYN=1), responde informando que está disposto. 94 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 • O cliente então envia um reconhecimento de que recebeu a aceitação, estabelecendo a conexão. A figura 65 mostra agora como funciona o término de uma conexão TCP: 1. Um dos lados decide terminar a conexão 2. O outro lado aceita, mas ainda tem dados para enviar 3. Após enviar os dados, avisa que também vai terminar a conexão 4. Após reconhecer o aviso, a conexão termina nos dois sentidos FYN; Num Seq = x FYN; ACK ;Num Ack = x + 1 dados FYN ; Num Seq = y ; ACK ; Num Ack = x + 1 ACK ; Num Ack = y + 1 Figura 65 - Encerramento de uma conexão TCP (KOVACH, 2009) • O pedido de encerramento da conexão é feito por um dos lados. O campo FIN é ativado e, junto a esta mensagem, é apresentado o último número de sequência conhecido. • O outro lado pode aceitar, mesmo se ainda tiver dados para enviar. Assim, ele habilita também o campo FIN, mostrando que concorda com o encerramento da conexão, mas mostra que seu número de Ack é maior que o número de sequência enviado na solicitação de encerramento da conexão. E, em seguida, envia os dados. • Após enviar, avisa que também vai encerrar a conexão, agora com o novo número de sequência. • O lado que solicitou o término da conexão, após reconhecer o aviso do outro lado, envia nova mensagem, encerrando a conexão nos dois sentidos. Como vimos, o cabeçalho TCP contém um campo que indica o número sequencial do primeiro byte contido no campo de dados (número de sequência) e, assim, coloca na ordem correta os segmentos que chegam fora de ordem e descarta os duplicados. O TCP reconhece apenas o maior número dos segmentos recebidos sem erro. A figura 66 mostra que o número de sequência no cabeçalho pula de acordo com a quantidade de bytes existentes dentro dos segmentos. 95 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 54 50 4653 49 51 44 4552 48 4451 47 43Cabeçalho Cabeçalho Número de sequência Número de sequência Figura 66 - No TCP, cada byte possui um número sequencial (KOVACH, 2009) Existem diversas implementações do software TCP para trabalhar com as janelas deslizantes. Em geral servem para medir as condições darede e identificar, previamente, se há condições de transmitir. Vejamos algumas das implementações TCP importantes a seguir. No comportamento que chamamos de pare-espere, o transmissor tem que esperar pelo Ack do pacote anterior para transmitir um novo pacote. Assim, se a distância for grande, o tempo de espera também pode ser grande. Veja a figura 67: Envia pacote 1 Recebe Ack 1 Envia pacote 2 Recebe Ack 2 Recebe pacote 1 Envia Ack 1 Recebe pacote 2 Envia Ack 2 Remetente Destinatário Figura 67 - Comportamento pare-espere, do TCP (KOVACH, 2009) O TCP pode utilizar um esquema de reconhecimento acumulativo em que o receptor vai acumulando sequencialmente os bytes recebidos desde o estabelecimento da conexão. Assim, cada segmento de reconhecimento (ACK) especifica no campo Número de Ack o número do próximo byte que o receptor espera receber da fonte. Vale lembrar que nesta implementação o receptor não gera o Ack de um segmento se o segmento anterior não foi recebido. Em vez disso, o receptor retransmite o último Ack enviado. Isso significa que, se um ou mais Acks forem perdidos, mas um Ack do segmento que foi enviado posteriormente for recebido pelo transmissor, ele pode considerar que todos os segmentos anteriores foram recebidos pelo receptor. Dizemos também que o protocolo TCP faz controle de fluxo, ou seja, o TCP receptor envia um valor (tamanho da janela) ao transmissor nos pacotes de reconhecimento, que especifica o número de bytes que o transmissor pode transmitir sem esperar pelo reconhecimento dos mesmos. A janela desliza à medida que chegam os reconhecimentos e, quando esse valor for igual a zero, o transmissor para de enviar os dados. A este processo chamamos de janela deslizante e é utilizado para aumentar a taxa de transmissão dos pacotes. Na figura 66 está representado como a janela desliza, à medida que chegam os reconhecimentos de transmissão. A janela inicial é igual a 8, ou seja, permite enviar até 8 números de sequência (no exemplo, de 3 a 10). 96 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 À medida que recebe os Acks do destinatário, a janela desliza, então neste exemplo vemos que, após remetente receber o Ack 3 (reconhecimento do pacote 3 enviado pelo destinatário), a janela passa a permitir o envio dos números de sequência de 4 a 11, e assim por diante. Envia pacote 3 Envia pacote 4 Envia pacote 5 Desliza janela Desliza janela Envia Ack 3 Envia Ack 4 Remetente Destinatário 1 1 1 5 5 5 9 9 9 13 13 13 2 2 2 6 6 6 10 10 10 14 14 14 3 3 3 7 7 7 11 11 11 4 4 4 8 8 8 12 12 12 Janela inicial . . . . . . . . . . . . Janela desliza Janela desliza Figura 68 - Exemplo de TCP com janela deslizante (KOVACH, 2009) Se ainda está difícil de entender como funciona a janela deslizante, veja esse outro exemplo, representado pela figura 69: 1 5 9 132 6 10 143 7 114 8 12 1 5 9 132 6 10 143 7 114 8 12 Sliding Window no A Sliding Window no A Podem ser enviados A B ACK = 6; Tamanho de janela =7 Enviados e não reconhecidos Podem ser enviados Último reconhecido Não podem ser enviados antes depois chega um Ack Figura 69 - Outro exemplo de TCP com janela deslizante (KOVACH, 2009) Antes da chegada do Ack=6, o último número de sequência reconhecido (que o remetente recebeu o Ack) era o 2; os de número 3, 4 e 5 foram enviados pelo remetente, mas ainda não foram reconhecidos. Como o tamanho da janela é 7, os números de sequência 6, 7, 8 e 9 podem ser enviados neste intervalo; os demais, ainda não. Com o reconhecimento do número de sequência 6, a janela desliza, permitindo enviar os próximos 7 números de sequência, a partir do 6, ou seja, pode enviar o 6, 7, 8, 9, 10, 11 e 12. 97 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Observação Note que a mensagem de Ack contém o número do próximo, que o destinatário está esperando receber, ou seja, se a mensagem é enviada com Ack = 6, significa que o destinatário recebeu até o número de sequência 5 e está esperando receber o de número 6. Além disso, o TCP é um protocolo capaz de fazer multiplexação de várias conexões em uma mesma porta, através do endereço IP e número de porta. Como uma conexão TCP é formada por quatro variáveis (endereço IP de origem, porta de origem, endereço IP de destino, porta de destino), variando apenas um dos parâmetros, já se tem nova conexão, podendo ser gerada simultaneamente a outras. A figura 70 mostra que o sistema final A, cujo endereço IP é o 1.1.1.1, tem duas aplicações sendo executadas, uma na porta 200 e outra na porta 100, e ambas se comunicando com a aplicação que roda na porta 25 do host C, de IP 3.3.3.3. Assim, embora o endereço IP de origem, endereço IP de destino e porta de destino sejam os mesmos, a porta de origem varia para cada uma das aplicações de origem, então o TCP estabelece uma conexão diferente para cada uma delas, pois pelo menos 1 dos 4 pontos do par ordenado (IP origem, porta de origem; IP destino, porta de destino) é diferente. 200 100 100 25 Host A Host B Host C Aplicação Aplicação Aplicação TCP TCP TCP IP 1. 1. 1. 1 IP 2. 2. 2. 2 IP 3. 3. 3. 3 [ < 1.1.1.1, 200 > , < 3.3.3.3, 25 > ] [ < 1.1.1.1, 100 > , < 3.3.3.3, 25 > ] [ < 2.2.2.2, 100 > , < 3.3.3.3, 25 > ] Figura 70 - Multiplexação de conexões simultâneas (KOVACH, 2009) Saiba mais Abaixo há duas dicas de leitura sobre a Arquitetura TCP/IP. Uma referência muito conceituada: TCP/IP: a bíblia, de Meeta Gupta, Mridula Parihar, Paul Lasalle e Rob Scrimger, Editora Campus/Elsevier, 2002. Guia Ilustrado do TCP/IP, de Matthew Naugle, Editora Berkeley Brasil, 2001. 98 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 6 CAMADA DE REDE A camada 3 está logo abaixo da Camada de Transporte na pilha de protocolos do modelo OSI, como mostra a figura 71, e é responsável pelo processo de interconexão de redes. As redes são interligadas por dispositivos chamados roteadores. 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 71 - Camada de Rede do Modelo OSI (KOVACH, 2009) Como mostra a figura 72, quando um computador da rede 1 quer enviar um dado para um computador da rede 2, ele envia o pacote de dados ao roteador 1, que fica responsável por encaminhar esse pacote ao computador de destino. No caso de um computador da rede 1 querer enviar um pacote de dados para um computador na rede 3, ele envia o pacote ao roteador 1, que então passará esse pacote diretamente ao roteador 2 e que então se encarregará de entregar esse pacote ao computador de destino na rede 3. Rede 1 Rede 2 Rede 3Roteador 1 Roteador 2 Figura 72 - Exemplo de interconexão de redes através de roteadores (KOVACH, 2009) O roteador é, sem dúvida, o principal agente no processo de interconexão das redes, pois determina as rotas baseado nos seus critérios, endereçando os dados pelas redes e gerenciando suas tabelas de roteamento. A entrega de pacotes é feita facilmente pelo roteador porque os pacotes de dados possuem o endereço IP do computador de destino. No endereço IP há a informação de que a rede o pacote deve ser entregue. Além disso, os roteadores possuem internamente interfaces de saída, para onde os enlaces de entrada repassam os pacotes no interior dos roteadores. As interfaces de saída servem para que o roteador encaminhe os pacotes ao roteador vizinho da rota selecionada por ele como a melhor paratransmitir ao destino. É assim que as redes baseadas no protocolo TCP/IP funcionam. Elas têm um ponto de saída da rede, chamado de gateway, que é para onde vão todos os pacotes de dados recebidos e que não são para aquela rede. As redes subsequentes vão, por sua vez, enviando o pacote aos seus gateways até que o pacote atinja a rede de destino. 99 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO A partir de dispositivos, como roteadores e protocolos de roteamento, é a Camada de Rede que decide qual o melhor caminho para se chegar ao destino, bem como estabelece as rotas. Algumas arquiteturas de rede requerem determinar o caminho antes de enviar os dados. Essa camada também já reconhece o endereço físico, que é convertido para endereço lógico (o endereço IP) por meio de um protocolo específico chamado ARP, responsável por tal tradução nesse nível. A figura 73 mostra uma rede simples, com dois sistemas finais (S1 e S2) e diversos roteadores no caminho. Para a comunicação entre os dois sistemas finais, a Camada de Rede do sistema final de origem (S1) encapsula as informações em um pacote (datagrama) e encaminha ao roteador vizinho, que encaminhará ao seu próximo vizinho, e assim por diante, até chegar ao sistema final S2, onde a Camada de Rede extrairá os segmentos de Camada de Transporte e os entregará a esta camada para enviar à Camada de Aplicação de destino. Note que, nos sistemas finais, a pilha de protocolos é completa, enquanto nos roteadores só vai até a Camada de Rede, pois esses equipamentos não rodam protocolos das outras camadas superiores. Aplicação Transporte Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Rede Enlace Física Aplicação Transporte Rede Enlace Física Rede Enlace Física Figura 73 - Exemplo de comunicação entre sistemas finais através da Camada de Rede (KUROSE; ROSS, 2010) 100 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Saiba mais Agora que você está familiarizado com as camadas de Aplicação e Transporte e está iniciando seu estudo da Camada de Rede, assista ao vídeo Guerreiros da internet. É muito interessante e mostra como a internet funciona, ilustrando de forma bem clara o trajeto dos pacotes de dados, desde a hora que você faz uma consulta em seu navegador até a hora que a página começa a aparecer na tela. Acesse <www.warriorsofthe.net>. O vídeo está disponível para baixar em português também. 6.1 O protocolo IP O IP (Internet Protocol) é o protocolo responsável pelo encaminhamento dos datagramas desde a origem até o destino através da internet, como pode ser visto na figura 74. Assim como alguns protocolos de Camada de Transporte, como o UDP, o IP é um protocolo não orientado à conexão. Host A Host B Internet Figura 74 - Protocolo IP responsável pelo encaminhamento dos datagramas (elaborada pela autora) O serviço oferecido pelo protocolo IP fornece um modelo conhecido como “serviço de melhor esforço”, pois ele utilizará a maior banda possível disponível na rede para encaminhar seus pacotes, tentando fazer isso sem atraso e de modo que seus datagramas cheguem de forma ordenada, ou seja, na ordem com que foram enviados pela origem. Embora ele se esforce ao máximo, não existem garantias de que a transmissão será livre de erros, que os pacotes serão entregues e que não haverá perda de pacotes ou atrasos. Dizemos, assim, que o IP é um protocolo não confiável, por não implementar mensagens de confirmação (como faz o TCP, na camada 4) de que os datagramas foram entregues ao destino. Se houver qualquer tipo de perda, elas serão corrigidas apenas pela camada 4, com ajuda do protocolo TCP de transporte. Esta é uma grande vantagem do IP: simplicidade. O IP tenta ser o mais rápido que pode, é capaz de detectar erros, mas se apoia nas correções desses erros por meio de protocolos de transporte. O Datagrama IP Assim como os segmentos na Camada de Transporte, o datagrama está dividido em duas partes. Entretanto, aqui as partes são o cabeçalho IP e o segmento TCP, como mostrado na figura 75: 101 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Cabeçalho IP Segmento TCP ou UDP Datagrama IP Figura 75 - Protocolo IP responsável pelo encaminhamento dos datagramas (elaborada pela autora) O cabeçalho contém toda a informação necessária que identifica o conteúdo do datagrama. Na área de dados está encapsulado o pacote do nível superior, ou seja, um pacote TCP ou UDP. O formato do datagrama IP tem 32 bits e está mostrado na figura 76: 0 4 8 16 19 24 31 Ver IHL TOS Comprimento total Identificação Falgs offset de fragmento TTL protocolo Checksum de cabeçalho Endereço de destino Endereço de origem Opções Padding Segmento do protocolo de transporte Figura 76 - O datagrama IP (elaborada pela autora) Vamos conhecer o que são cada um desses campos do IP: • Versão: indica a versão do protocolo IP sendo usada (IPv4 ou IPv6). • IHL (Internet Header Length): indica o comprimento do cabeçalho em múltiplos de 32 bits (no caso de IPv4). • TOS (Type of service - Tipo de Serviço): fornece uma indicação dos parâmetros da qualidade desejada, para um nó especificar uma preferência de como os datagramas poderiam ser manuseados. Os três bits de precedência especificam a prioridade dos pacotes: — 0 para pacotes normais e 7 para pacotes mais prioritários. — É o campo mais importante para distinguir pacotes de voz dos pacotes de dados. Os bits D, T e R indicam o tipo de transporte desejado pelo pacote. — O bit D solicita minimizar atraso. — O bit T solicita maximizar o throughput. — O bit R solicita maximizar confiabilidade. 102 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 • Comprimento total: fornece o comprimento total do datagrama IP, incluindo cabeçalho e dados, medido em bytes de oito bits. • Tempo de vida (Time-to-Live - TTL): indica o tempo máximo que um datagrama pode trafegar em uma rede internet. Tornou-se um campo de contagem de nós caminhados. Assim, cada roteador decrementa este campo de um. Se o valor deste campo chegar a zero antes de atingir o destino, o datagrama é descartado. • Protocolo: indica qual protocolo seguinte será usado. Se for ICMP, o campo é preenchido com 1, se for TCP, 6 e se for UDP, 17. • Checksum do cabeçalho: campo de verificação para o cabeçalho IP. Se um erro for detectado na recepção, o datagrama é descartado. • Endereço de origem: endereço IP de origem. • Endereço de destino: endereço IP de destino. • Padding (variável): serve para garantir que o comprimento do cabeçalho seja sempre múltiplo de 32 bits. • Opções (variável): utilizado para teste e depuração de aplicações de softwares de rede. Os três campos abaixo estão relacionados com a fragmentação: • Identificação: é usado para identificar um datagrama. Todos os fragmentos de um datagrama possuem a mesma identificação. • Flag: identifica o controle de fragmentação: — O bit 0 é reservado; — Se o bit 1 for 0, permite fragmentação; se for 1, não permite fragmentação. — Se o bit 2 for 0, significa que é o último fragmento; se for 1, significa que ainda tem mais fragmentos. • Offset do fragmento: indica a posição do fragmento dentro do datagrama original. É medido em unidadesde 8 bytes. 6.1.1 Fragmentação O protocolo IP utiliza a técnica de fragmentação quando um datagrama atravessa uma rede com MTU (Maximum Transfer Unit – Unidade Máxima de Transferência) menor do que o número de bytes contidos nele. MTU é o tamanho máximo de bytes que podem ser transferidos dentro de uma rede física. Por exemplo, a MTU de uma rede Ethernet é 1.500 bytes e a de uma rede Token Ring é 4.464 bytes, o que significa que, se pacotes maiores que tais valores tiverem que atravessar essas redes, provavelmente serão fragmentados. 103 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO É muito comum implementações usarem datagramas de 576 bytes sempre que eles não podem verificar se o caminho inteiro é capaz de manipular grandes pacotes. Esse é o tamanho “seguro” máximo do datagrama que um nó requer, o que significa que, se o tamanho dos datagramas for menor que 576 bytes, é bem provável que não serão fragmentados. Fragmentação consiste em dividir um datagrama em pedaços menores denominados fragmentos. Os fragmentos sempre serão transportados como datagramas independentes. Ao receber o primeiro fragmento, a estação inicia uma contagem de tempo para aguardar o conjunto completo de fragmentos. Se faltar algum, o datagrama é descartado. É importante ressaltar que os datagramas não são remontados, ou seja, uma vez fragmentados, continuam fragmentados mesmo que depois passem a encontrar redes físicas com MTU com grande capacidade, como mostra a figura 77: Rede1 MTU=1500 Rede3 MTU=1500 Rede2 MTU=512 Figura 77 - Fragmentação IP (elaborada pela autora) Se qualquer fragmento for perdido no caminho, o datagrama não poderá ser remontado. 6.2 Endereçamento IPv4 Em uma rede IP, cada ponto de interconexão de um dispositivo é identificado por um número de 32 bits, equivalente a 4 bytes, denominado endereço IP. Considerando os 32 bits, há um total de 232 endereços IP possíveis, o equivalente a cerca de 4 bilhões de endereços IP possíveis. Tais endereços são escritos em quatro conjuntos de bytes, representados por números decimais, separados por pontos. Tais endereços são representados com quatro algarismos decimais separados por ponto decimal, por exemplo, 128.10.2.30, em que 128 é o número decimal referente aos primeiros 8 bits do endereço; o 10, o número decimal referente ao segundo conjunto de 8 bits do endereço e assim por diante. Assim, este endereço transformado para bits, é: 10000000 00001010 00000010 00011110 104 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Dizemos que o endereço IP é o endereço lógico de rede e cada endereço IP está associado com uma interface física de rede (por exemplo, uma placa de rede), e não com o computador. Cada endereço IP é globalmente exclusivo, mas não pode ser escolhido de qualquer maneira. Uma parte desse endereço será determinada pela sub-rede à qual ela está conectada. Chamamos de sub-rede a divisão de uma rede em redes menores, cujo tráfego fica reduzido, facilitando sua administração e melhorando o desempenho da rede. Veja uma representação na figura 78: Host A R1 Sub-redes R2 R3 Host B Figura 78 - Exemplo de sub-redes (elaborada pela autora) 6.2.1 Classes e formatos de endereço IP A estratégia de atribuição de endereços da internet é conhecida como roteamento interdomínio sem classes (CIDR – Classless Interdomain Routing), que generaliza a noção de endereçamento de sub-rede. Antes da adoção do CIDR, os tamanhos das parcelas de um endereço IP estavam limitados a 8, 16 ou 24 bits, um esquema de endereçamento definido por classes de endereços conhecidas como classes A, B e C, respectivamente, como mostra a figura 79: Prefixo de rede (netid) Hostid Prefixo de rede (netid) Hostid Prefixo de rede (netid) Hostid Classe Classe Classe Classe Classe 1 0 1 1 0 14 bits 16 bits 21 bits 8 bits 1 1 1 0 1 1 1 1 0 Multicasting (28 bits) Uso futuro 7 bits 24 bits Figura 79 - Classes e formatos de endereços IP (KOVACH, 2009) Assim, o range de endereçamento em cada classe está demonstrado na tabela 3: 105 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Tabela 6 - Range de endereços IP das classes Classe Endereço mais baixo Endereço mais alto A 1.0.0.0 126.0.0.0 B 128.1.0.0 191.255.0.0 C 192.0.1.0 223.255.255.0 D 224.0.0.0 239.255.255.255 E 240.0.0.0 255.255.255.254 Nesse modelo, cada endereço IP é constituído por duas partes: uma se refere à rede e a outra, ao dispositivo nessa rede. Essa identificação é feita pelo par (netid, hostid), em que netid identifica o prefixo da rede, pelo qual o dispositivo está conectado, e hostid identifica o dispositivo nessa rede, como mostra a figura 80. No caso de termos um roteador conectando n redes distintas, teremos n endereços IP distintos também. Netid ou Prefixo Hostid 32 bits Figura 80 - Endereço IP: netid e hostid (elaborada pela autora) Na classe A, os 8 primeiros bits definem o prefixo de rede, e os restantes 24 bits, o dispositivo na rede; na classe B, têm-se 16 bits para identificar o prefixo de rede e outros 16 bits para a identificação do dispositivo na rede; já a classe C é o inverso da classe A, em que os primeiros 24 bits definem prefixos de rede, e os 8 seguintes, dispositivos na rede. A classe D é utilizada para aplicações de multicasting, muito útil, por exemplo, para transmissão de vídeo, em que os receptores que quiserem receber esse pacote de multicasting podem sintonizar suas interfaces nesses endereços, solicitando recebimento. A classe E, por muito tempo reservada para uso futuro, tem sido utilizada para testes de otimização do protocolo IP pelo IETF (Internet Engineering Task Force). Nessa notação de endereçamento IP, temos que os endereços reservados para a classe A são normalmente aplicados em empresas muito grandes, nacionais ou internacionais, ou universidades muito grandes, como a Universidade de São Paulo (USP). A tabela 3 mostra que, nessa classe, os endereços variam seus prefixos de 1 a 126 no primeiro octeto, já que os outros três octetos definem o host. Os endereços de classe B são utilizados para redes de empresas ou universidades de tamanho médio e contemplam os endereços de prefixos de inicial de 128 a 191, que representam seus dois octetos que identificam os prefixos de rede, já que os outros dois octetos identificam os hosts na rede. Os endereços de classe C, geralmente usados para empresas de pequeno e médio portes, têm seu range de prefixos de rede de três octetos variando de 192 a 223, com seu último octeto utilizado para identificação dos hosts na rede. 106 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Classe A (a.b.c.d) a identifica a rede b.c.d identificam o host Exemplo: 10.10.5.1 Classe B (a.b.c.d) a = 128 – 191 a.b identificam a rede c.d identificam o host Exemplo: 129.10.5.1 Classe C (a.b.c.d) a = 192 – 223 a.b.c identificam a rede d identifica o host Exemplo: 194.10.5.1 Figura 81 - Classes e ranges de endereçamento IP (KOVACH, 2009) Na internet, cada sub-rede possui um prefixo de rede e é para onde os roteadores encaminham os pacotes. Cada roteador armazena as informações dos prefixos de rede em uma tabela de roteamento, que contém apenas prefixos de rede e não endereços completos de dispositivos na rede. Nos próximos itens daremos mais detalhes sobre roteamento. 6.2.2 Máscaras de sub-rede São baseadas no prefixo de rede, em que osroteadores vão escolhendo seus caminhos (o roteamento é feito) até chegar ao último roteador antes da rede de destino. Quando chegar à sub-rede de destino, o endereço referente ao hostid será olhado para buscar dentro da sub-rede o dispositivo final a que se destina a mensagem. Chamamos de máscaras de sub-rede os bits que determinam o prefixo de rede. Assim como o endereço IP, são valores de 32 bits que permitem ao receptor de pacotes IP identificar quais são os bits do endereço que fazem parte do netid e quais fazem parte do hostid. Os bits em 1 da máscara identificam os bits do endereço IP que são usados como prefixo de rede; os bits em 0 da máscara identificam os bits do endereço IP que são usados para identificar o dispositivo na rede (hostid). Para o roteamento, utilizam-se máscaras-padrão (default) de cada classe até chegar à rede de destino, como mostram as figuras 82 e 83: Rede de destino Internet 144. 100. 0. 0 Roteador 144. 100. 3. X Figura 82 - Exemplo de utilização de máscara (elaborada pela autora) 107 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Ao atingir a rede de destino, o roteador aplica a máscara no endereço e faz o roteamento utilizando o prefixo resultante. Máscara 255. 255. 255. 0 144. 100. 1. 0 144. 100. 2. 0 144. 100. 4. 0 144. 100. 3. 0 Internet 144. 100. 0. 0 144. 100. 3. X 144. 100. 3. X Roteador Roteador Roteador Roteador Roteador Figura 83 - Exemplo de utilização de máscara - continuação (elaborada pela autora) As máscaras-padrão utilizadas pelo roteador para cada classe de endereçamento IP são: • Classe A: máscara de sub-rede 255.0.0.0 • Classe B: máscara de sub-rede 255.255.0.0 • Classe C: máscara de sub-rede 255.255.255.0 Sabendo que os endereços lógicos IP na rede são únicos e que sua utilização aumenta muito a cada ano, rapidamente percebeu-se que os números de endereçamento IPv4 exclusivos rapidamente acabariam. Para contornar esse problema surgiu a ideia de se utilizarem máscaras de sub-rede com valores diferentes das máscaras-padrão, fazendo, assim, ganhar novos endereços IP na divisão em sub-redes. Somente então, ao atingir a rede de destino, é que o roteador aplica a máscara no endereço IP de destino, passando a rotear baseando-se no prefixo de sub-rede. Em uma rede física, todos os computadores devem ter o mesmo prefixo e usar a mesma máscara. Aplicando-se máscaras de sub-rede com valores diferentes dos valores das máscaras padrão, é possível ganhar ou economizar sub-redes e, portanto, endereços IP. A figura 84 mostra como a aplicação de máscaras de sub-rede diferentes das de default, representada pelos bits em 1, faz com que bits inicialmente reservados ao hostid passam a ser bits de endereço de sub-redes. Os bits em 0 mostrarão quantos bits por sub-rede serão utilizados para representar os dispositivos na sub-rede. Prefixo de rede (netid) Hostid Prefixo de rede (netid) padrão Hostid da sub-rede Número da sub-rede Padrão (defaut) Endereço Máscara Endereço Novo prefixo 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 Figura 84 - Máscara de sub-rede (KOVACH, 2009) 108 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Veja um exemplo real de aplicação de máscara de sub-rede. Considerando o endereço 129.10.0.0, de classe B, sua máscara padrão é a 255.255.0.0, que provê um único segmento de rede com 65.536 hosts ou 64 K hosts. Se considerarmos o terceiro conjunto de bits da máscara diferente de zero, perceberemos que é possível aumentar o número de segmentos de rede (sub-redes) e variar o número de hosts por sub-rede, como mostra a tabela 5, a seguir. Lembrete Lembre-se: é a máscara de rede a responsável por mapear as sub-redes. Repare sempre na quantidade de bits 1 que existe no endereço. São eles que indicam o prefixo de rede e, portanto, a quantidade de sub-redes possível no endereço. Aplicando, por exemplo, uma máscara de sub-rede de 255.255.240.0, passando o 240 para binário, vê-se que agora a máscara de sub-rede tem quatro bits em 1 e quatro bits em 0. Os bits em 1 representam 16 sub-redes, pois 24 = 16. Os quatro bits em 0 somados aos outros oito bits 0 da máscara representam a quantidade de 24 + 28 = 212 = 4.096 ou 4 K hosts para cada uma das 16 sub-redes possíveis. Vale lembrar aqui que, na prática, a primeira e a última sub-redes são descartadas, pois o primeiro IP da primeira sub-rede representa o endereço de rede e o último IP da última sub-rede representa o endereço de broadcast, que não é considerado pelos roteadores como endereço válido na rede. Esse endereço é utilizado quando se deseja transmitir uma mensagem a todos os receptores da rede ao mesmo tempo. Dessa forma, na prática, a quantidade real de sub-redes é a apresentada na tabela 4, menos duas. Tabela 7 - Classes e ranges de endereçamento IP Prefixo de rede classe B: 129.10. 0. 0 Máscara de rede padrão: 255.255.0.0 1 segmento de rede 64 K hosts Máscara de sub-rede 255. 255.128. 0 10000000 2 sub-redes 32 K hosts por sub-rede 255. 255.192.0 11000000 4 sub-redes 16 K hosts por sub-rede 255. 255. 224.0 11100000 8 sub-redes 8 K hosts por sub-rede 255. 255. 240.0 11110000 16 sub-redes 4 K hosts por sub-rede 255. 255. 248. 0 11111000 32 sub-redes 2 K hosts por sub-rede 255. 255.252.0 11111100 64 sub-redes 1 K hosts por sub-rede 255.255. 254. 0 11111110 128 sub-redes 512 hosts por sub-rede 255. 255.255. 0 11111111 256 sub-redes 256 hosts por sub-rede Fonte: Kovach, 2009. 109 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Saiba mais Conheça este simulador de sub-redes online: <www.subnet-calculator. com>. Ele pode ajudar a exercitar os cálculos de sub-rede IP, informando também quantos hosts válidos podemos ter em cada sub-rede e os respectivos endereços de broadcast. Também informa se determinado endereço IP pertence a uma classe A, B, C ou D. 6.2.3 Endereços IP reservados Ao definir o range de endereços IP utilizado por cada classe de endereçamento IP, você talvez tenha se perguntado por que o range de endereços que começam com 127 não foi especificado. Existem alguns endereços IP que são especiais, reservados para funções específicas e que não podem ser utilizados como endereços de uma máquina da rede ou não são levados em conta pelos roteadores. A seguir, são apresentados estes endereços: • 0. 0. 0. 0: especifica um endereço desconhecido e é usado por uma máquina da rede quando ela não sabe o seu endereço. Muitas vezes esse endereço é utilizado pelas máquinas na rede como endereço de origem nos protocolos de configuração dinâmica, como o DHCP. • 255. 255. 255. 255 ou hostid com todos os bits em 1: é usado como endereço de broadcast local (dento de uma sub-rede). Como vimos anteriormente, um pacote de broadcast é destinado a todos os dispositivos conectados à rede. Aqui, vale lembrar que os pacotes de broadcast são bloqueados pelos roteadores. • 127.0. 0. 0 - 127. 255. 255. 255: são utilizados como endereço de loopback local, reservado para testes de debugging da configuração de rede da máquina ou para a comunicação entre processos na mesma máquina local. Ao utilizar o endereço de loopback para enviar os dados, o software IP não deixa a mensagem prosseguir através da rede, devolvendo-a à Camada de Transporte. Outros endereços especiais, chamados endereços privados, são reservados para redes privadas e servem para montar uma rede TCP/IP sem gerar conflitos com os endereços IP da internet. Os roteadores reconhecemesses endereços como independentes, de uma rede particular, e não repassam os pedidos de datagramas que façam referência a esses endereços para o resto da internet. Esses endereços nunca serão considerados pelos roteadores no sistema de roteamento global da internet. Assim, tais endereços podem ser utilizados simultaneamente por várias organizações. São estes os endereços privados considerados pela IANA (Internet Assigned Numbers Authority): • 10. 0. 0. 0 - 10. 255. 255. 255 • 172. 16. 0. 0 -172. 31. 255. 255 • 192. 168. 0. 0 -192. 168. 255. 255 110 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 A interconexão com a internet de redes que utilizam endereços privativos é feita normalmente por meio de dispositivos conhecidos como NAT (Network Address Translator). 6.2.4 NAT e DHCP Para acessar a rede internet, cada computador deve ter o protocolo TCP/IP configurado corretamente. O NAT surgiu como uma alternativa real para o problema de falta de endereços IPv4. Com as redes privadas, tornou-se necessária uma solução para que essas redes recebessem respostas de seus pedidos feitos para fora da rede internet. NAT é um serviço que permite que essa tradução seja feita por meio de um mapeamento de endereços IP públicos e privados. No NAT, as traduções mais comuns de endereço privado para endereço público e vice-versa são: tradução estática e tradução dinâmica. • Tradução estática: um endereço privado é sempre convertido em um mesmo endereço público. Essa solução é normalmente utilizada em servidores que necessitam ter sempre o mesmo endereço IP para responder a seus clientes. • Tradução dinâmica: o endereço privado poderá não utilizar sempre o mesmo endereço público. Dessa forma, é possível que mais de um endereço privado, usado na rede local, acesse a internet usando um mesmo endereço IP público. Essa tradução é usada por clientes, isto é, computadores que não prestam serviços à rede (KOVACH, 2009). Na tradução dinâmica, é muito comum o uso do protocolo DHCP (Dynamic Host Configuration Protocol). Um servidor DHCP distribui aos computadores clientes um IP válido na internet sempre que um cliente solicita. Se um dispositivo da rede interna solicitar uma página web da internet, o servidor DHCP fornecerá um endereço IP público válido para ele poder se conectar à internet. Ao final do carregamento da página solicitada, o servidor DHCP recuperará esse endereço IP de volta. No caso de o usuário desse cliente continuar navegando, o servidor poderá atribuir o mesmo endereço IP ou atribuir outro endereço IP público disponível em sua tabela de traduções. 6.3 Roteamento Como vimos anteriormente, o prefixo de rede determina se um endereço IP está localizado na mesma rede local ou em uma rede remota. A determinação do prefixo de rede é feita executando uma operação booliana AND do endereço IP de destino com a máscara de sub-rede. Roteamento é o processo de escolher um caminho para enviar os datagramas. Veremos mais adiante como é feita essa escolha de caminho. Existem duas formas de se fazer roteamento: direta ou indiretamente. • Roteamento direto: ocorre se ambas as máquinas estiverem conectadas na mesma rede física, isto é, se tiverem os mesmos prefixos de sub-rede. 111 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • Roteamento indireto: ocorre quando o destino não está conectado na mesma rede física, forçando o remetente a passar o datagrama a um roteador conectado na mesma rede física. O roteamento de datagramas IP é feito por meio de uma tabela denominada tabela de roteamento, existente em cada máquina. A tabela de roteamento contém os prefixos de rede e o endereço IP do próximo roteador no caminho (vizinho), além de outras informações. Na tabela, existe uma linha para cada prefixo de endereço que o roteador conhece. As linhas nas tabelas de roteamento são conhecidas como rotas. O roteador usa o prefixo de rede calculado para consultar a tabela de roteamento. A consulta retorna a linha da tabela que mais combina com o endereço de destino, ou seja, o endereço IP do próximo roteador e a interface de saída na qual este roteador está conectado. A tabela de roteamento sempre aponta para roteadores que possam ser alcançados diretamente, isto é, que estejam conectados na mesma sub-rede. A tabela de roteamento mantém apenas os prefixos na tabela de roteamento e não os endereços de máquinas individuais na rede. Durante o processo de roteamento, é buscado o prefixo da rede de destino, primeiro na tabela. Se não encontrar, o datagrama é enviado a um roteador padrão (default). O endereço IP do roteador padrão é normalmente configurado roteador. Se nenhum roteador padrão estiver configurado, o datagrama não será repassado e, portanto, será descartado. 6.3.1 Algoritmos e protocolos de roteamento A tabela de roteamento é criada e atualizada de tempos em tempos com os prefixos de rede que o roteador conhece e endereça. Antigamente, as tabelas de roteamento eram criadas e mantidas manualmente pelo administrador da rede, não havendo troca de informações entre os roteadores. É possível imaginar que erros de configuração de rotas eram difíceis de ser detectados, e sempre que um endereço era alterado na rede, era necessário fazer alterações na tabela de roteamento. Esse tipo de roteamento era chamado de roteamento estático. A fim de garantir que não houvesse erros na criação e manutenção das tabelas, surgiu o que chamamos de roteamento dinâmico, quando os roteadores passaram a construir suas tabelas automaticamente, de forma dinâmica, trocando informações entre si por meio de protocolos de roteamento. Para encontrar o melhor caminho para o destino de um datagrama através da rede, os roteadores utilizam algoritmos de roteamento. É importante notar que o melhor caminho não é sempre considerado o caminho mais curto ou o mais rápido. O melhor caminho é definido pelo algoritmo de roteamento, que o calcula baseado em diversos parâmetros, como velocidade de transmissão e tempo de atraso, entre outros, que formam uma métrica particular de cada algoritmo de roteamento. Os algoritmos de roteamento procuram manter a tabela sempre com o melhor caminho, baseando-se nas informações recebidas pelos protocolos de roteamento. Periodicamente, os roteadores trocam entre si informações a respeito de suas rotas. Sempre que detectar alguma 112 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 alteração na rede, como a existência de novo caminho ou a remoção de um caminho, a nova informação é divulgada aos demais, que atualizam suas tabelas de roteamento. Para cada prefixo da tabela de roteamento, é o endereço IP do próximo roteador (next hop) que deve ser usado para atingir este prefixo. À medida que ocorrem mudanças na rede, os protocolos de roteamento reavaliam os prefixos que podem ser alcançados e os next hops a serem usados para cada prefixo. O processo de encontrar o próximo passo após uma mudança na rede é denominado convergência. Existem dois tipos básicos de algoritmo de roteamento que devem ser considerados: • Distance vector: é baseado no número de saltos na rede (hops), como pode ser visto na figura 85. Esse algoritmo tem como princípio que o melhor caminho (métrica) para se chegar ao destino é o das rotas mais curtas, independentemente se a rota mais curta for a mais congestionada. Um exemplo de protocolo de roteamento que utiliza o distance vector como algoritmo é o RIP (Routing Information Protocol). Embora ele não leve em conta outros parâmetros sobre as condições da rede e tenha uma convergência lenta, o RIP é ainda muitoutilizado como protocolo-padrão de roteamento interno de muitas organizações pela sua simplicidade, afinal, não se tem normalmente muitos roteadores na topologia de rede de uma empresa de médio porte, por exemplo. Rede 1, 1 hop Rede 2, 1 hop Rede 1, 2 hop Rede 2, 1 hop Rede 3, 1 hop Rede 1, 3 hop Rede 2, 2 hop Rede 3, 1 hop Rede 4, 1 hop Rede 1, 1 hop Rede 2, 1 hop Rede 3, 2 hop Rede 4, 3 hop Rede 1, 1 hop Rede 2, 1 hop Rede 3, 2 hop Rede 4, 3 hop Rede 1, 2 hop Rede 2, 1 hop Rede 3, 1 hop Rede 4, 2 hop Rede 1, 3 hop Rede 2, 2 hop Rede 3, 1 hop Rede 4, 1 hop Rede 1 Tabela de A Tabela de B Tabela de C A 1 2 13 5 46 B C Rede 2 Rede 3 Rede 4 Figura 85 - O protocolo RIP, mostrando o número de saltos (KOVACH, 2009) • Link state: é baseado no estado dos enlaces. Esse algoritmo considera diversos parâmetros na rede para calcular a métrica e a melhor rota para se chegar ao destino. Um dos parâmetros que ele considera é a largura de banda, que determina a velocidade de transmissão de um pacote. Ele é capaz de identificar, por exemplo, se um pacote demora mais para chegar ao destino por um caminho mais curto ou um caminho mais longo, fazendo a escolha sempre da menor métrica calculada para se chegar ao destino. OPSF (Open Shortest Path First) é um exemplo de protocolo de roteamento comum utilizado em redes de grande porte. 113 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Tanto o RIP como o OSPF são exemplos de protocolos de roteamento utilizados apenas para interconectar roteadores internamente em uma rede, chamados de IGP (Interior Gateway Protocols). Para interconectar redes independentes, utilizamos protocolos chamados EGP (Exterior Gateway Protocols). Um exemplo de protocolo de roteamento EGP é o BGP (Border Gateway Protocol), baseado no algoritmo de distance vector. Saiba mais O Protocolo OSPF é dos mais utilizados em grandes redes coorporativas. Leia o artigo “O Protocolo OSPF”, de Jailton Santos das Neves e Waldeck Ribeiro Torres. Este trabalho fornece, de forma bastante didática, uma descrição simples de como o protocolo de roteamento OSPF trabalha, suas funcionalidades e estrutura, usos e limitações, além de mostrar de que forma ele trabalha com p IPv6. Acesse: <http://www.midiacom.uff.br/~debora/redes1/pdf/trab042/OSPF.pdf>. Cada roteador possui uma tabela de roteamento diferente, refletindo sua posição única dentro da internet. À medida que se aproximam do núcleo da rede (core), os endereços vão sendo agregados, formando prefixos menores. Os roteadores que estão nas pontas da internet usam muitas rotas default e têm suas tabelas de roteamento com poucas rotas específicas. Já os roteadores do núcleo da internet possuem cerca de milhares de linhas de entrada em suas tabelas, sem nenhuma rota default. Resumo Esta unidade focou as camadas intermediárias e fundamentais para o bom funcionamento da arquitetura de rede: a Camada de Transporte e a Camada de Rede. A Camada de Transporte é responsável por fornecer serviços diretamente aos processos da aplicação. Na origem, a mensagem pode ser dividida em segmentos, e a Camada de Transporte adiciona ao seu cabeçalho informações importantes para serem tratadas no destino, e a envia à Camada de Rede, que vai direcionar a mensagem até o destino. Lá, no nível de transporte, é responsável por executar suas funções antes de descartar seu cabeçalho e entregar à Camada de Aplicação acima. Dentre as principais funções da Camada de Transporte, destacam-se: • controle de fluxo fim a fim; • detecção de erro; • correção de erro. 114 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Os protocolos principais que atuam nesta camada são UDP e TCP. Vimos que enquanto o UDP trabalha de forma rápida, e por isso não garante a entrega das mensagens, o TCP trabalha de forma mais lenta, porque trabalha detalhadamente para garantir que todos os segmentos de dados sejam entregues ao destino. Vamos lembrar algumas características importantes do UDP: • Oferece serviço não orientado à conexão; • Formato do segmento simples, permitindo rapidez de processamento; • Não garante a entrega e, portanto, a transferência de dados não é confiável; • Não possui controle de fluxo; • Utilizado em aplicações de voz e vídeo, tolerantes a perdas, aplicações de DNS, entre outros. Vale recordar também as características do TCP: • Oferece serviço orientado à conexão; • Faz a entrega confiável dos segmentos através de sequencialização de dados; • Tem formato do cabeçalho mais complexo que o UDP, que o torna mais lento; • Trabalha com janela deslizante e faz controle de fluxo; • Estabelece conexão antes de enviar os dados e encerra após o envio; • É utilizado para as aplicações que exigem integridade da mensagem original, sem perdas; • Permite multiplexação de várias conexões simultaneamente. A Camada de Rede é a responsável por interligar as redes na internet através dos roteadores. Vimos o conceito de gateway, que é o ponto de acesso a outras redes. A Camada de Rede, por meio dos protocolos específicos e dos roteadores, estabelece qual o melhor caminho a ser seguido para se chegar ao destino. O protocolo principal que atua nesse nível é o IP, que encaminha os datagramas da origem ao destino. O roteamento também é realizado por meio do endereço IP de cada máquina. O IP é um protocolo não confiável, por não implementar mensagens de confirmação e trabalhar executando o serviço de “melhor esforço”, ou seja, faz de tudo para entregar. Entretanto, se é perdido no meio do caminho, não recupera e nem pede retransmissão: o pacote é simplesmente descartado. Nessa ocasião, a Camada de Transporte, no destino, é que deverá solicitar a retransmissão à origem. 115 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO O Datagrama IP possui 32 bits e conhecemos cada um dos seus campos. Ele utiliza a técnica de fragmentação quando precisa atravessar redes com capacidades de transferência menor que seu tamanho. Nesse caso, o datagrama é dividido em fragmentos. Ao receber o primeiro fragmento, a estação inicia uma contagem de tempo para aguardar o conjunto completo de fragmentos. Se faltar algum, o datagrama é descartado e não pode ser remontado. Os fragmentos nunca são remontados. Vimos o endereço IPv4, conhecendo as classes-padrão de endereçamento e seus ranges de endereços IP, e exemplificamos como é possível construir sub-redes. O segredo aqui são as máscaras de sub-rede que, quando manipuladas, permitem ganhar ou economizar sub-redes. Os endereços IP são reservados para funções específicas, como é o caso dos endereços de broadcast, por exemplo. Outros endereços especiais são chamados de endereços privados e servem para montar uma rede TCP/IP sem gerar conflitos. NAT e DHCP são duas alternativas para o problema da falta de endereços IPv4. Ambas trabalham na tradução de endereço privado para endereço público. O roteamento é, sem dúvida, a tarefa mais importante da Camada de Rede. Ele funciona por meio de uma tabela de roteamento que ele contém. Basicamente, a informação das rotas, ou seja, dos prefixos de rede, e o endereço IP do próximo roteador no caminho. A tabela de roteamento sempre aponta para roteadores que podem ser alcançados diretamente, isto é, que estão conectados na mesma sub-rede. Os roteadores constroem suas tabelas de roteamento automaticamente, de forma dinâmica, trocando informações entre si por meio de protocolos de roteamento. Para encontrar o melhor caminho para o destino de um datagramaatravés da rede, os roteadores utilizam algoritmos de roteamento. O processo de encontrar o próximo passo após uma mudança na rede é denominado convergência. Existem dois tipos básicos de algoritmo de roteamento que devem ser considerados: • Distance vector: baseado no número de saltos na rede (hops), como o RIP. Sua métrica é simples, é rápido de convergir, mas possui limitações. • Link state: é baseado no estado do enlace e sua métrica considera diversos parâmetros da rede. Um exemplo é o OSPF, bastante difundido em redes de grande porte. BGP é um exemplo de protocolo de roteamento externo, do tipo EGP, e serve para interconectar redes independentes. 116 Unidade III Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Exercícios Questão 1 (adaptada de: Forouzan, Behrouz A. Comunicação de dados e redes de computadores). Qual o papel da Camada de Transporte? A) Encaminhar o pacote. B) Empacotamento. C) Controle de erros. D) Controle de acesso. E) Fornecer serviços. Resposta correta: alternativa E. Análise das alternativas: A) Alternativa incorreta. Justificativa: a Camada de Rede é responsável por encaminhar os pacotes ao seu destino e lá entregá-los à Camada de Transporte. B) Alternativa incorreta. Justificativa: o empacotamento é uma responsabilidade da Camada de Enlace. A Camada de Enlace de dados divide o fluxo de bits recebidos da Camada de Rede em unidades de dados gerenciáveis denominados frames. C) Alternativa incorreta. Justificativa: o controle de erros é uma responsabilidade da Camada de Enlace. A Camada de Enlace de dados acrescenta confiabilidade à Camada Física, adicionando mecanismos para detectar e retransmitir frames danificados ou perdidos. Ela também usa mecanismos para reconhecer frames duplicados. Normalmente, o controle de erros é obtido por meio de um trailer acrescentado ao final do quadro. D) Alternativa incorreta. Justificativa: o controle de acesso é uma responsabilidade da Camada de Enlace. Quando dois ou mais dispositivos estiverem conectados ao mesmo link, serão necessários protocolos da Camada de Enlace de dados para determinar qual dispositivo assumirá o controle do link em dado instante. 117 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO E) Alternativa correta. Justificativa: a Camada de Transporte, camada central da pilha de protocolos, desempenha o papel fundamental de fornecer serviços de comunicação diretamente aos processos de aplicação, que rodam em hospedeiros diferentes. Questão 2. (Forouzan, Behrouz A. Comunicação de dados e redes de computadores) Considere as afirmativas abaixo: I) Um endereço IPv4 é um endereço de 32 bits que define de forma única e universal a conexão de um dispositivo (por exemplo, um computador ou um roteador) à Internet. II) Os endereços IPv4 são exclusivos no sentido de que cada endereço define uma, e somente uma, conexão com a internet. Dois dispositivos na internet jamais podem ter o mesmo endereço ao mesmo tempo. Pelo uso de algumas estratégias, um endereço pode ser designado a um dispositivo por determinado período e, em seguida, retirado e atribuído a um outro dispositivo. III) O espaço de endereços do IPv4 é igual a 232, ou seja, 4.294.967.296. Está(ão) correta(s) a(s) afirmativa(s): A) Somente a I. B) I e II. C) II e III. D) I e III. E) I, II e III. Resolução desta questão na plataforma. 118 Unidade IV Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Unidade IV Esta é a última unidade do livro-texto, que trata agora com facilidade das camadas mais inferiores da pilha de protocolos: as camadas de Enlace e Física. A preocupação dessas camadas é, na origem e no destino, entender como a informação é transportada entre os nós da rede e como é a transformação dos dados em informação nos meios físicos existentes. 7 CAMADA DE ENLACE Também chamada de Link de Dados, a Camada de Enlace está localizada entre as camadas baixas na pilha de protocolos (figura 86) e é responsável por pegar os pacotes de dados recebidos da Camada de Rede e transformá-los em quadros (frames), que serão trafegados pela rede, adicionando informações como o endereço da placa de rede de origem, o endereço da placa de rede de destino, os dados de controle, os dados propriamente ditos e o identificador de verificação (checksum). 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 86 - Camada de Enlace (KOVACH, 2009) Lembrete Lembre-se: é a Camada de Enlace a responsável pela delimitação dos quadros. Na origem, o quadro criado pela Camada de Enlace é enviado à Camada Física, que o converte em sinais elétricos para serem enviados através do meio físico. Na origem, quando o receptor recebe um quadro, a sua Camada de Enlace confere se o dado chegou íntegro por meio do identificador de verificação (checksum). Se os dados estiverem íntegros, ele envia uma confirmação de recebimento, chamada acknowledge, ou simplesmente ack. Caso essa confirmação não seja recebida, a camada Link de Dados do transmissor reenvia o quadro, já que ele não chegou até o receptor ou então chegou com os dados corrompidos. 119 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Observação Quando o fluxo de bits chega na Camada de Enlace, este é dividido em quadros. Estes são submetidos a uma soma de verificação denominada de checksum. Ao chegarem ao destinatário, este faz seu próprio checksum e compara-o com o do quadro enviado. Em caso de erro no teste, a Camada de Enlace deverá agir de forma que haja a correção ou o descarte daquele quadro defeituoso. 7.1 Enquadramento Para oferecer serviços à Camada de Rede, a Camada de Enlace de dados deve usar o serviço fornecido a ela pela Camada Física. A Camada Física aceita um fluxo de bits bruto e tenta entregá-lo a seu destino. Não há uma garantia de que esse fluxo de bits seja livre de erros. A Camada de Enlace de dados é responsável por detectar e, se necessário, corrigir erros. Veja a seguir a estratégia adotada pela Camada de Enlace: • dividir o fluxo de bits em quadros; • calcular o checksum em relação a cada quadro; • quando o quadro chega a seu destino, o checksum é recalculado; • se o checksum recém-calculado for diferente do contido no quadro, a Camada de Enlace saberá que houve erro e tomará providências para corrigi-lo (CARVALHO, 2009). 7.2 Controle de erros Como nos certificarmos de que todos os quadros serão entregues na Camada de Rede de destino e na ordem correta? O protocolo solicita que o receptor retorne quadros de controle especiais com confirmações positivas ou negativas sobre os quadros recebidos. Se enviar uma confirmação positiva, o quadro foi recebido com segurança; se enviar uma confirmação negativa, algo saiu errado e o quadro deve ser retransmitido. Problemas de hardware podem fazer com que um quadro desapareça completamente. Assim, o receptor não reagirá, pois não há motivo para isso. O quadro completamente perdido faz com que o protocolo fique aguardando confirmação e permaneça em suspense para sempre. Nesse caso, a solução é introduzir um temporizador na Camada de Enlace, que é ajustado para ser desativado após um intervalo suficientemente longo, após o quadro ter sido entregue ao destino. Em geral, a confirmação é acusada antes de o temporizador ser desativado. Se a confirmação ou o quadro se perderem, o temporizador será desativado. A solução agora é transmitir o quadro outra vez. 120 Unidade IV Revi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Existe ainda a possibilidade de o receptor aceitar o mesmo quadro duas ou mais vezes ou enviá-lo à Camada de Rede mais de uma vez. Nesse caso, é possível a atribuição de números de sequência nos quadros enviados, a fim de que o receptor possa distinguir as retransmissões dos originais. 7.3 Controle de fluxo Um transmissor quer enviar quadros mais rapidamente do que o receptor é capaz de aceitá-los. Isso pode acontecer quando o transmissor está sendo executado em um computador rápido e o receptor utilizado é lento. Nesse caso, o transmissor fica bombeando os quadros em alta velocidade até o receptor ser totalmente “inundado”. Mesmo que a transmissão não contenha erros, em um determinado ponto o receptor não será mais capaz de receber os quadros e começará a perder alguns deles. Existem diversos esquemas de controle de fluxo e a maioria utiliza o mesmo princípio. O protocolo contém regras bem-definidas sobre quando o transmissor pode enviar o quadro seguinte. Com frequência, essas regras impedem que os quadros sejam enviados até que o receptor tenha concedido permissão para transmissão, implícita ou explicitamente (CARVALHO, 2009). Observação O controle de fluxo é uma função executada tanto pela Camada de Enlace como pela Camada de Transporte. A diferença é que esta última faz o controle considerando fim a fim, ou seja, a origem e o destino, e a Camada de Enlace faz o controle considerando apenas o próximo nó da rede. 7.4 Problemas na transmissão Durante as transmissões, os sinais estão sujeitos a problemas que podem ser gerados no próprio meio ou externamente. São estes os mais comuns: • Ruídos: agora que já vimos o que é modulação, fica fácil entender o que é ruído. O ruído é qualquer sinal externo interferente no sistema de comunicação. • Distorção: é qualquer mudança indesejada no formato da onda. Distorção por atenuação da onda: nesse caso, a onda tem sua amplitude diminuída, ou seja, atenuada. Dessa forma, a distorção acontece porque cada frequência é afetada diferentemente das outras. As frequências de limite (as menores e as maiores frequências) estão mais sujeitas à atenuação, o que resulta em um sinal diferente do emitido. Distorção por retardo: a fase da onda é modificada em alguns graus de maneira não linear, sendo que as frequências de limite sofrem mais distorção. • Crosstalk: é também chamado de diafonia e acontece quando o sinal trafegado em um par trançado gera uma indução elétrica num cabo próximo. É a famosa linha cruzada, mais suscetível em frequências mais altas. 121 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO • Eco: um tipo de ruído semelhante ao eco acústico, nosso conhecido antigo, mas nesse caso o sinal emitido se encontra com o sinal transmitido anteriormente, o que afeta a sua captação na outra ponta. Isso pode ocorrer sempre que o meio de transmissão apresentar uma variação na sua impedância (medida da oposição ao fluxo de dados). • Jitter: também chamado de jitter de fase, é um atraso que ocorre e altera o sinal da portadora, fazendo parecer que houve modulação. É ocasionado geralmente por problemas na rede elétrica, diferente do jitter que vimos anteriormente nas redes de computadores e na internet, que é um fenômeno de atraso entre os pacotes que chegam. Sabemos que para tráfego de dados não há problemas, já que a própria interface de rede é capaz de reordená-los. Exceto para o trafego de voz e streaming, que é uma dificuldade, porque a ordem dos pacotes e o tempo que levam para chegar irão afetar a sua reprodução. Existem três tipos de jitter: • Tipo A – jitter constante. É um nível aproximadamente constante da variação de atrasos entre pacotes. • Tipo B – jitter passageiro. É caracterizado por um aumento substancial do atraso que pode ocorrer em um único pacote. • Tipo C – variação de atraso em curto prazo. É um aumento no atraso que persiste por alguns pacotes seguidos e pode ser acompanhado por um crescimento na variação do atraso entre pacotes. Lembrete Jitter é o pior atraso que pode acontecer em uma transmissão, pois é uma variação do atraso. 7.5 Detecção e correção de erros Erros são causados por atenuação do sinal e por ruído. O receptor é capaz de detectar a presença de erros. Após essa detecção, o receptor sinaliza ao remetente para retransmissão ou simplesmente descarta o quadro em erro. Correção de erros é o mecanismo que permite que o receptor localize e corrija o erro sem precisar da retransmissão. Exemplos de técnicas de detecção de erros nos dados transmitidos são: • verificações de paridade; • métodos de soma e verificação; • verificações de redundância cíclica (CRC). 122 Unidade IV Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 7.6 Protocolos elementares O canal de comunicação entre as camadas de enlace de dados na origem e no destino pode ser feito de diversas maneiras. 7.6.1 Simplex A comunicação simplex é aquela em que somente um dos lados está apto a enviar informações. A transmissão é unidirecional exclusiva, como nas transmissões de rádio e TV. Em redes é muito pouco utilizada. 7.6.2 Duplex A transmissão duplex é composta por dois interlocutores e ambos estão aptos a enviar e receber informações. Pode ser chamada também de bidirecional. É importante dizer que, se houver mais do que dois elementos se comunicando, a transmissão não poderá ser chamada de duplex. Dentro do conceito de duplex, temos duas possibilidades o Half-duplex e o Full-duplex. • Half-duplex: também conhecido como semi-duplex, é chamada assim porque, apesar de ambos os emissores poderem enviar e receber informações, isso não pode ocorrer simultaneamente. Um bom exemplo é o walkie-talkie, enquanto um fala, o outro ouve e vice-versa. • Full-duplex: pode ser chamada apenas de duplex. Nesse caso, podemos enviar e receber dados simultaneamente, cada elemento tem seu próprio canal de envio. Podemos dizer que um canal full-duplex equivale a dois canais half-duplex. Como exemplos, podemos citar o telefone e as redes de dados. 8 CAMADA FÍSICA A Camada Física é a camada mais baixa da pilha de protocolos, o que pode ser observado na figura 85. Ela é responsável especialmente por pegar os quadros enviados pela Camada de Enlace e os transformar em sinais compatíveis com o meio pelo qual os dados deverão ser transmitidos. Se o meio for elétrico, essa camada converte os bits 0 e 1 dos quadros em sinais elétricos a serem transmitidos pelo cabo; se o meio for óptico, essa camada converte os bits 0 e 1 dos quadros em sinais luminosos, e assim por diante, dependendo do meio de transmissão de dados. Essa camada especifica, portanto, a maneira pela qual os bits 0 e 1 dos quadros serão enviados para a rede (ou recebidos da rede, no caso da recepção de dados). Ela não sabe o significado dos bits que está recebendo ou transmitindo. Por exemplo, no caso da recepção de um quadro, a Camada Física converte os sinais do cabo em bits 0 e 1 e os envia para a Camada de Enlace, que montará o quadro e verificará se ele foi recebido corretamente. O papel dessa camada é efetuado pela placa de rede dos dispositivos conectados em rede. 123 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO 7 Aplicação 6 Apresentação 5 Sessão 4 Transporte 3 Rede 2 Enlace 1 Física Figura 87 - Camada Física (KOVACH, 2009) Agora que já mencionamos que a Camada Física é responsável pela conversão dos sinais digitais em sinais que possamser compreendidos pelos meios físicos, vamos falar de tais meios que a sustentam. Para definir bem o que vem a ser meio físico, imagine um bit sendo transmitido por um sistema final, ele irá passar por um modem, que em seguida o enviará para o ISP que, conectado ao roteador de borda, o encaminhará à nuvem. Dentro da nuvem, o bit será transmitido de roteador a roteador até que chegue ao roteador de borda do receptor, que direcionará o nosso bit viajante até o modem do receptor e, por último, o encaminhará para a placa de rede do servidor, que lê aquele bit e pronto! Chegou. Simples, mas veja quantas conexões foram necessárias até que o nosso bit alcançasse seu destino, a cada troca de equipamento havia um meio físico dando o suporte. Esses meios físicos podem ser de duas categorias: os meios guiados ou os meios não guiados. Nos meios guiados, os bits de informação são direcionados ao longo de um meio sólido, como o cabo de cobre trançado ou a fibra óptica. Já nos meios não guiados, as ondas são propagadas na atmosfera ou no espaço através de ondas eletromagnéticas, a exemplo das redes wireless ou das transmissões via satélite. 8.1 Par de fios de cobre É o meio de transmissão guiado mais barato e mais utilizado em redes de curto e médio alcance. Há mais de 100 anos, 99% das redes de telefonia são compostas de cabos de par trançado de cobre. Eles são feitos com fios de cobre de aproximadamente 1 milímetro. No caso da telefonia, um par e, no caso das redes de computadores, 3 pares. São produzidos em espiral, dessa forma a indução eletromagnética gerada é atenuada. Quando surgiram as fibras ópticas, muitos acreditavam que os fios de cobre seriam extintos, devido à sua taxa de transmissão relativamente baixa. Mas isso nunca aconteceu, surgiram novas tecnologias de cabos, por exemplo, o UTP categoria 5, que é mais comumente utilizado nas redes locais de computadores. O UTP Cat5, como é conhecido, pode alcançar até 100 Mpbs nas taxas de transmissão em algumas centenas de metros. Em distâncias mais curtas, pode atingir até velocidades maiores. Outro fator para o grande sucesso do cobre é o seu custo, que é muitas vezes menor do que o de qualquer outro meio de transmissão. 124 Unidade IV Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 8.2 Cabo coaxial Como no cabo de par trançado, o cabo coaxial possui dois condutores de cobre, com a diferença de estarem de forma concêntrica e não paralelos. Dessa forma, com um isolamento especial, podem atingir maiores taxas de transmissão, já que sua estrutura é mais imune a interferências. Amplamente utilizado pelas empresas de televisão a cabo e, mais recentemente, também para envio de internet através da tecnologia HFC. O cabo coaxial pode ser usado como meio compartilhado, podendo abrigar diversos canais de tráfego simultaneamente. . 8.3 Fibra óptica A fibra óptica possui um filamento interno produzido a partir de material vítreo ou plástico revestido por uma camada de silicone ou acrilato, por sua característica de baixo índice refratário. É bastante flexível e capaz de conduzir pulsos de luz por longas distâncias sem perdas. Cada pulso representa um bit, e sua taxa de transmissão pode chegar a centenas de gigabits por segundo. As fibras são imunes a interferências magnéticas, como os meios são a base de cobre, e em distâncias de até cem quilômetros, não sofrem atenuação. Por isso, elas são os meios mais difundidos para transmissões de longa distância das redes backbones. Entretanto, o alto custo dos equipamentos de transmissão e a dificuldade da implantação tornam pouco interessante o seu uso em curtas distâncias ou para usuários residenciais. A tendência é que haja uma queda nos preços dos equipamentos envolvidos nas transmissões ópticas. Saiba mais Conheça o processo de fabricação das fibras ópticas pelo vídeo Fibra Óptica - Processo de Fabricação. Acesse: <http://vimeo.com/32171567>. 8.4 Transmissão via rádio terrestre Na transmissão via rádio, o meio de propagação é o ar. Sinais eletromagnéticos são gerados e se propagam carregando consigo os bits. As características variam de acordo com o tipo de transmissão e o local. 125 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO Podemos classificar os sinais de rádio em duas categorias: os de pequeno alcance, desde poucos metros até algumas centenas; e os de longo alcance, que podem alcançar algumas dezenas de quilômetros. Os sistemas de transmissão WiFi utilizam os canais de pequeno alcance, enquanto o sistema celular, os de longo alcance. 8.5 Transmissão via rádio satélite Há mais de 40 anos, utilizam-se os satélites em sistemas de telecomunicações. O satélite recebe as informações de uma estação em terra e, usando um repetidor, envia em outra faixa de frequência o sinal com destino a outra estação em solo. Tudo com taxas que podem atingir gigabits por segundo. Podemos classificar os satélites quanto à sua altitude e, por consequência, à sua órbita. Os mais utilizados comercialmente são os GEOS (Geostationery Earth Orbit Satelities – Satélite em Órbita Geoestacionária da Terra). São classificados como satélites geoestacionários. Sua órbita é circular, equatorial e estática com relação à Terra, ou seja, sua velocidade de translação é a mesma da Terra, isso faz com que o satélite esteja permanentemente sobre o mesmo ponto na Terra. Para conseguir isso, ele deve ser colocado a uma altitude de 36.000 quilômetros do solo. Essa distância toda gera um atraso significativo de até 280 milissegundos. Apesar do atraso, esse tipo de satélite é o mais utilizado para transmissão de telefonia intercontinental. Os LEOS (Low Earth Orbit Satelities – Satélites em Baixa Órbita da Terra) estão localizados mais próximos da Terra e sua translação é diferente da translação Terra. Portanto, eles não permanecem sobre o mesmo ponto, exatamente como a Lua. Eles podem se comunicar entre si e com estações terrestres. É necessário um grande número de LEOS em órbita para cobrir continuamente uma determinada área. Esse tipo de satélite é muito usado em sistemas de georreferenciamento, auxílio à navegação, sensoriamento remoto, fins militares e outros. Como exemplo, podemos citar o sistema Globalstar, que oferece serviços de telecomunicações (dados, voz e paging) através de 48 LEOS em oito órbitas, numa altitude de 1.410 quilômetros. Saiba mais Conheça a constelação de satélites no mundo. Veja a movimentação deles em tempo real acessando: <http://www.n2yo.com/>. 126 Unidade IV Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 Resumo Nesta unidade tratamos das duas camadas de mais baixo nível, a de Enlace e a Física. A Camada de Enlace, também conhecida com Link de Dados, é a responsável por transformar em quadros os pacotes de dados recebidos pela Camada de Rede. A Camada de Enlace encaminha a Camada Física, que converte o quadro em sinais elétricos para serem trafegados através do meio físico. Importante lembrar aqui que as ações tomadas por essa camada não consideram a transmissão fim a fim, apenas a transmissão até o próximo nó da rede. Lembre-se do identificador de verificação (checksum) que é utilizado para confirmação da integridade da informação e, se tudo estiver de acordo, é enviada a confirmação de recebimento, chamada acknowledge ou ack. A Camada de Enlace é responsável por detectar erros na transmissão da Camada Física. Para isso, ela divide o fluxo de bits em quadros, realiza o checksum em cada quadro (no envio e na recepção) e tenta corrigir um quadro. Caso não seja possível, solicita retransmissão. Paracontrole de erros, o protocolo de Camada de Enlace solicita quadros especiais, com a informação que confirma ou não o recebimento adequado da informação. Outra possibilidade é de que o quadro desapareça na nuvem, nesse caso o protocolo tem um temporizador que avalia se o quadro pode ter sido realmente perdido e, neste caso, o reenvia. Algumas técnicas de detecção: • Verificações de paridade; • Métodos de soma e verificação; • Verificações de redundância cíclica (CRC). Vamos nos lembrar agora dos protocolos elementares, que são os canais de comunicação entre as camadas de enlace de dados na origem e destino. Esses canais podem ser do tipo Simplex, onde somente um dos lados está apto a transmitir; Half-Duplex ou Semi-Duplex, onde ambos os 127 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO lados podem transmitir, mas isso não pode ocorrer simultaneamente. E o canal Duplex ou Full-Duplex, onde ambos os lados podem transmitir ao mesmo tempo. A Camada Física é a mais baixa na pilha de protocolos, sua responsabilidade é pegar os quadros da Camada de Enlace e enviá-los pelo meio de transmissão, adequando-os de acordo com cada meio, fios de cobre, fibra óptica etc. Essa camada não faz diferenciação do que será transmitido, ela recebe os bits e os envia, depois verifica se chegaram intactos. Os meios utilizados podem ser do tipo guiado, onde os bits são direcionados em um meio sólido, ou os não guiados, onde a propagação ocorre na atmosfera, sem fio, como por exemplo os sistemas WiFi. Os principais meios de transmissão que vimos aqui são: • Par de fios de cobre; • Cabo coaxial; • Fibra óptica; • Transmissão via rádio terrestre; • Transmissão via rádio satélite. Exercícios Questão 1. (adaptada de: Forouzan, Behrouz A. Comunicação de dados e redes de computadores) Podemos afirmar: I. No controle do enlace de dados, temos a montagem e a delimitação de frames (framing) e a implementação de mecanismos de controle de fluxo e de erros por meio de protocolos de comunicação de dados implementados via software, os quais possibilitam uma transmissão confiável dos frames entre os nós. II. A Camada de Enlace precisa empacotar bits em frames de modo que cada frame seja distinguível um do outro. Nosso sistema de correio pratica uma espécie de framing. III. O framing, na camada de receptor de dados, separa uma mensagem, de uma origem a um destino, de outras mensagens a outros destinos, acrescentando o endereço do emissor e do destino. O endereço do receptor define para onde o pacote deve ser encaminhado; o endereço do emissor ajuda o receptor a confirmar o recebimento do pacote. 128 Unidade IV Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 IV. A Camada de Enlace faz o controle de congestionamento e qualidade de serviços. São duas questões tão intimamente ligadas que a melhoria de uma delas significa a melhoria da outra e ignorar uma delas normalmente implica ignorar a outra. Está(ão) correta(s) a(s) afirmativa(s): A) Somente a IV. B) I e II. C) I e IV. D) I, II e III. E) I, II, III e IV. Resposta correta: alternativa D. Análise da afirmativa incorreta IV) Afirmativa incorreta. Justificativa: é a Camada de Transporte que faz o controle de congestionamento e qualidade de serviços, não a Camada de Enlace. Questão 2. (Forouzan, Behrouz A. Comunicação de dados e redes de computadores) Um meio de transmissão, em termos gerais, pode ser definido como: A) Qualquer coisa capaz de transportar informações de uma origem a um destino. B) O meio de transmissão geralmente pode ser o espaço livre. C) Entre os meios de transmissão guiados temos: cabos de par trançado. D) A fibra óptica é um cabo que aceita e transporta sinais na forma de luz e pode ser considerada um meio de transmissão. E) Todas as afirmativas acima estão corretas. Resolução desta questão na Plataforma. 129 Re vi sã o: E la in e - Di ag ra m aç ão : F ab io - 2 3/ 05 /1 2 FUNDAMENTOS DE REDES DE DADOS E COMUNICAÇÃO FIGURAS E ILUSTRAÇÕES Figura 13 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 14 TANENBAUM, A. S. Redes de computadores. 4. ed. Rio de Janeiro: Campus, 2003. Figura 15 TANENBAUM, A. S. Redes de computadores. 4. ed. Rio de Janeiro: Campus, 2003. Figura 16 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 27 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 28 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 29 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 30 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 31 Disponível em: <http://marketshare.hitslink.com/report.aspx?qprid=0>. Acesso em: 27 abr. 2012. 130 Figura 32 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006. Figura 33 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006. Figura 34 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 35 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006. Figura 36 Disponível em: <http://www.campaignmonitor.com/stats/email-clients/>. Acesso em: 27 abr. 2012. Figura 37 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006. Figura 39 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 40 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 41 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. 131 Figura 42 Disponível em: <http://www.root-servers.org/>. Acesso em: 8 out. 2011. Figura 43 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 45 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 46 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 51 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 52 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológicaem Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 53 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 54 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 55 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. 132 Figura 56 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 57 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 58 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 59 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 60 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 62 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 63 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 64 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 65 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. 133 Figura 66 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 67 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 68 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 69 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 70 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 71 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 72 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 73 KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. Figura 79 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. 134 Figura 81 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 84 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 85 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 86 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. Figura 87 KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. REFERÊNCIAS Audiovisuais GUERREIROS da internet. Produção de Thomas Stephanson e Monte Reid. Disponível em: <www. warriorsofthe.net>. Acesso em: 8 nov. 2011. Textuais BARROS, F. Cloud Computing: prepare-se para a nova onda em tecnologia. Computerworld. São Paulo, abr. 2008. Disponível em: <http://computerworld.uol.com.br/gestao/2008/04/17/cloud-computing- prepare-se-para-a-nova-onda-em-tecnologia/>. Acesso em: 8 nov. 2011. CARVALHO, T. C. M. B. Princípios de comunicação. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. FILIPPETTE, M. A. CCNA 4.1 - guia completo de estudo. Florianópolis: Visual Books, 2008. 135 GUPTA, M.; PARIHAR, M.; LASALLE, P.; SCRIMGER, R. TCP/IP: a bíblia. Rio de Janeiro: Editora Campus/ Elsevier, 2002. KOVACH, S. Arquitetura TCP/IP. MBA em Inovação Tecnológica em Comunicação e Redes. Departamento de Computação e Sistemas Digitais. Escola Politécnica. Universidade de São Paulo, 2009. KUROSE, J. F.; ROSS, K. R. Redes de computadores e a internet: uma abordagem top-down. 3. ed. São Paulo: Pearson, 2006. _____. Redes de computadores e a internet: uma abordagem top-down. 5. ed. São Paulo: Pearson, 2010. NAUGLE, M. Guia ilustrado do TCP/IP. São Paulo: Editora Berkeley Brasil, 2001. NEVES, J. S. das; TORRES, W. R. O Protocolo OSPF. Departamento de Engenharia de Telecomunicações. Universidade Federal Fluminense. Niterói. Disponível em: <http://www.midiacom.uff.br/~debora/ redes1/pdf/trab042/OSPF.pdf>. Acesso em: 8 nov. 2011. PINHEIRO, J. M. S. Afinal, o que é qualidade de serviço? Projeto de Redes. São Paulo, mar. 2004. Disponível em: <http://www.projetoderedes.com.br/artigos/artigo_qualidade_servico.php>. Acesso em: 8 nov. 2011. SVERZUT, J. U. Redes convergentes - entenda a evolução das redes de telecomunicações a caminho da convergência. São Paulo: Artliber Editora, 2008. TANENBAUM, A. S. Redes de computadores. 4. ed. Rio de Janeiro: Campus, 2003. TORRES, G. Redes de computadores: curso completo. 3. ed. Rio de Janeiro: Axcel Books, 2001. VAQUERO, L. M.; MERINO-RODERO, L.; CACERES, J.; LINDNER, M. A break in the clouds: towards a cloud definition. ACM SIGCOMM Computer Communication Review, 39(1): 50-55, janeiro 2009. WOOD, R. Next-generation network services. Cisco Press, 2005. Sites <http://www.ftthcouncil.org> <http://www.teleco.com.br/internet.asp> <http://www.teleco.com.br/blarga.asp> <http://www.teleco.com.br/3g_brasil.asp> 136 <http://www.mc.gov.br/images/pnbl/o-brasil-em-alta-velocidade1.pdf> <http://www.campaignmonitor.com> <http://www.campaignmonitor.com/stats/email-clients/><http://diariodigital.sapo.pt/news.asp?section_id=18&id_news=417591> <http://www.root-servers.org> <http://www.inteligensis.pt/bc/bc.htm> <http://www.centr.org/main/6200-CTR/5418-CTR.html> <http://www.lucalm.hpg.ig.com.br/osi.htm> <http://www.projetoderedes.com.br/artigos/artigo_modelo_osi.php> <http://penta2.ufrgs.br/rc952/trab2/sessao2.html> <http://www.n2yo.com/> <http://vimeo.com/32171567> <http://vimeo.com/32171111> <http://vimeo.com/32170600> <http://marketshare.hitslink.com/report.aspx?qprid=0> Exercícios Unidade II – Questão 2: FOROUZAN, B. A. Comunicação de dados e redes de computadores. 4. ed. Porto Alegre: McGraw-Hill Artmed, 2008. p. 1096. Unidade III – Questão 1: FOROUZAN, B. A. Comunicação de dados e redes de computadores. 4. ed. Porto Alegre: McGraw-Hill Artmed, 2008. p. 34. Unidade III – Questão 2: FOROUZAN, B. A. Comunicação de dados e redes de computadores. 4. ed. Porto Alegre: McGraw-Hill Artmed, 2008. p. 539. Unidade IV – Questão 1: FOROUZAN, B. A. Comunicação de dados e redes de computadores. 4. ed. Porto Alegre: McGraw-Hill Artmed, 2008. p. 746. Unidade IV – Questão 2: FOROUZAN, B. A. Comunicação de dados e redes de computadores. 4. ed. Porto Alegre: McGraw-Hill Artmed, 2008. p. 188. 137 138 139 140 141 142 143 144 Informações: www.sepi.unip.br ou 0800 010 9000