Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Protocolo TCP/IP

Collapse
X
 
  • Filter
  • Tempo
  • Show
Clear All
new posts

  • Font Size
    #1

    Dica Protocolo TCP/IP

    Introdução

    O TCP/IP é o protocolo de rede mais usado atualmente. Neste tutorial explicaremos como este protocolo funciona em uma linguagem fácil de entender.
    Mas, afinal, o que é um protocolo de rede? Um protocolo é uma linguagem usada para permitir que dois ou mais com****dores se comuniquem. Assim como acontece no mundo real, se eles não falarem a mesma língua eles não podem se comunicar.

    O TCP/IP não é na verdade um protocolo, mas sim um conjunto de protocolos – uma pilha de protocolos, como ele é mais chamado. Seu nome, por exemplo, já faz referência a dois protocolos diferentes, o TCP (Transmission Control Protocol, Protocolo de Controle de Transmissão) e o IP (Internet Protocol, Protocolo de Internet). Existem muitos outros protocolos que compõem a pilha TCP/IP, como o FTP, o HTTP, o SMTP e o UDP – só para citarmos alguns. Não se preocupe por enquanto pois explicaremos tudo o que você precisa saber sobre esses protocolos.

    O TCP/IP tem quatro camadas. Os programas se comunicam com a camada de Aplicação. Na camada de Aplicação você encontrará os protocolos de aplicação tais como o SMTP (para e-mail), o FTP (para a transferência de arquivos) e o HTTP (para navegação web). Cada tipo de programa se comunica com um protocolo de aplicação diferente, dependendo da finalidade do programa.

    Após processar a requisição do programa, o protocolo na camada de Aplicação se comunicará com um outro protocolo na camada de Transporte, normalmente o TCP. Esta camada é responsável por pegar os dados enviados pela camada superior, dividi-los em pacotes e enviá-los para a camada imediatamente inferior, a camada Internet. Além disso, durante a recepção dos dados, esta camada é responsável por colocar os pacotes recebidos da rede em ordem (já que eles podem chegar fora de ordem) e também verificam se o conteúdo dos pacotes está intacto.

    Na camada Internet nós temos o IP (Internet Protocol, Protocolo Internet), que pega os pacotes recebidos da camada de Transporte e adiciona informações de endereçamento virtual, isto é, adiciona o endereço do com****dor que está enviando os dados e o endereço do com****dor que receberá os dados. Esses endereços virtuais são chamados endereços IP. Em seguida os pacotes são enviados para a camada imediatamente inferior, a camada Interface com a Rede. Nesta camada os pacotes são chamados datagramas.

    A camada Interface com a Rede receberá os pacotes enviados pela camada Internet e os enviará para a rede (ou receberá os dados da rede, caso o com****dor esteja recebendo dados). O que está dentro desta camada dependerá do tipo de rede que seu com****dor estiver usando. Atualmente praticamente todos os com****dores utilizam um tipo de rede chamado Ethernet (que está disponível em diferentes velocidades; as redes sem fio também são redes Ethernet) e, portanto, você deve encontrar na camada Interface com a Rede as camadas do Ethernet, que são Controle do Link Lógico (LLC), Controle de Acesso ao Meio (MAC) e Física, listadas de cima para baixo. Os pacotes transmitidos pela rede são chamados quadros.
    Vamos falar agora em mais detalhes sobre as camadas e os protocolos do TCP/IP.

    Camada de Aplicação

    Esta camada faz a comunicação entre os programas e os protocolos de transporte. Existem vários protocolos que operam na camada de aplicação. Os mais conhecidos são o HTTP (HyperText Transfer Protocol, Protocolo de Transferência Hipertexto), o SMTP (Simple Mail Transfer Protocol, Protocolo Simples de Transferência de Correspondência), o FTP (File Transfer Protocol, Protoloco de Transferência de Arquivos), o SNMP (Simple Network Management Protocol, Protocolo Simples de Gerenciamento de Redes), o DNS (Domain Name System, Sistema de Nome de Domínio) e o Telnet. Você já deve ter ouvido falar nesses nomes antes.

    Quando um programa cliente de e-mail quer baixar os e-mails que estão armazenados no servidor de e-mail, ele efetuará esse pedido para a camada de aplicação do TCP/IP, sendo atendido pelo protocolo SMTP. Quando você entra um endereço www em seu navegador para visualizar uma página na Internet, ele se comunicará com a camada de aplicação do TCP/IP, sendo atendido pelo protocolo HTTP (é por isso que as páginas da Internet começam com Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... E assim por diante.

    A camada de aplicação comunica-se com a camada de transporte através de uma porta. As portas são numeradas e as aplicações padrão usam sempre uma mesma porta. Por exemplo, o protocolo SMTP utiliza sempre a porta 25, o protocolo HTTP utiliza sempre a porta 80 e o FTP as portas 20 (para transmissão de dados) e 21 (para transmissão de informações de controle).

    O uso de um número de porta permite ao protocolo de transporte (tipicamente o TCP) saber qual é o tipo de conteúdo do pacote de dados (por exemplo, saber que o dado que ele está transportando é um e-mail) e, no receptor, saber para qual protocolo de aplicação ele deverá entregar o pacote de dados, já que, como estamos vendo, existem inúmeros. Assim, ao receber um pacote destinado à porta 25, o protocolo TCP irá entregá-lo ao protocolo que estiver conectado a esta porta, tipicamente o SMTP, que por sua vez entregará o dado à aplicação que o solicitou (o programa de e-mail).

    Camada de Transporte
    Na transmissão de dados, a camada de transporte é responsável por pegar os dados passados pela camada de aplicação e transformá-los em pacotes. O TCP (Transmission Control Protocol, Protocolo de Controle da Transmissão) é o protocolo mais usado na camada de Transporte. Na recepção de dados, o protocolo TCP pega os pacotes passados pela camada Internet e trata de colocá-los em ordem, já que os pacotes podem chegar ao destino fora de ordem, confere se os dados dentro dos pacotes estão íntegros e envia um sinal de confirmação chamado “acknowledge” (“ack”) ao transmissor, avisando que o pacote foi recebido corretamente e que os dados estão íntegros. Se nenhum sinal de confirmação (acknowledge) for recebido (ou porque o dado não chegou ao destino ou porque o
    TCP descobriu que o dado estava corrompido), o transmissor enviará novamente o pacote perdido.

    Enquanto que o TCP reordena os pacotes e usa mecanismo de confirmação de recebimento – o que é desejável na transmissão de dados – existe um outro protocolo que opera nesta camada que não tem esses recursos. Este protocolo é o UDP (User Datagram Protocol, Protocolo de Datagrama do Usuário).
    Por essa razão o TCP é considerado um protocolo confiável, enquanto que o UDP é considerado um protocolo não confiável. O UDP é tipicamente usado quando nenhum dado importante está sendo transmitido, como requisições DNS (Domain Name System, Sistema de Nome de Domínio). Como o UDP não reordena os pacotes e nem usa mecanismo de confirmação, ele é mais rápido do que o TCP.

    Quando o UDP é usado, a aplicação que solicita a transmissão será a responsável por verificar se os dados recebidos estão intactos ou não e também de reordenar os pacotes recebidos, isto é, a aplicação fará o trabalho do TCP.

    Durante a transmissão de dados, tanto o UDP quanto o TCP receberão os dados passados da camada de Aplicação e adicionarão a esses dados um cabeçalho. Na recepção de dados, o cabeçalho será removido antes de os dados serem enviados para a porta apropriada. Neste cabeçalho estão várias informações de controle, em particular o número da porta de origem, o número da porta de destino, um número de seqüência (para a confirmação de recebimento e mecanismos de reordenamento usado pelo TCP) e uma soma de verificação (chamada checksum ou CRC, que é um cálculo usado para verificar se o dado foi recebido intacto no destino). O cabeçalho UDP tem 8 bytes, enquanto que o cabeçalho TCP tem entre 20 e 24 bytes (dependendo se o campo opções estiver sendo ou não usado).

    Camada Internet
    Em redes TCP/IP cada com****dor é identificado com um endereço virtual único, chamado endereço IP. A camada Internet é responsável por adicionar um cabeçalho ao pacote de dados recebidos da camada de Transporte onde, entre outros dados de controle, será adicionado também o endereço IP de origem e o endereço IP de destino – isto é, o endereço IP do com****dor que está enviando os dados e o endereço IP do com****dor que deverá recebê-los.

    A placa de rede de cada com****dor tem um endereço físico. Este endereço está gravado na memória ROM da placa de rede e é chamado endereço MAC. Dessa forma, em uma rede local se o com****dor A quiser enviar dados para o com****dor B, ele precisará saber o endereço MAC do com****dor B. Enquanto que em uma pequena rede local os com****dores podem facilmente descobrir o endereço MAC de todos os PCs, esta não é uma tarefa tão simples em uma rede global como a Internet.

    Se nenhum esquema de endereçamento virtual for usado, você precisa saber o endereço MAC do com****dor de destino, o que não é apenas uma tarefa complicada, mas também não ajuda no roteamento dos pacotes, já que este endereço não usa uma estrutura em árvore (em outras palavras, enquanto o endereçamento virtual usado na mesma rede terá endereços seqüenciais, com o endereçamento MAC o com****dor com o endereço MAC seguinte ao seu pode estar na Rússia).

    Roteamento é o caminho que os dados devem usar para chegar ao destino. Quando você solicita dados de um servidor da Internet, por exemplo, este dado passa por vários locais (chamados roteadores) antes de chegar ao seu com****dor. Se você quiser ver com isto funciona, faça o seguinte: clique no menu Iniciar, Executar e digite Cmd. No prompt de comando digite tracert Apenas usuários registrados e ativados podem ver os links., Clique aqui para se cadastrar.... O resultados será o caminho entre seu com****dor e o servidor web do Google. Veja como os pacotes de dados passam através de diferentes roteadores antes de chegar ao destino. Cada roteador no meio do caminho é também conhecido como “salto” (“hop”).

    Em todas as redes conectadas à Internet existe um dispositivo chamado roteador, que faz a ponte entre os com****dores na sua rede local e a Internet. Todo roteador tem uma tabela contendo as redes conhecidas e também uma configuração chamada gateway padrão apontando para outro roteador na Internet. Quando seu com****dor envia um pacote de dados para a Internet, o roteador conectado à sua rede primeiro verifica se ele conhece o com****dor de destino – em outras palavras, o roteador verifica se o com****dor de destino está localizado na mesma rede ou em uma rede que ele conhece a rota. Se ele não conhecer a rota para o com****dor de destino, ele enviará o pacote para seu gateway padrão, que é outro roteador. Este processo é repetido até que o pacote de dados chegue ao seu destino.

    Há vários protocolos que operam na camada Internet: IP (Internet Protocol, Protocolo de Internet), ICMP (Internet Control Message Protocol, Protocolo de Controle de Mensagens Internet), ARP (Address Resolution Protocol, Protocolo de Resolução de Endereços) e RARP (Reverse Address Resolution Protocol, Protocolo de Resolução de Endereços Reversos). Os pacotes de dados são enviados usando o protocolo IP, e por isso que explicaremos o seu funcionamento.

    O IP pega os pacotes de dados recebidos da camada de Transporte (do protocolo TCP se você está transmitindo dados como e-mails ou arquivos) e os divide em datagramas. O datagrama é um pacote que não contém nenhum tipo de confirmação de recebimento (acknowledge), o que significa que o IP não implementa nenhum mecanismo de confirmação de recebimento, isto é, ele é um protocolo não confiável.

    Você deve notar que durante a transferência de dados o protocolo TCP será usado acima da camada Internet (ou seja, acima do IP) e o TCP implementa mecanismo de confirmação de recebimento. Portanto apesar de o protocolo IP não verificar se o datagrama chegou ao destino, o protocolo TCP fará esta verificação. A conexão será então confiável, apesar do IP sozinho ser um protocolo não confiável.

    Cada datagrama IP pode ter um tamanho máximo de 65.535 bytes, incluindo seu cabeçalho, que pode usar 20 ou 24 bytes, dependendo se um campo chamado “opções” for usado ou não. Dessa forma os datagramas IP podem transportar até 65.515 ou 65.511 bytes de dados. Se o pacote de dados recebidos da camada de Transporte for maior do que 65.515 ou 65.511 bytes, o protocolo IP fragmentará os pacotes em quantos datagramas forem necessários

    Como mencionamos anteriormente, o cabeçalho adicionado pelo protocolo IP inclui o endereço IP de origem, o endereço IP de destino e várias outras informações de controle.

    Se você prestar atenção, nós não dissemos que o datagrama IP tem 65.535 bytes, mas ele pode ter até 65.535 bytes. Isto significa que o campo de dados do datagrama não tem um tamanho fixo. Como os datagramas serão transmitidos pela rede dentro de quadros produzidos pela camada Interface com a Rede, normalmente o sistema operacional configurará o tamanho do datagrama IP para ter o tamanho máximo da área de dados do quadro de dados usado em sua rede. O tamanho máximo do campo de dados dos quadros que são transmitidos pela rede é chamado MTU, Maximum Transfer Unit, ou Unidade de Transferência Máxima.

    As redes Ethernet – que são o tipo de rede mais comum hoje em dia, incluindo sua encarnação sem fio – pode transportar até 1.500 bytes de dados, ou seja, seu MTU é de 1.500 bytes. Por isso o sistema operacional configura automaticamente o protocolo IP para criar datagramas IP com 1.500 bytes em vez de 65.535 (que não caberia no quadro). Na próxima página veremos que o seu tamanho real é de 1.497 ou 1.492 bytes, já que a camada LLC “come” 3 ou 5 bytes para adicionar seu cabeçalho.

    Só para esclarecer, você pode estar confuso como uma rede pode ser classificada como TCP/IP e Ethernet ao mesmo tempo. O TCP/IP é um conjunto de protocolos que lida com as camadas 3 a 7 do modelo de referência OSI. O Ethernet é um conjunto de protocolos que lida com as camadas 1 e 2 do modelo de referência OSI – o que significa que o Ethernet se preocupa com o aspecto físico da transmissão de dados. Por isso eles se complementam, já que precisamos das sete camadas completas (ou suas equivalentes) para estabelecer uma conexão de rede. Nós explicaremos mais sobre este relacionamento na próxima página.

    Outra característica que o protocolo IP permite é a fragmentação. Como mencionamos, até chegar a seu destino o datagrama IP provavelmente passará por várias outras redes no meio do caminho. Se todas as redes no caminho entre o com****dor transmissor e o receptor usarem o mesmo tipo de rede (por exemplo Ethernet), maravilha, já que todos os roteadores trabalharão com a mesma estrutura do quadro (isto é, o mesmo tamanho de MTU).

    No entanto, se aquelas outras redes não forem redes Ethernet, elas podem usar um tamanho diferente de MTU. Se isto acontecer, o roteador que está recebendo os quadros com o MTU configurado com 1.500 bytes dividirá o datagrama IP em quantos quadros forem necessários para atravessar a rede com o tamanho de MTU menor. Ao chegar no roteador que tem sua saída conectada a uma rede Ethernet, este roteador remontará o datagrama original.

    O quadro original usa um MTU de 1.500 bytes. Quando o datagrama chega a uma rede com o tamanho de MTU de 620 bytes, cada quadro tem de ser dividido em três quadros (dois com 600 bytes e um com 300 bytes). Em seguida o roteador na saída desta rede (roteador 2) remonta o datagrama original.
    Claro que o cabeçalho IP tem um cabo para controlar a fragmentação.

    Camada Interface com a Rede
    Os datagramas gerados na camada Internet serão passados para a camada Interface com a Rede, durante a transmissão de dados, ou a camada de Interface com a Rede pegará os dados da rede e os enviará para a camada de Internet, na recepção dos dados.

    Esta camada é definida pelo tipo de rede física a qual seu com****dor está conectado. Quase sempre seu com****dor estará conectado a uma rede Ethernet (redes sem fio também são redes Ethernet como explicaremos).

    Com dissemos anteriormente, o TCP/IP é um conjunto de protocolos que lida com as camadas 3 a 7 do modelo de referência OSI, enquanto que o Ethernet é um conjunto de protocolos que lida com as camadas 1 e 2 do modelo de referência OSI – o que significa que o Ethernet lida com os aspectos físicos da transmissão de dados. Por isso um complementa o outro, já que precisamos das sete camadas completas (ou suas equivalentes) para estabelecer uma conexão de rede.

    O Ethernet tem três camadas: LLC (Controle do Link Lógico), MAC (Controle de Acesso ao Meio) e Física. O LLC e o MAC correspondem, juntas, a segunda camada do modelo de referência OSI.

    A camada LLC é a responsável por adicionar informações de que protocolo na camada Internet foi o responsável por gerar os dados. Dessa forma, durante a recepção de dados da rede esta camada no com****dor receptor tem que saber que protocolo da camada de Internet ele deve entregar os dados. Esta camada é definida pelo protocolo IEEE 802.2.

    A camada de Controle de Acesso ao Meio (MAC) é a responsável por montar o quadro que será enviado para a rede. Esta camada é responsável por adicionar o endereço MAC de origem e de destino – como explicamos anteriormente, o endereço MAC é um endereço físico de uma placa de rede. Os quadros que são destinados a outras redes utilizarão o endereço MAC do roteador da rede como endereço de destino. Esta camada é definida pelo protocolo IEEE 802.3, se uma rede com cabos estiver sendo usada, ou pelo protocolo IEEE 802.11, se uma rede sem fio estiver sendo usada.

    A camada Física é a responsável por converter o quadro gerado pela camada MAC em sinais elétricos (se for uma rede cabeada) ou eletromagnéticos (se for uma rede sem fio). Esta camada é também definida pelo protocolo IEEE 802.3, se for uma rede com cabos estiver sendo usada, ou pelo IEEE 802.11, se uma rede sem fio estiver sendo usada.

    As camadas LLC e MAC adicionam suas informações de cabeçalho ao datagrama recebido da camada Internet. Note que os cabeçalhos adicionados pelas camadas superiores são vistos como “dados” pela camada LLC. A mesma coisa acontece com o cabeçalho inserido pela camada LLC, que será visto como dado pela camada MAC.

    A camada LLC adiciona um cabeçalho de 3 ou 5 bytes e seus datagrama tem um tamanho total máximo de 1.500 bytes, deixando um máximo de 1.497 ou 1.492 bytes para dados. A camada MAC adiciona um cabeçalho de 22 bytes e um CRC (soma dos dados para identificação de erros) de 4 bytes ao final do datagrama recebido da camada LLC, formando o quadro Ethernet. Portanto o tamanho máximo de um quadro Ethernet é de 1.526 bytes.

    PS: Os **** são palavrões, vocês irão entender ...

    Créditos: Ranieri Marinho de Souza
X
Working...
X