I was studying how the packet is transmitted from source to destination, what i understood is, we need IP address to identify the network in which our destination is present, while MAC address (data link layer address) is used for hop to hop communication. On reaching the destinations network we again find the MAC address of the destination (using ARP), and finally deliver the packet.
I have 3 questions:-
Question 1) We use IP address to get the MAC address of the destination or the next hop, i.e. we use ARP(address resolution protocol) to discover MAC address, so why don't we directly use IP address instead of using MAC address, for the delivery of the packet. Our data link layer can use IP address itself for hop to hop communication, and after reaching the network we can directly deliver the packet to the host, so we will not require to find MAC address using ARP at each intermediate delivery of the packet.
Does we use MAC because it is a physical address embedded in the NIC and therefore we can use hardware circuit to identify whether the packet is delivered for us or not, as hardware are faster than the software, but what about address resolution overhead?
Question 2) Suppose someone sent a packet to me, therefore packet is sent to my IP address, but before i can receive the packet, i have switched my network(say i was using some WIFI and i switched to my mobile network) therefore leading to changing my network id, While as the WIFI has the heavy traffic, the IP address which was assigned to me is therefore now assigned to someone else, will it lead to delivery of message meant for me to someone else, what happens in these situation?
Question 3) I have read that in modern operating system MAC address can be changed (https://www.thewindowsclub.com/change-mac-address-in-windows). How is it possible if MAC address is present in the NIC?