Qual é o uso exato de um endereço MAC?


126

Entendo que os endereços IP são hierárquicos, para que os roteadores da Internet saibam em que direção encaminhar um pacote. Com endereços MAC, não há hierarquia e, portanto, o encaminhamento de pacotes não seria possível. Portanto, os endereços MAC não são usados ​​para transferência de pacotes.

Eu não acho que fica lá sem motivo. Então, minha pergunta é: onde exatamente um endereço MAC entra em jogo durante a transferência de pacotes?

Respostas:


57

Os endereços TL; DR> MAC são um componente de baixo nível de uma rede Ethernet (e alguns outros padrões semelhantes, como Wi-Fi). Eles permitem que um dispositivo se comunique com uma máquina na rede física local (LAN) e não podem ser roteados pela Internet - porque o hardware físico pode, em teoria, ser conectado a qualquer lugar do mundo.

Por outro lado, os endereços IP cobrem toda a Internet e os roteadores os usam para descobrir para onde enviar dados, mesmo que precisem de vários saltos para chegar ao seu destino - mas eles não são úteis na interface com o hardware físico da rede local.

Se algum dia encontrarmos um padrão melhor que o Ethernet, ele poderá não usar endereços MAC, mas o tráfego IP da Internet ainda poderá fluir através dele, mesmo que outras pessoas na Internet nunca tenham ouvido falar dele.

Se algum dia encontrarmos um padrão melhor que o IP (por exemplo, IPv6, se todos os endereços IPv4 se esgotarem), a maioria dos hardwares Ethernet poderá transportar o novo tipo de tráfego sem modificação - e uma simples atualização de software / firmware consertaria a maior parte do resto.

Os endereços MAC são necessários para fazer com que uma rede local Ethernet (ou wifi) funcione. Eles permitem que um dispositivo de rede atraia a atenção de um único dispositivo conectado diretamente, mesmo que a conexão física seja compartilhada. Isso pode ser importante quando milhares de dispositivos estão conectados juntos em uma única organização. Eles não servem para nenhuma função na Internet em geral.

Para realmente entender a resposta a essa pergunta, você precisa entender o modelo OSI (às vezes conhecido como 7 camadas) .

Para que a comunicação ocorra entre dois aplicativos em execução em máquinas separadas que não possuem uma conexão física direta, é necessário muito trabalho.

Antigamente, cada aplicativo sabia exatamente quais instruções de código de máquina precisavam ser executadas para produzir um sinal apropriado que atingisse e pudesse ser decodificado pelo aplicativo no outro extremo. Toda a comunicação era efetivamente ponto a ponto, e o software tinha que ser escrito para se adequar à situação exata em que deveria ser implantado. Obviamente, isso era insustentável.

Em vez disso, o problema da rede foi dividido em camadas, e cada camada sabia como falar com a camada correspondente em uma máquina remota e como se comunicar com a camada abaixo (e às vezes acima) dela em sua máquina local. Ele não sabia nada sobre outras camadas existentes - portanto, seu navegador da web não precisa se importar se está sendo executado em uma máquina que usa um anel de token, ethernet ou rede wifi - e definitivamente não precisa saber qual hardware a máquina remota usa.

Para fazer isso funcionar, o modelo de 7 camadas usa um sistema como envelopes aninhados; o aplicativo cria seus dados e os envolve em um envelope para o sistema operacional entregar. O sistema operacional envolve isso em outro envelope e o passa para o driver de rede. O driver de rede envolve isso em outro envelope e o coloca no cabo físico. E assim por diante.

A camada inferior, camada 1 , é a camada física. Essa é a camada de fios e transistores e ondas de rádio e, nessa camada, a comunicação é basicamente apenas um fluxo de uns e de nada. Os dados vão para todo lugar fisicamente conectado. Você conecta a porta de rede do computador ao seu switch usando um cabo CAT-5.

Camada 2 é a camada de vínculo de dados. Isso fornece alguma estrutura para esses e poucos, alguns recursos de detecção e correção de erros e alguma indicação sobre qual dispositivo conectado fisicamente (as conexões físicas aqui podem realmente ser feitas por Wi-Fi) deve prestar atenção à mensagem. Essa é a camada em que os endereços MAC entram em jogo, e voltaremos a ela mais tarde. Mas os endereços MAC não são a única possibilidade nessa camada. As redes de token ring, por exemplo, precisam de uma implementação de link de dados diferente.

Camada 3 é a camada de rede. Essa é a camada na qual o IP trabalha (embora também não seja o único protocolo de camada de rede) e permite que os computadores enviem uma mensagem que pode chegar a qualquer máquina em qualquer lugar da "rede". Não precisa haver uma conexão direta entre as máquinas em questão.

As camadas 4-7 são protocolos de nível superior. Eles ficam cada vez mais distantes do hardware e mais próximos do aplicativo. O TCP, por exemplo, fica no topo do IP e fornece mecanismos que reenviam automaticamente as mensagens quando elas desaparecem.

