面试题
判断A和B是否在同一网段,B和A是否在同一网段?
A:192.168.26.129/24
B:192.168.26.3/27
分析
- 点分十进制表示法(Dotted Decimal Notation):用四个字节表示一个IP地址,每个字节按照十进制表示为0-255。
- IP地址:用4个从0-255的数字表示
- 子网掩码:32位地址(二进制表示:8*4),缩写为连续的1的个数,例如:
#一个字节8位,8个1的十进制为255,/24:即前面24个1加后面8个0
A:192.168.26.129/255.255.255.0
#/27:即前面24个1加后面3个1(1110 0000)
#二进制1110 0000 转十进制:前四位转十六进制(1110 -> 14*16)+ 后四位转十进制(0000 -> 0)
B:192.168.26.3/255.255.255.224
#十进制224转二进制:224除以16,整数商转为二进制的前四位,余数转为二进制的后四位
1.根据IP地址和子网掩码计算出网络位和主机位
网络位:子网掩码为1的连续位对应的IP为网络位(前)
A:192.168.26
/24指24位子网掩码,对应前24位(8位一字节,即一个十进制位)
B:192.168.26
/27指27位子网掩码,对应前24位+后3位,“后3位”表示如下
1110 0000
0000 0011
3的二进制表示如上,与子网掩码“1”位无交集,不影响网络位
主机位:子网掩码为0的连续位对应的IP为网络位(后)
A:.129
B:.3
2.网络地址(网段)和广播地址
将主机位全部置为0得到网络地址:
A:192.168.26.0
B:192.168.26.0
将主机位全部置为1得到广播地址:
A:192.168.26.255
B:192.168.26.255
3.判断IP地址是否是同一网段?
- 自身IP + 自身子网掩码 -> 网络地址X
- 目的IP + 自身子网掩码 -> 目的地的网络地址Y
- 若X=Y,则在同一网段,否则不在
问题一:A和B是否在同一网段?
A是“自身IP”,B是“目的地IP”
网络地址 X = 192.168.26.129/24 = 192.168.26.0
目的地的网络地址 Y = 192.168.26.3/24 = 192.168.26.0
结论:A和B在同一网段,A可直接向B进行通信
问题二:B和A是否在同一网段?
B是“自身IP”,A是“目的地IP”
网络地址 X = 192.168.26.3/27 = 192.168.26.0
目的地的网络地址 Y = 192.168.26.129/27 = 192.168.26.128
结论:A和B不在同一网段,B需要借助网关才能向A发起通信
结论
- 根据IP地址和子网掩码计算出网络位(掩码为“1”)和主机位(掩码为“0”)
- 将主机位全部置为0得到网络地址
- 将主机位全部置为1得到广播地址
- 位于同一网段的IP可直接进行通信,否则需要借助网关
- 主机范围数量:2的n次方(n表示主机位个数)
- 可用主机范围数量:2的n次方 - 2(一个网络地址,一个广播地址,不可用)