Now and then, I'm finding Ethernet packets showing up at a device that they should not be showing up at. For example, I had a system fail when it was flooded with Atmos audio packets (I think they were supposed to be going from a server to a CP850). Based on my understanding of Ethernet, a switch should send packets out a port that a device is connected to only if the MAC address of that device matches the destination address of the Ethernet packets or the Ethernet packets is a broadcast packet.
Here's my understanding of how Ethernet should work:
A device on the network has a MAC address, an IP address, a subnet mask, and a gateway IP address.
The device uses ARP requests to find the MAC addresses of devices on the network based on IP addresses. When it needs to send a packet to an IP address, it will send a broadcast ARP request (unless it has done so previously) asking "Who has IP address?". The device with that IP address responds saying it has that IP address and provides its MAC address. Then, the original device wanting to send a packet to a local IP address makes an Ethernet packet addressed to that MAC address that includes the IP packet. The switch sends the packet to the correct port since it had previously heard that MAC address on that port (such as the ARP response having the packet source MAC address). So, the switch ideally sends packets only out the port that has the device with the destination MAC address (or broadcast Ethernet packets).
When a device on the network sends a packet to an IP address outside the subnet range, the device sends the packet to the MAC address of the gateway device (a router), which then sends the packet on. Since all Ethernet packets are "routed" by their MAC address (not the IP address), the device similarly has to do an ARP request asking who has the gateway IP address. The gateway (router) responds with its MAC address. The device then sends all Ethernet packets destined to an IP address outside the subnet to the gateway MAC address.
So, in my opinion, a router can send packets that are destined to multiple IP address (those outside the subnet) towards their final destination. This is often sending the packets out a DSL or cable modem. A switch knows nothing of IP addresses. It just "routes" packets based on MAC addresses. But, nonetheless, it should send only packets destined to the device MAC address and broadcast packets out the port driving that device.
Is this (approximately) correct? Why is my device getting flooded with packets destined to another MAC address?
Harold​
Here's my understanding of how Ethernet should work:
A device on the network has a MAC address, an IP address, a subnet mask, and a gateway IP address.
The device uses ARP requests to find the MAC addresses of devices on the network based on IP addresses. When it needs to send a packet to an IP address, it will send a broadcast ARP request (unless it has done so previously) asking "Who has IP address?". The device with that IP address responds saying it has that IP address and provides its MAC address. Then, the original device wanting to send a packet to a local IP address makes an Ethernet packet addressed to that MAC address that includes the IP packet. The switch sends the packet to the correct port since it had previously heard that MAC address on that port (such as the ARP response having the packet source MAC address). So, the switch ideally sends packets only out the port that has the device with the destination MAC address (or broadcast Ethernet packets).
When a device on the network sends a packet to an IP address outside the subnet range, the device sends the packet to the MAC address of the gateway device (a router), which then sends the packet on. Since all Ethernet packets are "routed" by their MAC address (not the IP address), the device similarly has to do an ARP request asking who has the gateway IP address. The gateway (router) responds with its MAC address. The device then sends all Ethernet packets destined to an IP address outside the subnet to the gateway MAC address.
So, in my opinion, a router can send packets that are destined to multiple IP address (those outside the subnet) towards their final destination. This is often sending the packets out a DSL or cable modem. A switch knows nothing of IP addresses. It just "routes" packets based on MAC addresses. But, nonetheless, it should send only packets destined to the device MAC address and broadcast packets out the port driving that device.
Is this (approximately) correct? Why is my device getting flooded with packets destined to another MAC address?
Harold​
Comment