Portanto, os endereços MAC funcionam na Camada 2 e permitem que duas máquinas fisicamente conectadas entre si enviem mensagens que serão ignoradas por outras máquinas que compartilham a mesma conexão física.

Suponha que eu tenha um aplicativo que queira enviar alguns dados para a máquina com endereço IP 8.8.8.8

A camada 3 agrupa os dados em um envelope que contém, entre outras coisas, o endereço IP 8.8.8.8 e o entrega à camada 2.

A camada 2 examina esse endereço IP e decide em qual máquina está diretamente conectada e capaz de lidar com esta mensagem. Ele terá uma tabela de pesquisa de uma seleção dos endereços IP conectados diretamente, juntamente com o endereço MAC correspondente da placa de rede nessa máquina. Essa tabela de pesquisa é construída usando um protocolo chamado ARP, que permite que uma placa de rede faça perguntas aos outros dispositivos conectados diretamente. A Ethernet reserva um endereço MAC especial, FF: FF: FF: FF: FF: FF, que permite que um dispositivo fale com todos os dispositivos conectados fisicamente.

Se o endereço IP estiver na tabela (ou puder ser resolvido através do ARP), ele envolverá o envelope da Camada 3 em um envelope da Camada 2 com o endereço MAC no novo cabeçalho e passará todo o pacote para o hardware da Camada 1 A placa de rede com o endereço MAC correspondente receberá a mensagem e o driver de rede abrirá o envelope da Camada 2 e transmitirá o conteúdo para qualquer parte do sistema operacional que esteja esperando receber mensagens no endereço IP específico.

Como alternativa, se o endereço IP não estiver na rede local, o novo envelope terá o endereço MAC do gateway padrão (ou seja, roteador) configurado para esta interface de rede e o hardware transportará o pacote para o roteador.

O roteador percebe seu próprio endereço MAC no envelope da camada 2 e abre o pacote de nível 2. Ele examina o endereço IP no envelope de nível 3 e calcula para onde a mensagem deve ir a seguir, que provavelmente será o roteador no seu ISP. Se o roteador usa NAT (ou similar), ele pode até modificar o envelope de nível 3 neste momento, para manter seus endereços IP internos privados. Em seguida, embrulha o envelope de nível 3 em um novo envelope de nível 2 endereçado ao endereço MAC do roteador do ISP e envia a mensagem para lá.

Esse processo de remover o envelope externo e envolver o conteúdo em um novo envelope endereçado à próxima etapa da cadeia continuará até que a mensagem chegue à máquina de destino.

Os envelopes continuarão sendo rasgados à medida que a mensagem voltará pelas camadas até finalmente chegar ao destinatário pretendido, que será um aplicativo em algum lugar que, esperançosamente, saberá o que fazer com a mensagem - mas não terá idéia de como o a mensagem chegou, nem todas as etapas necessárias para obter a resposta de volta à máquina original.

Mas tudo funciona, quase como mágica!

Observe que os comutadores de rede podem usar endereços MAC para otimizar o fluxo do tráfego de rede. Enquanto um hub ethernet simplesmente encaminha todo o tráfego de entrada para todas as suas portas, por outro lado, um switch pode encaminhar o tráfego apenas para a única porta à qual o endereço MAC de destino do pacote está conectado. Isso aumenta a largura de banda efetiva da rede; ao direcionar portas específicas, o switch evita o tráfego de encaminhamento em segmentos desnecessários da rede. O switch usará o ARP ou o sniffing de pacotes para identificar quais dispositivos estão conectados a qual porta. Os switches ignoram completamente o conteúdo dos pacotes da camada 2.


Oi! obrigado pela resposta. Até onde eu li, sua resposta é a melhor. Seria incrível se você pudesse incluir mais alguns conceitos como ARP e NAT dentro do seu cenário.
Vishnu Vivek

1
Referência adicionada ao ARP e aos comutadores de rede. Eu não acho que NAT tem nada a ver com endereços MAC, sendo uma função de camada 3 ...
Bill Michell

@ BillMichell: No IPv6, o MAC ou outro ID local ('hardware') pode ser usado para compor o IP.
Luciano

A resposta é Wiki da comunidade. Provavelmente, você pode editá-lo para incluir essas informações adicionais se achar que isso ajudará a responder à pergunta do OP.
Bill Michell

Isso precisa de um TL; DR.
AJMansfield

113

Para que são utilizados os endereços MAC?

Os endereços MAC são os princípios básicos de baixo nível que fazem sua rede local baseada em Ethernet funcionar. Local significa que os dispositivos de rede estão conectados diretamente através de um cabo ou por WiFi ou através de um hub ou switch de rede.

