在我的本地机器中,如果我将 IP 地址设置为接口,如果有人试图将数据包发送到我的新 IP,其他机器如何知道这一点并将数据包路由给我?我在一个私人网络中。
我在同一网络中的邻居机器如何知道我的接口 ip?
简单的回答:机器不知道路线。
您使用的 IP 地址必须在机器所属的所谓“子网”范围内。
这意味着所有可以在不使用路由器的情况下访问的机器都必须具有相同范围内的 IP 地址,并且所有这些机器都需要知道这个范围。
在以太网中,您需要机器的 MAC 地址才能将数据发送到该机器。
如果一台机器要向另一台机器发送数据,它首先会向“子网”中的所有机器发送一个 ADP 数据包(与 IPv4 一起使用)或一个 NDP 数据包(IPv6)。
此 ADP 或 NDP 数据包包含数据应发送到的机器的 IP 地址。具有该 IP 地址的机器会将答案发送回想要发送数据的机器。
第一台机器现在知道第二台机器的 MAC 地址,并且可以向第二台机器发送数据。
在(非常)旧的以太网安装中,数据总是被发送到网络中的所有机器。网卡的任务是过滤掉所有发送到具有另一个 MAC 地址的机器的数据。
在当前的以太网安装中使用“交换机”。当数据通过交换机路由时,交换机会记住发送者的 MAC 地址和接收数据的“端口”(电缆)。稍后当数据包将发送到该计算机时,交换机知道到该 MAC 地址的路由。当交换机不知道路由时,它将数据路由到所有端口(这可能意味着:到“子网”中的所有计算机 - 就像在旧的以太网安装中一样)。
如果路由器位于两台计算机之间,则这些计算机位于不同的“子网”中。
在这种情况下,计算机必须知道用于到达目标计算机“子网”的路由器的(MAC 或 IP)地址。
在 IPv4 家庭网络的情况下,DHCP 协议通常用于告诉所有计算机家庭网络的 IP 地址范围(它是一个子网)和“默认路由器”(它是所有 IP 必须使用的路由器)该子网之外的地址)。如果您更改计算机的 IP 地址,此信息不会更改,因为新 IP 地址必须在您家庭网络的 IP 地址范围内。