When sending a packet from one computer to another over LAN, you send both an ethernet header and an IP header. The ethernet header has a source and designation MAC address, and the IP header has source and destination IP addresses. Isn't this redundant? Are the IP headers ignored when communicating over LAN?


Don't confuse the network layers.

Ethernet, a layer-2 protocol, doesn't know or care which layer-3 protocol it carries. Also, it is only a protocol for a single layer-2 LAN, and nothing of the ethernet frame survives if the layer-3 packets are destined for a different LAN.

IPv4, IPX, IPv6, AppleTalk, etc. are layer-3 protocols, and they don't know or care which layer-2 protocol caries them. Layer-3 addressing is meant to be used across networks. For example, the Google server needs to know where to send return packets. It has no idea if the source host is on ethernet (IEEE 802.3), Wi-Fi (IEEE 802.11), token ring (IEEE 802.5), FDDI (IEEE 802.8), or any other layer-2 protocol.

The returning host, even if on the same LAN, needs to know the source layer-3 address because the application only talks to layer-4, which talks to layer-3, which needs to know what the layer-3 address of the original host is in order to be able to reply.

  • Could you elaborate on the last paragraph? Does the returning host need to know the layer-3 address just so that it can know more general information about the sender? – Cole May 14 '17 at 22:47
  • Each network layer in a host communicates with the corresponding network layer in the other host. Within a host, each network layer sends its datagram down the stack, or the payload of its datagram up the stack. Each layer is independent of the other layers, and no network layer depends on there being a specific protocol at the layer above or below it. – Ron Maupin May 14 '17 at 22:53

In theory, you wouldn't need to have a network (Layer 3) protocol to communicate only inside a physical network layer.

But the most standard network stack uses IP (Layer 3) and the protocol above it (TCP/UDP and more) to abstract the network for general applications, so that each application doesn't have to know what kind of network or inter-network infrastructure is used to communicate.

Some very specific applications, with the hard restriction that they will only communicate with hosts on the same physical network uses only Ethernet (or another layer 2 protocol). ARP for example.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.