I'm using the arp -a command to look at the ARP table on my personal computer. After executing the command it shows two types of addresses, dynamic and static. What do the dynamic and static types mean in the table?
Static ARP entries are entries added to the ARP table manually using arp -s command.
Dynamic ARP entries are entries discovered dynamically using ARP protocol.
When the host needs to communicate with a new IP and does not know its physical address, it will broadcast an ARP request asking for the hardware/MAC address of the host that owns the IP. The owner will replay with a unicast message containing its MAC address.
ARP provides the required translation from local IPv4 addresses to MAC addresses used with the local Ethernet link (or any other MAC-based network).
The ARP table works like a cache for translated addresses. Entries are made/updated when a translation is performed by the ARP protocol or an association becomes known by other means (gratuitous ARP, learned from a received IP packet, ...) - these are dynamic entries that eventually time out when they're no refreshed (ARP aging).
Some entries cannot be resolved by ARP protocol, so they're added to the table statically, including local broadcast addresses, loopback (127.0.0.1), and various multicast addresses. These entries do not age and stay in the table until they're removed manually or by an application/service.
Just adding to existing answers, some devices also put static entries in for their own addresses and aliases. For example, on Cisco
interface Vlan1 ip address 192.168.0.16 255.255.255.0 secondary ip address 192.168.0.1 255.255.255.0
Gives this arp cache:
gw#show ip arp Protocol Address Age (min) Hardware Addr Type Interface Internet 192.168.0.1 - 649e.f382.e6e1 ARPA Vlan1 Internet 192.168.0.16 - 649e.f382.e6e1 ARPA Vlan1 ...