When two hosts are trying to communicate across a network, how does the host originating the communication determine the hardware address of the host that it wants to "talk" to?