Cada uma das placas de rede possui um endereço MAC exclusivo. Os pacotes enviados na Ethernet sempre são provenientes de um endereço MAC e enviados para um endereço MAC. Se um adaptador de rede estiver recebendo um pacote, ele está comparando o endereço MAC de destino do pacote com o próprio endereço MAC do adaptador. Se os endereços corresponderem, o pacote será processado, caso contrário, será descartado.

Existem endereços MAC especiais, um por exemplo é ff: ff: ff: ff: ff: ff, que é o endereço de broadcast e endereça todos os adaptadores de rede na rede.

Como os endereços IP e MAC funcionam juntos?

IP é um protocolo usado em uma camada acima da Ethernet. Outro protocolo, por exemplo, seria o IPX. O IP permite conectar diferentes redes locais e formar uma rede corporativa ou a Internet global.

Quando o seu computador deseja enviar um pacote para algum endereço IP xxxx, a primeira verificação é se o endereço de destino está na mesma rede IP que o próprio computador. Se xxxx estiver na mesma rede, o IP de destino poderá ser alcançado diretamente, caso contrário, o pacote precisará ser enviado ao roteador configurado.

Até agora, as coisas parecem piorar, porque agora temos dois endereços IP: um é o endereço de destino do pacote IP original, o outro é o IP do dispositivo para o qual devemos enviar o pacote (o próximo salto, o final) destino ou o roteador).

Como a Ethernet usa endereços MAC, o remetente precisa obter o endereço MAC do próximo salto. Existe um protocolo especial ARP (protocolo de resolução de endereço) usado para isso. Depois que o remetente recupera o endereço MAC do próximo salto, ele grava o endereço MAC de destino no pacote e envia o pacote.

Como o ARP funciona?

O próprio ARP é um protocolo acima da Ethernet, como IP ou IPX. Quando um dispositivo deseja saber o endereço MAC de um determinado endereço IP, ele envia um pacote para o endereço MAC de broadcast perguntando "Quem tem o endereço IP aaaa?" Todos os dispositivos recebem esse pacote, mas apenas aquele com o endereço IP aaaa responderá com um pacote "Sou eu". O dispositivo solicitante recebe a resposta e agora sabe que o endereço MAC de origem do pacote ARP é o endereço MAC correto a ser usado. Obviamente, o resultado será armazenado em cache, para que o dispositivo não precise resolver o endereço MAC todas as vezes.

Encaminhamento

Eu quase esqueci de mencionar: não há roteamento baseado em endereços MAC. Ethernet de baixo nível e endereços MAC só podem alcançar todos os dispositivos na mesma rede (com ou sem fio). Se você tiver duas redes com um roteador no meio, não poderá ter um dispositivo na rede A enviar um pacote para o endereço MAC de um dispositivo na rede B. Nenhum dispositivo na rede A possui o endereço MAC do dispositivo na rede B, portanto, um o pacote para esse endereço MAC será descartado por todos os dispositivos da rede A (também pelo roteador).

O roteamento é feito no nível IP. Simplesmente visto, o roteador está apenas fazendo o que descrevi acima na seção "Como os endereços IP e os endereços MAC funcionam juntos?". O roteador receberá pacotes para seu próprio endereço MAC, mas para um endereço IP diferente. Ele verificará se consegue alcançar diretamente o endereço IP de destino. Nesse caso, ele envia o pacote para o destino. Caso contrário, o próprio roteador também possui um roteador upstream configurado e enviará o pacote para esse roteador.

Claro que você pode ter vários roteadores configurados. Seu roteador doméstico terá apenas um roteador upstream configurado, mas no backbone da Internet, os grandes roteadores têm grandes tabelas de roteamento, para que saibam as melhores maneiras para todos os pacotes.

Outros casos de uso para endereços MAC

  1. Os comutadores de rede armazenam uma lista de endereços MAC vistos em todas as portas e somente encaminham pacotes para as portas que precisam ver o pacote.

  2. Os pontos de acesso sem fio geralmente usam endereços MAC para controle de acesso. Eles permitem apenas o acesso a dispositivos conhecidos (o endereço MAC é único e identifica dispositivos) com a senha correta.

  3. Os servidores DHCP usam o endereço MAC para identificar dispositivos e fornecer endereços IP fixos para alguns dispositivos.


16
+1 para realmente responder à pergunta de uma maneira que as pessoas que ainda não sabem a resposta possam entender.
fofo

Não consigo deixar de sentir o desejo de criar um infográfico / diagrama impressionante de alguma forma, a maneira como o MAC / IP interage é bastante interessante!
NRGdallas

1
boa resposta apenas um detalhe: os endereços MAC também são usados para dispositivos não Ethernet e foi você descreve basicamente vale para qualquer camada de enlace de dados usado com uma pilha IP
kriss

Vale ressaltar sobre os MACs Wi-Fi: embora geralmente sejam únicos e possam ser usados ​​para identificar dispositivos, eles são fáceis de falsificar e enviados de forma clara e sem fio . Se não houver outra criptografia / autenticação usada na conexão, ou se o (s) outro (s) mecanismo (s) de criptografia / autenticação forem fracos (por exemplo: WEP), é muito trivial para um invasor se passar por um dispositivo autorizado e ingressar na rede.
Iszi

