Vejo muita gente configurando redes, firewall e proxy, e nem ao menos sabem o que são endereços inválidos, pra que serve a máscara de sub-rede, o que é um broadcast. Enfim, por isso resolvi escrever uma série de artigos visando mostrar o básico do tcp/ip, desde a camada física, endereços mac, arp, passando por ip, cálculo da máscara, até chegar em regras de firewall, nat e proxy.
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.
[1] Comentário enviado por forkd em 19/03/2007 - 12:15h
Olá, Ricardo!
Primeiramente parabéns pela iniciativa de escrever um artigo para a comunidade. Achei muito interessantes as analogias que você usou para explicar o funcionamento do modelo OSI e a definição de protocolo. Acho que só faltou exemplificar PORQUE a camada 4 (Transporte) e suas superiores são camadas fim a fim ("conversam" diretamente com suas camadas pares do outro lado).
Bom, na seção 3, onde você fala das camadas do modelo TCP/IP, foi colocado Serviço como a camada 3 desse modelo. Contudo, o que vemos nas bibliograficas mais usadas é esta camada ser descrita como TRANSPORTE. Isso pode levar confusão à cabeça de leitores que são iniciantes no assunto.
Outra coisa: faltou uma referência bibliografica. Onde o leitor pode procurar se quiser se aprofundar no modelo OSI, por exemplo?
[5] Comentário enviado por paranoid em 19/03/2007 - 15:53h
Primeiramente gostaria de parabenizar o artigo que apresenta bons exemplos para abstração. Só queria, assim como nosso amigo junior, citar algumas coisas que estão diferentes quando comparadas a algumas pesquisas que fiz sobre o assunto e que são tratadas de uma mesma forma por vários autores. A primeira é a de que, no protocolo TCP/IP, a segunda camada é conhecida como a de ENLACE e a terceira é que é a camada de REDE, e como nosso amigo citou acima a quarta camada seria a de transporte, ficando da seguinte maneira: FÍSICA>ENLACE>REDE>TRASNPORTE. A segunda coisa q gostaria de citar é que o switch funciona na camada de enlace e não na de rede. O que funciona na camada de rede são os roteadores quanto ao hub é isso mesmo, funciona na camada física. E por último, não se pode diferenciar um switch de um hub apenas pela forma como as luzes piscam, na empresa onde trabalho, por exemplo, tem alguns modelos de switch's da 3COM que piscam todas as luzes. Mas é isso aí, não desanime, o assunto é bem denso mesmo. Estamos aguardando o próximo artigo.
[7] Comentário enviado por tatototino em 19/03/2007 - 16:11h
Você poderia dar umas dicas de segurança como "tabela arp estática" com a opção "arp -d arquivo" para evitar envenamento da tabela ou recomendar o uso do programa "arpwatch".
ahhh, poderia também usar algum snifer para exemplicar melhor como funciona o protocolo arp, seria de mais fácil entendimento para usuários leigos relatar como funciona a troca de pacotes do protocolo arp.
[9] Comentário enviado por ricardoolonca em 19/03/2007 - 22:33h
Caro, jlojunior.
Obrigado pelas dicas. Realmente a camada 3 também é chamada de Transporte, mas alguns costumam chamar de Serviço, por causa dos "serviços" que rodam nela (http, smtp, pop3, etc.). Assim fica mais fácil de entender o que roda nesta camada. Quanto à bibliografia, realmente foi um vassilo meu. Prometo informá-los nos próximos artigos, como também links para maiores informações.
Caro paranoid
A ordem das camadas que você citou é da camada OSI, e eu estou falando das camadas TCP. O modelo OSI divide o protocolo em 7 camadas, mas o TCP, na prática, é divido em 4. a saber: Física, Rede, Serviço (ou Transporte) e Aplicação. O switch trabalha na camada de enlace da OSI, mas na física TCP. Quanto ao forma de verificar se um dispositivo é Hub ou Switch, é a primeira vêz que vejo um switch piscar as luzes juntas, principalmente 3Com, pois trabalho com 3Com há 10 anos. Mas pode ser que esse modelo seja diferente, ou que o teu aparelho tenha sido vendido como switch, mas internamente é um hub. Mas obrigado pelo comentário.
Aos demais, obrigado pelos comentários. Vou buscar seguir a dica do Tatototino.
[10] Comentário enviado por forkd em 19/03/2007 - 22:49h
Fala Ricardo!
Fico feliz que tenha assimilado as críticas construtivas! Só pra ser um pouco chato, sobre o comentário que você postou, os serviços citados por você (http, smtp, pop3) NÃO fazem parte da camada de Transporte, mas sim da camada de APLICAÇÃO. Da camada de Transporte seriam exemplos: TCP, UDP, DCCP e SCTP.
[11] Comentário enviado por gsi.vinicius em 20/03/2007 - 10:15h
Rapaz, ótimo artigo.....só pecou um pouco pelo português...levanta vôo e não vou...outras cartas...enfim, coisas básicas, mas que o moderador em questão também observou e deixou como está.
O conteúdo está ótimo. Os erros não diminuem o valor do conteúdo, mas um texto bem escrito torna a leitura mais agradável e dinâmica.
[13] Comentário enviado por elgio em 20/07/2007 - 16:58h
Já se passou algum tempo, mas vá lá... Vou também entrar um pouco nesta polêmica de camadas...
A literatura (todos os livros de redes que conheço) prega o modelo TCP/IP com quatro camadas. Os nomes variam um pouco, até pelas questões de traduções, pois uma das camadas é chamada no ingles de Inter-Net (entre redes, nitidamente a que faz roteamento).
Contudo há unanimidade no sentido de que a camada física não faz parte do modelo TCP/IP, pois este modelo se refere ao que é programado pelo SO (kernel, no caso do Linux) e o nível físico trata apenas de forma de onda e só diz respeito ao fabricante da placa.
Assim sendo, as camadas e nomes mais citadas em literaturas modernas são:
Aplicação
Transporte
Rede (ou Internet)
Enlace
No Enlace temos os MAC Address e um switch realmente trabalha nesta camada. Na rede temos o roteamento IP, onde tem-se o Ipv4 e agora o Ipv6. Na de transporte os protocolos UDP e TCP (existe uma pequena divergência sobre onde estaria o ICMP, já que ele não transporta dados mas está sob o Ip). A de aplicação é a de aplicação mesmo.
Outra coisa: é complicado querer relacionar taco a taco OSI com TCP/IP. Algumas funções da OSI (apresentação, por exemplo) nem existem na TCP. Eu, por exemplo, na disciplina de Redes que ministro NEM desenvolvo o modelo OSI. Cito e descarto!
[16] Comentário enviado por AyrtonGomes em 11/03/2012 - 21:11h
Li esse seu artigo de redes até o final, a parte 5, e achei muito bom, continue escrevendo artigos ótimos como este pois ajuda muito quem esta aprendendo, muito obrigado mesmo, nota 10.