计算机如何知道自己的IP地址?

问题描述 投票:0回答:1

我有一个关于 ARP 协议的问题。

在 ARP 请求中(通过 Wireshark 验证),它提供发送者 mac 和 ip 地址以及目标 mac 和 ip 地址,将目标 MAC 留空。在回复中,这个目标MAC被填充。我正在研究网络堆栈,目前正在实施 ARP。有人告诉我 ARP 是一个很好的“第一个”实施协议,所以我还没有其他功能。

Mac 地址(发送者 mac)内置于设备中,但(发送者)IP 地址由网络分配。我的理论是,我也许可以让目标 mac 成为我的 mac 地址来识别我自己的 IP 地址?但是,如果需要发送者 IP 才能发出 ARP 请求,那么我无法使用 ARP 解析我自己的 IP。

所以我有两个问题:

  1. 如果我无法使用 ARP 找到自己的 IP,如何解决这个问题?
  2. 如果我应该使用 ARP 来查找自己的 IP,那么:ARP 请求中是否需要发送者 IP?它的作用是什么?

我也不确定计算机如何识别它所在的子网。例如,它如何知道路由器IP是什么? (通常为 192.168.1.1,但这仅适用于 C 类网络)。由于我是在虚拟化环境中进行操作系统开发,因此我还不需要将此程序化。

networking operating-system arp
1个回答
0
投票

客户端执行 dhcp 请求 (bootp) 并询问 IP 地址、网络掩码和网关,或者由管理员通过配置进行设置。您可以选择要使用的地址,但如果您没有公共 IP 地址,则这些地址应位于专用范围内。如果大多数人使用网络提供商提供的路由器,则不必担心家庭网络设置。

© www.soinside.com 2019 - 2024. All rights reserved.