1
@ Rick Você está certo, o IP de destino de uma conexão não muda. Mas no parágrafo citado, eu estava falando sobre o destino direto do pacote - que pode ser o roteador, e o roteador pode mudar durante a conexão. Em relação ao seu segundo comentário, mudei o texto para "endereço MAC de origem do pacote ARP". Espero que seja mais claro.
Werner Henze

47

O endereço MAC (endereço do Media Access Control) em geral é o identificador dos dispositivos em uma rede. Portanto, toda NIC (controlador de interface de rede encontrada em um roteador, PC, impressora de rede, servidor etc.) possui endereços MAC. Alguns servidores possuem mais de uma placa de rede incorporada e, portanto, têm vários endereços MAC. O endereço MAC tem 6 bytes de comprimento (6 octetos). Esquerda é o Byte mais significativo e direita o Byte menos significativo. Como você pode ver na figura abaixo, os 3 primeiros bytes são o identificador exclusivo da organização . Isso indica o fabricante que criou este dispositivo.

Aqui está uma lista do identificador exclusivo da organização : Standards.ieee.org

Aqui está uma alternativa para o acima: MAC-Vendor-Lookup

Alguns exemplos de fabricantes conhecidos comuns:

  • 00-05-5D (D-Link Systems Inc.)
  • 00-09-5B (Netgear Inc.)
  • 00-E0-4C (Realtek Semiconductor Corp.)
  • 00-E0-4F (Cisco Systems Inc.)
  • 00-E0-64 (Samsung Electronics)

Os últimos 3 bytes (3 octetos) são atribuídos aleatoriamente pelo fabricante.

Como pjc50 afirmou corretamente, o endereço MAC em uma rede Ethernet ajuda os comutadores a decidir qual pacote enviar para onde. Há também um endereço MAC de transmissão. ff: ff: ff: ff: ff: ff é usado para o endereço MAC de broadcast. Observe que o endereço MAC pode ser alterado, portanto, tenha cuidado ao usá-lo como um identificador de dispositivo definido! O endereço MAC também é usado com o protocolo ARP (Address Resolution Protocol). Então, como funciona, o PC A envia uma solicitação ARP ao PC B com seu próprio endereço IP, endereço MAC, endereço IP do receptor e o endereço de broadcast mencionado acima (ff: ff: ff: ff: ff : ff). Depois disso, o PC B verifica se o pacote foi enviado para ele ou não. Se sim, o PC B envia seu próprio endereço MAC, endereço IP, o endereço MAC do receptor e o endereço IP do receptor de volta. Os outros dispositivos descartam o pacote.

Os PC A e B geralmente salvam a conexão bem-sucedida no chamado ARP-Cache. A maneira como os PCs salvam a conexão difere de dispositivo para dispositivo. Se você não souber o endereço IP, poderá obter o endereço IP com o RARP (Reverse Address Resolution Protocol). Com o RARP, o dispositivo entra em contato com um cliente central e solicita o endereço IP. Mas esse método dificilmente é usado hoje em dia.

As seguintes tecnologias usam o formato identificador MAC-48:

  • Ethernet
  • Redes sem fio 802.11
  • Bluetooth
  • Anel de token IEEE 802.5
  • maioria das outras redes IEEE 802
  • FDDI
  • ATM (somente conexões virtuais comutadas, como parte de um endereço NSAP) Fibre Channel e SCSI serial conectado (como parte de um nome mundial)

4
Mais precisamente do que "todo dispositivo (...) tem endereços MAC.", Toda NIC possui um endereço MAC . (Não é necessário definir um endereço MAC personalizado.) Nem todas as impressoras têm placas de rede embutidas e muitos servidores têm mais de uma placa de rede e, portanto, mais de um endereço MAC.
um CVn 24/07/2013

2
Vamos dizer que o PC-1 envia um pacote para o PC-2. Agora, o switch lê apenas o endereço MAC do PC-1 e o salva em uma tabela. Se você quiser mais informações sobre como ele funciona, leia isto: Como LAN Switches Trabalho :)
Meintjes

3
Outro ponto é que o endereço MAC é como a NIC decide o que descartar e o que enviar ao processador para manipulação. Um quadro Ethernet encontrado no fio tem seu endereço MAC de destino XOR com o endereço MAC da NIC e, se o resultado for todos os 0s, é um quadro destinado a essa NIC.
Bbayles

7
-1: A pergunta foi feita sobre como os endereços MAC são usados, e não o que é um endereço MAC. A única parte da sua resposta que aborda a questão é a lista de marcadores no final e ela não entra em muitos detalhes.
24713 Kevin Kevin

