Dns.GetHostByName()
использует DNS - для получения IP-адреса (1.2.3.4) из домена DNS (www.google.com).
ARP используется для получения MAC-адреса (11: 22: 33: 44: 55: 66) от IP (1.2.3.4).
Допустим, вы пишете www.google.com в своем браузере:
- Необходимо выяснить, какой IP-адрес www.google.com, поэтому для этого используется DNS.
- Он должен отправлять пакеты на IP-адрес www.google.com, но на уровне Ethernet это означает, что сначала вам нужно отправить пакеты следующему маршрутизатору на маршруте к цели (возможно, вашему шлюзу по умолчанию) .
- Чтобы сделать это на уровне Ethernet, вам необходимо знать, какой MAC-адрес у шлюза по умолчанию - это делается с помощью ARP.
ARP отправляет вопрос в ЛВС - у кого есть 1.2.3.4? И тот, кто имеет это, отвечает - так, чтобы отправитель знал, каков MAC-адрес 1.2.3.4, которому он должен отправить пакеты.
См. http://en.wikipedia.org/wiki/Address_Resolution_Protocol
А http://en.wikipedia.org/wiki/Domain_Name_System