Prévia do material em texto
AULA 3 ARQUITETURA E PRÁTICAS TCP/IP I E II Profª Cassiana Fagundes da Silva 2 CONVERSA INICIAL O protocolo da internet, do inglês Internet Protocol (IP), é definido na RFC 751. Em cada rede existente no caminho do protocolo IP, faz a comunicação com ferramentas de transporte adotas na rede vigente, de modo a usá-las na entrega do pacote ao roteador conectado à rede seguinte. O IP tem entre suas funcionalidades dar suporte à conexão com as tecnologias subjacentes das redes de componentes, isso é, dar suporte a conexões com os protocolos da camada superior e da camada de rede. Além disso, em particular com o TCP, que na pilha TCP/IP executa todas as tarefas relacionadas, visa assegurar a entrega confiável de dados com utilização da internet. Dessa forma, esta aula tem como objetivo: Descrever os tipos de endereços da pilha TCP/IP; Conhecer os formatos de endereço IP; Apresentar a ordem de distribuição de endereços IP; Abordar o formato do cabeçalho IP. TEMA 1 – TIPOS DE ENDEREÇOS DA PILHA TCP/IP A tecnologia TCP/IP visa resolver os seguintes problemas de endereçamento: coordenar a utilização de diferentes tipos de endereços; proporcionar unicidade de endereço; e configurar interfaces de rede e aplicações de rede. A coordenação de vários tipos de endereços inclui o mapeamento de endereços de diferentes tipos, como por exemplo a tradução de um endereço IP de rede para um endereço local ou o mapeamento de um monte de domínio para um endereço IP específico. Para a identificação de interfaces de rede, são usados os seguintes três tipos de endereços em redes TCP/IP: endereços locais (hardware), endereços de rede (IP) e endereços simbólicos (nomes de domínios). Em redes locais, a maior das tecnologias de LAN, como Ethernet, FDDI e Token Ring, utilizam endereços MAC para identificar interfaces. Esses sistemas também possibilitam a identificação única de interfaces de rede dentro dos limites de cada rede construída com base na respectiva tecnologia. 3 No caso de endereços de redes IP, para realizar sua tarefa de interligar redes, a tecnologia TCP/IP precisa ter sistema de endereçamento global que não dependa dos métodos de endereçamento de nós em redes componentes. Um método natural de criar endereços de redes é identificar inequivocamente todas as redes componentes e numerar os nós dentro dos limites de cada rede. Um endereço de rede é um par de números: um número de rede e um número de nó. Os nomes de domínios o hardware e o software das redes TP/IP dependem de endereços IP para identificar os computadores; por exemplo, o comando ftp://192.45.66.17 estabelecerá a sessão com o servidor ftp requerido, e o comando HTTP://203.23.106.33 abrirá uma home page no servidor web corporativo. Consequentemente, as redes TCP/IP devem implementar nomes simbólicos para os hosts e mecanismos para mapear os nomes simbólicos em endereços IP. TEMA 2 – FORMATO DE ENDEREÇO IP O cabeçalho do pacote IP tem dois campos para armazenar os endereços IP do remetente e do destinatário. O endereço IP é uma combinação de dois componentes lógicos: o número da rede e o número do host dentro dessa rede. A notação mais conhecida de escrever endereços IP é através de quatro números, que representam o valor de cada byte em notação decimal, sendo delimitados por pontos, conforme exemplo: 128.10.2.30. Esse endereço IP pode ser representado em formato binário e também em formato hexadecimal, conforme exemplos: 10000000 00001010 00000010 00011110 (Binário) 80.0A.02.1D (Hexadecimal) Observa-se neste exemplo que o formato do endereço não proporciona uma demarcação especial entre o número da rede e o número do host. Porém, na transmissão do pacote através da rede, muitas vezes é necessário dividir o endereço nessas duas partes. Para solucionar esse problema, várias opções são utilizadas; a mais simples é a usar o limite fixo, isso é, todo campo de 32 bits é dividido antecipadamente em duas partes, que devem ter comprimentos fixos, mas não 4 necessariamente iguais. Além disso, uma das partes sempre deve conter o número da rede, e a outra parte é destinada a armazenar o número do host. Outra abordagem é baseada na utilização de uma máscara, que proporciona a flexibilidade máxima quando se estabelece o limite entre o número da rede e o número do host. A máscara representa o número usado com o endereço IP. As representações binárias da máscara contêm uma sequência de uns binários nas posições do endereço IP que devem ser interpretadas como o número da rede. O limite entre sequência de uns e a sequência de zeros na máscara corresponde ao limite entre o número da rede o número do host no endereço IP (Olifer, 2008, p. 344). A última abordagem trata da classe de endereços IP, que é um método meio-termo entre as duas abordagens já descritas. Cinco classes de endereço são descritas, três das quais são usadas para endereçamento da rede, e as duas restantes reservadas para propósitos especiais. 2.1 Classes de Endereços IP Alguns valores dos bits iniciais do endereço servem como o critério com base no qual os endereços IP são classificados. A Figura 2 apresenta a estrutura de endereços IP para diferentes classes de endereços. Quadro 1 – Classes de Endereços IP A classe A inclui endereços nos quais o bit mais significativo tem valor. Nessas redes de Classe A, 1 byte é alocado para o endereço da rede e os 3 bytes remanescentes são interpretados como o número do host dentro da rede. A classe B inclui todos os endereços nos quais os 2 bits mais significativos recebem o valor 10. Na classe B, endereços de 2 bytes são alocados para armazenar o número da rede e o número do host. 5 A classe C inclui todos os endereços nos quais os 3 bits mais significativos recebem o valor 110. Nas redes dessa classe, 3 bytes são alocados para o número da rede e 1 byte para o número do host. Quando o endereço IP iniciar com a sequência 1110, pertencerá à classe D, sendo um endereço de grupo específico. E quando um endereço começar pela sequência 11110, trata-se da classe E. Endereços dessa classe são reservados para o futuro. Segundo Olifer (2008), para se obter o número da rede e o número do host a partir do endereço IP, é necessário dividir o endereço em duas partes apropriadas e depois complementar cada parte com zeros até completar os 4 bytes. 2.2 Endereços IP Especiais O TCP/IP tem uma limitação para atribuir endereços IP: os números de redes e os números de hosts não podem consistir somente em binários nem somente em zeros binários. Assim, alguns endereços IP colocados no cabeçalho de um pacote IP são interpretados de um modo específico: Se o endereço IP for composto inteiramente por zeros binários, ele é chamado de endereço indefinido e especifica o endereço de host que gerou esse pacote. Se o campo da rede for inteiramente preenchido com zeros, por definição do host de destino, ele pertence à mesma rede do host que enviou o pacote. Se todas as posições do endereço IP forem preenchidas com uns, o pacote com esse endereço de destino deve ser enviado a todos os hosts localizados na mesma origem desse pacote. Se todas as posições correspondentes ao número do host de destino estiverem preenchidas com uns, o pacote com esse endereço é enviado a todos os hosts da rede, cujo número está especificado no endereço de destino. 2.3 Usando máscaras em Endereçamento IP Fornecer uma máscara para cada endereço IP possibilita o abandono do conceito de classes de endereço. Isso torna o sistema de endereçamento mais flexível. 6 Conforme exemplo, no caso das classes de rede padrões, as máscaras de rede têm os seguintes valores. Quadro 2 – Classes de rede Classe A 11111111.00000000.00000000.00000000 (255.0.0.0) Classe B 11111111.11111111.00000000.00000000 (255.255.0.0)Classe C 11111111.11111111.11111111.00000000 (255.255.255.0) A principal ideia dessa abordagem é a utilização de máscaras. O número de uns binários da sequência que determina o limite do número da rede não deve necessariamente ser múltiplo de oito, como acontecia com máscaras de redes padrões. Dado o endereço 185.23.44.206 à máscara 255.255.255.0, então o número da rede será 185.23.44.0 em vez de 185.23.0.0, como foi definido pelo sistema de classes. A aplicação de uma máscara pode ser interpretada como a execução de uma operação lógica AND. TEMA 3 – ORDEM DE ATRIBUIÇÃO DE ENDEREÇO IP O endereçamento IP deve proporcionar a unicidade de numeração da rede, assim como a unicidade de numeração de hosts dentro dos limites de cada rede. Quando se trata de uma rede que faz parte da Internet, a unicidade da numeração só pode ser garantida pelos esforços coordenados de autoridades centrais criadas especialmente para esse propósito. No caso de uma rede IP isolada e autônoma, o estabelecimento da unicidade de números da rede e dos hosts deve ser centralizado. O administrador da rede tem todo o espaço de endereçamento à sua disposição, porque a correspondência de endereços IP que não estão conectados não produziria efeitos negativos. Dessa forma, endereços arbitrariamente escolhidos podem coincidir com endereços da Internet atribuídos centralmente. Para evitar esses conflitos de endereços, causados por coincidências, os padrões da internet definiram vários endereços privados recomendados para utilização autônoma. 7 Na classe A – a rede número 10.0.0.0; Na classe B – uma faixa de 16 números de rede: 172.160.0 – 172.31.0.0; Na classe C – uma faixa de 255 números de rede: 192.168.0.0 – 192.168.255.0. Esses endereços são excluídos do conjunto de endereços distribuídos centralmente, pois compõem um vasto espaço de endereçamento, suficiente para numerar os hosts de redes de praticamente qualquer tamanho. Assim, as redes conhecidas como autônomas podem utilizar os endereços contidos nessas faixas. Em grandes redes semelhantes à internet, a unicidade dos endereços de rede é proporcionada por um sistema de distribuição de endereços centralizado e hierarquicamente organizado. A escassez de endereços IP é o principal problema de sua distribuição centralizada, pois durante muito tempo foi difícil obter um endereço classe B, e é praticamente impossível tornar-se proprietário de um endereço classe A. Como alternativa a esses problemas, os desenvolvedores das pilhas TCP/IP sugerem algumas abordagens. Entre as soluções mais inovadoras, temos a migração para uma nova versão IP, a IPv6, na qual o espaço de endereçamento disponível é consideravelmente aumentado pela utilização de endereços de 16 bytes. Mesmo a versão IP corrente, a IPv4, suporta tecnologias destinadas a proporcionar uma utilização mais eficiente dos endereços IP. São exemplos dessas tecnologias: CDIR e NAT. O CDIR foi apresentado em 1993 e padronizado nas RFC 1517, RFC 1518, RFC 1519 e RFC 1520, possibilitando que os centros de distribuição dos endereços atribuam um certo número de endereços a seus assinantes quando necessário. Na tecnologia CDIR, um endereço IP é dividido em um número de rede e um número de host, com base em uma máscara de tamanho variável, em vez de se basear em um ou mais bits mais significativos, como anteriormente. Essa máscara de tamanho variável é atribuída ao assinante pelo provedor de serviços. Para aplicar o CDIR, a organização que gerencia os endereços deve ter faixas contínuas de endereços, que têm o mesmo prefixo. Para que o servidor aloque uma determinada faixa de endereços, é necessário que alguns requisitos sejam atendidos, como: o número de endereços na área 8 alocada deve ser igual a uma potência de dois; o limite inicial do bloco alocado de endereços deve ser um múltiplo do número requerido de hosts. TEMA 4 – DNS Normalmente, nos sistemas operacionais desenvolvidos para operação em redes locais (LANs), como por exemplo o Microsoft Windows e o IBM OS/2, os usuários sempre utilizam os nomes simbólicos dos computadores. Inicialmente, como as redes locais estavam contidas em pequenas quantidades de computadores, eram usados nomes inteiros (do inglês flat names), que representavam cadeiras de caracteres que não eram divididos em partes. A pilha TCP/IP utiliza o DNS, que tem uma estrutura hierárquica que possibilita o uso de um número arbitrário de componentes e um nome. A hierarquia de nomes de domínio é semelhante à hierarquia de nomes de arquivos utilizados na maioria dos sistemas de arquivos: a árvore de nomes começa na raiz e é indicada por um (.). A raiz é seguida pela parte simbólica mais significativa do nome, em seguida da qual vem a parte mais significativa seguinte do nome, e assim sucessivamente. A parte menos significativa do nome corresponde ao nó terminal da rede. Os componentes de um nome de domínio são delimitados por pontos. Por exemplo, em partnering.microsoft.com o componente partnering é o nome dos computadores do domínio microsoft.com. A divisão de nomes em partes faz dividir as responsabilidades administrativas de atribuição de nomes únicos entre diversos indivíduos ou organizações dentro dos limites específicos da hierarquia. Um domínio-raiz é gerenciado por autoridades centralizadas da Internet, como a IANA e InterNIC. Já os domínios de níveis mais elevados são atribuídos em todos os países, assim como sobre uma base centralizada; os nomes desses domínios devem seguir o padrão internacional ISO 3166. Para diferentes tipos de organizações, existem as seguintes abreviações: com – organizações comerciais (p. ex., microsoft.com) edu – organizações educacionais (p. ex., mit.edu) gov – organizações governamentais (p.ex., nsf.org) org – organizações não-comerciais ( p. ex., fidonet.org) net – organizações que suportam redes (p. ex., nsf.net) 9 Cada domínio é administrado por uma organização separada, que normalmente divide seu domínio em subdomínios, e delega a outras organizações funções administrativas relativas a esses subdomínios. Assim, o DNS é implementado na Internet, porém também pode operar como um sistema de nomes autônomo, em qualquer rede empresarial que utiliza a pilha TCP/IP, mas que não esteja conectada à internet. Dessa forma, o mapeamento entre os nomes de domínios e endereços IP em redes TCP/IP pode ser implementado tanto pela utilização dos recursos de hosts locais como pela utilização de serviço centralizado. DNS é um serviço centralizado baseado no banco de dados distribuído de mapeamentos ente nomes de domínios e endereços IP. Em sua operação o DNS utiliza o protocolo cliente-servidor e define servidores DNS e clientes DNS. Os servidores DNS suportam o banco de dados distribuído de mapeamentos, e os clientes DNS solicitam aos servidores para resolver nomes de domínios em endereços IP (Olifer, 2008, p. 355). O serviço DNS utiliza arquivos de texto que tem um formato semelhante ao do arquivo de host. Esse serviço fundamenta-se na hierarquia de domínio. Cada servidor do serviço DNS armazena apenas parte dos nomes da rede – em vez de todos os nomes, como acontecia com os arquivos de host. Além do DNS, também existe o DHCP, que automatiza o processo de configurar interfaces de redes, possibilitando a eliminação da duplicidade de endereços por meio da utilização de um banco de dados de endereços centralmente gerenciado. O DHCP opera de acordo com o modelo cliente-servidor. Na inicialização do sistema, um cliente DHCP envia uma solicitação de difusão para a rede, pedindo que um endereço IP lhe seja atribuído. O servidor DHCP responde a essa solicitação e envia uma mensagem de resposta contendo um endereço IP e vários outros parâmetros de configuração. O servidor DHCP pode operar de diversos modos: atribuiçãomanual de endereços estáticos; atribuição automática de endereços estáticos; distribuição automática de endereços dinâmicos. No modo manual, o administrador, além de informar o bloco de endereços disponíveis, fornece ao servidor DHCP informações que definem rigorosamente o mapeamento de endereços IP em endereços físicos ou outros identificadores dos nós do cliente. No modo de atribuição automática de endereços estáticos, o servidor DHCP escolhe arbitrariamente um endereço IP para o cliente, sem a participação 10 do administrador. Esse endereço é escolhido a partir do bloco de endereços IP disponíveis. Um endereço do bloco é atribuído ao cliente em caráter permanente. Isso significa que existe um mapeamento permanente entre o endereço IP do cliente e suas informações de identificação, como no caso da atribuição manual. Já na atribuição dinâmica de endereços, o servidor DHCP atribui endereços IP a seus clientes por um tempo limitado, conhecido como prazo de arrendamento. Se um computador que é um cliente DHCP for retirado da rede, o endereço IP a ele atribuído é automaticamente liberado. TEMA 5 – FORMATO DO PACOTE IP Quando nos referimos a formatos de endereço IP observa-se que existe um relacionamento direto entre o número de campos do cabeçalho do pacote e a complexidade funcional do protocolo que trabalha com esse cabeçalho. Assim, quanto mais simples o cabeçalho, mais simples o protocolo correspondente. A maior parte das operações do protocolo se relaciona com o processamento das informações de controle contidas nos campos do cabeçalho do pacote. O pacote IP é composto de cabeçalho e campo de dados, conforme ilustrado no quadro abaixo. O cabeçalho compreende os seguintes campos: versão; comprimento do cabeçalho; tipo de serviço; identificação; flags; distância do fragmento; prazo de validade; protocolo; total de verificação; endereço IP de origem; opções IP e enchimento. Quadro 3 – Estrutura do cabeçalho do pacote IP 4 bits Nº da versão 4 bits Comprimento do cabeçalho 8 bits Tipos de Serviço (ToS, ou DS-byte) 16 bits Comprimento total 16 bits Identificação (ID do pacote) 3 bits Flags 13 bits Distância do fragmento 8 bits Prazo de validade 8 bits Protocolo de camada superior 16 bits Total de verificação do cabeçalho 32 bits Endereço IP de destino 32 bits Endereço de IP de destino Parâmetros e alinhamento Fonte: Elaborado com base em Olifer, 2008, p. 364. 11 O campo Versão, do inglês Version, ocupa 4 bits e especifica a versão do IP. A versão do IP usada, normalmente, é a IPv4, porém já existe a versão IPv6, mais recente e atualizada. O campo comprimento do cabeçalho do pacote IP também ocupa 4 bits, pois especifica o comprimento do cabeçalho, medido em palavras de 32 bits. Porém, normalmente o cabeçalho apresenta o comprimento de 290 bytes (isso é, cinco palavras de 32 bits). Caso seja necessário aumentar esse comprimento, para que novas informações possam ser inseridas, utiliza-se o campo Opções IP e aumenta-se o número de bytes. Cabe ressaltar que o comprimento do cabeçalho é de 60 bytes. Já o tipo de serviço (do inglês, Type of Service - ToS), ou byte de serviços diferenciados (DS-byte), ocupa 1 byte. Independentemente das variações do nome, se ToS ou DS-byte, esse campo é usado para armazenar os parâmetros que refletem os requisitos de QoS do pacote. No caso do ToS, o campo é subdividido em dois subcampos. Os 3 primeiros bits compõem o subcampo Precedência, e os demais destinam-se ao critério de seleção da rota com as alternativas de: pequeno retardo, bit de throughput e bit de confiabilidade. Já o DS-byte adota somente seis bits mais significativos desse byte e reserva os dois menos significativos. Para o campo comprimento total, 2 bytes são utilizados e caracterizam o comprimento total do pacote, levando em consideração o cabeçalho e o campo de dados. O comprimento máximo do pacote é limitado pelo comprimento desse campo, e suporta 65.535 bytes. O campo identificação é utilizado para identificar os pacotes criados como resultado da fragmentação do pacote de origem, e ocupa 2 bytes. Os flags ocupam 3 bits e contêm atributos relacionados à fragmentação. A configuração do bit não fragmentar como 1 instrui o roteador a não fragmentar esse pacote. Se o bit mais os fragmentos for configurado como 1, isso significa que esse pacote está fragmentado, e que esse fragmento não é o último. O campo distância do fragmento ocupa 13 bits e especifica a distância do campo de dados desse pacote a partir do ponto inicial do campo de dados do pacote fragmentado de origem. Normalmente, é utilizado na montagem e remontagem de pacotes. 12 O prazo de validade ocupa 1 byte e é usado para especificar o período de tempo máximo durante o qual o pacote pode trafegar pela rede. Protocolo é um campo que utiliza 1 byte e contém identificar, que especifica o protocolo da camada superior para a qual as informações do campo de dados são destinadas. O total de verificação do cabeçalho ocupa 2 bytes, o que é calculado somente para o cabeçalho. Como o valor de alguns campos muda no cabeçalho durante a transmissão de um pacote na rede, o total de verificação tem de ser examinado e recalculado em cada roteador e em cada nó final. O total de verificação – 16 bits – é calculado como complemento da soma de todas as palavras de 16 bits de cabeçalho. O endereço IP de origem e o endereço IP de destino têm o mesmo tamanho – 32 bits. O campo opções IP é opcional na estrutura de cabeçalho, pois sendo utilizado somente para solucionar problemas de rede. Observa-se que esse campo é composto por 8 subcampos, cada qual responsável por especificar a rota exata para passar pelos roteadores, registrar os roteadores pelos quais passou o pacote, armazenar os dados no sistema, entre outros serviços. O enchimento, também denominado por padding, também é necessário. Como o número de subcampos pode ser arbitrário, é preciso acrescentar alguns bytes ao final do cabeçalho do pacote para alinhar o pacote pelo limite de 32 bits. Os campos de enchimento são sempre preenchidos com zeros. 13 REFERÊNCIAS MAIA, L. P. Arquitetura de Redes de Computadores. Rio de Janeiro: LTC, 2009. OLIFER, N. Redes de Computadores: princípios, tecnologias e protocolos para o projeto de redes. Rio de Janeiro: LTC, 2008. SOARES L. F.; LEMOS. G.; COLCHER, S. Redes de Computadores: das Lans, Mans e Wans às redes ATM. Rio de Janeiro: Elsevier, 1995. TANENBAUM, A. Redes de Computadores. São Paulo: Pearson, 2011.