Been Googling without success sadly.
As I understand it at the moment, data passes down the OSI Model from Transport into Network into Datalink, IP Header is added with the Source/Destination IP Address, then Ethernet header is added with Source/Destination MAC address. This is based on either local ARP lookup or ARP discovery response. However, if the IP Address is not in the local network range the frame is sent to the Default gateway, assuming one is set.
So postulating a simple example - I am 192.168.0.1/24 and I want to message 192.168.2.2/24. As my application passes data to the TCP and on to IP then to Ethernet protocols, at some point something realizes that the destination IP is outside the local network, so this needs to go via the Default Gateway, which clearly has a different IP and MAC from the final destination device. I believe the IP address of the final device is added to the IP Headers, so how does the MAC of the default gateway get added to the Ethernet Frame headers please? Is it part of the functions of the Ethernet protocol layers (if so which one) or is it at the Physical Layer e.g. the NIC?
Can I ask at what point does the Default Gateway addressing get added to the Frame? I assume not at IP as the destination address must remain in the IP header to allow Routing? So is it at the Datalink layer or even a function of the Network Adapter/NIC at the Physical layer?