Digamos que a tabela de comutação esteja vazia. Se o computador A enviar um quadro destinado ao computador B, o comutador transmitirá perguntando quem possui o endereço mac de B. E se C enviar repentinamente um quadro para A? Qual é o mecanismo para que o comutador não pense erroneamente que o computador C é o computador B? Será que ele se lembra do endereço mac do destino desejado pelo computador A e quando C tenta chegar a A também contém seu próprio endereço mac e o switch vê que não é o mesmo destino que o computador A queria?
Basicamente, estou perguntando, quando um comutador invade um endereço MAC desconhecido para uma solicitação enviada pelo host A, como ele sabe que o destino está respondendo ao host A ou se algum outro host está transmitindo para A?
fonte
Respostas:
Os switches da camada 2 (pontes) têm uma tabela de endereços MAC que contém um endereço MAC e um número de porta. Os comutadores seguem este algoritmo simples para encaminhar pacotes:
Quando um quadro é recebido, o switch compara o endereço MAC da SOURCE com a tabela de endereços MAC. Se a SOURCE for desconhecida, o switch a adiciona à tabela junto com o número da porta em que o pacote foi recebido. Dessa maneira, o switch aprende o endereço MAC e a porta de todos os dispositivos transmissores.
O switch então compara o endereço MAC do DESTINO com a tabela. Se houver uma entrada, o switch encaminha o quadro para a porta associada. Se não houver entrada, o switch envia o pacote para todas as suas portas, exceto a porta em que o quadro foi recebido (inundação).
Observe que o switch não aprende o MAC de destino até receber um quadro desse dispositivo.
fonte
Sua pergunta pressupõe que o switch esteja envolvido ou tenha conhecimento da comunicação / conversa entre dois hosts (é uma conversa entre A e B ou entre A e C?). O switch não está envolvido na comunicação / conversa entre dois hosts. Ele simplesmente sabe (ou aprende) qual endereço MAC está associado a qual porta e encaminha (ou alterna) o tráfego destinado a um endereço MAC específico para a porta associada (depois de saber qual porta está associada ao endereço MAC), independentemente de a fonte é B ou C ou qualquer outro host conectado a qualquer outra porta do switch.
Os switches funcionam na camada 2. O gerenciamento de sessões é de responsabilidade das camadas superiores.
fonte
Não é chamado de tabela de comutação; sua tabela MAC. Agora considere que a tabela MAC está vazia. Quando A tenta enviar um pacote para B; o pacote contém o endereço MAC de A e B. O switch atualiza o endereço MAC de A na tabela MAC. Agora, como não conhece a porta à qual B está conectado, transmite o pacote ARP em todas as portas e aguarda a resposta de todos os hosts.
Agora, ao mesmo tempo, se C tentar enviar um pacote para A, ele extrai o endereço MAC de C desse pacote e o armazena na tabela MAC. Agora, como o endereço MAC de já está presente na tabela MAC, ele sabe a qual porta A está conectada. Lembre-se de pacotes de dados contém o endereço MAC de origem e destino. Portanto, o endereço MAC de B e C é diferente. Portanto, o interruptor não fica confuso. Agora alterne o pacote de C para A (considerando que ambos estão presentes na mesma VLAN).
Para enviar o pacote de A para B, ele espera até que B responda ao pacote ARP enviado pelo switch. Quando recebe resposta de B, atualiza o endereço MAC de B em sua tabela MAC. Finalmente, o pacote é encaminhado para B.
Portanto, o switch não fica confuso, pois os pacotes de dados (tcp / udp) contêm o endereço MAC de origem e de destino. E o seu switch não encaminhará um pacote em uma interface cujo endereço MAC do host final não seja conhecido. Ele precisa esperar até que o host final responda à transmissão ARP enviada pelo switch.
fonte