So communication on the Internet is not so simple. You want to send a packet to a destination, it's not just knowing that destination's address, you got to know a bunch of other addresses to help the Internet out. So this gets into address discovery. The Internet does some additional things to help you out in this process. It turns out there's some additional address discovery protocols that can do lookups for addresses. So if you know one address, you can look up the set of corresponding addresses to help you construct your packet to actually reach the destination. So if you get a new computer, you get a new host, and you plug it into the network, well, that host, it starts up just knowing its MAC address. That's the first thing it knows. It doesn't know it's IP address or anything like that yet. Because the MAC addresses is burn into its card. So there's kind of a starting assumption before it sends any packets. In order to send packets to a destination, it needs to discover some additional addressing information, because it has to fill in all these addresses at these different layers. First of all, it needs to know its own IP address because it has to put in the source IP address in the packet as in layer three. It has to know the destinations IP address. It also has to know the Next-hop MAC address. Because the thing is, you can't just tell the internet, " I want to arrive to this final IP address." You have to tell it how to get off your subnet. Because you're sending packets on a LAN, at a Local Area Network. You need to tell it what the next MAC address is which is either a destination on your local subnet, or it's a default gateway, which is a specialized router used to get your packets off to your local subnet known to the public internet. So your MAC address for the Next-hop is either going to be the destination MAC address if your destination is local, or is going to be the First-hop router's Mac address if the destination is not local. So for this process to happen, there's a few things that need to happen. You need some way to discover this address information. So luckily, the designers of the Internet realize this is a problem and they develop some protocols to deal with this, which is great. Imagine how painful it would be if every time you went to go to a webpage, you couldn't just type in cnn.com, you had to go out and figure what IP address it was, and get in touch with your network operator, call them on the phone and ask, "What's the First-hop MAC address to get off on the network?" Every time that changes, you have to write it down and it would be a big pain. The designers of the Internet developed some very useful protocols to deal with all this stuff. One protocol is called ARP. ARP is a super important protocol, and what it does is, it discovers the MAC address for a given IP address. So if you can figure out what your IP address is, you can do that using DNS. Then you can discover your MAC address using ARP. So ARP allows you to ask the question, who has IP address x? So if you get an IP address, you don't know how to send to it yet because you need the MAC address corresponding to it, ARP will take care of it. ARP will do in address resolution process to lookup the MAC address for a given IP address. Another protocol that's also very useful is called DHCP. DHCP automatically assigns IP addresses and other configuration info to network devices. So you walk in, you're having your laptop, and you come to school, you go to your work, and you open it up and then, do you have to go find your network administrators and say, "Do you have any spare IP addresses? I can use your?" Poor network administrator has to have a big long list and cross off the one give it to you, and you don't have to deal with all that. DHCP does all this automatically. DHCP is an address allocation service that automatically assigns IP addresses and other configuration information to network devices. It allows your computer to ask this question, "Hey, can someone give me an IP address?" These are protocols that run within a single Local Area Network, and they work by leveraging the broadcast capability of the LAN. You see that by how I wrote these questions here, they say, "Hey, who has this IP address?"," Hey, can somebody give me an IP address?" Because they run on LAN, you can use broadcast to answer these questions.