Por que os endereços Ethernet / MAC são necessários?

16

Não entendo por que os endereços MAC Ethernet são necessários. Todos os computadores não podem simplesmente estar conectados à rede unificada e usar endereços IP para se comunicar?

Por exemplo, existe um mecanismo a seguir na Ethernet:

  1. Computador com IP 192.168.1.1( X.1) deseja enviar um pacote para 192.168.1.2( X.2)
  2. X.1 usa ARP para obter o MAC de X.2
  3. Para fazer isso, X.1precisa enviar um pacote para todos os computadores na rede; apenas um responderá
  4. X.1 obtém um MAC e envia o pacote

Não seria mais simples executar apenas uma etapa:

  1. X.1envia um pacote para todos os computadores na rede; somente X.2o processará, outros o ignorarão

A pergunta complementar seria: Por que os endereços IP são necessários, se todos os dispositivos têm endereços MAC exclusivos?

user2449761
fonte
Como os computadores sabem que devem ignorar os dados? Sem endereço MAC eles não podem dizer qual a rede deve processá-lo ...
Bakuriu
1
eles poderiam usar o endereço IP em vez do endereço MAC
user2449761
erm ... computador <-> O endereço IP não é um mapeamento injetivo. Vou reformular minha pergunta: como os computadores sabem que devem ignorar os dados? Sem o endereço MAC, eles não sabem dizer qual rede deve processá-lo ... já que mais de um deles poderia ter o mesmo IP ?
Bakuriu 24/10/14
4
eles não devem ter o mesmo IP na mesma sub-rede ... este é um conflito
user2449761
1
A pergunta complementar é serverfault.com/q/410626/102768
OrangeDog 24/10

Respostas:

31

As diferentes camadas de rede existem para permitir que sejam trocadas por diferentes tecnologias.

As duas camadas de que você está falando aqui são as camadas 2 e 3. A camada 2 neste cenário é a Ethernet - da qual os endereços MAC surgem e a camada 3 é o IP.

A Ethernet funciona apenas no nível local, entre dispositivos de rede conectados a uma rede de transmissão "datalink", enquanto o IP é um protocolo roteável e, portanto, pode direcionar dispositivos em redes remotas.

Os requisitos de cada um deles são diferentes. A Ethernet especifica uma família de tecnologias que permitem o envio e o recebimento de pacotes entre dispositivos de rede, enquanto o IP define um protocolo que permite que pacotes de dados atravessem várias redes.

Nenhum deles depende do outro, e é isso que confere flexibilidade à rede. Por exemplo, você pode optar por se conectar ao seu serviço de Internet usando IP via Ethernet, mas na sua rede interna, você pode optar por usar IP sobre ... papel. Onde alguém anota o conteúdo de cada pacote e o encaminha fisicamente para outra máquina e digita. Claramente, isso não seria particularmente rápido, mas ainda assim seria o IP, desde que a pessoa carregasse os pedaços de papel respeitando as regras de roteamento IP.

No mundo real, existem diferentes protocolos de conexão de dados que você já usa dois diferentes (embora seus esquemas de endereçamento sejam os mesmos): 802.3 - Ethernet e 802.11 - Wi-Fi.

O IP não se importa com o que é a camada subjacente.

Da mesma forma, o IP pode ser trocado por diferentes protocolos da camada de rede (desde que isso aconteça para todos os participantes). Como ATM .

Embora não exista nada impedindo diretamente a criação de um protocolo que englobe a camada 2 e a camada 3, ele seria menos flexível e, portanto, menos atraente e improvável de ser usado.

Paulo
fonte
2
Para a rede interna, você deveria ter usado o RFC1149 . (Uma descrição menos técnica )
Scott Chamberlain
2
Como usar sinalizadores de mão ?
Scott Chamberlain
1
@ScottChamberlain: Eu amo a arte ASCII nos sinalizadores de mão!
Fred Larson
5
O IPoAC é uma má escolha para comunicações internas; pombos trabalhar melhor ao ar livre do que dentro de casa
cpast
2
@ user2449761 as pessoas listaram apenas as tolas. Em vez de ethernet, você poderia usar o Bluetooth, dial-up, GPRS, LTE, USB, DSL, Token Ring, etc.
OrangeDog
8

Onde seria tomada a decisão de processar ou ignorar o pacote? Nenhuma resposta é realmente satisfatória:

1) No interruptor? Bem, isso significa que os switches precisam entender todos os protocolos que determinam quais computadores estão interessados ​​em quais pacotes. Isso não apenas aumentaria o custo dos comutadores e reduziria sua velocidade, mas dificultaria muito as alterações no protocolo IP.

