In the same below, why are there MAC addresses in the respected request packets? Why and how did the client obtain the destination MAC address?
At first I thought it was the router, but can this infographic be wrong?
That image seems to be depicting two hosts on the same Ethernet LAN, so it's showing IP datagrams within Ethernet frames, not the other way around.
You can't send raw IP datagrams across an Ethernet link. You can only send Ethernet frames across an Ethernet network. The IP datagrams ride inside the Ethernet frames.
Devices on an Ethernet LAN that need to send IP datagrams to each other use ARP, the Address Resolution Protocol, to find the MAC address that corresponds to the IP address they want to send to.
I note that the image doesn't show full headers of any of the protocol layers involved. It's just showing addresses. So there's no true TCP header pictured here.