Ir para conteúdo

[tutorial] Tudo Sobre Tcp/ip 1


Marok

Posts Recomendados

 

O conjunto de protocolos TCP/IP (Transmission Control Protocol/Internet Protocol - Protocolo de Controle de Transmissão/Protocolo da Internet) está presente em quase na totalidade dos sistemas operacionais de rede disponíveis atualmente. É um protocolo flexível, recomendável tanto para redes pequenas quanto para redes gigantescas como a Internet, e compatível com uma enormidade de hardwares diferentes. Neste tutorial, discutiremos o funcionamento básico do TCP/IP incluindo uma descrição dos protocolos que o formam e explicação sobre como utilizar suas principais ferramentas.

As origens.

O TCP/IP foi primariamente desenvolvido nos anos 60 por uma agência do Departamento de Defesa Americano (DOD): a DARPA (Defense Advanced Research Projects Agency). Ele foi projetado para permitir que diferentes tipos de sistemas de computador se comunicassem como se fossem um sistema só em uma época que as arquiteturas variavam muito e eram guardadas a sete chaves. Vários fatores levaram à popularidade do TCP/IP e ele acabou sendo incorporado ao Unix da universidade de Berkeley no início da década de 80, tornando-se em seguida um padrão nas grandes universidades. Além disso, todas as propostas do governo dos Estados Unidos que incluíam redes na época incluiam também o TCP/IP. A criação de uma interface amigável para o usuário utilizar-se dos recursos do conjunto de protocolos (o navegador Web) permitiu que o usuário comum pudesse aproveitar-se das vantagens do protocolo.

4522webbrowser9ux.gif

Uma interface amigável ao usuário sempre ajudou programas de computador a deslancharem no mercado, incluindo o Windows e o conjunto de protocolos TCP/IP.

Arquitetura do TCP/IP.

Os diversos tipos de protocolo disponíveis no TCP/IP trabalham em conjunto para que a comunicação possa ser efetuada. São organizados em um modelo de 4 camadas, como ilustrado abaixo.

4522layers8yh.gif

Quando as informações são enviadas elas passam por todas essas camadas. Por exemplo, quando você transfere um arquivo para um servidor FTP (File Transfer Protocol, será explicado mais adiante), os dados e mais um cabeçalho contendo informações de controle do FTP serão enviados ao TCP: este adiciona suas informações de controle também e repassa os dados ao IP. Este por sua vez adiciona seu próprio cabeçalho e repassa o bloco de informações (incluindo todos os cabeçalhos) para o Ethernet, que então codifica os dados em uma forma que possa trafegar no cabo da rede. Ufa! Assim também ocorre quando o servidor FTP envia dados para o seu computador, só que no sentido inverso. Você entenderá melhor esse processo ao longo do tutorial.

4522layersscheme8fh.gif

Camada de Interface de Rede