2) No hardware da interface Ethernet? Bem, isso tornaria a rede muito mais lenta, pois todos os pacotes de dados precisam ir para todas as máquinas. Tecnologias como WiFi e redes de pontes com pontes mais lentas seriam impossíveis. Ter a Ethernet funcionando em diferentes velocidades interoperando seria impossível. Tecnologias como IPv6 ou IP multicast exigiriam alterações de hardware para implantar em todas as estações finais Ethernet.

3) Em software? Bem, isso tornaria os computadores muito mais lentos, pois eles precisam lidar com um número muito maior de interrupções na interface de rede. Todas as preocupações de ponte, VPN e Wifi mencionadas acima também seriam problemas.

Tudo isso tornaria a Ethernet inutilizável sem IP e significaria que mudanças na Ethernet seriam necessárias para fazer alterações no IP. Que nojo.

Separações de preocupações são boas.

David Schwartz
fonte
Além disso, pode reduzir bastante o desempenho geral da rede. Para a opção 3, envio um arquivo enorme saturando minha rede de 1 GBit e, de repente, todos os demais na rede também obtêm esse arquivo e precisam ignorá-lo, e não têm largura de banda para enviar um arquivo a outra pessoa que não faz parte da transferência de arquivo atual.
PlasmaHH
a segunda opção não descreve como a Ethernet funciona? Todas as interfaces estão recebendo os mesmos pacotes, mas apenas uma máquina não irá ignorá-lo (exceto estes no modo promíscuo). Os interruptores estão lá para acelerar as coisas ...
user2449761
2
@ user2449761 Todos os pacotes só vão para todos os computadores se você estiver usando um hardware de rede antigo que possui hubs em vez de comutadores. Hubs eram originalmente uma opção por razões de custo; mas agora que os switches são baratos, ninguém mais os usa.
Dan Neely 24/10
@ Dan é isso que eu estou falando ...
user2449761
2
A opção 1 já está acontecendo. Não está substituindo o uso de endereços MAC, pelo menos ainda não. Mas algum hardware de comutação pode ser configurado para usar o endereço MAC de destino ou usar o endereço IP de destino para escolher a interface de saída. É possível que em 10 ou 20 anos o endereço MAC permaneça apenas para fins históricos e todo o roteamento de pacotes seja feito apenas com base no endereço IP. A parte sobre as mudanças no IP serem mais difíceis de implantar não foi evitada, porque os roteadores de backbone têm roteado com base no endereço IP de destino no hardware há anos.
kasperd
3

O endereço IP e os endereços MAC operam em diferentes camadas do conjunto de protocolos da Internet . Os endereços MAC são usados ​​para identificar máquinas na mesma rede de broadcast na camada 2, enquanto os endereços IP são usados ​​na camada 3 para identificar máquinas em diferentes redes.

Mesmo se o seu computador tiver um endereço IP, ele ainda precisará de um endereço MAC para encontrar outras máquinas na mesma rede, pois cada camada está usando camadas subjacentes. Na página mencionada anteriormente, você encontra alguns diagramas interessantes que explicam o conjunto de protocolos em detalhes.

vembutech
fonte
2

O problema de congestionamento é enfrentado pela rede Ethernet à medida que aumentam de tamanho. Esse retorno pode bloquear a rede e causar atraso. Este é um dos fatores que trouxeram o conceito de sub-rede. Mas, com sub-redes, precisamos de uma entidade adicional chamada roteador para permitir que pacotes viajem de uma máquina em uma sub-rede para uma máquina em outra sub-rede.

A distância percorrida pelo cabo Ethernet é outra grande preocupação, pois pode limitar o sucesso das transmissões se ultrapassar determinado limite. Isso trouxe novas entidades na forma de hub / repetidor.

Observe que todos os mecanismos de comunicação não usam o endereço MAC para comunicação. O PPP e o HDLC não usam o endereço MAC para identificação.

Além disso, observe que algumas redes não usam ethernet. As redes de token ring exigem uma camada de vínculo de dados diferente.

Se você enviar um pacote da rede A para um dispositivo na rede B endereçando através do endereço mac do dispositivo na rede B, ele será descartado na própria rede A. Observe que, mesmo que exista um roteador entre a rede A e a rede B, o roteador descartará o pacote enquanto o roteador trabalha recebendo pacotes endereçados ao seu endereço mac, mas para endereços IP diferentes.

A partir dos cenários acima, é muito claro que a Internet não é uma rede plana devido a várias redes locais / privadas. Existem também várias entidades de rede entre origem e destino.

