How a switch works when it's aware of MAC address but the sending PC isn't aware of MAC of destination MAC

12

5

4 PCs are connected to a switch and this switch is aware of their MAC addresses (all 4 PCs). Computer A and Computer D have not communicated ever earlier hence they both don't have their ARP table updated with each other's MAC address.

Computer A wants to communicate with Computer D, hence it sends out an ARP request for Computer D's MAC address. This ARP would be a broadcast message (with FF:FF:FF:FF:FF:FF as destination MAC in ARP packet).

I'd want to understand as how switch will take it up as it's already aware of Computer D's MAC but Computer A is not. Will the switch let Computer D respond to the ARP messgage (the broadcast) or drop that ARP request and directly route Computer A's packet to Computer D (since switch is already aware of Computer D's MAC)?

Aniruddha

Posted 2016-08-08T05:18:38.937

Reputation: 135

2In addition to the answers, all operating systems that I'm aware of nowadays issue a Gratuitous ARP when the link is brought up. – AbraCadaver – 2016-08-08T15:35:43.737

@AbraCadaver That's not really relevant. Gratuitous ARP should only existing ARP cache entries, not create new ones. It's meant to force out obsolete entries when an IP moves or a NIC is replaced, not preload caches. – Barmar – 2016-08-12T17:29:10.070

@Barmar: No. Bridge/switch sees frame, records source MAC and port. That's how it works. – AbraCadaver – 2016-08-12T18:08:28.323

@AbraCadaver What does that have to do with how gratuitous ARP is processed? – Barmar – 2016-08-12T18:09:48.857

@Barmar: Gratuitous ARP is not processed by a switch. It sees an Ethernet frame with a source MAC come in on a particular port, that's it... – AbraCadaver – 2016-08-12T18:14:40.857

@AbraCadaver I never said it was. You're the one who brought up gratuitous ARP, and I was just pointing out that it doesn't have any effect on the machines that don't already know about each other (Computer A in the question). – Barmar – 2016-08-12T18:19:25.730

Answers

24

The ARP request will of course go through.

The switch doesn’t know about ARP. It only knows about Ethernet (ie. MAC addresses on Ethernet frames), not protocols on top of it. (Some switches offer advanced features like IGMP snooping, but that’s not relevant here.)

Because it’s a broadcast message, it has to be delivered to all (connected) ports. That’s all the switch cares about. It can’t know it’s really destined for computer D.

Daniel B

Posted 2016-08-08T05:18:38.937

Reputation: 40 502

Well, Ethernet is a protocol. However, a simple switch does just pay attention to some protocols (like Ethernet), and not others (like Internet Protocol version 4, or Transmission Control Protocol). – TOOGAM – 2016-08-08T07:15:20.763

2The ARP request asks: "Where is 192.168.0.1?" The switch hasn't got any idea about this. – Michael Hampton – 2016-08-08T21:43:25.863

11

An ARP request is simply a message that says "You there at IP whatever! What's your MAC address?" Even though ARP deals with discovering layer 2 addresses, it's inherently a layer 3 request because it's being sent to an IP address. Switches don't operate at layer 3.

In the example you gave, you know something that the switch does not; that the IP address in the ARP request belongs to computer D. The destination MAC address is a broadcast and that's all the switch knows or cares about. If the switch sees a broadcast MAC, then it will broadcast that packet plain and simple.

Yes there are layer 3 switches out there, and pedants would point out that ARP technically isn't a layer 3 protocol, but none of that matters for this example.

Wes Sayeed

Posted 2016-08-08T05:18:38.937

Reputation: 12 024