Esta camada controla como os dados são formatados ou interpretados quando chegam diretamente do fio à sua placa de rede. Ela dita ao dispositivo de rede como enviar e receber os dados binários. Contém protocolos de Redes Locais (Local Area Networks) como Token Ring, FDDI (Fiber Distributed Data Interface - Interface de Dados Distribuídos na Fibra) e Ethernet (a mais utilizada em redes locais) e protocolos de Redes Amplas (Wide Area Networks), como ATM (Assynchronous Transfer Mode - Modo de Transferência ######íncrona), Frame Relay (Transmissão de Quadros) e redes Seriais.

Camada da Internet

A camada da internet contém quatro protocolos principais: ARP, IP, ICMP e IGMP, descritos e explanados a seguir.

Address Resolution Protocol (ARP)

O Protocolo de Resolução de Endereços cuida da resolução de endereços IP para endereços físicos, ou endereços MAC (Media Access Control - Controle de Acesso à Mídia). Estes endereços MAC são compostos por 48 bits, representados por 16 números hexadecimais de dois algarismos separados por traços, e identificam o computador em uma rede Ethernet. Por esta definição, 00-E0-2D-03-1A-7B é um endereço físico válido. Cada placa de rede ethernet possui um número único (não são fabricadas duas placas de rede com o mesmo número) que não pode ser mudado.

4522infobullet4bl.gifUm número hexadecimal é de base 16. Além dos números de 0-9 usa também letras de A-F. Foi criado para simplificar a exibição de números binários extensos, já que um dígito hexadecimal representa quatro dígitos binários (bits). Por exemplo, o número binário "1101" pode ser simplesmente escrito como "D" na base hexadecimal.

Cada vez que o computador resolve um endereço IP para endereço físico, ele grava esta informação em uma tabela que é mantida na memória chamada de cache do ARP. Assim, caso esta informação seja necessária mais tarde, um novo processo de resolução não será executado. No entanto, cada entrada na tabela tem um tempo de expiração, para evitar erros no caso de algum dispositivo na rede trocar de endereço IP.

4522arpcache5eo.gif

A tabela cache do ARP pode ser exibida no Windows através do comando arp -a.

Processo de Resolução de Endereços MAC

1. O computador compara o endereço IP de destino de todos os pacotes de saída com o Cache do ARP, para ver se o endereço MAC já não foi resolvido anteriormente.

2. Caso o cache não tenha a informação, o ARP envia um broadcast na rede, pedindo para que o computador com o referido endereço IP responda com seu endereço físico. Esta solicitação inclui seu próprio MAC.

4522infobullet4bl.gifBroadcast é uma forma de transmissão de pacotes de dados na qual todos os clientes TCP/IP da rede processam o pacote. Opõe-se ao Unicast (pacote direcionado a um host específico) e Multicast (um grupo de hosts determinado recebe o pacote).

3. O dispositivo na rede com o endereço IP de destino adiciona a informação do endereço MAC do computador que enviou a solicitação ao seu cache ARP e responde a solicitação com seu próprio endereço físico.

4. A resposta é recebida e o endereço físico solicitado é armazenado no cache do ARP. O pacote finalmente é enviado ao destino.

Internet Protocol (IP)

O Protocolo da Internet é responsável por endereçar e entregar os dados em uma comunicação de rede TCP/IP: ele sempre tenta entregar os dados, mas não garante que eles sejam entregues, que eles sejam entregues livres de erros ou que sejam entregues na mesma ordem pois isto é função de um protocolo da camada superior, (como o TCP) ou da aplicação. O IP não estabelece uma sessão (link virtual) entre o computador de origem e o de destino: ele também é responsável por pegar os dados da camada de Interface de Rede e apresentá-los ao protocolo da camada acima que os solicitou.

O IP, quando os dados chegam a ele vindos da camada superior, adiciona suas informações de controle e um cabeçalho aos dados. A partir daí, aquele bloco de dados é chamado de datagrama.

4523bigredbullet7zb.gifO datagrama, ao receber as informações de cabeçalho da camada de interface de rede (como o protocolo Ethernet) é chamado de pacote. Não estranhe se ouvir falar em pacote no lugar de datagrama: muitas pessoas confundem os dois termos.

O cabeçalho do IP tem vários campos, a saber:

Versão:Este campo define a versão do protocolo IP utilizada. A versão atual é a 4, mas já está em testes a versão de número 6.

Comprimento do Cabeçalho:Este campo define o tamanho, em blocos de 32 bits, do cabeçalho do IP. O menor cabeçalho possível conteria 5 neste campo, o que equivale a 5*32bits = 160bits.

Tipo de Serviço:Este campo contém quatro subcampos. O primeiro é o campo de precedência, que permite configurar a prioridade com que estes dados devem ser enviados na rede. Ele ocupa dois bits, e, por isso, seus valores variam de 0 a 7. Os outros três campos são bits únicos e, teoricamente, deveriam controlar como o datagrama deve ser roteado na rede: são os bits de baixo Retardo (Delay), Rendimento (Troughput) e Confiabilidade (Reliability).

Por exemplo, em uma videoconferência o aplicativo poderia definir o bit de retardo como 1, indicando que o programa necessita de baixo retardo (as informações de uma videoconferência devem chegar o mais rápido possível ao destino); o bit de rendimento como 1 também (já que enormes quantidades de dados precisam chegar ao destino) e o bit de confiabilidade como 0 (as informações que não chegarem em tempo ao destino não serão mais necessárias). Uma transferência de arquivos priorizaria a confiabilidade e assim por diante. Dizemos que isso deveria acontecer na teoria porque todos os roteadores por onde o datagrama passa devem suportar esta função para que ela funcione, o que é bem difícil em uma rede grande como a internet.

4523bigredbullet8cp.gif

Roteador é um componente da rede que se encarrega de destinar os dados que devem ser encaminhados a outras redes que não a que seu computador se encontra.

Comprimento Total:Tamanho total do datagrama medido em bytes. Como este campo é composto por 16 bits, o tamanho máximo de um datagrama IP é de 65535 bytes.

Identificação:Este campo tem a ver com a fragmentação de datagramas IP. Ele identifica quais fragmentos pertencem a qual datagrama, para que o destino não se confunda na hora de remontá-lo.

4523bigredbullet8cp.gifA fragmentação pode ocorrer quando um datagrama é enviado entre duas redes diferentes e que têm tamanhos máximos de datagrama (MTU - Maximum Transmission Unit ou Unidade Máxima de Transmissão) diferentes. Tomemos por exemplo um datagrama de 3.000 bytes trafegando em uma rede FDDI e que chega em um roteador que deve encaminhá-lo por uma rede Ethernet, cuja MTU é de 1518 bytes. Ele deverá ser fragmentado pelo roteador para ser depois remontado pelo computador de destino.

Sinalizadores: Indicam, em uma fragmentação de datagramas, se mais fragmentos chegarão ou se não serão enviados mais dados pertencentes ao datagrama identificado no campo acima. Também indicam se um datagrama pode ou não ser fragmentado. Caso o bit de não fragmentação for definido, o roteador que receber o datagrama e precisar fragmentá-lo para seguir adiante simplesmente descartará aquele datagrama e enviará uma mensagem de erro ao computador de origem.

Offset do Fragmento:Indica de que parte do datagrama a estação de destino deve continuar a remontá-lo para determinado fragmento. Por exemplo, se o primeiro fragmento fosse de 576 bytes e este fragmento fosse o segundo, o campo offset conteria 577, indicando que este fragmento inicia o 577º byte do datagrama.

Tempo de Vida (TTL - Time to Live):O TTL define o tempo máximo que um datagrama pode trafegar na rede antes de ser descartado. Cada vez que o datagrama passa por um roteador, este campo é diminuído. Foi criado para que um pacote não fique eternamente dando voltas na rede. Ele é definido pela estação de origem e é de 8 bits, ou seja, seus valores variam de 0 a 255.

Protocolo:Este campo o protocolo da camada superior para o qual os dados devem ser repassados.

Soma de Verificação:Aqui está contida uma CRC (Cyclic Redudancy Check - Checagem Cíclica Redundante) do cabeçalho IP com o objetivo de evitar erros na transmissão. O CRC é um número que é calculado pelo computador de origem com base no conteúdo do cabeçalho. Quando a estação de destino receber o datagrama, ela calculará a sua CRC com base nos dados de cabeçalho que foram recebidos e caso os valores sejam diferentes dos contidos no campo soma de verificação, um erro na transmisão ocorreu - e o datagrama será descartado. Note que este campo é recalculado cada vez que o datagrama passa por um roteador, pois este altera o campo TTL do cabeçalho.

Endereço IP de Origem e Destino:Estes campos dispensam explicações. O endereçamento IP será discutido posteriormente neste tutorial.

Opções do IP:Pode ou não estar presente (pouco utilizado atualmente). Especifica diversas opções do datagrama IP, como a que permite que os pontos por onde o datragrama passa sejam "ecoados" para o computador de origem e a que configura uma rota restrita, limitando a liberdade dos roteadores em encaminhar o datagrama.

Endereçamento IP

O endereço IP é composto por 32 bits. No entanto, é representado por quatro números de 8 bits separados por pontos chamados de octetos. Cada octeto tem seus valores variando de 0 a 255 (2^8 possibilidades). Por essa definição, 55.82.254.13 é um endereço IP válido. O endereço IP identifica, ao mesmo tempo, a rede em que o host se encontra e o próprio host.

4523bigredbullet8cp.gifÉ chamado de host (em português significa anfitrião) qualquer cliente TCP/IP, como computadores, roteadores, impressoras conectadas diretamente à rede e assim por diante.

Método Baseado em Classes

Antigamente na Internet (note como a história do TCP/IP se confunde com a da Internet), o método existente para determinar qual a parte da rede e qual a pertencente à identificação de host era muito simples: o primeiro byte (8 bits) era utilizado para identificar a rede. Isto permitia cerca de 250 redes e um número quase que incontável de hosts por rede ([2^24] -2 = 16.777.214 hosts). É praticamente impossível uma rede com tantos hosts, o que resultava em desperdício de números IP. Como a internet ainda engatinhava, não havia escassez de endereços. Com seu crescimento (as universidades e grandes escolas passaram a ter acesso a ela), foi necessário inventar um método melhor. Desta maneira que surgiram as classes de IP.

Cinco classes foram criadas: A, B, C, D e E.

Identificando uma Classe

Aqui explicaremos como o IP faz para descobrir a qual classe pertence um determinado endereço IP. Para fazermos isso, usaremos apenas o primeiro octeto do endereço em sua forma binária, já que é para ele que o sistema olha para determinar a classe:

Aqui explicaremos como o IP faz para descobrir a qual classe pertence um determinado endereço IP. Para fazermos isso, usaremos apenas o primeiro octeto do endereço em sua forma binária, já que é para ele que o sistema olha para determinar a classe:

1. O protocolo verifica o primeiro bit do primeiro octeto do endereço: caso ele seja 0 (zero), o endereço é de Classe A. Se ele for 1, o protocolo passa para o segundo bit.

2. Se o segundo bit for 0, o endereço é de classe B. Se for 1, o próximo bit é analisado.

3. Se o primeiro e o segundo bits são 1 e o terceiro bit é 0, o endereço IP é da classe C. E assim o protocolo continua a analisar os bits até chegar na classe E.

Por esse processo, podemos inferir alguns detalhes de cada classe de IP:

Classe A:Os valores do primeiro octeto variam de 1 à 126. Permite 126 redes e 16.777.214 hosts por rede. Por essa definição, o endereço 110.224.16.15 (01101110.11100000.00010000.00001111) é da classe A. Na classe A, o primeiro byte é reservado à identificação de rede e os três últimos identificam o host.

Classe B:O primeiro octeto varia de 128 à 191. Permite 16.384 redes e 65.534 hosts por rede. Exemplo de endereço classe B: 135.200.223.5 (10000111.11001000.11011111.00000101). Na classe B, os dois primeiros bytes são reservados à identificação de rede e os dois restantes identificam o host.

Classe C:O byte inicial tem seu valor variando de 192 a 223. Nesse caso, 2.097.152 redes são possíveis, com 254 hosts por rede. Exemplo: 200.248.170.1 (11001000.11111000.10101010.00000001). Na classe C, os três primeiros bytes identificam a rede e o último byte identifica um host.

Classe D:A classe D está reservada para endereços de Multicast, que permite enviar datagramas IP para um grupo de computadores. O intervalo reservado vai do IP 224.0.0.0 ao 239.255.255.255.

Classe E:Esta classe está reservada para uso futuro (240.0.0.0 à 254.255.255.255).

A identificação de rede 127.0.0.0 (normalmente seria um endereço classe A) está reservada para testes de conectividade do TCP/IP. Note que o endereço 127.0.0.1 é chamado de endereço de loopback, ou seja, ele aponta para a própria máquina.

Um endereço de host válido NUNCA pode conter todos os bits para identificação de host definidos como 0 ou definidos como 1. Se todos referentes à parte de host do endereço IP forem definidos como zero, este IP identificará aquela rede em específico (um roteador utiliza o endereço 10.0.0.0 em sua tabela de roteamento para representar os hosts de 10.0.0.1 até 10.0.0.254). Já se os bits de host forem todos definidos como 1, este endereço designará o endereço de broadcast para aquela rede. Por exemplo, todos os datagramas IP enviados para o endereço 192.168.255.255 (classe B) serão recebidos pelos computadores dentro do intervalo de 192.168.0.1 ao 192.168.255.254.

Autor:Fábio Kaiser Rauber

O tutorial possui 3 partes, ele será terminado em breve.

 

 

Link para o comentário
Compartilhar em outros sites

  • 5 months later...

Olá Xtibiano,

 

Parabéns, seu tutorial foi aprovado.

 

Estarei movendo ele para a área de tutoriais.

 

Obrigado por trazer conteúdo para o Xtibia.com e espero que continue com o ótimo trabalho.

 

 

Atenciosamente,

JV Chequer *Diretor Xtibia.com*

Link para o comentário
Compartilhar em outros sites

  • 7 years later...
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...