Unconfigured Ad Widget

Collapse

Anúncio

Collapse
No announcement yet.

Entendendo o TCP/IP

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

  • Font Size
    #1

    Tutorial Entendendo o TCP/IP

    O que é um protocolo?

    Imaginem que você viaja pelo mundo. Se for para a Inglaterra, você precisa saber falar inglês. Se for para a Alemanha, precisa saber falar alemão. Se for pra Rússia, precisa falar russo. Pro Japão, japonês. Se você viajar o mundo tudo, deverá saber todas as línguas? É lógico que não. Basta saber o inglês. Essa língua é conhecida com a língua universal. Em qualquer lugar do mundo se fala o inglês. Sabendo inglês você está tranqüilo.

    Agora imagine a infinidade de computadores espalhados pela Internet. Diversos fabricantes, várias plataformas, muitos sistemas operacionais diferentes, enfim, uma infinidade de características diferentes. Como fazer com que essas máquinas conversem entre si?

    A analogia acima é bem parecida com a Internet. Com tantas máquinas diferentes era preciso que houvesse uma língua universal para que elas pudessem conversar. A essa língua damos o nome de protocolo. Logo, todos os micros devem "saber falar" o mesmo protocolo, ou seja, todos devem possuir o mesmo protocolo.

    Há vários protocolos, como o netbeui (usados a princípio pelo Windows 3.11 e Windows 9x), o ipx/spx (rede Novell) e o TCP/IP. O uso do TCP/IP como protocolo padrão se deve ao fato dele ser Open Source, além de, claro, ser rápido e estável.

    Mas para que cada fabricante pudesse desenvolver o seu próprio protocolo, foi necessário criar um modelo que deveria ser seguido. Esse modelo ficou conhecido como Modelo OSI.


    As sete camadas OSI

    Imagine que o presidente de uma empresa precisa mandar uma carta para um outro presidente de uma outra empresa que está em um outro continente. Ele escreve a carta e manda para a sua secretária. Esta, por sua vez, digita a carta no micro, imprime, coloca em um envelope, endereça e entrega para o office-boy. O boy encaminha a carta para a seção de expedição. O funcionário da expedição pesa a carta, coloca o selo e, junto com outras cartas, envia para o correio. Lá as cartas são separadas pelo cep e encaminhas aos respectivos lugares. A do presidente em questão vai para o aeroporto. Lá chegando, a carta é colocada em um avião junto com tantas outras carta e o avião levanta vou em direção ao outro continente. Lá chegando, o processo inverso é feito: correio, carteiro, expedição, boy, secretária e, enfim, o presidente.



    O presidente da empresa de origem não precisa saber onde o outro presidente está, se numa montanha ou a beira-mar. Já o boy nem sabe do que se trata a correspondência, apenas sabe que tem que entregar à expedição. O correio, por sua vez, nem sabe quem está enviando, e nem quem é o destinatário, muito menos o conteúdo da carta; ele simplesmente tem que encaminhar a carta para o outro país.

    A mesma analogia serve para o protocolo. O Modelo OSI define sete camadas, onde a primeira é a parte física da rede e a última é a aplicação, Cada camada tem a sua função.



    Primeira camada: Física - É onde está a parte física da rede como placas, cabos, antenas, conectores, etc.
    Segunda camada: Enlace - Responsável pelo codificação dos dados de acordo com o meio onde este vai passar (cabo, fibra, radio, etc).
    Terceira camada: Rede - Responsável pela identificação da origem e destino das máquina na rede.
    Quarta camada: Transporte - Responsável por garantir que um pacote chegue ao seu destino.
    Quinta camada: Seção - Identificar o aplicativo responsável pelo pacote.
    Sexta camada: Apresentação - Cuida da criptografia dos dados, entre outras funções.
    Sétima camada: Aplicação - Os programas.

    Dividindo o protocolo em camadas fica mais fácil o desenvolvimento, uma vez que o programado da camada 7 não precisa saber que tipo de meio físico seu sistema vai trabalhar.

    Nem todos os protocolos são divididos exatamente assim. O tcp/ip, por exemplo, é dividido em 4 camadas, sendo que uma camada tcp/ip pode fazer a função de até 3 camadas tcp.


    As quatro camadas do tcp/ip

    O tcp/ip é dividido em 4 camadas, a saber:



    Primeira camada - Física: Cuida da comunicação com o meio físico da rede, como placas e cabos. Aqui é que trabalha o arp, o hub e o Switch.
    Segunda camada - Rede : Cuida da identificação da máquina na Internet, ou numa rede. Aqui funcionam os roteadores e os comando ifconfig, traceroute, ping, route, nat, etc.
    Terceira camada - Serviços : Cuida para identificar a aplicação dentro da máquina. Aqui estão o firewall, nat de porta, e os comando netstat, nmap, portscan, etc.
    Quarta camada - Aplicação : Aqui rodam os aplicativos. Nesta camada rodam o proxy, os gateways, ids, ips, antivírus, etc.

    É importante conhecer este conceito, saber em que camada uma aplicação ou tecnologia roda, pois isso definirá qual aplicação tem prioridade. Por exemplo, se em uma mesma máquina eu tenho um proxy bloqueando o site do Viva o Linux e um firewall liberando o acesso, qual terá prioridade? O site do Viva o Linux estará liberado ou bloqueado?

    Para começarmos a entender esse processo, vamos começar a falar primeiramente da camada física.



    Camada Física - Como ela funciona

    Em uma rede cabeada, os dados trafegam em forma de energia elétrica. A eletricidade é dissipada através de todos os cabos interligados. Portanto, se a minha máquina quer se comunicar com o servidor, os pacotes que trafegam na rede viram cargas elétricas, correndo todas as máquinas da rede, até chegar ao servidor. Então como uma máquina sabe se um pacote que está passando é para ela ou não? Quem pensou no endereço ip, errou!

    Todas as placas de rede possuem um endereço físico definido em fábrica. Cada placa de rede tem (ou deveria ter) um endereço físico único no mundo. Para saber o endereço físico da sua placa de rede é só executar o comando:

    $ ifconfig



    Podemos verificar na figura o endereço físico (mac) da placa de rede.

    Quando uma máquina quer se comunicar com outra, ela precisa descobrir o endereço mac do destino. E como ela consegue isso? Através do arp. O arp é um subprotocolo que cuida de converter endereços ip para endereços mac. O arp mantém uma tabela dinâmica com os endereço já convertidos. Ao enviar uma pacote para a servidor, o arp é acionado para converter o endereço ip para mac.

    O primeiro passo do arp é consultar a sua tabela interna em busca do endereço ip. Caso não exista, o arp fará um broadcast na rede, ou seja, jogará um pacote na rede perguntando qual é o endereço mac do servidor. Um pacote de broadcast possui como endereço mac de destino FF:FF:FF:FF:FF:FF. Todas as máquinas pegam esse pacote. Assim, o servidor consegue responder ao arp com o seu mac. O arp, por sua vez, adiciona o ip e o mac do servidor em sua tabela arp, passando o endereço mac para a aplicação. Na próxima vez que for necessário acessar o servidor, o arp não mais fará broadcast, mas consultará a sua tabela antes.



    Para listarmos a tabela arp, usamos o comando:

    $ arp -a



    Quando ligamos a máquina a tabela arp está vazia. Vamos pingar uma máquina da rede e ver novamente a tabela arp.

    $ ping 172.28.80.56
    $ arp -a




    Para vermos melhor como a comunicação é feita através do mac, vamos adicionar um mac estático na tabela arp.

    $ arp -s 172.28.80.56 00:00:00:00:00:00
    $ arp -a




    Isso fará com que o endereço 172.28.80.56 esteja amarrado ao mac 00:00:00:00:00:00 na minha maquina. Então pingamos o ip.

    $ ping 172.28.80.56



    Como podemos ver, a máquina agora não pinga. Isso porque não existe nenhuma máquina com o endereço mac 00:00:00:00:00:00 na minha rede.

    Para tirar essa entrada da tabela arp usamos o comando:

    $ arp -d 172.28.80.56

    Verificando a tabela arp...

    $ arp -a

    Note que agora não existe a entrada para a máquina 172.28.80.56. Vamos pingar a máquina.

    $ ping 172.28.80.56

    Agora ela responde.



    Ao verificar a tabela arp novamente...

    $ arp -a



    Vale lembrar que o mac só é usado dentro do mesmo seguimento de rede. Para comunicações através de um roteador, como na Internet, você apenas pode conseguir o mac do seu roteador, pois é ele quem na verdade sai para a Internet. Mas lembre-se do mac, nós ainda vamos usá-lo no dhcp e no switch.


    Diferenças entre Hub e Switch



    Um Hub nada mais é do que um prolongador da rede. Antigamente, nas redes de arquitetura barra, todas as máquinas eram ligadas a um grande cabo que corria toda a rede. Hoje, esse "grande cabo" foi substituído pelo Hub. Ele possui um placa de circuito integrado que liga todos os cabos de rede do segmento. Portanto, quando a máquina A quer enviar pacotes para a máquina B, esse pacote chega a todas as maquinas, pois o que chega em uma porta do hub simplesmente é replicado para todas as outras portas. A isso damos o nome de broadcast. As máquinas sabem quando um pacote lhe pertence analisando o mac destino do pacote, como vimos no tópico passado.

    Um broadcast é um pacote que trafega em todas as máquinas da rede. Ele tem dois grandes problemas. O primeiro é o desempenho: quando mais broadcast, pior o desempenho; o segundo é a segurança, pois se um pacote de rede trafega em todas as máquina, um sniffer pode capturar esse pacote, descobrindo senhas e outras informações importantes.

    Para solucionar isso foi desenvolvido o Switch.

    O switch é aparentemente igual ao hub. Mas apenas aparentemente. Internamente ele possui uma tabela com duas colunas: porta e mac.



    Quando um pacote trafega pelo switch este lê os cabeçalhos de origem do pacote e atualiza a tabela interna associando o mac com a porta do switch por onde esse pacote veio. Também lê o cabeçalho de destino e pesquisa em sua tabela interna em qual porta a máquina destino está pendurada, enviando o pacote apenas para esta porta. Somente é feito broadcast quando a máquina destino não é conhecida. Isso faz com que o switch seja mais rápido e seguro que o hub.

    Para saber se um equipamento é hub ou switch, repare se as luzes piscam juntas ou separadas. Piscando juntas, é hub. Se piscarem alternadamente, então á switch

    Conclusão

    Até aqui nós vimos como a camada 1 tcp (física) trabalha. Vimos alguns comandos como ifconfig, arp e ping. Também vimos com o trabalham o hub e o switch, e qual a diferença entre esses dois dispositivos.

    Ricardo Lino Olonca
    Analista de suporte
    Vivaolinux*

  • Font Size
    #2
    mmmtoo bom topicp vlw
    sigpicToda verdade passa por três estágios. Primeiramente, é ridicularizada. Em segundo lugar, é violentamente confrontada. Por último, torna-se aceita como evidência

    Comment


    • Font Size
      #3
      Entendendo o TCP/IP

      hyperterminal for a serial connection requires to setup serial settings stop bit, crc, data bits, parity....

      But a TCP/IP connection should be more straightforward. The destination networked devices will make the necessary translation and transfer the data bytes it gets to the serial interface according to its requirements.

      telnet does a raw exchange of bytes appart from 0xff, and should work. Dont you have firewall issues? The Windows box being allowed, not the Ubuntu one?

      Comment


      • Font Size
        #4
        valeu obrigado pelo topico

        Comment

        X
        Working...
        X