Appearance
题目
下列 IP 地址中,只能作为 IP 分组的源 IP 地址但不能作为目的 IP 地址的是( )。
错因
B
127.0.0.1 是回环地址(loopback),既可作源也可作目的——本机给自己发包时用作目的(如 ping 127.0.0.1 测试网卡 / 协议栈),网卡驱动会把这种包不出本机直接绕回来。双向都能用,不符合题面"只能作源不能作目的"。
C
200.10.10.3 是普通的公网 IP(C 类范围)——既可以作源(这台主机发包时)也可以作目的(别人发包给它)。这是最普通的 IP 地址用法,与"特殊用途"无关。
D
255.255.255.255 是受限广播地址——本网段广播。它只能作目的(向本子网所有主机广播),不能作源(没有哪台主机会标识自己为"全网广播")。所以 D 与题面恰好相反——D 是"只作目的不作源",不是"只作源不作目的"。
总解析
特殊 IP 地址用途对照表:
| IP 地址 | 含义 | 可作源 | 可作目的 |
|---|---|---|---|
| 0.0.0.0 | 本机尚未获得 IP(DHCP 请求时用) | ✅ | ❌ |
| 127.0.0.1(127.0.0.0/8) | 回环地址 | ✅ | ✅ |
| 255.255.255.255 | 受限广播(限本子网) | ❌ | ✅ |
| 网络号.255(子网定向广播) | 子网广播 | ❌ | ✅ |
| 私有 IP(10/8、172.16/12、192.168/16) | 内网用 | ✅ | ✅(仅内网内) |
| 公网 IP(除上述外) | 普通主机 | ✅ | ✅ |
0.0.0.0 为什么"只作源不作目的":
主机在没拿到 IP 之前(如刚开机做 DHCP 发现)需要给 DHCP 服务器发包,但此时本机没有合法 IP——只能用 0.0.0.0 作为占位的源 IP("我是谁还没确定")。包一旦经过路由器就被丢弃,不可能在 Internet 上"目的 = 0.0.0.0",因为没人能定位"哪儿都不是"的目的地。
具体场景:DHCP DISCOVER 报文,源 IP = 0.0.0.0,目的 IP = 255.255.255.255。
逐项核对:
| 选项 | 是否"只作源不作目的" |
|---|---|
| A 0.0.0.0 | ✅ 是 |
| B 127.0.0.1 | ❌ 双向都行 |
| C 200.10.10.3 | ❌ 双向都行 |
| D 255.255.255.255 | ❌ 只作目的不作源(相反) |
最终答案是 A(0.0.0.0)。
编者注(生僻术语):"0.0.0.0" 在不同上下文有两种含义需要区分:
- 作源 IP 时表示"本机暂无 IP"(DHCP 阶段)
- 作路由表项的目的网络 时表示"默认路由"(任意目的网络的兜底匹配)
这两种含义都只在本机协议栈内部成立,不会出现在 Internet 上的实际数据报里作为目的地。所以"0.0.0.0 不能作目的"特指 IP 数据报的目的字段,而不是路由表里的"任意"。