4
A foto foi tirada da wikipedia: en.wikipedia.org/wiki/File:MAC-48_Address.svg , as fotos licenciadas sob creative commons devem ser atribuídas aos seus autores quando usadas.
Étienne

24

Eles são usados ​​para transferência de pacotes: em uma rede Ethernet, existem vários dispositivos, e o endereço MAC especifica qual dispositivo deve receber o pacote. Os comutadores Ethernet o usarão para escolher em qual porta enviar um pacote recebido.


5
Pode ser interessante notar que a Ethernet originalmente era um meio de barramento, onde todas as máquinas compartilhavam fisicamente a mesma mídia (isso ainda é verdade para redes sem fio). Então, logicamente, funciona assim.
LawrenceC

e ainda é verdade para redes que ainda usam hubs :) #
24713 Doon

doravante interruptores são apenas uma instalação (realmente se tornou ampla disseminação com conectores RJ-45 LANs) que podem e têm redes IP sem eles (usando hubs ou 802.11)
kriss

7

Esqueça a hierarquia, neste caso, não é uma questão muito importante.

Endereço MAC são endereços da camada 2 (camada de link) nos modelos ISO / OSI ou TCP / IP. Os endereços IP são da camada 3 (camada de rede) nos mesmos modelos.

Em uma rede da camada 2, por exemplo, uma rede Ethernet comum, existe um domínio de colisão, no qual todos os equipamentos conectados podem receber todos os quadros (dados da unidade da camada 2) de qualquer ponto de extremidade. Mas ninguém fora da rede pode receber esses quadros. Endereços MAC são endereços nesses domínios.

Pacotes são os dados da unidade da camada 3, geralmente pacotes IP. Eles viajam por um ou mais domínios de colisão. Endereços IP são os endereços neste domínio.

Os comutadores são dispositivos da camada 2 e quadros avançados usando tabelas de endereços MAC. Os roteadores são dispositivos da camada 3 e encaminham pacotes usando tabelas de endereços IP.


6

A Ethernet assume que o outro computador (o outro MAC) com o qual deseja conversar está diretamente acessível pelo adaptador de rede. IP não. O IP pressupõe que ele possa alcançar qualquer outro IP no mundo inteiro e que, se não puder alcançá-lo na sub-rede atual, um roteador o levará até lá, apesar do NAT. A noção de gateways não existe na camada 2 ou na Ethernet.

Se você possui um número de máquinas conectadas a um switch e nunca precisará negociar tráfego com outras redes / Internet através de um roteador, não precisará realmente ter o IP em funcionamento. Obviamente, um aplicativo teria que implementar ou fornecer seu próprio protocolo acima da camada 2, pois praticamente todos os sistemas operacionais e aplicativos pressupõem que você sempre queira usar o TCP / IP.

Lembre-se sempre de que "Internet" no IP significa "internetworking", significando realmente que está preocupado em obter mais tráfego entre redes do que em uma rede, embora obviamente possa ser (e seja) usado para isso também.


O primeiro parágrafo é a resposta perfeita! Iluminando!
Milind R

6

O endereço MAC é usado na transferência física. Um adaptador Ethernet não sabe nada sobre IP. Portanto, o adaptador Ethernet usa o endereço MAC para endereçar o receptor do pacote de dados.

Se o adaptador Ethernet souber algo sobre IP, precisamos atualizar todo o firmware para mudar para um novo protocolo (como IPv4 para IPV6).

Além disso, o endereço MAC contém algumas informações sobre o fabricante.


3
Os roteadores não usam o endereço MAC para rotear nada. Eles usam endereços IP. Os hubs copiam o tráfego não modificado de suas portas, mas isso seria chamado de ponte, pois o tráfego não passa por uma rede diferente, mas pela mesma rede.
LawrenceC

5

É usado quando o ARP (protocolo de resolução de endereços) para IPv4 ou o NDP (protocolo de descoberta de vizinhos) para IPv6 converte os endereços IP em endereços MAC para determinar a qual host exclusivo os quadros devem ser enviados.


Isso é bem próximo, mas não cobre todo o uso. É assim que um MAC se relaciona com o TCP / IP, mas um MAC é usado para muito mais do que apenas isso. Esta é a primeira resposta para a qual não estou dando um -1 (trabalhando da parte inferior da página para cima).
Mark Henderson

@ Mark Henderson Obrigado pelas críticas. Bem, eu apenas tentei responder à pergunta How MAC addresses were used in packet transfere então assumi que estava no nível da Ethernet. E sim, é uma resposta simples, mas eu estou respondendo a um nível que se adapte o meu próprio nível :)
Jesper Jensen

3

Para completar as respostas de outras pessoas, eu acrescentaria que o endereço MAC é ainda mais crítico para roteadores do que para switches. O que quero dizer com mais crítico é que os switches não são realmente necessários para a rede IP existir. Você olha 20 anos atrás (antes do RJ-45) As redes IP locais funcionavam perfeitamente sem comutadores. As redes Ethernet não roteadas estavam simplesmente conectando dispositivos no mesmo fio (veja a tecnologia Ethernet X base-T, por exemplo).

