Docsity
Docsity

Prepare-se para as provas
Prepare-se para as provas

Estude fácil! Tem muito documento disponível na Docsity


Ganhe pontos para baixar
Ganhe pontos para baixar

Ganhe pontos ajudando outros esrudantes ou compre um plano Premium


Guias e Dicas
Guias e Dicas

Arquitetura TCP-IP, Notas de estudo de Informática

Arquitetura TCP-IP

Tipologia: Notas de estudo

2010

Compartilhado em 18/03/2010

matheus-marcus-3
matheus-marcus-3 🇧🇷

4.3

(3)

15 documentos

Pré-visualização parcial do texto

Baixe Arquitetura TCP-IP e outras Notas de estudo em PDF para Informática, somente na Docsity! Arquitetura TCP/IP ÍNDICE 1. INTRODUÇÃO.................................................................................................................................................... 3 1.1.SERVIÇOS EM REDES..................................................................................................................................4 1.2.ESCOPO DA INTERNET...............................................................................................................................8 2. BÁSICO DE UMA REDE..................................................................................................................................11 2.1.WANS E LANS............................................................................................................................................... 12 2.2.A TECNOLOGIA ETHERNET.................................................................................................................... 13 2.3.FDDI (FIBER DISTRIBUTED DATA INTERCONNECT)................................................................................................ 15 2.4.ATM (ASYNCHRONOUS TRANSFER MODE)...........................................................................................................17 2.5.INTERLIGAÇÃO EM REDES..................................................................................................................... 19 3.ENDEREÇAMENTO..........................................................................................................................................21 3.1.ENDEREÇOS DE REDES E DE BROADCAST......................................................................................... 23 3.2.ENDEREÇO DE LOOPBACK......................................................................................................................24 3.3.PONTOS FRACOS NO ENDEREÇAMENTO............................................................................................ 25 3.4.UM EXEMPLO............................................................................................................................................. 26 4.PROTOCOLOS...................................................................................................................................................28 4.1.MODELO DA DIVISÃO EM CAMADAS OSI........................................................................................... 29 4.2.MODELO DA DIVISÃO EM CAMADAS TCP/IP......................................................................................30 4.3.PROTOCOLOS DE TRANSPORTE............................................................................................................ 32 4.3.1.UDP (User Datagram Protocol)............................................................................................................32 4.3.2.TCP (Transmission Control Protocol)................................................................................................... 34 4.4.PROTOCOLOS DE REDE............................................................................................................................37 4.4.1.IP (Internet Protocol).............................................................................................................................37 4.4.2.ICMP (Internet Control Message Protocol).......................................................................................... 42 4.4.3.ARP (Address Resolution Protocol).......................................................................................................44 4.4.4.RARP (Reverse Address Resolution Protocol).......................................................................................45 5.ROTEAMENTO..................................................................................................................................................47 5.1.ROTEAMENTO BASEADO EM TABELAS.............................................................................................. 47 5.2.ALGORITMOS DE ROTEAMENTO...........................................................................................................48 5.2.1.ROTEAMENTO VECTOR-DISTANCE .................................................................................................49 5.2.2.ROTEAMENTO LINK-STATE (Shortest Path First)............................................................................. 50 5.3.PROTOCOLOS DE ROTEAMENTO...........................................................................................................51 5.3.1.IGP – Interior Gateway Protocol.......................................................................................................... 52 5.3.2.EGP - Exterior Gateway Protocol......................................................................................................... 55 Rafa Pág. 1/83 Arquitetura TCP/IP 5.3.3.BGP – Border Gateway Protocol.......................................................................................................... 56 5.4.ROTEAMENTO MULTICAST.................................................................................................................... 59 6.TCP/IP EM REDES ATM..................................................................................................................................62 7.DNS (DOMAIN NAME SYSTEM)....................................................................................................................64 8.APLICAÇÕES.....................................................................................................................................................66 8.1.TELNET........................................................................................................................................................ 66 8.2.FTP (FILE TRANSFER PROTOCOL)........................................................................................................................68 8.3.NFS (NETWORK FILE SYSTEM)........................................................................................................................... 70 8.4.RPC (REMOTE PROCEDURE CALL)...................................................................................................................... 72 8.5.SMTP (SIMPLE MAIL TRANSFER PROTOCOL)....................................................................................................... 73 9.FUTURO DO TCP/IP (IPV6).............................................................................................................................76 9.1.FORMATO DO DATAGRAMA...................................................................................................................78 9.2.TAMANHO DO ESPAÇO DE ENDEREÇO................................................................................................79 9.3.TRÊS TIPOS BÁSICOS DE ENDEREÇO DO IPV6....................................................................................81 10.BIBLIOGRAFIA............................................................................................................................................... 83 Rafa Pág. 2/83 Arquitetura TCP/IP • Correio Eletrônico. O correio eletrônico permite que um usuário elabore memorandos e os envie a indivíduos ou grupos. Uma outra parte do aplicativo do correio eletrônico permite que os usuários leiam os memorandos que receberam. O correio eletrônico tem sido tão bem-sucedido que muitos usuários da Internet dependem dele para correspondência comercial normal. Embora existam muitos sistemas de correio eletrônico, a utilização do TCP/IP faz com que a entrega de correio seja mais confiável, já que não depende de computadores para processamentos intermediários na transmissão de mensagens. Um sistema de entrega de correio TCP/IP opera através de contato direto entre a máquina do transmissor e a máquina do receptor. Assim, o transmissor sabe que quando a mensagem deixa a máquina local, ela foi recebida com êxito no destino. • Transferência de arquivos. Embora alguns usuários às vezes transfiram arquivos através do correio eletrônico, ele se destina, sobretudo, a mensagens de pouco texto. Os protocolos TCP/IP incluem um programa aplicativo que permite que os usuários enviem ou recebam arbitrariamente arquivos externos de programas de dados. Ao utilizar, por exemplo, um programa de transferência de arquivos, a pessoa pode copiar de uma máquina para outra uma base de dados extensa contendo imagens de satélite, um programa escrito em Pascal ou C++, ou um dicionário de inglês. O sistema indica uma maneira de checar os usuários autorizados, ou até de evitar acessos. Tal como ocorre com o correio eletrônico, a transferência de arquivos na interligação em redes TCP/IP é confiável porque as duas máquinas envolvidas comunicam-se diretamente, sem depender de máquinas intermediárias que façam cópias do arquivo ao longo do processo. • Login remoto. O login remoto permite que, de seu computador, um usuário entre em conexão com uma máquina remota e estabeleça uma sessão interativa de login. O login remoto faz com que uma janela na tela do usuário pareça conectar-se diretamente com a máquina remota, enviando cada toque no teclado a uma máquina remota e exibindo cada caracter que o computador remoto imprime na janela do usuário. Quando a sessão de login remoto termina, o aplicativo retorna o usuário ao sistema local. No nível da camada de rede, uma interconexão proporciona extensos tipos de serviços que todos os programas aplicativos utilizam: Rafa Pág. 5/83 Arquitetura TCP/IP • Serviço de entrega de pacotes sem conexão. Este serviço, explicado com detalhes ao longo do texto, forma a base para todos os serviços de interligação em redes. A entrega sem conexão constitui uma preocupação do serviço oferecido pela maioria das redes distribuidoras de encomendas. Isso simplesmente significa que a interligação em redes TCP/IP promove o roteamento de pequenas mensagens de uma máquina para outra, com base nas informações do endereço contidas na mensagem. Como o serviço sem conexão promove o roteamento de cada pacote separadamente não há garantia de entrega, e nem de entrega na mesma ordem na qual os pacotes forma transmitidos. Já que quase sempre há um mapeamento direto para o hardware, o serviço sem conexão é extremamente eficiente. O mais importante é que a entrega de pacotes, sem conexão, como base para todos os serviços de interligação em redes, torna os protocolos TCP/IP adaptáveis a uma ampla gama de hardware de redes. • Serviço de transporte de streams confiáveis. A maioria dos aplicativos precisa de muito mais do que uma entrega de pacotes, porque eles exigem que o software de comunicação corrija automaticamente erros de transmissão, pacotes perdidos, ou falhas de comutações ao longo do caminho entre o transmissor e o receptor. O serviço de transporte confiável trata desses problemas. Ele permite que um aplicativo de um computador estabeleça uma “conexão” com um aplicativo de outro computador, e a seguir envie um grande volume de dados através da conexão, como se fosse uma conexão de hardware direta e permanente. Naturalmente, em um nível mais baixo, os protocolos de comunicação dividem a cadeia de dados em mensagens curtas e as envia, uma de cada vez, esperando que o receptor confirme a recepção. Muitas redes oferecem serviços básicos semelhantes aos mencionados acima, de modo que alguém poderia questionar o que diferencia os serviços TCP/IP de outros. As principais características diferenciadoras são: • Independência da tecnologia de redes. Embora o TCP/IP seja baseado em tecnologia convencional de comutação de pacotes, ele é independente do hardware de qualquer fornecedor específico. A Internet inclui diversas tecnologias de rede, desde as redes projetadas para operar em um prédio até as projetadas para cobrir grandes distâncias. Os protocolos TCP/IP definem a unidade de transmissão de dados denominada datagrama, e especifica como transmitir datagramas em uma rede específica. Rafa Pág. 6/83 Arquitetura TCP/IP • Interconexão universal. Uma interligação em redes TCP/IP permite a comunicação de que qualquer par de computadores ao qual ela é conectada. A cada computador é atribuído um endereço universalmente reconhecido por toda a interligação em redes. Cada datagramas traz os endereços de sua origem e de seu destino. Os computadores de comutação intermediária utilizam o endereço de destino para tomar decisões sobre roteamento. • Confirmações fim-a-fim. Os protocolos de interligação em redes TCP/IP fornecem uma confirmação entre a origem e o destino final, e não entre máquinas sucessivas ao longo do caminho, mesmo quando as duas máquinas não se conectam a uma mesma rede física. • Padrões de protocolo de aplicativos. Além dos serviços básicos no nível de transporte (como conexões de streams confiáveis), os protocolos TCP/IP incluem padrões para muitos aplicativos comuns, inclusive o correio eletrônico, a transferência de arquivos e o login remoto. Assim, quando estão desenvolvendo programas aplicativos que utilizam TCP/IP, os programadores sempre descobrem que o software existente oferece os serviços de comunicação de que eles precisam. Rafa Pág. 7/83 Arquitetura TCP/IP RFC RFC (Request for Comments) são documentos técnicos relacionados aos protocolos da Internet. Alguns deles contém padrões para os protocolos, outros são recentemente desenvolvidos, podendo obter sucesso e se tornarem padrões. Esses documentos formam a documentação da Internet. FNC FNC (Federal Networking Council) é um comitê que exerce a parte informativa da Internet. A FNC realiza o intermédio entre a IAB e as instituições governamentais, além de prestar suporte a agências no uso da Internet. IETF IETF (Internet Engeneering Task Force) é um subcomitê da IAB que realiza a manutenção de problemas construtivos e também a implementação de novas tecnologias. A Internet é considerada por muitos como um dos mais importantes e revolucionários desenvolvimentos da história da humanidade. Pela primeira vez no mundo um cidadão comum ou uma pequena empresa pode (facilmente e a um custo muito baixo) não só ter acesso a informações localizadas nos mais distantes pontos do globo como também – e é isso que torna a coisa revolucionária – criar, gerenciar e distribuir informações em larga escala, no âmbito mundial, algo que somente uma grande organização poderia fazer usando os meios de comunicação convencionais. Isso com certeza afetará substancialmente toda a estrutura de disseminação de informações existente no mundo, a qual é controlada primariamente por grandes empresas. Com a Internet um pessoa qualquer (um jornalista, por exemplo) pode, de sua própria casa, oferecer um serviço de informação baseado na Internet, a partir de um microcomputador, sem precisar da estrutura que no passado só uma empresa de grande porte poderia manter. Essa perspectiva abre um enorme mercado para profissionais e empresas interessadas em oferecer serviços de informação específicos. Rafa Pág. 10/83 Arquitetura TCP/IP 2. BÁSICO DE UMA REDE Independente do tipo de conexão que façam, seja entre computadores ou entre terminais e computadores, as redes de comunicação dividem-se em dois tipos básicos: de comutação de circuitos (também conhecidas como redes baseadas em conexões) e de comutação de pacotes (conhecidas, ainda, como redes sem conexão). • A comutação por circuitos opera formando uma conexão dedicada entre duas pontas. O sistema telefônico dos Estados Unidos utiliza uma tecnologia de comutação de circuitos – uma chamada telefônica estabelece um circuito da linha de quem telefona, através de uma central de comutação local, passando por linhas do tronco, até uma central de comutação remota e, finalmente, ao destinatário da chamada. Enquanto um circuito estiver aberto, o equipamento telefônico testa o microfone várias vezes, converte os sinais para o formato digital e os transmite através do circuito para o receptor. O transmissor tem a garantia de que os sinais serão distribuídos e reproduzidos, pois o circuito oferece um percurso de dados seguro, de 64 kpbs (mil bits por segundo), o mínimo necessário para o envio de voz digitalizada. A vantagem da comutação de circuitos reside na sua capacidade segura: uma vez que um circuito é estabelecido, nenhuma outra atividade de rede poderá reduzir a capacidade do circuito. A desvantagem da comutação de circuitos é o alto custo: o preço é fixo, independente do tráfego. Por exemplo, o preço de uma ligação telefônica é o mesmo, ainda quando as duas pontas não se comunicam. • Nas redes de comutação de pacotes, as mensagens a serem transmitidas através das estações da rede são divididas em pequenas unidades chamadas pacotes que são multiplexados por meio de conexões entre máquinas de alta capacidade. Um pacote que geralmente contém apenas pequenas unidades de informações transporta uma identificação que capacita o hardware da rede a enviar as informações a determinado destino. Por exemplo, a transmissão de um arquivo extenso entre dois equipamentos deve ser feita a partir da divisão do arquivo em vários pacotes antes de encaminhá-los à rede. O hardware da rede envia os pacotes aos seus respectivos destinos onde o software os reúne novamente em um único arquivo. A grande vantagem da comutação Rafa Pág. 11/83 Arquitetura TCP/IP de pacotes é a possibilidade de realizar simultaneamente várias comunicações entre computadores, com conexões entre equipamentos compartilhados por todos os pares de equipamentos que estão se comunicando. A desvantagem é que à medida que a atividade se intensifica, um determinado par de computadores conectados entre si recebe uma capacidade menor da rede. Ou seja, toda vez que uma rede de comutação de pacotes estiver sobrecarregada, os computadores conectados a ela terão que esperar até poderem enviar pacotes adicionais. 2.1.WANs e LANs As tecnologias de comutação de pacotes são freqüentemente divididas em duas categorias, de acordo com a extensão: redes de longas distâncias (WANs) e redes locais (LANs). As duas categorias não possuem definições formais. Ao contrário, os fornecedores utilizam os termos de forma coloquial para que os consumidores saibam diferenciar as duas tecnologias. As tecnologias de rede remota ou de redes de longas distâncias possibilitam a comunicação entre grandes distâncias. A maioria das tecnologias de rede de longas distâncias não impõe um limite na extensão da distância; permite que os dois extremos se comuniquem a uma distância arbitrária. Por exemplo, uma rede de longa distância pode operar em um continente ou conectar computadores de continentes diferentes. Geralmente, as redes de longa distâncias operam em velocidades mais lentas do que as redes locais, e necessitam de um retardo de transmissão bem maior entre as conexões. A velocidade de uma rede de longas distâncias varia de 56 Kbps a 155 Mbps (um milhão de bits por segundo). O retardo de transmissão pode variar desde alguns milissegundos até vários décimos de segundo. As tecnologias de rede local possuem uma velocidade de conexão entre comutadores bem mais rápida, mas deixam a desejar na capacidade de operar em longas distâncias. Por exemplo, uma rede local típica abrange uma área pequena, como um único edifício ou um campus, e funciona entre 10 Mbps e 2 Gbps (bilhões de bits por segundo). Já que essas tecnologias operam em pequenas áreas, o retardo de transmissão é bem menor do que o das tecnologias de rede de longas distâncias, o qual pode durar desde alguns décimos de um milissegundo, até no máximo dez milissegundos. Rafa Pág. 12/83 Arquitetura TCP/IP • O repetidor pode ser utilizado para transmitir sinais elétricos de um cabo a outro. Entretanto, no máximo dois repetidores podem ser colocados entre duas máquinas, de modo que o comprimento total de uma única Ethernet continua muito pequeno (três segmentos de 500 metros cada). • As pontes são melhores do que os repetidores porque não repercutem os ruídos, as falhas ou os quadrosψ com má formação; um quadro inteiramente válido deve ser recebido antes que a ponte o aceite e o transmita para outro segmento. De acordo com a visão do TCP/IP, as Ethernets ligadas por pontes são simplesmente uma outra forma de conexão física de rede. O importante é que: Em virtude de a conexão entre cabos físicos, fornecida pelas pontes e pelos repetidores, ser transparente para os equipamentos conectados à Ethernet, um sistema único de rede física. 2.3.FDDI (Fiber Distributed Data Interconnect) A FDDI é uma conhecida tecnologia de rede que opera em pequenas áreas geográficas e oferece uma largura de banda maior do que a Ethernet. Ao contrário da Ethernet e de outras tecnologias de redes locais que utilizam cabos para transportar os sinais elétricos, a FDDI utiliza fibras de vidro e transmite as informações, convertendo-as em feixes de luz. A fibra óptica possui duas vantagens a mais do que o fio de cobre: • são imunes à interferência eletromagnética, podendo ficar próximas a dispositivos elétricos potentes; • como utilizam luz, a quantidade de informação transportadas por um único canal de fibra óptica é significativamente maior do que a dos cabos que transportam sinais elétricos. ψ O termo quadro deriva-se da comunicação por linhas seriais, nas quais o transmissor “configura” a informação, acrescentando sinais especiais antes e após a transmissão das informações. Rafa Pág. 15/83 Arquitetura TCP/IP A FDDI é uma rede token ring de 100 Mbps dotada de um recurso de auto-reparo É uma rede em anel porque forma um circuito fechado, iniciando em um computador, passando por todos os outros, e novamente retornando ao computador de origem. Trata-se de uma rede de tecnologia token ring porque utiliza um token como forma de controlar a transmissão. Quando a rede está inativa, um quadro especial denominado token passa de estação a estação. Sempre que uma estação tiver que enviar um pacote, ela terá que esperar a chegada de um token, enviar o pacote e depois passar o token à estação seguinte. O token que está sendo utilizado garante o equilíbrio: concede a todas as estações a oportunidade de enviar um pacote antes que outra estação envie um segundo pacote. REDE FDDI EM ANEL Figura 2.3. Uma rede FDDI com fibras ópticas fazendo a conexão de seis computadores. As setas indicam a direção do tráfego nas fibras e nos computadores conectados entre si. Rafa Pág. 16/83 Arquitetura TCP/IP Para oferecer um recurso de recuperação automática de falhas, o hardware da FDDI utiliza dois anéis independentes que se conectam a cada computador. Quando a interface percebe que não pode comunicar-se com o computador ao lado, o anel de garantia é utilizado para contornar a falha. A falha talvez seja decorrente da desconexão da fibra (p. ex., um corte acidental). Se as fibras de ambos os anéis seguirem o mesmo percurso físico, é muito provável que a Segunda fibra também seja desconectada. O hardware da FDDI automaticamente utiliza o anel de rotação oposta para formar o circulo fechado na direção em que ele ainda está operando. Com isso, os outros computadores podem continuar se comunicando, mesmo com a ocorrência da falha. 2.4.ATM (Asynchronous Transfer Mode) O ATM é o nome dado a uma tecnologia de rede de alta velocidade, baseada em conexão, que vem sendo usada tanto nas redes que operam em pequenas como em grandes áreas geográficas. Pelos padrões correntes, as redes de alta velocidade são aquelas que operam a uma velocidade de, no mínimo, 100 Mbps; o ATM pode intercambiar informações com velocidades de gigabit/segundo. É claro que para se obterem velocidades tão altas é necessário um equipamento complexo de última geração. Consequentemente, as redes ATM possuem um custo mais alto do que as demais tecnologias. Uma rede ATM utiliza técnicas de hardware e software especiais: • Uma rede ATM é formada por um ou mais comutadores de alta velocidade que são conectados aos computadores host e a outros comutadores ATM. • O ATM utiliza fibras ópticas para fazer conexões, inclusive conexões entre um computador host e um comutador ATM. As fibras ópticas possuem uma velocidade de Rafa Pág. 17/83 Arquitetura TCP/IP Neste exemplo, o roteador R1 deve transferir da rede 1 para a rede 2 todos os pacotes destinados a máquinas em qualquer das redes 2 e 3. Para uma grande interligação em redes composta de muitas redes, a tarefa do roteador de tomar decisões sobre por onde enviar pacotes se torna mais complexa. Além de roteadores que conectam entre si redes físicas, o software é necessário em cada host para permitir que programas aplicativos usem a interligação em redes como se fosse uma única rede realmente física. Do ponto de vista da interligação em redes, qualquer sistema de comunicação capaz de transferir pacotes é considerado como uma única rede, independente do retardo, da vazão, do tamanho máximo do pacote ou da escala geográfica. O protocolo da interligação em redes do TCP/IP trata todas as redes do mesmo modo. Uma rede local, como uma Ethernet, uma rede de área maior, como o backbone de ANSNET, ou uma ligação de ponto a ponto entre duas máquinas, cada uma conta como uma rede. Rafa Pág. 20/83 Arquitetura TCP/IP 3. ENDEREÇAMENTO Pensando em uma interligação em redes como uma grande rede igual a qualquer outra rede física. A diferença é que a interligação em redes é uma estrutura virtual, idealizada por seus projetistas e totalmente implantada em software. Assim, os projetistas estão livres para escolher formatos e tamanhos de pacotes, endereços, técnicas de entrega e assim por diante; nada é orientado pelo hardware. Para endereços, os projetistas de TCP/IP optaram por um esquema análogo ao endereçamento de rede física, no qual a cada host da interligação é atribuído um endereço com número inteiro de 32 bits, denominado seu endereço IP. A parte interessante do endereçamento da interligação é que os números inteiros são escolhidos cuidadosamente para tornar o roteamento eficiente. Especificamente, um endereço IP codifica a identificação da rede à qual um host se acopla, assim como a identificação de um único host nessa rede. Resumindo: “A cada host de uma interligação em redes TCP/IP é atribuído um endereço de interligação em redes único de 32 bits que é usado em todas as comunicações com aquele host.” Os bits dos endereços IP para todos os hosts de uma rede dada compartilham um mesmo prefixo. Conceitualmente, cada endereço é um par (netid, hostid) em que netid identifica uma rede e hostid identifica um host naquela rede. Na prática, cada endereço IP deve Ter uma das três primeiras formas mostradas na Figura 3.1. Dado um endereço IP, seu tipo pode ser determinado a partir de três bits de alta ordem, sendo dois bits suficientes para distinguir entre as três classes principais: • Endereços do tipo A, são usados pelas numerosas redes que não possuem mais de 216 (ou seja, 65.536) hosts, dedicam sete bits para netid e 24 bits para hostid. • Endereços do tipo B, que são usados para redes de tamanho médio que possuem entre 28 (ou seja, 256) e 216 hosts, alocam 14 bits para o netid e 16 bits para o hostid. • Endereços do tipo C, que possuem menos de 28 hosts, alocam 21 bits para o netid e somente 8 bits para hostid. Rafa Pág. 21/83 Arquitetura TCP/IP O endereço IP foi definido de tal modo que é possível extrair as partes do netid ou do hostid rapidamente. Os roteadores, que usam a parte netid de um endereço ao decidir qual o destino de um pacote, dependem de uma extração eficiente para alcançar velocidade alta. 0 1 2 3 4 8 16 24 31 1 Netid Hostid 1 0 Netid Hostid 1 1 0 Netid Hostid 1 1 1 0 Endereços multicast 1 1 1 1 0 Reservado para uso futuro Figura 3.1. As cinco formas de endereços da Internet (IP). As três primeiras formas, classes A, B e C podem ser diferenciadas pelos três primeiros bits. Quando os computadores convencionais possuem duas ou mais conexões físicas são denominados hosts multi-homed. Esses hosts e os roteadores necessitam de endereço IP múltiplos. Cada endereço corresponde a uma das conexões de rede da máquina. Portanto, como os endereços IP codificam não apenas uma rede, como também um host daquela rede, os endereços IP não especificam um computador individual, e sim uma conexão à rede. Assim, um roteador conectando n redes tem n endereços diferentes de IP, um para cada conexão de rede. Os endereços IP são escritos como quatro números inteiros decimais separados por pontos decimais, no qual cada número inteiro fornece o valor de um octeto de endereço IP. Assim, o endereço de 32 bits: 10000000 00001010 00000010 00011110 é representado por: 128.10.2.30 Na realidade, a maioria dos softwares TCP/IP que apresenta ou requer uma pessoa para manipular um endereço IP usa a notação decimal com ponto. Assim, compreender a relação entre tipos de endereços IP e números decimais pode ajudar. A tabela da Figura 3.2 resume a escala de valores para cada tipo. Rafa Pág. 22/83 Arquitetura TCP/IP 3.3.PONTOS FRACOS NO ENDEREÇAMENTO Codificar informações de rede em um endereço pode ter suas desvantagens. A mais óbvia delas é que os endereços referem-se às conexões de redes, não ao host: se um host se move de uma rede para outra, seu endereço IP deve mudar. Outra falha do esquema de endereçamento é que, quando qualquer rede tipo C cresce além de 255 hosts, deve ter seu endereço mudado para um endereço tipo B. Apesar de isto parecer um problema menor, mudar endereços de redes pode tomar muito tempo e ser difícil para depurar. Coo muitos softwares não são projetados para trabalhar com endereços múltiplos para a mesma rede física, os administradores não podem planejar uma transição tranqüila, na qual introduzam novos endereços lentamente. Ao contrário, devem interromper o uso de um endereço de rede, mudar os endereços de todas as máquinas e, então, recuperar a comunicação usando o novo endereço de rede. Saber apenas um endereço de IP, para determinado destino, talvez não seja suficiente; pode ser impossível alcançar o destino usando tal endereço. Considere o exemplo da interligação em redes mostrado na Figura 3.3. Nesta figura, dois hosts, A e B, conectam-se à rede 1 quase sempre se comunicam diretamente usando aquela rede. Assim, os usuários do host A normalmente devem referir-se ao host B usando endereço IP I3. Existe outro caminho de A até B, através do roteador R, e é usado sempre que A envia um pacote com endereço IP I5 (endereço de B na rede 2). Agora, suponha que a conexão de B para a rede 1 falhe, mas a máquina em si continue trabalhando. Os usuários em A, que especificam endereços IP I3, não alcançam B apesar de os usuários que especificam endereços I5 poderem alcançar. A B REDE 1 REDE 2 I1 I4 I2 I3 I5 R Rafa Pág. 25/83 Arquitetura TCP/IP Figura 3.3. Um exemplo de interligação em redes com um host de multi-homed, B, que indica um problema com o esquema de endereçamento IP. Se a interface I3 é desconectada, A deve usar o endereço I5 para alcançar B, enviando pacotes através do roteador R. 3.4.UM EXEMPLO Para esclarecer o esquema de endereçamento IP, considere um exemplo de duas redes de Universidades conectadas à IBPI-NET. A Figura 3.4 mostra os endereços de redes e ilustra como os roteadores conectam redes entre si. UMC (Ethernet) 128.10.0.0 IBPI-NET 10.0.0.0 UNICSUL (Token) 192.5.48.0 ROTEADORES Figura 3.4. A conexão lógica de duas redes ao provedor IBPI-NET. O exemplo mostra três redes e os números de rede que lhes foram designados: a IBPI-NET (10.0.0.0), a UMC (128.10.0.0) e a UNICSUL (192.5.48.0). De acordo com a tabela da Figura 3.2, os endereços têm classes A, B e C, respectivamente. A Figura 3.5 mostra as mesmas redes com host, e endereços Internet designados para cada conexão de rede. Quatro hosts cognominados HOST1, HOST2, HOST3 e HOST4 acoplam- se às redes; ROUTER1 é um roteador que conecta a IBPI-NET e a rede token ring (UNICSUL), e ROUTER2 é um roteador que conecta a rede UNICSUL à Ethernet (UMC). O HOST2 tem conexões tanto na Ethernet quanto na rede token ring, podendo, assim, alcançar destinos diretamente em qualquer rede. Apesar de um host de multi-homed, como HOST2, poder ser configurado para rotear pacotes entre as duas redes, a maioria dos sites usa computadores dedicados como roteadores, a fim de evitar sobrecarregar sistemas de Rafa Pág. 26/83 Arquitetura TCP/IP computação convencionais com o processamento requerido pelo roteamento. Na figura, um roteador dedicado, ROUTER2 , executa a tarefa de rotear tráfego entre a Ethernet e as redes token ring. Host 2 Host 3 Host 4 UMC (Ethernet) 128.10.0.0 128.10.2.3 128.10.2.8 128.10.2.26 Host 1 UNICSUL (Token) 192.5.48.0 192.5.48.3 192.5.48.1 192.5.48.6 10.0.0.37 Router1Router2 192.5.48.7 128.10.2.70 IBPI-NET Figura 3.5. Exemplo de designação de endereços IP para roteadores e hosts acoplados a três redes da figura anterior. Rafa Pág. 27/83 Arquitetura TCP/IP erros pode destruir os dados, o protocolo de nível inclui a detecção de erro, permitindo que as duas saibam quando a transferência de um quadro foi bem-sucedida. • Camada de rede. Contém a funcionalidade que completa a definição da interação entre o host e a rede. Denominado camada de rede ou sub-rede de comunicação, esse nível define a unidade básica de transferência na rede e inclui os conceitos de endereçamento e roteamento de destino. • Camada de transporte. Garante que o destino recebe os dados extamente da forma que eles tenham sido mandados. Para isso ela também oferece serviços com conexão e sem conexão, como a camada de redes, mas estes são melhorados. A camada de rede faz parte da sub-rede de comunicação, pertence à concessionária e pode variar de uma rede para outra. Com a camada de transporte é possível rodar vários programas de aplicação sobre redes diferentes, uma vez que se utiliza primitivos padrões da camada de transporte. • Camada sessão. Permite que os usuários estabeleçam uma sessão, ou seja, um ambiente iniciado a partir de uma conexão e que permite a transferência organizada de dados. Além disso, gerencia os diálogos, ou seja, o controle de quem deve ser a vez de conversar. Existem conexões full-duplex, onde os dados se movem nos dois sentidos simultaneamente, e half-duplex, onde somente um lado “fala” a cada vez. • Camada de apresentação. Cuida dos problemas relativos a representação dos dados transmitidos, como conversão, criptografia e compressão. • Camada de aplicativo. Contém os programas com os quais o usuário interfaceia mais diretamente. Alguns desses programas tornaram-se extremamente úteis e acabaram por definir uma série de padronizações. Entre os exemplos possíveis estão: correio eletrônico, transferência de arquivos, acessos a arquivos remotos, entre outros. 4.2.MODELO DA DIVISÃO EM CAMADAS TCP/IP Rafa Pág. 30/83 Arquitetura TCP/IP O software TCP/IP é organizado em quatro camadas conceituais construídas em uma quinta camada de hardware. A Figura 4.2 mostra as camadas conceituais, assim como a forma dos dados à medida que passa entre elas. Camada Conceitual Objetos Passados entre Camadas Aplicativo Mensagens ou Fluxos Transporte Pacotes de Protocolos de Transporte Inter-rede Datagramas IP Interface de Redes Quadros de Redes Específicas Hardware Figura 4.2. As quatro camadas conceituais do software TCP/IP e a forma dos objetos que passam entre elas. • Camada de aplicativos. No nível mais alto, os usuários rodam programas aplicativos que acessam serviços disponíveis através de uma interligação em redes TCP/IP. Um aplicativo interage com um dos protocolos do nível de transporte para enviar ou receber dados. Cada programa aplicativo escolhe o estilo de transporte necessário, que tanto pode ser uma seqüência de mensagens individuais ou um stream contínuo de bytes. O programa aplicativo passa, para o nível de transporte, os dados na forma adequada, para que possam, então, ser transmitidos. • Camada de Transporte. A primeira função da camada de transporte é prover a comunicação de um programa aplicativo para outro. Tal comunicação é sempre chamada fim-a-fim. A camada de transporte pode regular o fluxo de informações. Ela pode fornecer transporte confiável, assegurando que os dados cheguem sem erros e em seqüência. Para isso, o protocolo de transporte faz com que o lado receptor envie confirmações e o lado transmissor retransmita pacotes perdidos. O software da camada de transporte divide o fluxo de dados transmitidos em pequenas partes (algumas vezes chamadas pacotes) e passe cada pacote, juntamente com o endereço de destino, à camada seguinte para ser transmitido. • Camada Internet. Como vimos, a camada da Internet trata das informações de uma máquina para outra. Aceita um pedido para enviar um pacote originário da camada de Rafa Pág. 31/83 Arquitetura TCP/IP transporte juntamente com um identificação da máquina para a qual o pacote deve ser enviado. Encapsula o pacote em um datagrama IP, preenche o cabeçalho do datagrama, usa o algoritmo de roteamento para decidir se entrega o datagrama diretamente ou o envia para um roteador e passa o datagrama para a interface de rede apropriada para transmissão. A camada Internet também lida com datagramas de entrada, verificando sua validade, e usa o algoritmo de roteamento para decidir se o datagrama deve ser processado no local ou se deve ser enviado. Para os datagramas endereçados à máquina local, o software da camada de interligação em redes apaga o cabeçalho do datagrama e, entre vários protocolos de transporte, escolhe aquele que vai cuidar do pacote. • Camada de interface de rede. O nível mais baixo do software TCP/IP compreende uma camada da interface de rede responsável pela aceitação de datagramas IP e por sua transmissão através de uma rede específica. Uma interface de rede pode consistir em um driver de dispositivo ou em um subsistema complexo que usa seu próprio protocolo de enlace de dados. 4.3.PROTOCOLOS DE TRANSPORTE 4.3.1.UDP (User Datagram Protocol) Na pilha de protocolos TCP/IP, o UDP, fornece o mecanismo principal utilizado pelos programas aplicativos para enviar datagramas a outros programas iguais. O UDP fornece um serviço de transmissão sem conexão, não-confiável, usando o IP para transportar mensagens entre máquinas. Usa o IP para transportar mensagens, porém acrescenta a habilidade de distinguir entre múltiplos destinos em um certo host. Cada mensagem UDP é conhecida como um datagrama de usuário, que consiste em duas partes: um cabeçalho UDP e uma área de dados UDP. Como a Figura 4.3 mostra, o cabeçalho está dividido em quatro campos de 16 bits que especificam a porta da qual a Rafa Pág. 32/83 Arquitetura TCP/IP Em um nível mais alto, os programas aplicativos freqüentemente precisam enviar grandes volumes de dados de um computador a outro. A utilização de um sistema de transmissão sem conexão e não-confiável torna-se tediosa e irritante, e requer que os programadores criem detecção e recuperação de erros em cada programa aplicativo. Um dos objetivos da pesquisa de protocolos de rede foi encontrar soluções de fins gerais para problemas de transmissão confiável de streams de pacotes, possibilitando aos especialistas criar um único protocolo para transmissão de stream de dados que todos os programas aplicativos pudessem utilizar. O serviço é definido pelo TCP, o serviço de stream confiável é tão importante que toda a pilha de protocolos é citada como TCP/IP. O TCP é um protocolo de comunicação, e não um software, o protocolo especifica o formato dos dados e das confirmações que os dois computadores trocam para oferecer uma transferência confiável e, também, os procedimentos de que se valem os computadores para assegurar que os dados cheguem corretamente. O TCP pode ser utilizado com uma variedade de sistema de transmissão de pacotes, inclusive o serviço de transmissão de datagramas IP. O TCP pode, por exemplo, ser implementado para utilizar linhas telefônicas por discagem, rede local, rede de fibra óptica de alta velocidade, ou uma rede de longas distâncias de velocidade mínima. Na realidade, um dos pontos fortes do TCP é a grande variedade de sistemas de transmissão que ele pode usar. O TCP posiciona-se acima do IP no esquema de divisão em camadas do protocolo, permite que programas aplicativos múltiplos, de determinada máquina, comuniquem-se simultaneamente, e ele demultiplexa o tráfego TCP de entrada entre os programas aplicativos. Como o UDP, o TCP utiliza números de porta de protocolo para identificar o destino final em uma máquina. Porém, as portas TCP são muito mais complexas, porque determinado número delas não corresponde a um objeto único. Ao contrário, o TCP foi estruturado na abstração de conexão, em que os objetos a serem identificados são conexões de circuito virtual, e não portas isoladas. A unidade de transferência entre o software TCP de duas máquinas é denominada segmento. Os segmentos são trocados para estabelecer conexões, transferir dados, enviar Rafa Pág. 35/83 Arquitetura TCP/IP confirmações, informar tamanhos de janelas e encerrar conexões. A Figura 4.4 mostra o formato do segmento TCP. 0 1 2 3 4 8 16 24 31 PORTA DE ORIGEM PORTA DE DESTINO NÚMERO DE SEQÜÊNCIA NÚMERO DO RECONHECIMENTO HLEN RESERVADO BITS DE CÓDIGO JANELA SOMA DE VERIFICAÇÃO PONTEIRO URGENTE OPÇÕES (SE HOUVER) ENCHIMENTO DADOS ... Figura 4.4. O formato de um segmento TCP com o cabeçalho TCP seguido de dados. Cada segmento é dividido em duas partes: um cabeçalho seguido de dados. O cabeçalho, conhecido como cabeçalho TCP, transporta a identificação esperada e as informações de controle. Os campos PORTA DE ORIGEM e PORTA DE DESTINO contêm os números de portas TCP que identificam os programas aplicativos nas extremidades da conexão. O campo NÚMERO DE SEQÜÊNCIA identifica a posição no stream de bytes do transmissor dos dados no segmento. O campo NÚMERO DO RECONHECIMENTO identifica o número do octeto que a origem espera receber depois. Observe que o número seqüencial refere-se ao stream que segue na mesma direção que o segmento, enquanto o número do reconhecimento refere-se ao stream que segue em direção oposta ao segmento. O campo HLENψ contém um número inteiro que especifica o comprimento do cabeçalho do segmento, medido em múltiplos de 32 bits. Isso é necessário porque o campo OPÇÕES varia em comprimento, dependendo de quais opções foram incluídas. Assim, o tamanho do cabeçalho TCP varia de acordo com as opções selecionadas. Uma das idéias mais importantes e complexas em TCP concentra-se na maneira como ele trata o timeout e a retransmissão. A exemplo de outro protocolos confiáveis, o TCP espera ψ De acordo com a especificação, o campo HLEN é o deslocamento dos dados da área situada dentro do segmento. Rafa Pág. 36/83 Arquitetura TCP/IP que o destino envie confirmação toda vez que recebe novos octetos, com êxito, do stream de dados. Sempre que envia um segmento, o TCP inicia um temporizador e espera uma confirmação. Se o temporizador terminar antes que os dados do segmento tenham sido confirmados, o TCP aceita que esse segmento foi perdido ou destruído e o retransmite. O software TCP precisa aceitar as duas grandes diferenças entre o tempo necessário para atingir vários destinos e as alterações necessárias no tempo para atingir um determinado destino, de acordo com a variação de carga do tráfego. O TCP monitora o desempenho de cada conexão e deduz valores razoáveis para timeout. À medida que o desempenho de uma conexão muda, o TCP revisa seu valor de timeout (ou seja, adapta-se à mudança). O congestionamento é uma condição de retardo longo causado por uma sobrecarga de datagramas em um ou mais pontos de comutação (p. ex., em roteadores). Quando ocorre um congestionamento, os intervalos aumentam e o roteador começa a enfileirar datagramas até que possa distribuí-los. Precisamos lembrar que cada roteador possui uma capacidade limitada de armazenamento e que os datagramas concorrem para esse armazenamento. Na pior hipótese, o número total de datagramas que chega ao roteador congestionado cresce até que o roteador alcance a capacidade e comece a eliminar datagramas. Lamentavelmente, a maioria dos protocolos de transporte utiliza timeout e retransmissão, de modo que reajam ao aumento do retardo com a retransmissão de datagramas. As retransmissões agravam o congestionamento em vez de o amenizarem. Se não for verificado, o aumento do tráfego produzirá um aumento do retardo, provocando uma elevação do tráfego, e assim por diante, até que a rede torne-se inútil; mas os protocolos de transporte, como o TCP, podem evitar o congestionamento reduzindo automaticamente as taxas de transmissão sempre que ocorrerem retardo. Logicamente, os algoritmos para evitar congestionamentos precisam ser criados cuidadosamente porque, mesmo em condições operacionais normais, uma interligação em redes exibirá grande variação de retardo de ida e volta. 4.4.PROTOCOLOS DE REDE 4.4.1.IP (Internet Protocol) Rafa Pág. 37/83 Arquitetura TCP/IP Já que o campo COMPRIMENTO TOTAL, possui 16 bits de coprimento, o maior tamanho possível para um datagrama IP é 216 ou 65.535 octetos. Na maioria do aplicativos, essa não é uma limitação rígida. No futuro pode tornar-se mais importante, se as redes de velocidade mais alta puderem transportar pacotes de dados maiores que 65.535 octetos. Três campos no cabeçalho do datagrama, IDENTIFICAÇÃO, FLAGS e DESLOCAMENTO DO FRAGMENTO, controlam a fragmentação e a remontagem de datagramas. O campo IDENTIFICAÇÃO contém um número inteiro único que identifica o datagrama, sua finalidade principal é permitir que o destino saiba quais datagramas estão chegando e a que datagramas pertencem. O campo DESLOCAMENTO DO FRAGMENTO é responsável pela remontagem do datagrama, o destino precisa obter todos os fragmentos que iniciam com o fragmento que possui deslocamento zero até o fragmento de maior deslocamento. O campo FLAGS controlam a fragmentação, define se o datagrama pode ou não ser fragmentado e se o destino reuniu todos os fragmentos. O campo TEMPO DE VIDA especifica quanto tempo, em segundos, o datagrama pode permanecer no sistema de interligação em redes, os roteadores e os hosts que processam datagramas precisam decrementar o campo TEMPO DE VIDA à medida que o tempo passa e remover o datagrama da interligação quando seu tempo expira. PROTOCOLO especifica qual protocolo de alto nível foi utilizado para criar a mensagem que está sendo transportada na área DADOS do datagrama. O campo VERIFICAÇÃO DA SOMA DO CABEÇALHO assegura a integridade dos valores de cabeçalho. A verificação IP é formada com o tratamento do cabeçalho como uma seqüência de números inteiros de 16 bits (na ordem de bytes da rede), reunindo-os com uma aritmética complemento de um, e a seguir considerando o complemento de um como o resultado. Para a finalidade de calcular a soma de verificação, considera-se que o campo VERIFICAÇÃO DA SOMA DO CABEÇALHO contenha zero. Os campos ENDEREÇO IP DE ORIGEM e ENDEREÇO IP DE DESTINO contêm endereços IP de 32 bits do transmissor do datagrama e do receptor desejado. Embora o datagrama possa ser roteado através de muiots roteadores intermediários, os campos da origem e destino nunca mudam; eles especificam os endereços IP da origem e do último destino. Rafa Pág. 40/83 Arquitetura TCP/IP O campo denominado DADOS mostra o início da área de dados do datagrama, seu comprimento depende, logicamente, do que está sendo enviado no datagrama. O campo OPÇÕES IP que se segue ao endereço de destino não é necessário em todo datagrama, e as opções são incluídas principalmente para testes ou depuração da rede. Contudo, o processamento de opções é parte integrante do protocolo IP; assim, todas as implementações de padrões precisam incluí-lo. O campo PADDING depende das opções selecionadas. Ele representa bits contendo zero e que podem ser necessários para garantir que o cabeçalho do datagrama se estenda até o múltiplo exato de 32 bits. O objetivo do IP é fornecer uma rede virtual que abranja várias redes físicas e ofereça um serviço de entrega de datagrama sem conexão. O algoritmo de roteamento IP deve escolher a forma pela qual enviará um datagrama através de várias redes físicas. O roteamento se classifica em dois tipos: encaminhamento direto e encaminhamento indireto. O encaminhamento direto é a transmissão de um datagrama, através de uma única rede física para outra máquina. Duas máquinas só podem executar o encaminhamento direta se ambas se conectarem diretamente a uma mesma rede física (p. ex., uma única Ethernet). O encaminhamento indireto ocorre quando o destino não se encontra na mesma rede física, forçando o transmissor a passar o datagrama para um roteador executar a entrega. O algoritmo de roteamento IP pode ser descrito da seguinte forma: Extrai o endereço IP de destino, D, do datagrama e calcule o prefixo da rede, N; Se N corresponder com qualquer endereço de rede conectado diretamente entregue datagrama ao destino D através desta rede (Isto envolve converter D para um endereço físico, encapsular o datagrama e enviar o quadro.) Se a tabela contiver uma rota específica do host para D envie o datagrama para o próximo passo da rota especificada na tabela Se a tabela contiver uma rota para a rede N envie o datagrama para o próximo passo da rota especificada na tabela Se a tabela contiver uma rota padrão envie o datagrama para o roteador padrão especificado na tabela Caso contrário declare um erro de roteamento; O endereço IP selecionado pelo algoritmo de roteamento IP é conhecido como endereço do próximo passo da rota, porque indica para onde o datagrama deve ser enviado (mesmo que não seja o último destino). O software da interface de rede vincula o endereço do próximo passo da rota a um endereço físico, forma um quadro usando aquele endereço físico, coloca Rafa Pág. 41/83 Arquitetura TCP/IP o datagrama na parte de dados do quadro e envia o resultado. Após usar o endereço do próximo passo da rota para encontrar um endereço físico, o software de interface da rede descarta o endereço do próximo passo da rota. Quando um datagrama IP chega a um host, o software de interface da rede entrega-o ao software IP para processamento. Se o endereço de destino do datagrama corresponder ao endereço de IP do host, o software IP do host aceita o datagrama e passa-o ao software apropriado, do protocolo de nível mais alto, para posterior processamento. Se não houver correspondência com o IP de destino, o host deve descartar o datagrama (ou seja, os hosts ficam proibidos de tentar encaminhar datagramas acidentalmente roteados para a máquina errada). O algoritmo de roteamento da interligação em redes é orientado por tabela e usa apenas endereços IP. Embora seja possível para uma tabela de roteamento conter um endereço de destino específico ao host, a maior parte dessas tabelas contém apenas endereços de rede, mantendo pequenas as tabelas de roteamento. O uso de uma rota padrão também pode manter pequena a tabela de roteamento, principalmente para hosts que só conseguem acessar um roteador. 4.4.2.ICMP (Internet Control Message Protocol) Para permitir que os roteadores de uma interligação em redes informem os erros ou forneçam informações sobre ocorrências inesperadas, os projetistas acrescentaram aos protocolos TCP/IP um mecanismo de mensagem para fins específicos, conhecido como ICMP – Internet Control Message Protocol (Protocolo Internet de Mensagem de Controle), é considerado uma parte necessária do IP e deve ser incluído em cada implementação de IP. O ICMP permite que os roteadores enviem mensagens de erro ou de controle aos outros roteadores ou aos hosts; possibilita a comunicação entre o software do IP em uma máquina, e o software de IP em outra. Um host pode usar o ICMP para se corresponder com um roteador ou com outro host. A principal vantagem de permitir que os hosts usem ICMP é que isto fornece um mecanismo único usado para todas as mensagens de controle de Rafa Pág. 42/83 Arquitetura TCP/IP 4.4.4.RARP (Reverse Address Resolution Protocol) Este protocolo destina-se à solução do problema inverso ao resolvido pelo ARP. O problema RARP é um host que não conhece o seu próprio endereço IP ou o de um outro host, mas possui o endereço físico correspondente. O protocolo RARP permite que a partir do endereço físico, seja obtido o endereço IP correspondente. Para que o RARP funcione, é necessário ao menos um servidor RARP, que possui informações de mapeamento de todos os hosts da rede. Pode haver um ou vários servidores RARP na mesma rede. A principal vantagem de possuir diversas máquinas funcionando como servidores RARP é tornar o sistema mais confiável. Se um servidor estiver desativado, ou excessivamente sobrecarregado para responder, um outro responderá à solicitação. Assim, é muito mais provável que o serviço esteja disponível. A principal desvantagem de se utilizarem muitos servidores é que quando uma máquina difunde uma solicitação RARP, a rede torna-se sobrecarregada se todos os servidores tentam responder. Em uma Ethernet, por exemplo, utilizar servidores RARP múltiplos torna mais provável uma colisão. Para evitar respostas múltiplas e simultâneas, há pelos menos duas possibilidades, e ambas envolvem o aumento do intervalo entre as respostas: • A cada máquina que faz solicitações RARP é atribuído um servidor principal. Em circunstâncias normais, somente o servidor principal da máquina responde à sua solicitação RARP. Todos os servidores que não sejam principais recebem a solicitação, mas apenas registram seu tempo de chegada. Se o servidor principal não estiver disponível, a máquina original fará um intervalo para aguardar uma resposta e, a seguir, difundir novamente a solicitação. Sempre que um servidor, que não seja o principal, receber uma segunda cópia de uma solicitação RARP em um curto espaço após a primeira, ele responde. • A segunda solução utiliza um esquema semelhante, mas tenta impedir que todos os servidores não-principais transmitam respostas simultaneamente. Cada máquina não- principal que receber uma solicitação calcula um intervalo aleatório e, a seguir, envia uma resposta. Em circunstâncias normais, o servidor principal responde imediatamente e com intervalos entre as respostas sucessivas, de modo que há pouca probabilidade de Rafa Pág. 45/83 Arquitetura TCP/IP que cheguem ao mesmo tempo. Quando o servidor principal não está disponível, a máquina solicitante sofre um pequeno retardo antes que uma resposta seja recebida. Escolhendo os intervalos com cuidado, o projetista assegura que as máquinas solicitantes não difundiram antes de receber uma resposta. Rafa Pág. 46/83 Arquitetura TCP/IP 5. ROTEAMENTO 5.1.ROTEAMENTO BASEADO EM TABELAS Este algoritmo do protocolo IP utiliza uma tabela de roteamento que armazena informações sobre como atingir cada sub-rede de rede internet. Sempre que a camada IP, em uma estação ou em um gateway, precisa transmitir um datagrama para uma estação que não está diretamente conectada à mesma sub-rede, ela consulta a tabela de roteamento a fim de determinar o gateway para o qual esse datagrama deve ser enviado. A B E F C D 128.10 129.7 128.15 128.15.1.1 128.15.1.3 INTERNET HOST B Destino Roteamento 128.10 128.15 129.7 Default Conexão Direta Conexão Direta 128.15.1.3 128.15.1.1 Figura 5.1. Tabela de Roteamento do Gateway B. Rafa Pág. 47/83 Arquitetura TCP/IP gateways possuem informações de roteamento inconsistentes. Além disso, as mensagens de atualização tornam-se enormes, pois são diretamente proporcionais ao número total de redes e gateways presentes na rede Internet (todos os gateways devem participar, senão o algoritmo não converge). A D B E C 1 2 3 6 5 4 Tabela do Nó A Destino Ligação Distância A B C D E local 1 1 3 1 0 1 2 1 2 Figura 5.2. Roteamento Vector-Distância. 5.2.2.ROTEAMENTO LINK-STATE (Shortest Path First) Neste algoritmo, cada gateways deve conhecer a topologia completa da rede Internet. Isto é feito descrevendo-se os gateways interconectados entre si por enlaces (links). Existe um enlace entre dois gateways se ambos puderem comunicar-se diretamente, ou seja se estiverem à mesma rede física. Cada gateway exerce duas funções principais. A primeira é testar continuamente o estado dos enlaces com os gateways vizinhos. A segunda é enviar periodicamente os dados de estado de seus enlaces a todos os outros gateways da rede Internet. O teste de estado é realizado através do envio de mensagens curtas que exigem resposta. Se acontecer uma resposta, sob condições que variam segundo a implementação do protocolo, o enlace está ativo, senão está inativo. Os dados de estado indicam, simplesmente, se há possibilidade de comunicação entre dois gateways. .Estes dados são em geral enviados em modo difusão (broadcast) individualmente. Ao receber uma informação de estado, um gateway atualiza seu mapa da rede Internet ativado ou desativado os enlaces em questão e recalcula as rotas para todos os destinos Rafa Pág. 50/83 Arquitetura TCP/IP possíveis através do algoritmo Shortest-Path-First (SPF), de Dijskstra, aplicado à topologia da rede Internet. A figura 5.3 ilustra um exemplo deste tipo de roteamento. Em relação ao algoritmo Vector-Distance, o SPF possui diversas vantagens. O cálculo das rotas é realizado localmente, não dependendo de máquinas intermediárias. O tamanho das mensagens não depende do número de gateways diretamente conectados ao gateway emissor. Como as mensagens trafegam inalteradas a detecção de problemas torna-se mais fácil. A D B E C 1 2 3 6 5 4 Tabela do Nó A Fonte Ligação Distância A B A C E B B C D E D E 1 2 3 5 6 4 Figura 5.3. Roteamento Link-State. Os algoritmos descritos anteriormente assumem, a priori, a existência de uma tabela de roteamento devidamente iniciada. Esta iniciação depende do próprio sistema computacional no qual se situa a camada IP. Várias soluções manuais existem como, por exemplo, a carga de uma tabela pré-configurada com dados limitados ou a carga de uma tabela vazia que são preenchidas através de comandos. Entretanto, o problema principal é a manutenção dessas tabelas devido à dinâmica das redes. Para resolver esse problema torna-se imprescindível o uso de mecanismos automáticos, previstos nos protocolos de roteamento descritos nos itens seguintes. 5.3.PROTOCOLOS DE ROTEAMENTO O protocolo de roteamento determina a forma pela qual os gateways devem trocar informações necessárias à execução do algoritmo de roteamento. Por exemplo, se o Rafa Pág. 51/83 Arquitetura TCP/IP algoritmo de roteamento implementado for do tipo Vector-Distance, o protocolo de roteamento deve definir como cada gateway envia aos demais a sua distância em relação a cada sub-rede Internet. 5.3.1.IGP – Interior Gateway Protocol O termo IGP é utilizado para designar o protocolo usado na troca de informações de roteamento entre Interior Gateways (IG). Em sistemas autônomos (SA) pequenos, as tabelas de roteamento podem ser determinadas, manualmente, pelo administrador do sistema. O administrador mantém uma tabela de redes do SA que é atualizada sempre que uma rede é removida ou inserida no SA . Além de não ser confiável, esse método torna-se inviável com o crescimento do SA . Não existe um protocolo padrão entre os gateways de um mesmo SA . Por esse motivo, o termo IGP é usado para referenciar qualquer protocolo de roteamento entre Interior Gateways (IG). Os protocolos IGP mais conhecidos são: RIP (Routing Information Protocol), Hello Protocol e OSPF (Open Shortest-Path-Frist Protocol). Rafa Pág. 52/83 Arquitetura TCP/IP executado a partir dessa base e, como resultado, é obtida uma árvore de roteamento com o gateway na raiz, indicando a conectividade com outras redes. A partir dos dados de custo, são calculados os custos totais das rotas até cada sub-rede da Internet. 5.3.2.EGP - Exterior Gateway Protocol O protocolo EGP não está vinculado a nenhum algoritmo de roteamento. Isto é, para que dois gateways se comuniquem através do EGP não é necessário que eles executem um mesmo algoritmo de roteamento. O EGP define as informações a serem trocadas entre EG (basicamente as tabelas de roteamento) e os elementos de protocolo necessários à troca dessas informações. Tais informações permitem que um ou mais sistemas autônomos sejam utilizados como intermediários do tráfego originado em algum sistema autônomo e destinado a outro, sem que o usuário da rede perceba que a rede é composta por mais de um sistema autônomo. O EGP é um protocolo de roteamento elaborado para uma rede de sistemas autônomos organizados em uma estrutura tipo árvore, ou seja, uma rede sem loops (ciclos) na sua topologia. As informações trocadas neste protocolo não impedem que ocorram loops no roteamento. Uma situação de loop pode ocorrer, por exemplo, quando uma tabela de roteamento de um gateway G indica o gateway G' como a melhor saída para uma rede N, e a tabela de roteamento de G' indica G como a melhor saída para a rede N. As mensagens do EGP são associadas a cada Sistema Autônomo através de uma identificação de 16 bits que é colocada no cabeçalho da cada mensagem do EGP. Essas mensagens trafegam somente entre gateways vizinhos. Dois gateways podem tornar-se vizinhos quando: • estão diretamente conectadas por um, cabo, por exemplo; ou • estão conectados por uma rede transparente para eles, isto é, uma rede cuja estrutura interna eles não conhecem. Rafa Pág. 55/83 Arquitetura TCP/IP Não faz parte do protocolo EGP determinar quando dois gateways devem tornar-se vizinhos. Esta é uma tarefa do administrador do SA . Dois gateways tornam-se vizinhos através da troca de mensagens de Aquisição de Vizinho. Após se tornarem vizinhos, dois gateways passam a trocar mensagens de Disponibilidade, para conhecer o estado do vizinho (conectado/desconectado), e mensagens de Alcance, para identificar quais redes podem ser acessadas através do vizinho. O EGP é um protocolo do tipo solicitação (polling). As mensagens são trocadas somente quando ocorre uma solicitação de um dos vizinhos. Por isso, o EGP permite que cada gateway controle a sua taxa de envio e recebimento de informação de roteamento. Além disso, esse protocolo permite que um S A tenha um mecanismo de roteamento interno que não é afetado por falhas em outros sistemas. 5.3.3.BGP – Border Gateway Protocol Com o crescimento da Internet, o uso do EGP tornou-se limitado. Existia a necessidade de acrescentar funções de policiamento no roteamento e o protocolo devia suportar topologias complexas. Consequentemente surgiu o BGP, para suprir as deficiências do EGP no roteamento entre sistemas autônomos. Roteadores com BGP se preocupam com critérios políticos de roteamento. Um sistema autônomo (SA) deve querer habilidade de enviar pacotes para algum site e receber pacotes de outro site de seu interesse. Entretanto, ele não deve gostar de conduzir pacotes entre sistemas autônomos (SA's) que não seja de seu interesse. Por exemplo, companhias telefônicas devem atuar como portadora de seus clientes, mas não dos outros. O protocolo BGP foi projetado para permitir muitos critérios de roteamento a serem aplicadas no tráfego entre SA's. Critérios típicos envolvem considerações de ordem política, de segurança, ou econômicas. Alguns exemplos de limites de roteamento são: nunca coloque o Iraque na rota para o Pentágono; tráfego iniciando ou terminando na IBM, não trafega para Microsoft. Os critérios são configurados manualmente em cada roteador BGP. Rafa Pág. 56/83 Arquitetura TCP/IP Do ponto de vista do roteador BGP, o mundo consiste de outros roteadores BGP interconectados. Dois roteadores BGP são considerados conectados se eles compartilham uma rede comum. Dado o interesse de um BGP especial no tráfego, as redes são grupadas em três categorias. A primeira categoria é stubs networks, na qual somente tem conexão para um roteador BGP. Estas não podem ser usadas para trânsito na rede, porque só tem uma ligação. A segunda é as redes multiconnected networks. Podem ser usadas para tráfego em trânsito, exceto se recusarem. Finalmente, existem as redes transit networks, como um backbone, que estão dispostas a manipular pacotes de outros, possivelmente com algumas restrições. Pares de roteadores BGP se comunicam através de conexões TCP. Operando deste modo eles fornecem uma comunicação confiável e escondem os detalhes da rede que os pacotes estão passando. BGP é um protocolo que usa o algoritmo vector distance, mas com uma pequena diferença. Ao invés de manter a distância de cada destino, cada roteador BGP mantém o caminho usado. Similarmente, ao invés de periodicamente dar a cada vizinho a distância estimada para cada possível destino, cada roteador diz a seus vizinhos o caminho exato que está usando. Como um exemplo, considerar os roteadores conforme a Figura 5.3. Em particular, considerar a tabela de roteamento de F. Supor que ele usa o caminho FGCD para alcançar D. Quando os vizinhos sua informação de roteamento, eles fornecem seus caminhos completos, como mostra a Figura 5.3 (por simplicidade, somente o destino D é ilustrado). Rafa Pág. 57/83 Arquitetura TCP/IP tamanho da rede. Para realizar esta tarefa é necessário utilizar uma técnica de roteamento multiponto. Para fazer multicasting, cada roteador constrói sua spanning tree selecionando enlaces na rede formando uma árvore, de forma a cobrir todos os outros roteadores na sub-rede. Por exemplo, na Figura 5.4(a) temos uma sub-rede com dois grupos, 1 e 2. Alguns roteadores são ligados nos grupos, como indicado na Figura 5.4(a). A spanning tree para o roteador mais a esquerda é mostrado na figura 5.4(b). 1,2 1,2 2 1 2 2 1 1 (a) SUB-REDE (b) "SPANNING TREE" DO ROTEADOR MAIS A ESQUERDA 1,2 1,2 2 2 1 1 1 2 1 1 1 1 1 2 2 2 22 (c) ARVORE MULTICAST - GRUPO 1 (d) ARVORE MULTICAST - GRUPO 2 Figura 5.4. Roteamento Multicast. Quando um processo envia um pacote multicast para o grupo, o primeiro roteador examina sua spanning tree e poda a árvore, removendo toda as linhas que não pertencem ao seu grupo. A Figura 5.4(c) ilustra a árvore do grupo 1 e a Figura 5.4(d) ilustra a árvore do grupo 2. Pacotes multicast são enviados somente na spanning tree apropriada. Vários modos de podar a árvore são possíveis. O modo mais simples é usar o roteamento link-state, sendo que cada roteador deve conhecer a topologia completa da sub-rede. Então Rafa Pág. 60/83 Arquitetura TCP/IP a spanning tree pode ser construída iniciando no final de cada caminho até a raiz, eliminando os roteadores que não pertencem ao grupo. Com o roteamento vector-distance, uma diferente estratégia de podar a árvore deve ser seguida. O algoritmo básico é o reverse path forwarding. Entretanto, quando um roteador que não faz parte do grupo, recebe uma mensagem multicast, ele responde para que o emissor não envie mensagens para ele. Uma desvantagem deste algoritmo é que para grandes redes muita memória é necessária. Supor que uma rede tem n grupos, cada um com a média de m membros. Para cada grupo, m spanning trees podadas são armazenadas, para um total de m.n árvores. Quando muitos grupos grandes existem, é gasto muito memória para armazenar as árvores. Uma alternativa é usar árvores chamadas core-base tree. Aqui uma única árvore spanning tree por grupo é computada, com a raiz ("the core") perto do meio do grupo. Para enviar uma mensagem multicast, uma estação envia-a para a raiz, que então envia para os nós do grupo. Embora esta técnica não seja ótima, ela reduz os custos de armazenagem de m árvores para uma árvore por grupo. Rafa Pág. 61/83 Arquitetura TCP/IP 6. TCP/IP EM REDES ATM O ATM é uma tecnologia de rede de alta velocidade na qual a rede possui um ou mais comutadores conectados entre si para formar uma estrutura de comutação. Na lógica, uma estrutura de comutação funciona como uma única grande rede que permite a comunicação entre quaisquer hosts. Já que o ATM é uma tecnologia baseada em conexão, dois computadores devem estabelecer um circuito virtual através da rede antes de transmitir dados. Um host pode optar por um circuito virtual comutado ou permanente. Os circuitos comutados são criados por demanda. Os permanentes requerem uma configuração manual. Em ambos os casos, o ATM atribui a cada circuito aberto um identificador de número inteiro. Cada quadro enviado pelo host ou pela rede possui um identificador de circuito. Um quadro não possui um endereço de origem e de destino. Apesar dos níveis mais baixos do ATM utilizarem células de 53 octetos para a transmissão de dados, o ATM possui mecanismos adicionais em sua camada de adaptação que são utilizados pelos aplicativos. A AAL5 (Adaptation Layer 5) do ATM, em particular, é utilizada para o envio de dados através de uma rede ATM. A AAL5 oferece uma interface que recebe e envia blocos de dados de tamanhos variados, os quais podem ter octetos de até 64kb. Para enviar um datagrama IP através de uma rede ATM, o transmissor precisa formar uma conexão de circuito virtual para o destino que utiliza a AAL5 e enviar o datagrama à AAL5 coo um único bloco de dados. A AAL5 acrescenta um trailer, divide o datagrama e o trailer em células menores para a transmissão através da rede e, depois, reagrupa o datagrama antes de encaminhá-lo ao sistema operacional do computador de destino. Assim, ao enviar datagramas através da rede ATM, o IP não fragmenta no tamanho da célula ATM. Ao contrário, o IP utiliza uma MTUψ de 9.180 octetos e permite que a AAL5 divida o datagrama em células. ψ MTU (Maximum Transfer Unit) significa o maior volume de dados que pode ser transferido em determinada rede física, a MTU é determinada pelo hardware da rede. Rafa Pág. 62/83 Arquitetura TCP/IP um servidor de nomes em cada nível, para garantir a continuidade da operação quando um deles para de funcionar). Um servidor do nível br pode então ser consultado, devolvendo o endereço IP do servidor xyz. De posse do endereço de um servidor xyz é possível solicitar que ele informe o endereço de um servidor jxh, quando, finalmente, pode-se consultar o servidor jxh sobre o endereço da máquina chupeta. O resultado final da busca é o endereço Internet correspondente ao nome chupeta.jxh.xyz.br. Cada um dos níveis percorridos e referenciado como sendo um domínio. O nome completo chupeta.jxh.xyz.br é um nome de domínio. Na maioria dos casos, não é necessário ter acesso a todos os domínios de um nome para encontrar o endereço correspondente, pois os servidores de nome muitas vezes possuem informações sobre mais de um nível de domínio o que elimina uma ou mais consultas. Além disso, as aplicações normalmente tem acesso ao DNS através de um processo local (servidor para as aplicações e um cliente DNS), que pode ser implementado de modo a guardar os últimos acessos feitos, e assim resolver a consulta em nível local. Essa abordagem de acesso através de um processo local, simplifica e otimiza a tarefa das aplicações no que tange ao mapeamento de nomes em endereços, uma vez que elimina a necessidade de implementar, em todas as aplicações que fazem uso do DNS, o algoritmo de caminhamento na árvore de domínios descrito anteriormente. O DNS não se limita a manter e gerenciar endereços Internet. Cada nome de domínio e um nó em um banco de dados, que pode conter registros definindo varias propriedades. Por exemplo, o tipo da máquina e a lista de serviços fornecidos por ela. O DNS permite que seja definido um alias (nome alternativo) para o nó. Também é possível utilizar o DNS para armazenar informações sobre usuários, listas de distribuição ou outros objetos. O DNS é particularmente importante para o sistema de correio eletrônico. No DNS são definidos registros que identificam a máquina que manipula as correspondências relativas a um dado nome, identificado assim onde um determinado usuário recebe suas correspondências. O DNS pode ser usado também para definição de listas para distribuição de correspondências. Rafa Pág. 65/83 Arquitetura TCP/IP 8. APLICAÇÕES As aplicações, no modelo TCP/IP, não possuem uma padronização comum. Cada uma possui um RFC próprio. O endereçamento das aplicações é feito através de portas (chamadas padronizadas a serviços dos protocolos TCP e UDP), por onde são passados as mensagens. É na camada de Aplicação que se trata a compatibilidade entre os diversos formatos representados pelos variados tipos de estações da rede. 8.1.TELNET O protocolo TCP/IP inclui um protocolo simples de terminal remoto denominado TELNET. O TELNET permite que um usuário em determinado site estabeleça uma conexão TCP com um servidor login situado em outro site. O TELNET transmite, então os toques no teclado do usuário diretamente ao computador remoto, como se estivessem sendo digitados no teclado conectado à máquina remota. Esse terminal também retorna a saída da máquina remota até a tela do usuário. O servidor recebe o nome de transparente, porque faz com que o teclado e o monitor do usuário pareçam estar conectados diretamente à máquina remota. Embora o TELNET não seja sofisticado se comparado a alguns protocolos de terminal remoto, ele é amplamente aceito. Geralmente o software do cliente do TELNET permite que o usuário especifique a máquina remota fornecendo seu nome de domínio ou seu endereço IP. Por aceitar endereços IP, o TELNET pode ser usado com hosts mesmo que o vínculo nome/endereço não possa ser estabelecido (p. ex., quando o software de atribuição de nomes de domínio estiver sendo depurado). O TELNET oferece três serviços básicos: • Define um terminal virtual da rede fornecedora de uma interface padrão para sistemas remotos. Os programas clientes não precisam entender os detalhes de todos os sistemas remotos possíveis; eles são projetados para usar a interface padrão. Rafa Pág. 66/83 Arquitetura TCP/IP • Inclui um mecanismo que permite ao cliente e ao servidor negociar opções e fornece um conjunto de opções padronizadas (p. ex., uma das opções verifica se os dados passados pela conexão usam o caracter padrão ASCII de sete bits ou o conjunto de oito bits). • Trata ambas as pontas da conexão de forma simétrica. Em particular, não obriga a entrada do cliente via teclado, nem obriga o cliente a ter a saída indicada na tela. Dessa forma, o TELNET permite que o programa arbitrário torne-se um cliente. Além do mais, qualquer ponta pode negociar opções. A Figura 8.1 ilustra como os programas aplicativos implementam um cliente e servidor TELNET, quando um usuário chama o TELNET, um programa aplicativo existente na máquina do usuário torna-se o cliente. O cliente estabelece uma conexão TCP com o servidor por intermédio da qual irão se comunicar. Uma vez estabelecida a conexão, o cliente aceita toques de teclado do usuário e os envia ao servidor enquanto, simultaneamente, aceita caracteres que o servidor envia de volta e apresenta-os na tela do usuário. O servidor deve aceitar uma conexão TCP de um cliente e, a seguir, retransmitir dados entre a conexão TCP e o sistema operacional local. Na prática, o servidor é mais complexo do que a figura representa porque precisa conduzir várias conexões simultâneas. Em geral, um processo de servidor-mestre aguarda novas conexões e cria um novo escravo para cuidar de uma conexão em particular. Desse modo, “o servidor TELNET” mostrado na Figura 8.1 representa o escravo que trata de uma conexão em particular. A figura não mostra o servidor-mestre que espera novas solicitações, nem mostra os escravos cuidando das outras conexões. Rafa Pág. 67/83 Arquitetura TCP/IP Sistema Operacional Transferência de dados Processo de Controle Sistema Cliente Sistema Operacional Transferência de dados Processo de Controle Sistema Servidor Interligação em TCP/IP Conexão de dados do cliente Conexão de controle do cliente Conexão de controle do servidor Conexão de dados do servidor Figura 8.2. Um cliente e um servidor FTP com uma conexão de controle TCP entre eles e uma conexão TCP à parte entre seus processos e transferência de dados relacionados. A conexões de transferência de dados e os processos de transferência de dados que as utilizam podem ser criados dinamicamente, quando necessário, mas a conexão de controle persiste através de uma sessão. Uma vez que a conexão de controle desaparece, a sessão é finalizada e o software de ambas as extremidades encerra todos os processos de transferência de dados. 8.3.NFS (Network File System) Desenvolvido inicialmente pela Sun Microsystems, o NFS (Network File System) fornece acesso de arquivo online compartilhado que é transparente e integrado. Muitos sites TCP/IP usam NFS para interconectar seus sistemas de arquivo de computadores. Da perspectiva do usuário, o NFS é praticamente invisível. Um usuário pode executar um programa aplicativo arbitrário e usar arquivos arbitrários para entrada ou saída. O próprio nome dos arquivos não indica se eles são locais ou remotos. A Figura 8.3 ilustra como o NFS está inserido no sistema operacional. Quando um programa aplicativo é executado, este chama o sistema operacional para abrir um arquivo ou para armazenar e recuperar dados de um arquivo. O mecanismo de acesso a arquivos aceita o Rafa Pág. 70/83 Arquitetura TCP/IP pedido e automaticamente passa-o ou para o software de sistema de arquivo local ou para o cliente NFS, dependendo de o arquivo estar no disco local ou em uma máquina remota. Quando ele recebe um pedido, o software do cliente usa o protocolo NFS para contatar o servidor apropriado em uma máquina remota e executar a operação requisitada. Quando o servidor remoto responde, o software do cliente devolve os resultados ao programa aplicativo. Aplicativo Sistema de arquivos local Cliente NFS Disco local Conexão da inter-rede com o servidor NFS Figura 8.3. Código NFS em um sistema operacional. Quando um programa aplicativo requisita uma operação de arquivo, o sistema operacional deve passar o pedido para o sistema de arquivo local ou para o software do cliente NFS. Rafa Pág. 71/83 Arquitetura TCP/IP 8.4.RPC (Remote Procedure Call) Em vez de definir o protocolo NFS a partir de riscos, os projetistas deviam preferir montar três peças independentes: o próprio protocolo NFS, um mecanismo de RPC (Remote Procedure Call) para fins gerais e um XDR (eXternal Data Representation), também para fins gerais. O objetivo seria separar os três para possibilitar o uso de RPC e XDR em outro software, inclusive em programas aplicativos e também em outros produtos. Do ponto de vista do programador, o próprio NFS não fornece novos procedimentos que possam ser chamados por um programa. Ao contrário, uma vez que um administrador tenha configurado o NFS, ele programa arquivos remotos de acesso usando exatamente as mesmas operações utilizadas para arquivos locais. No entanto, o RPC e o XDR fornecem macanismos que os programadores podem usar para construir programas distribuídos. Por exemplo, um programador pode dividir um programa entre o lado do cliente e o lado do servidor que usam RPC como o principal mecanismo de comunicação. No lado do cliente, o programador atribui alguns procedimentos como remotos, obrigando o compilador a incorporar a esses procedimentos os códigos de RPC. No lado do servidor, o programador implementa os procedimentos desejados e usa outros recursos RPC para declará-los parte do servidor. Quando o programa de execução do cliente chama um dos programas remotos, o RPC automaticamente coleta valores para argumentos, monta uma mensagem, envia a mensagem ao servidor remoto, espera uma resposta e armazena os valores devolvidos nos argumentos atribuídos. Basicamente, a comunicação com o servidor remoto ocorre automaticamente como efeito parcial de uma chamada de procedimento remoto. O mecanismo RPC concentra todos os detalhes do protocolo, possibilitando aos programadores que têm pouco conhecimento de protocolos de comunicação básicos desenvolver programas distribuídos. O XDR é uma ferramenta relacionada que fornece meios para que os programadores passem dados entre máquinas heterogêneas sem codificar procedimentos que convertam as representações de dados de hardware. Por exemplo, nem todos os computadores armazenam números inteiros binários de 32 bits no mesmo formato. Alguns armazenam o byte mais significativo no endereço de memória mais alta, enquanto outros armazenam o Rafa Pág. 72/83 Arquitetura TCP/IP O SMTP especifica como o sistema de correio eletrônico transfere mensagens de uma máquina para outra. O módulo interface com usuário e a forma como as mensagens são armazenadas não são definidos pelo SMTP. O sistema de correio eletrônico pode também ser utilizado por processos de aplicação para transmitir mensagens contendo textos. Rafa Pág. 75/83 Arquitetura TCP/IP 9. FUTURO DO TCP/IP (IPv6) Nem a Internet nem os protocolos TCP/IP são estáticos. Através de sua Força Tarefa de Engenharia da Internet, a Diretoria de Arquitetura da Internet (IAB, acrônimo de Internet Architecture Board) promove esforços efetivos e constantes que mantêm a tecnologia elástica e em evolução. O estímulo para a mudança ocorre à medida que aumentos em volume e em tamanho forçam as melhorias necessárias para manter o serviço, uma vez que novos aplicativos exigem mais da tecnologia denominada e já que novas tecnologias tornam possível fornecer novos serviços. A versão 4 do Internet Protocol (IPv4, versão atual) fornece o mecanismo básico de comunicação da pilha TCP/IP e da Internet. Essa versão permaneceu quase inalterada desde seu início, no final da década de 1970. A longevidade da versão 4 mostra que o projeto é flexível e poderoso. Desde quando o IPv4 foi projetado, o desempenho do processador aumentou mais de duas ordens de magnitude, os tamanhos típicos de memória aumentaram 32 vezes, a largura de banda de rede cresceu 800 vezes, tecnologias de rede local afloraram e o número de hosts na Internet cresceu para 4 milhões. Além disso, as mudanças não ocorreram simultaneamente – o IP conciliou mudanças em uma tecnologia, diante das mudanças em outras. O protocolo IPv6 proposto mantém muitas das características que contribuíram para o sucesso do IPv4. Na verdade, os projetistas dotaram o IPv6 basicamente com as mesmas características do IPv4, com algumas modificações. Por exemplo, o IPv6 ainda aceita entrega sem conexão (permite que cada datagrama seja roteado independentemente), permite que o transmissor escolha o tamanho de um datagrama e requer que o transmissor especifique o número máximo de passos da rota que um datagrama pode fazer antes de ser concluído. O IPv6 também retém a maioria dos conceitos fornecidos pelas opções do IPv4, inclusive os recursos para fragmentação e roteamento de origem. A despeito de muitas semelhanças conceituais, o IPv6 muda a maioria dos detalhes do protocolo. Por exemplo, o IPv6 usa endereços maiores e acrescenta algumas características novas. Mais importante, revisa completamente o formato de datagrama, substituindo o Rafa Pág. 76/83 Arquitetura TCP/IP campo de opções de comprimento variável do IPv4 por uma série de cabeçalhos de formato fixo. As mudanças introduzidas pelo IPv6 podem ser agrupadas em cinco categorias: • Endereços Maiores. O novo tamanho de endereço é a mudança mais visível. O IPv6 quadruplica o tamanho de um endereço de IPv4, de 32 para 128 bits. O espaço de endereço de IPv6 é tão grande que não pode ser consumido em futuro previsível. • Formato Flexível de Cabeçalho. O IPv6 usa um formato de datagrama inteiramente novo e incompatível. A contrário do IPv4, que usa um cabeçalho de datagrama de formato fixo onde todos os campos, exceto o de opções, ocupam um número fixo de octetos com um deslocamento fixo, o IPv6 usa um conjunto de cabeçalhos opcionais. • Opções Aprimoradas. Como o IPv4, o IPv6 permite que um datagrama inclua informações de controle opcionais. O IPv6 inclui novas opções que oferecem recursos adicionais não disponíveis no IPv4. • Suporte para Alocações de Recursos. O IPv6 substitui a especificação de tipo de serviço do IPv4 por um mecanismo que permite pré-alocação de recursos de rede. Particularmente, o novo mecanismo aceita aplicativos tais como vídeo em tempo real, que requer garantias de largura de banda e retardo de transmissão. • Provisão para Extensão de Protocolo. Talvez a mudança mais significativa no IPv6 seja uma transição de um protocolo que especifica inteiramente todos os detalhes, para um protocolo que pode permitir recursos adicionais. Rafa Pág. 77/83 Arquitetura TCP/IP Em IPv6, cada endereço ocupa 16 octetos, quatro vezes o tamanho de um endereço de IPv4. O espaço grande de endereço garante que o IPv6 pode tolerar qualquer esquema razoável de atribuição de endereço. De fato, se posteriormente os projetistas decidirem mudar o esquema de endereçamento, o espaço de endereço será suficientemente grande para acomodar uma nova atribuição. É difícil compreender o tamanho do espaço de endereço de IPv6. Um modo de examiná-lo consiste em relacionar a magnitude ao tamanho da população: o espaço de endereço é tão grande que cada pessoa do planeta pode ter endereços suficientes para ter sua própria interligação em redes tão grande quanto a Internet atual. Um outro modo de compreender o tamanho é o relacionar ao esgotamento do endereço. Por exemplo, considere quanto tempo você levaria para atribuir todos os endereços possíveis. Um número inteiro de 16 octetos pode conter 2128 valores. Assim, o espaço de endereço é maior do que 3,4x1038. Se os endereços forem atribuídos à razão de um milhão de endereços a cada microssegundo, serão necessários mais de vinte anos para atribuir todos os endereços possíveis. Embora solucione os problemas de capacidade insuficiente, o tamanho grande do endereço cria um problema novo e interessante: as pessoas que mantêm interligações em rede precisam ler, dar entrada e manipular tais endereços. Obviamente, a notação binária é indefensável. Contudo, a notação decimal pontuada, usada para IPv4, também não torna tais endereços suficientemente compactos. Para compreender por que, considere um número de 128 bits, como um exemplo, expresso na notação decimal pontuada: 104.230.140.100.255.255.255.255.0.0.17.128.150.10.255.255 Para ajudar o endereço a tornar-se ligeiramente mais compacto e mais fácil de dar entrada, os projetistas do IPv6 propõem o uso de notação hexadecimal de dois pontos, na qual o valor de cada conjunto de 16 bits é representado em hexadecimal separado por dois pontos. Por exemplo, quando o valor mostrado acima em notação decimal pontuada tiver sido convertido em notação hexadecimal de dois pontos e impresso usando o mesmo espaçamento, ele se tornará: 68E6:8C64:FFFF:FFFF:0:1180:96A:FFF Rafa Pág. 80/83 Arquitetura TCP/IP A notação hexadecimal de dois pontos tem a vantagem óbvia de requerer menos dígitos e menos caracteres separadores do que o decimal pontuada. Além disso, a notação hexadecimal de dois pontos inclui duas técnicas que a tornam extremamente útil. Primeiro, a notação hexadecimal de dois pontos permite a compressão de zero, em que um string de zeros repetidos é substituído por um par de dois pontos. Para assegurar que a compressão de zero produz uma interpretação não-ambígua, a proposta determina que ela pode ser aplicada apenas uma vez em qualquer endereço. A compressão de zero é especialmente útil quando usada com o esquema de atribuição de endereço proposto, pois muitos endereços vão conter strings de zero contíguos. Segundo, a notação hexadecimal de dois pontos incorpora sufixos de notação hexadecimal pontuada. Veremos que tais combinações destinam-se ao uso durante a transição do IPv4 para IPv6. Por exemplo, o string a seguir é uma notação hexadecimal válida, de dois pontos: 0:0:0:0:0:0:128.10.2.1 Observe que, embora os números separados cada um por dois pontos especifiquem o valor de uma quantidade de 16 bits, cada número da parte de notação hexadecimal pontuada especifica o valor de um octeto. Naturalmente, a compressão de zero pode ser usada com o número acima a fim de produzir um string equivalente de notação hexadecimal de dois pontos que parece ser totalmente semelhante a um endereço IPv4: ::128.10.2.1 9.3.TRÊS TIPOS BÁSICOS DE ENDEREÇO DO IPv6 Como o IPv4, o IPv6 associa um endereço a uma conexão de rede específica, não a um computador específico. Assim, atribuições de endereço são semelhantes a IPv4: um roteador IPv6 tem dois ou mais endereços, e um host IPv6 com uma conexão de rede precisa de apenas um endereço. O IPv6 também retém (e estende) a hierarquia de Rafa Pág. 81/83 Arquitetura TCP/IP endereço de IPv4 em que um prefixo é atribuído a uma rede física. Entretanto, para facilitar a atribuição e a modificação de endereço, o IPv6 permite que vários prefixos sejam atribuídos a determinada rede e permite que um computador tenha vários endereços simultâneos atribuídos a determinada interface. Além de permitir vários endereços simultâneos por conexão de rede, o IPv6 expande e, em alguns casos, unifica endereços especiais do IPv4. Geralmente, um endereço de destino de um datagrama situa-se em uma das três categorias: Unicast O endereço de destino especifica um único computador (host ou roteador); o datagrama deverá ser roteado para o destino ao longo do caminho mais curto possível. Cluster O destino é um conjunto de computadores que juntos dividem um único prefixo de endereço (ex.: vinculam-se à mesma rede física). O datagrama deverá ser roteado para o grupo ao longo de um caminho o mais curto possível e, então, entregue a exatamente um membro do grupo (ex.: o membro mais próximo). Multicast O destino é um conjunto de computadores, possivelmente em diversos locais. Uma cópia do datagrama será entregue a cada membro do grupo usando hardware multicast ou broadcast, conforme o caso. Um endereço IPv6 tem um comprimento de 128 bits, tornando o espaço de endereço tão longo que cada pessoa do planeta poderia ter uma interligação em redes tão grande quanto a atual Internet. O IPv6 divide os endereços em tipos, do mesmo modo que o IPv4 os divide em classes. Um prefixo de endereço determina o local e a interpretação dos campos restantes do endereço. Muitos endereços de IPv6 serão atribuídos por provedores de serviços de rede autorizados. Esses endereços têm campos eu contêm uma ID de provedor, uma ID de assinante, uma ID de sub-rede e uma ID de nó. Rafa Pág. 82/83
Docsity logo



Copyright © 2024 Ladybird Srl - Via Leonardo da Vinci 16, 10126, Torino, Italy - VAT 10816460017 - All rights reserved