
假设源 ip为192.168.1.20的主机已经获取到了网关的MAC地址,子网掩码255.255.255.192,目的IP是192.168.1.156,第一次与目的端通信时,目的MAC地址是() A. 自己的MAC地址 B. 目的端的MAC地址 C. FFFF.FFFF.FFFF D. 网关的MAC地址
要确定源主机与目的主机通信时的目的MAC地址,关键在于判断两者是否处于同一子网。若不在同一子网,数据包需通过网关转发,此时目的MAC地址为网关MAC。
子网掩码为 255.255.255.192(二进制 11111111.11111111.11111111.11000000),表示前26位为网络位,后6位为主机位。通过 IP地址与子网掩码的AND运算 可得到子网地址:
源IP(192.168.1.20):
第四段IP 20(二进制 00010100)与子网掩码第四段 192(二进制 11000000)AND运算后得 00000000(十进制 0),子网地址为 192.168.1.0。
目的IP(192.168.1.156):
第四段IP 156(二进制 10011100)与子网掩码第四段 192 AND运算后得 10000000(十进制 128),子网地址为 192.168.1.128。
源子网(192.168.1.0)与目的子网(192.168.1.128)不相同,说明目的主机位于远程子网。此时,源主机需通过网关转发数据包,因此目的MAC地址应设为网关的MAC地址。
答案:D. 网关的MAC地址
思考:若子网掩码改为255.255.255.128(25位掩码),源和目的是否会在同一子网?(提示:此时子网位25位,第四段前1位为子网位,源IP第四段20(00010100)与128(10000000)AND得0,目的156(10011100)与128 AND得128,仍不同子网)。