Por outro lado, as redes IP foram inventadas para oferecer suporte ao roteamento e dependem de esquemas de endereçamento MAC e IP.

O roteamento de pacotes em redes IP significa que quando a máquina de destino não puder ser acessada diretamente, ela será enviada primeiro para outra máquina (o gateway) mais próxima do destino IP final.

Em termos de cabeçalhos de pacotes de rede, significa que um pacote enviado a um gateway terá como destino no cabeçalho no nível Ethernet o endereço MAC do gateway, o cabeçalho no nível IP sendo mantido inalterado.

Você também deve observar que os endereços MAC normalmente hoje em dia significam MAC-48 (endereço do dispositivo físico) ou EUI-48 (endereço do dispositivo lógico) ou mesmo os endereços EUI-64 de 8 bytes usados ​​em redes maiores. Historicamente, o MAC foi inventado pela Xerox para a tecnologia Ethernet e posteriormente reutilizado para outras tecnologias de transporte de rede (802.11, Bluetooth, FibreChannel, BlueTooth) que precisavam identificar um dispositivo.

Como eu disse, você pode usar outra camada 2 em vez da Ethernet, mas a maioria usa um endereço MAC como identificador de rede e o esquema de correspondência MAC / IP subjacente é válido e você ainda pode usar o ARP. Tanto quanto sei, todas as pilhas IP dependem da tabela de correspondências entre os endereços MAC e os endereços IP.

Existem outros tipos de identificadores de nós de dispositivos para pilhas não IP. Por exemplo, o X.25 não depende de endereços MAC, mas de canais virtuais estabelecidos por conexão, ou dispositivos ATM são identificados em redes ATM usando SNPAs. Mas nem o X.25 nem o ATM são pilhas de IP (e até o ATM usa o formato de endereços MAC como parte do seu SNA, equivalente aproximado de um endereço IP para o ATM).


Os roteadores não se importam com endereços MAC. Eles se preocupam com a atribuição de sub-rede a cada uma de suas pelo menos 2 NICs, mas não com os endereços MAC. Eles encaminham (ou seja, copiam) o tráfego de um IP para outro, não de um IP para um MAC ou algo assim.
LawrenceC

4
@ultrasawblade, sua afirmação é absurda . Se um roteador estiver conectado a uma rede Ethernet, ele deverá se comunicar usando o protocolo Ethernet. Pacotes IP serão encapsulados no quadro Ethernet. O que significa que é absolutamente necessário conhecer os endereços MAC de todos os sistemas ** hosts Ethernet diretamente **. Um dispositivo da camada 3 não apenas se comunica magicamente em um protocolo da camada 3, deve encapsular o protocolo da camada 3 dentro de um protocolo da camada 2, que é transmitido pela mídia da camada 1.
precisa

3
Não concordo com a sua primeira frase - eles não são "mais críticos" para roteadores do que comutadores - são todos de igual importância em toda a rede Ethernet.
Mark Henderson

1
Você pode substituir a camada subjacente 2 por algo completamente diferente (embora eu não saiba o que) e o IP ainda funcionará da mesma maneira. O protocolo IP (Camada 3) não se importa se os hosts individuais são endereçados abaixo pelo MAC ou algum outro esquema. Obviamente, é necessário manter o mapeamento IP para MAC - mas é difícil saber se o ARP realmente "pertence" às ​​camadas 3 ou 2. O ponto é que o protocolo da camada 2 não precisa ser Ethernet e o IP não se importa. / preciso saber o que é o protocolo da camada 2.
LawrenceC

2
@ Mark Henderson: como sou velho, lembro-me de uma época em que não havia interruptores. Eles não são realmente um equipamento crítico que as redes IP podem funcionar sem comutadores. Os comutadores usavam apenas um layout de rede de dados preexistente. Se atualmente os temos onipresentemente, isso é consequência da tecnologia ponto a ponto do RJ, substituindo os barramentos antigos. Em outras palavras: os endereços MAC não foram inventados para fazer os comutadores funcionarem. Por outro lado, as redes IP foram inventadas para fins de roteamento, portanto, o relacionamento MAC para IP é crítico.
kriss

2

Pense nos dias anteriores à troca (hubs).

Se as pessoas são computadores, o endereço MAC é o nome deles.

Finja que muitas pessoas (os computadores) estão na mesma ligação. Todo mundo está falando ao mesmo tempo.

VOCÊ (um computador) ouve TODA essa conversa, mas não sabe o que deve ouvir, até que alguém diga seu nome (seu endereço MAC) no início de uma frase (um pacote).

"FRED, THERE IS ICE CREAM!"

Obviamente, você também ouve sentenças enviadas para o endereço de transmissão . Apenas considere que alguém está gritando,

