Every network adapter has a mac address. In the old days, it was hard coded on a prom chip, and the only way to change it was to reprogram the prom chip, if that was even possible. Sometimes you had to burn a completely new prom chip since it was the type that wasn’t erasable. These days, the mac address is stored in EEPROMs that can be easily changed. You can usually go under the network interface’s properties section of your computer/phone/tablet/whatever and somewhere there will be an option to change it.
Most of the time though, there’s no reason to change it. Most devices will have the same mac address from the time they are manufactured until the end of their useful life.
Mac addresses are assigned by the manufacturer. Every manufacturer gets (well, buys) a block of addresses, and they assign mac addresses to every device they make out of that block of addresses. Every mac address is supposed to be unique, but some of the older ones have been re-used (which could potentially cause problems, but hasn’t been much of an issue in the real world, yet).
Ethernet messages basically have this format:
[start/preamble][destination mac][source mac][message type][message][frame check]
Note that there’s no IP in that anywhere. IP doesn’t happen at this level. IP is at a higher level, and all of the IP stuff is in the [message] portion of the packet.
TCP/IP is by far the most common protocol in use today, but it’s not the only protocol around. All of these higher level protocols reside inside the [message] part of the ethernet frame. I deal with a lot of industrial equipment protocols, and whose fit inside the standard ethernet frame, but many of them do not use TCP/IP at all.
Anyway, since most things use TCP/IP, I’ll focus on that.
A typical TCP/IP message will look like this:
[version][header][source IP][destination IP][options][data]
All of this fits inside the [message] part of the ethernet frame above.
While your mac address is built into your hardware, your IP address is just a software thing. If you make your own little network separate from the internet, you can assign pretty much whatever IP addresses you want to each machine, as long as they are unique (you can’t have two with the same IP address). If you control the network, you control the IP addresses, and you can assign them any way you want. Once you get on the internet, you have to play nice with everyone else on the internet. IP addresses on the internet are purchased by companies. An internet provider like Comcast or Time Warner will buy a huge block of IP addresses, which they will then hand out to their customers.
IP addresses can be static or dynamic. Static means that they don’t change. A server like the SDMB computer will typically have a static IP. Your home computer or tablet will typically have a dynamic IP. When your computer boots up, it sends out a request for an IP address, and a computer called the DHCP server tells your computer what IP address to use.
If you open up a command prompt on a windows computer and type “ipconfig /all” (without the quotes), that will tell you what the network configuration is for your computer. It will show your mac and IP, along with things like the network mask and gateway, and what DNS servers your computer will use to do address resolution.
If you have a dynamic IP, you can generally type “ipconfig /release” to stop your computer from using its currently assigned IP address, then type “ipconfig /renew” to have the DHCP server give you a new address. If you are on a cable provider like Comcast or Time Warner, it is very likely that their DHCP server will give you the same address again. Cable companies don’t change IP address assignments very often, even though they are dynamic IPs. You could have the same IP for a month or longer. Hence, they tend to be called “sticky” IPs, even though they are technically dynamic IPs. Mobile phone IPs, in contrast, change very frequently and aren’t sticky at all.
I’ve never heard of a sticky mac. Mac addresses typically aren’t ever changed. What the OP describes as a sticky mac is what I’ve always heard called mac filtering, where a device (typically a network switch) won’t allow any device whose mac address isn’t on its pre-approved list to connect to it.
Here is how all of this fits together.
Let’s say you are browsing the SDMB. “boards.straightdope.com” is meaningless to a computer, so the first thing it does is it sends out a DNS request to the DNS server configured in your network’s IP settings. This will convert boards.straightdope.com into an IP address (54.192.19.230 as of when I am typing this). Now your browser sends its network request to talk to this IP address. Note that your web browser doesn’t give two hoots about mac addresses. All it cares about is the IP address. It gives its request to your operating system, and the operating system handles the rest.
Your operating system now needs to figure out what mac address to send this to, so it does what is called an ARP (address resolution protocol). Once it gets the reply from the ARP, now it knows where to send the message, and off it goes. When the reply comes back, the operating system hands it back to the browser, and you get to see your web page.
(note - I’m glossing over some details here)
Your computer doesn’t have to send out an ARP for every packet. Once it knows where 54.192.19.230 is (that’s boards.straightdope.com, remember), it will keep that in what is called the ARP cache and will keep using it so that it doesn’t have to keep sending out a request for it every time.
If you go to a command prompt and type “arp -a” that will show you what is currently in your ARP cache. It will show you the IP, mac, and whether the IP is static or dynamic.