Como a Internet não é uma rede plana, o endereço MAC não é usado para todos os tipos de comunicação e algumas redes exigem camada de enlace de dados diferente da Ethernet, precisamos do endereço IP para rotear para o nó desejado, independentemente da localização do nó. é alcançado com a camada de rede.

Consulte também uma discussão semelhante em /programming/26290069/arp-vs-ip-why-do-we-need-both

Karthik Balaguru
fonte
Além dos exemplos de "transportadoras aviárias", "sinais manuais" e "papel e lápis" da Camada 2 alternativa, existem alguns que são malucos, mas ocasionalmente úteis . IP por SMS, ou pelo Facebook, ou mesmo por e-mail. Depois, há os antigos SLIP, PPP e PPPoE. Esses três NÃO apresentam o mesmo tipo de rosto que uma conexão Ethernet ou WIFI - mas todos eles obtêm o IP e são completamente roteáveis.
Ross Presser
2

Como outros explicaram, você precisa de protocolos da camada 2 para controle de congestionamento na sua rede local. A camada 3 é usada para roteamento e endereçamento entre redes.

Dito isto, uma pergunta válida poderia ser: Por que as duas camadas não podem usar o mesmo esquema de endereçamento?

Primeira resposta: Como já mencionado, isso permite alternar as tecnologias L2 e / ou L3 e tudo ainda funciona.

Segunda resposta: Mesmo que todos concordassem em que os protocolos da camada 2 usassem endereços IP, você ainda precisaria usar dois endereços IP, um para a camada 2 e outro para a camada 3. Por que? NATting. Se o seu computador tiver um endereço IP público, os endereços L2 e L3 podem ser os mesmos. No entanto, se você usar o NATting, seus endereços L2 e L3 seriam diferentes.

Último comentário: quando você diz que todo mundo recebe a mensagem e os não-destinatários a ignoram, você está falando de WiFi. A Ethernet com fio não funciona mais assim. Costumava ser assim quando usamos cabos coaxiais e mais tarde quando usamos hubs. Os switches enviam apenas as mensagens / pacotes para a porta apropriada (a menos que você os ataque e sature suas tabelas).

cabad
fonte
Estou muito feliz por você ter adicionado o último comentário. Como você apontou: o congestionamento pode ser gerenciado pelos comutadores. Os comutadores podem usar apenas o esquema de endereçamento IP. Também não entendo o argumento NATing: sempre precisamos de dois endereços IP nos dois lados do NAT. Penso que a pergunta válida seria: por que precisamos de camadas separadas de DataLink e Rede em redes modernas? Entendo que a separação era necessária nos anos 70, quando token ring, pombos e papéis estavam em uso.
user2449761
0

Os endereços MAC e endereços IP operam em diferentes camadas de rede para diferentes fins. Se livrar de uma das camadas pode causar problemas, criar confusão ou impedir que as coisas funcionem.

Digamos que eu tenho algum hardware antigo (digamos, um torno CNC de um milhão de dólares) que fala apenas IPX . Na sua rede somente IP, como alguém falaria com isso? Ou diga que estou conectando um computador não configurado a uma nova rede. Na ausência de endereços MAC, como o servidor DHCP pode informar ao meu computador qual endereço IP usar?

Digamos que eu tenho um servidor com quatro conexões de gigabit a um switch de backbone, agregado em uma única conexão virtual. Na sua rede somente para MAC, qual é o endereço do meu servidor? Ou diga que eu tenho um computador conectado via modem PPPoA e não tenho um endereço MAC. Como alguém pode se conectar a ele?

Marca
fonte
0

Hmmm, acho que isso poderia ter sido feito para funcionar (na verdade, já fiz / entreguei manualmente a atribuição de endereços MAC); no entanto, se isso tivesse sido feito, você precisaria comprar um novo hardware para o IPv6 e provavelmente não haveria sobreposição. Então, no geral, não gosto das consequências.

Joshua
fonte
0

O I no IP significa Protocolo de Internetworking .

Significa que um IP deve ser único entre TODAS as redes do mundo inteiro.

Os endereços IP devem ser literalmente globais. Se você envia tráfego para o 9.9.9.9, ele deve chegar a onde 9.9.9.9 não importa onde 9.9.9.9 no mundo esteja fisicamente ou qual rede 9.9.9.9 esteja fisicamente.

(Isso foi interrompido um pouco por causa do NAT. Quando o TCP / IP foi inventado, o NAT não fazia parte do plano original e é um "hack" até que o IPv6 se torne mais prevalente onde não é necessário. Finja que o NAT não existe para entender esta resposta.)