"EVERYONE, THERE IS ICE CREAM!"

Quanto mais pessoas (computadores) participavam da teleconferência, mais você precisava filtrar. A tecnologia avançada e os comutadores nos permitiram conversar diretamente com uma pessoa (computador / MAC) para que eles não tivessem que trabalhar tanto para filtrar todo esse ruído (e liberar mais largura de banda).

O IP é muito semelhante na analogia básica, mas possui mais recursos e camadas além do endereçamento MAC. Camadas 2 e 3 no modelo OSI , respectivamente.


Você não precisa pensar nos dias anteriores à troca. Os endereços MAC estão ativos e bem e são usados ​​em todos os pacotes que saem do seu adaptador Ethernet hoje , agora.
Mark Henderson

Muito verdadeiro. Mas isso ajuda com a analogia. E as placas de rede ainda se comportam da mesma maneira.
Randy James

2

O endereço MAC é necessário porque existem vários endereços conectados ao "barramento" (a rede Ethernet). Um remetente precisa ser capaz de identificar o receptor, bem como de se identificar com o receptor.

Todos os barramentos de hardware precisam ser endereçados, porque vários remetentes e receptores compartilham os mesmos fios, e as mensagens precisam ir para receptores específicos e também identificar os remetentes de origem.

I2C, PCI, Ethernet, você escolhe.

Temos vários endereços na inter-rede (endereço IP e endereço de hardware) porque um endereço no nível do hardware é apenas local para uma rede física específica. À medida que um datagrama viaja de rede em rede, tende a manter seu endereço no nível da rede, mas altera os endereços de hardware várias vezes ao longo do caminho. Ao passar por algumas redes, ele pode não ter um endereço de hardware e, em outras, pode ter um endereço de hardware que não seja um MAC Ethernet. (Os endereços de rede podem ser reescritos por um gateway NAT, é claro, mas os endereços de hardware são removidos e substituídos por diferentes sempre que um pacote atravessa um roteador.)


1

Antigamente as redes eram compartilhadas de ônibus. Cada dispositivo em rede conectado ao mesmo fio ou a um hub, significava que todos os pacotes enviados eram recebidos por todos os dispositivos da rede.

O software de rede era mais simples na época. Cada dispositivo tinha um endereço MAC, que era garantido como único. Não precisava ser mais nada - tudo o que fez foi garantir que não houvesse dois dispositivos na mesma rede com o mesmo endereço.

Se o seu dispositivo quisesse conversar com outro dispositivo, ele enviaria um pacote com o endereço MAC do destinatário, e o destinatário o retiraria da rede. Todos os outros dispositivos o ignorariam - não estava endereçado ao endereço MAC.

Com o tempo, as pessoas conectaram muitos dispositivos à rede e não conseguiram acompanhar o tráfego. Assim, começaram a separar redes e conectariam duas redes com comutadores. Esses comutadores tinham grandes tabelas informando quais endereços MAC estavam em cada rede. Se eles vissem um pacote em uma rede endereçada a um endereço MAC na outra rede, eles copiariam a mensagem para a outra rede. Eles não copiaram todas as mensagens, apenas as que precisavam ir para a outra rede.

Isso reduziu o congestionamento e permitiu que mais dispositivos fossem conectados em rede e mais tráfego geral fosse tratado. Esta é uma rede comutada por pacotes .

No entanto, não resolveu todos os problemas e sofreu uma enorme desvantagem - à medida que as tabelas de comutação aumentavam, as redes desaceleravam. Se você conectou 5.000 máquinas a 50 redes diferentes, todas interconectadas com comutadores, cada comutador precisaria aprender todos os 5.000 endereços MAC e rotear pacotes com base nisso.

Isso não foi grande coisa até pessoas de diferentes instituições, como universidades, quererem conectar suas redes, e as tabelas necessárias teriam sido tremendas. Manter o controle de algumas centenas de milhares de endereços MAC hoje não parece grande coisa, mas nos anos 70, quando isso estava ocorrendo, os comutadores eram computadores, com memória e velocidade limitadas, além de acompanhar e alternar rapidamente pacotes por alguns cem era um problema.

A solução estava indo para uma rede IP e usando roteadores. Isso é construído sobre a rede de pacotes comutados com base no endereço MAC. Em vez de dados brutos, os pacotes agora contêm um pacote IP - um pacote dentro de um pacote.

Agora redes maiores estão conectadas com roteadores. Eles esperam até verem um pacote com seu endereço MAC, depois retiram o pacote IP e examinam o endereço IP. Em seguida, envolvem novamente o pacote IP em outro pacote com um novo destinatário de endereço MAC e o enviam para uma nova rede. Esse endereço MAC provavelmente é para outro roteador na nova rede, mas também pode ser a máquina com o endereço IP.

Nas redes atuais, você raramente vê hubs e barramentos (exceto em redes sem fio, onde a mídia é inerentemente compartilhada) e, em vez disso, minha máquina se conecta diretamente a um switch, que eles se conectam a um roteador.

