Can IP v4 and IP v6 share a single physical Ethernet?

Solution 1:

Ethernet is protocol agnostic. Devices connected to an Ethernet send packets containing data using IPv4, IPv6, IPX or some other protocol. It is up to the connected devices (your PC for instance) to make sense of the protocol.

In terms of the network stack, Ethernet is level 2 (Data Link) in the stack. The wiring between your devices is level 1 (physical). These layers have are simply a pipe that can carry any number of protocols. Multiple protocols can be carried at the same time.

IPv4 and IPv6 are level 3 (Network). Dual stack is not new and a few years ago the dual stack was IPv4 and IPX. When a packet arrives, the computer needs to determine which stack to deliver the packet to. For IPv4 and IPv6, this is easy do to as it is encoded in the first 4 bits of the packet.

TCP and UDP, which are at the Transport (level 4) layer, run equally well over IPv4 and IPv6. In some cases they may switch from IPv4 to IPv6 or vice versa between the two end points. There is an addressing scheme which allows an IPv4 address to be encoded as an IPv6 address allowing IPv6 only devices to address IPv4 only devices. A protocol translation device in the middle is needed for this to work.

There might be a small latency advantage to binding IPv4 to one adapter and IPV6 to another. This would be only be useful if the protocols were not routed over the same link at some point. Running transfers on the same router might be slightly faster if different protocols were used. I would reserve the second interface for a second security zone, or for network sharing.

Solution 2:

A given network card can talk as many protocols as you want it to. Back in the day, I often had IPv4, IPX, and some more obscure protocols bound to the same card simultaneously. That's the joy of the layered model.

The same principle is at work, as you noted, when you have HTTP and FTP both running over IP. Since the lower layers of the network stack don't particularly care about what the higher layers are doing, you can send many higher level protocols over a given lower level protocol.

Now not all IPv4/IPv6 transitions are set up so that the network card is speaking both simultaneously, sometimes tunneling is used (Teredo, for example). But it's not necessary.