Um endereço MAC deve ser exclusivo apenas na rede local em que o host reside. Ele não foi projetado para permitir a comunicação entre qualquer coisa que não esteja na mesma rede local. Portanto, existe uma limitação física assumida nos endereços MAC, mas não existe nenhuma limitação nos endereços IP.

O TCP / IP é baseado na noção de que:

  • existem redes locais em que os sistemas podem conversar diretamente sem a necessidade de um roteador
  • às vezes, os computadores de uma rede desejam conversar com os computadores de outra e precisam de um roteador para fazer isso.

Se existisse outro mecanismo fundamental onde os dois conceitos acima não se aplicassem, o IP e o MAC não seriam necessários como são atualmente.

Se você estiver projetando um protocolo ou qualquer outra coisa que nunca precise conversar com máquinas fora da mesma rede local, é uma boa ideia ficar com os endereços MAC. Eu acho que o protocolo ATA sobre Ethernet é assim, pois foi projetado para permitir o compartilhamento de unidades ATA na mesma rede e não através da Internet por questões de segurança.

LawrenceC
fonte
0

Eu apenas tive pensamentos semelhantes. Mas cheguei à conclusão de que você precisa da camada MAC. Nem mesmo para trocar!

O problema inevitável é que você possui outro que não apenas o protocolo IP, mesmo que estejamos falando sobre IP, existem IPv4 e IPv6. Como o dispositivo de rede sabe qual é? portanto, você precisa do MAC como uma camada de inicialização, no campo do protocolo, é a próxima camada, que informa o que é transportado pelo MAC.

XYZ
fonte
-2

Você está ficando paralisado pensando apenas em uma única camada OSI. O IP funciona apenas porque a Ethernet (e outras) existe, da mesma forma que a Ethernet existe apenas porque existem fios físicos para transportar o tráfego. Não é "IP ou MAC" - o roteamento de tráfego exige que os endereços MAC funcionem: a tecnologia IP (assim como outras tecnologias relacionadas e não relacionadas) fica em cima disso. Você não pode simplesmente trocar um pelo outro.

Corridas de leveza com Monica
fonte
-6

IPs dinâmicos meu amigo! No seu ambiente local (sua casa, sua faculdade, seu local de trabalho), você tem uma configuração de rede. Ele não está conectado diretamente à Internet (com um 'I' maiúsculo), mas através de um roteador. Este roteador obtém um IP dinâmico (na maioria dos casos, a menos que você tenha um estático) do seu ISP e atribui endereços dinâmicos (o mesmo 'mas' como acima) a todos os computadores conectados. Por que é feito assim? Em uma linha, para fornecer serviço a mais usuários que os IPs que você possui. O problema é que você precisa identificar o seu MacBook Pro (: D) entre todos os outros computadores; portanto, você precisa de um endereço ÚNICO, não dinâmico / compartilhado. Esse é o seu mac. E é por isso que você precisa.

Você pode ler mais aqui

tfrascaroli
fonte
2
Isso realmente não é motivo para empregar endereços MAC.
Daniel B
1
O ponto é: nem todos os computadores têm um endereço IP exclusivo, às vezes você nem quer isso, então esse é um bom argumento para eles terem um endereço LAN separado, que é o endereço MAC.
reinierpost
1
Sim, eles fazem. Tudo que pode ser roteado na Internet é, por definição, endereçável de maneira única. Caso contrário, a internet não funcionaria. Existem coisas como o NAT que violam esse princípio de ponta a ponta. No caso de NAT, você também possui um endereço LAN separado.
Daniel B
@DanielB Tenho certeza de que isso não é verdade, mas talvez eu entenda mal você. Por exemplo: você pode me dizer como abordaria exclusivamente este PC em que estou digitando, que está em uma rede privada local, de onde você está, sem nenhuma conexão anterior estabelecida? E se você quisesse endereçar o computador ao lado deste?
SevenSidedDie
@DanielB Claro que não é o motivo. Pergunta do OP: Todos os computadores não podem simplesmente estar conectados à rede unificada e usar endereços IP para se comunicar? Minha resposta fornece informações sobre essa pergunta, e não sua pergunta hipotética , que seguiria as seguintes linhas: "Por que empregamos endereços MAC no modelo ethernet?". Como ele está perguntando por que não podemos simplesmente usar IPs, aqui está a minha resposta. Por favor, da próxima vez ler carefuly antes downvoting :)
tfrascaroli