Minha máquina possui uma variedade de algoritmos e protocolos para saber como a rede está configurada.

Se eu enviar um pacote IP para uma máquina na minha rede local, ela o colocará dentro de um pacote com o endereço MAC correto. Os comutadores mudarão para a rede correta localmente, e a máquina destinada a receberá porque ele possui o endereço MAC correto. Eles removerão o pacote IP e verificarão se o endereço IP também se destina a ele e agirão de acordo.

Se eu enviar um pacote IP destinado a uma máquina em outro lugar da Internet, minha máquina saberá enviá-lo ao roteador, para colocá-lo dentro de um pacote com o endereço MAC do roteador. Ele é novamente alternado localmente na minha rede até atingir a rede em que o roteador está ligado, depois o roteador pega, retira o pacote IP, examina o pacote IP e, com base no conhecimento da Internet, envia para outro roteador outra rede, envolvendo-o em um pacote com o endereço MAC do roteador ou computador de destino pretendido.

Há muitos detalhes minuciosos que descrevi e alguns algoritmos e protocolos realmente interessantes em jogo que fazem tudo funcionar, mas essa é a história básica do que o endereço MAC faz para nós, ainda hoje.


1
Você começou bem, mas perdeu no meio, onde começa a falar sobre redes interconectadas. Os switches não eram comuns até os anos 90, mas o roteamento existia 20 anos antes disso.
Mark Henderson

-1

A principal diferença é que o MAC é atribuído pelo fabricante no momento da fabricação, enquanto o endereço IP é atribuído no momento da conexão.

O MAC é necessário porque pode ser usado para identificar um dispositivo antes de conectar-se à rede; no entanto, como é atribuído estaticamente, é praticamente distribuído aleatoriamente, portanto, não é adequado para roteamento eficiente em mais de uma única rede (isso exigiria que todos os dispositivos do planeta tivessem uma enorme tabela de roteamento para todos os outros dispositivos do planeta ) Portanto, o endereço IP é necessário porque é atribuído no momento da conexão e a maneira como ele é atribuído permite um roteamento de longa distância mais eficiente (com IP, a maioria dos dispositivos precisa apenas conhecer suas redes adjacentes).

Se houver apenas um endereço IP, os dispositivos que não foram atribuídos a um endereço IP não poderão dizer qual mensagem é para eles. Como você determinaria que esse DHCP se destina a você e não a outras pessoas que também solicitem a atribuição de endereços ao mesmo tempo?

É claro que o MAC também é usado para outras partes do envio de pacotes, mas a maioria desses usos é praticamente incidental e pode (pelo menos em teoria) ser substituída por um número atribuído dinamicamente (por exemplo, endereço IP).


+1 por que não continuamos usando endereços MAC.
deed02392

3
O primeiro parágrafo é tecnicamente correto, mas essa não é a diferença raiz. A diferença principal é que um MAC pertence à Ethernet e um IP pertence ao TCP / IP. Você pode executar o TCP / IP em vários protocolos da camada 2 (ATM, por exemplo), e há mais do que apenas o TCP / IP executado no Etherhet. Não existe algo como "antes de conectar-se à rede", mas existe "Antes de obter um endereço IP do DHCP". Mas o MAC ainda é usado depois disso - pois fica em uma camada diferente no modelo OSI. O último parágrafo está totalmente errado - não substituto para um endereço MAC na rede.
Mark Henderson

@ MarkHenderson: Meu argumento é que o MAC pertencente à Ethernet e o IP ao TCP / IP é praticamente um acidente histórico; teoricamente, se reprojetássemos toda a pilha da Internet do zero (e ignorássemos o OSI e a compatibilidade com outras redes), seria possível substituir a maioria dos usos do número designado pela fábrica (por exemplo, MAC) pelo número atribuído dinamicamente (por exemplo, IP), exceto que há um número de pacotes que precisam ser enviados / recebidos antes que um número atribuído dinamicamente possa ser adquirido, e é por isso que um identificador globalmente exclusivo atribuído pela fábrica é necessário.
Lie Ryan

@MarkHenderson: IMO, dizer que precisamos de MAC e IP porque o MAC é a camada 2 e o IP é a camada 3 é como dizer "precisamos disso porque criamos a Internet para ser assim", ela perde o sentido e não fornece informações úteis qualquer que seja. O que estou respondendo aqui é por que o identificador atribuído de fábrica e o atribuído dinamicamente são necessários devido à natureza do problema e o que implica uma pilha da Internet sem eles (perda de eficiência de roteamento sem ID atribuído dinamicamente e dificuldade de endereçamento exclusivo de um dispositivo antes da atribuição dinâmica de ID para nenhum ID atribuído de fábrica).
Lie Ryan

@LieRyan, Na verdade nós pode mudar MAC do nosso PC endereço .......
Pacerier
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.