一道面试题搞懂网络地址的计算

面试题

判断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(一个网络地址,一个广播地址,不可用)
end
  • 作者:suoyue_zhan(联系作者)
  • 发表时间:2021-06-02 07:18:22
  • 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)
  • 转载声明:如果是转载栈主转载的文章,请附上原文链接
  • 公众号转载:请在文末添加作者公众号二维码(公众号二维码见右边,欢迎关注)
  • 评论