那么,如果一台 PC 将使用另一台 PC 的 IP 地址进行 ARP 解析,那么发送 ARP 请求的 PC 是如何知道首先调用哪个 IP 地址的呢?在 PC 直接连接的情况下会发生什么(即没有像交换机这样的中间网络设备)?
两台PC如何相互学习对方的IP地址进行ARP解析?
您认为这两台机器最初无法知道彼此的 IP 地址是正确的,并且有几种不同的方法可以解决这个问题。
在带有 Windows PC 的家庭网络中的直接连接场景中,NetBIOS 很可能用于名称解析。您可以在相应的 RFC 中找到有关此协议的更多信息,此处:https ://www.rfc-editor.org/rfc/rfc1001
您可以将其视为与 ARP 类似的工作方式,只要想要找出与某个名称关联的 IP 地址的计算机将向其子网中的每个设备发送广播消息,以查明其中是否有任何设备有问题的名字。
一旦目标设备回复,原始机器就会知道该名称使用哪个 IP,反之亦然,因为 NetBIOS 广播包含有关发送者的相同信息。
这里也有关于 NetBIOS 详细信息的很好的答案:https ://serverfault.com/questions/352305/why-can-windows-machines-resolve-local-names-when-linux-cant 。我对苹果设备了解不多,但我相信他们使用了一个类似的协议,叫做“bonjour”,尽管有人可能会纠正我,在 linux 上,你可能会遇到 Avahi(http://www .avahi.org/)作为这个问题的解决方案。
在非 Windows 情况下,或者在 NetBIOS 可能因安全问题而被禁用的大型商业网络中,名称解析很可能通过 DNS 进行控制。服务器可能具有硬编码的 DNS 服务器地址,工作站可能通过 DHCP 接收其 DNS 服务器信息。DNS 和 DHCP 服务器经常运行在同一台主机上。
DNS相当复杂。如果您想真正了解它是如何工作的,请阅读 rfc:https ://www.ietf.org/rfc/rfc1035.txt ,但是维基百科的文章可能足以让您有基本的了解。
基本思想是,如果计算机不知道与给定名称相关联的 IP 地址,它可以询问它的 DNS 服务器。假设您的网络设置正确,当 DHCP 租约或静态 IP 地址分配给机器时,还应在 DNS 服务器上创建 DNS 记录。
最后,大多数操作系统都有一个“hosts”文件,其中包含名称和相关 IP 地址的列表。如果此文件中有一个给定名称的条目,那么操作系统将只使用该 IP 地址并完成它。在 Windows 机器上,它位于 C:\windows\system32\drivers\etc\hosts。默认情况下它是空的,只有一个条目将“localhost”映射到 127.0.0.1。
ip 被配置到应用程序中,该应用程序作为 dns 名称(通过 dns 服务器解析为 ip)或作为 IP 静态 IP 进行连接。
还有利用广播和多播来宣传和查找服务的自动发现协议。例如阿瓦希
如果 pc 使用 DHCP 自动配置,则 dhcp 租约包括 DNS 服务器 ip、GW-ip 等信息,甚至可以包括其他自动配置信息。
您最初的问题似乎是关于名称解析,但在您下面的评论中,您问
如何执行 ARP 解析。
我会尝试解决这个问题。
ARP解析简述
当网络设备需要查找 IP 的 MAC 地址时,它会发送一个带有目标 MAC 地址的数据包FF:FF:FF:FF:FF:FF。
这被认为是广播 MAC 地址,因此交换机只会将数据包泛洪到所有端口(如果使用 vlan,则仅将数据包发送到属于同一 vlan 的端口)。
广播数据包是一条ARP Request消息,本质上是询问网络上的每个设备“谁有这个 IP?”
ARP Reply所有设备都将收到 ARP 请求,并且配置了 IP 的设备将用一条消息从其 MAC 地址回复到发送 ARP 请求的设备的 MAC 地址。
所以它接收到回复并将 IP <> MAC 对添加到它的 ARP 表缓存中。
只要条目在缓存中,每当它需要与该设备通信时,它就会知道如何将数据包直接发送到其 MAC 地址。
如果条目过期,它将重新发送一条ARP Request消息,并且该过程从头开始。
这当然是一个非常粗略的解释。有很多教程非常详细地解释了这一点。
通过快速的谷歌搜索,我想出了一个很好的图表和所有 :)
http://www.omnisecu.com/tcpip/address-resolution-protocol-arp.php
http://www.tummy.com/articles /networking-basics-arp 的工作原理/
现在,要回答您关于直接连接的 2 个设备的问题,同样的原则也适用于这种情况。ARP 解析的工作方式与直接连接或使用带有数十台设备的交换机的方式相同。