![IP 地址类别、网络和主机](https://linux22.com/image/1270874/IP%20%E5%9C%B0%E5%9D%80%E7%B1%BB%E5%88%AB%E3%80%81%E7%BD%91%E7%BB%9C%E5%92%8C%E4%B8%BB%E6%9C%BA.png)
这似乎是一个基本问题,但我需要了解 IP 地址。
我不明白为什么 IP 地址被分为网络(线路)和节点(主机 | 设备)。
例如,A 类 IP 地址有 8 位网络地址和 24 位主机地址,这与实际 IP 地址相符吗?
我对此很困惑,因为我在网上看到过一些例子,它们主要指出 IP 分为网络和主机,然后每个类别都有不同的值。但我不确定这到底是什么意思。
如果有人能花一点时间来解释一下就好了。
答案1
主机需要知道其地址的哪部分是网络号、哪部分是主机号,主要有两个原因。
第一个原因是它知道在传出数据包上放置哪个数据链路层(例如以太网 MAC 层)目标地址。如果目标 IP 地址的网络部分与源 IP 地址的网络部分匹配,则目标主机可在本地数据链路上直接访问(例如,它在同一个以太网 LAN 上),因此发送方可以找到目标机器的链路层地址(可能通过 ARP)并将该主机的链路层地址放在数据包链路层标头的目标字段中。如果源和目标 IP 地址的网络部分不匹配,则发送主机必须将数据包发送到路由器。在这种情况下,发送主机将路由器的链路层地址放在链路层标头中。
第二个原因是主机可以确定本地网络的广播地址。它通过将主机部分中的所有位都填为 1 来实现这一点。因此,对于 192.168.1.0/24,广播地址为 192.168.1.255。
网络“类别”(又称“有类网络”)的概念从 1981 年 IPv4 发明到 1993 年子网划分和无类域间路由 (CIDR) 发明,才真正发挥了作用。从 1981 年到 1993 年,如果您的 IP 地址的第一位是零,您就知道自己处于 A 类网络中,因此地址的前 8 位是网络号,其余 24 位是主机号。但这意味着具有 A 类网络的站点将在一个平面网络上拥有 1680 万台主机,这是不切实际的。尽管“A 类”、“B 类”和“C 类”真正发挥作用已经过去了近二十年,但这些名称仍然被广泛使用,分别指代 /8(1680 万台主机网络)、/16(6.5 万台主机网络)和 /24(约 256 个主机网络)。
答案2
之所以要进行拆分,是因为您很少会直接连接到要发送数据的计算机。您发送的数据通常会发送到路由器,然后路由器会将其转发给其他路由器,依此类推,直到链中的最后一个路由器将其传送到您的系统。
为了实现这一点,必须有一种方法来了解哪些 IP 地址可以通过从网卡转储数据来访问,哪些 IP 地址只能通过路由器“后面”访问。IP 地址的网络部分由网络掩码决定,可以进行这种区分。
因此,如果我的 IP 是 10.1.1.42,而我的网络掩码从左边起为 24 位(255.255.255.0),那么这意味着我只需从网卡发送数据即可到达 10.1.1.1 到 10.1.1.254 之间的任何 IP 地址。我将使用我的 IP 作为源地址,将终端机器作为目标地址,然后将流量放到线路上。如果另一台机器通过交换机或集线器连接,它应该可以到达那里,无需任何进一步的帮助。
假设我想与 10.1.2.50 通信。好吧,我无法仅通过从 NIC 中发出数据来访问该地址。它必须通过路由器。最简单的情况是 DHCP 提供默认网关。假设通过 DHCP 提供给我们的默认网关是 10.1.1.254。然后,我将要发送到 10.1.2.50 的流量发送到 10.1.1.254,将我的 IP(10.1.1.42)作为源地址,将 10.1.2.50 作为目标地址。默认网关不是最终目的地,但我确实希望 10.1.1.254 代表我将流量转发到 10.1.2.50。希望 10.1.1.254 处的机器连接到 10.1.2.0/24 网络,并且能够做到这一点。
我希望这是有帮助的。
答案3
例如:10.0.0.1 /8
,其中 /8 表示网络掩码。这意味着 32 的前 8 位(地址由 32 位组成,除以点,这些位以十进制数表示)标识网络,其他位标识主机
答案4
也许本文来自思科会有所帮助。