知道起始IP和终止IP,怎么求这个IP段内的最优掩码呢?最优掩码是覆盖的主机数最小且覆盖住IP段内的所有IP,大佬们可以帮忙想想用什么办法吗?
这个问题需要用边长子网划分,结合哈夫曼编码解决。
给出了IP段那就是主机数确定了,将主机数转为二进制,有多少个1就划分为几个子网,各个子网上的主机数定为其位置上的2的幂次,这样结合哈夫曼编码就可以把它分段,就可以得出各段的子网掩码,这样得到的最优的子网掩码,找出局部最优。
转成二进制,例如:
192.168.1.193-192.168.1.206
相同部分直接使用255,即:
255.255.255.0
不同部分转二进制,前面掩码相同部分填1,直到不同那一位开始填0,转换回十进制为240
193:11000001
206:11001110
240:11110000
则最终掩码为255.255.255.240
感觉这个办法得不到最优解呀,这个掩码还覆盖了其他的不在这一IP段的IP
@Sallyyym: 对于例子中的IP段已经是最优解了,对于别的IP段可能会包含其它地址,但这也是迫不得已的。
@DRMCC: 这个如果是IP的第三段和第四段不同,可能还会覆盖住更多不在这一段IP的IP,这个方法还是非最优的