前言:
而今我们对“怎么判断主机地址还是网络地址”可能比较关心,看官们都需要知道一些“怎么判断主机地址还是网络地址”的相关内容。那么小编也在网摘上搜集了一些对于“怎么判断主机地址还是网络地址””的相关资讯,希望同学们能喜欢,各位老铁们一起来了解一下吧!今天问了一个同事地址59.227.30.48/28可用的地址段,他很直接打开电脑,打开子网掩码配置器,输入我的需求很快就给了我一个答案。
坦白讲,子网掩码配置器这种工具确实很好用,但是作为一名老工程师,很多情况下,客户临时起意问到这种问题,对于手头上没有工具的情况下怎么办呢?
其实也很简单,只要知道子网掩码就能很快捷的计算出来所需要的网络号、子网号、可用主机地址有多少。
但在讲解方法之前,还是老生常谈一次什么是网络号、子网号、主机号,以及判断网络号、子网号、主机号的依据是是什么。
什么是网络号
网络号指在一个网络中,每个主机共同使用的公共地址部分。这个地址用于唯一标识这个网络。在TCP/IP协议中,网络号通常被用来确定网络层的地址。在同一网络中,所有主机的网络号必须是唯一的。
网络号由IP地址的前几位组成,表示为主机所在的网络地址段。
这句话换成通俗易懂语言,用现实地理位置来说明,网络号可以理解为省市名称,例如河北省或者北京市就是网络号。
网络号的计算在是通过主机的地址与子网掩码逻辑“与”的运算得来。
什么是子网号
随着网络的发展,原来的划分的A、B、C、D、E类网络已经不能满足网络的发展需求,或者对于已经分配网络号企业,为了区分不同的业务部门,为了进一步细分网络,通过子网掩码,将一个主网络划分为多个较小子网络,划分后的较小网络段,“段主”就是子网络号。所以子网络号位于主网络号之后。
例如我们经常可能听说的把一个B类网络划分为4个C类网络,就是把子网掩码255.255.0.0,更改为255.255.192.0.
从另一种形式上来说:子网号也是网络号的一个变种。
什么是主机号
主机号是用来标识网络中的计算机或设备的。确切的说,主机号就是特指的某个计算机或者网络设备的地址。
在同一网络中,主机号必须是唯一的,不能与其他主机相同。
同样,主机号也是通过子网掩码来区分主机的所在网络段,这时子网掩码对于终端来说并不一定存在具体的意义,只是跨网段访问时使用。但是对于一些网络设备来说,子网掩码可以用来进行“敌我辨识”来判断是否为同一网段或者数据的路由走向。
通过上文,我们可以看到,我们反复提到一个词“子网掩码”。
那么什么是子网掩码以及子网掩码的作用是什么?
什么是子网掩码
子网掩码是指用于标识一个 IP 地址所在子网的标识符。
在互联网中,每个 IP 地址都是由 32 位二进制数组成的,而子网掩码通常由一串连续的 二进制1 和 0 组成,通常通过连续的1标识网络号,连续的0标识主机号。例如,常见的子网掩码是 255.255.0.0,其中前八个字节都是 1,表示前八个字节是网络地址,最后两个字节都是 0,表示最后两个字节是主机地址。
所以,想要判断网络号、子网号、主机号是无法离开子网掩码的,主机地址和子网掩码通过逻辑“与”运算的出来一个新的IP,这个新的IP就是原来主机地址的网络号。
以我们常见的192.168.1.0/24来举例子,192.168.1.1为主机地址,更换为二进制后如下:
主机地址:192.168.1.1>>>>>>>> 11000000 10101000 00000001 00000001,
子网掩码:255.255.255.0>>>>>> 11111111 11111111 11111111 00000000.
逻辑与运算后二进制结果如下:11000000 10101000 00000001 00000000,换算位点分十进制网络号就是:192.168.1.0。
子网掩码的作用
除了上述我们常见的子网掩码帮助计算机识别IP地址的网络部分和主机部分,子网掩码还可以用于划分子网;同样子网掩码在IP地址路由和数据包转发中也扮演着非常重要的角色。
对于计算机来说,他们唯一能够确定一个目标地址或者说不会把数据包发送错误地方的唯一保障就是通过子网掩码,通过子网掩码,网络设备(计算机)可以判断两个 IP 地址是否属于同一个子网, 以确定目标设备是否在同一网络上。如果目标设备在同一网络上,那么设备可以直接发送数据包到目标设备;否则,设备需要将数据包发送给路由器或其他网络设备来转发数据包。。
换个容易理解的思维就是,当我们邮寄快递的时候为了保障信件地址不会错误,我们通常会在信件上写上地址之外还要写明联系人、邮编或者电话。
如果说IP地址就是地址,那么子网掩码就可以理解为邮编(电话)。
好了,讲了这么多,我们可以知道,想要精确快速划分子网,子网掩码是关键。
那么如何通过子网掩码快速确定网络号、子网号已经可用主机地址是多少呢?
如何快速划分主机地址、网络号
为了方便,我们看到的子网掩码也是点分十进制形式显现在我们计算机系统中,但是对于计算机来说,他们底层运行的逻辑还是二进制即1和0.他们可以通过“最强大脑”在输入数字后直接区分出来网络号(子网号)和主机号,那我们又有什么便捷的方式来快速定位一个网络号(子网号)和可用主机地址呢?
快速划分可用主机地址
回到我们文章的开头,大家可以看到图片上,只在掩码区域设置了一个数字28,就显示出来可用地址量14,可用总量16,我们就谈谈这两个数字是怎么来的。
这是因为在IPv4网络环境中,子网掩码固定长度是32位,当子网掩码位28位时,可用得主机位只有4位,在这4个主机位中,就有2的4次方种可能,所以网络地址为16个,但是这16个网络地址中,要排除掉网络主机地址(网络号)和广播地址,所以实际可用地址为14个。
另外一种IPv4环境下,子网掩码直接以点分十进制形式出现,这个时候怎么快速划分网络或者说区分是哪个网段呢?
这个时候我们可以使用256为基数,减去掩码数值也可以快速计算出来,还是以上述28为掩码举例,28为掩码转换为十进制为240,直接256-240的出来16就是可用地址,同理要祛除网络号和广播地址。
为什么要选择256位基数呢?
这是因为在不考虑子网掩码的情况下,以256作为基数,可以确保IP地址的唯一性,即在掩码确定完成后情况下快速定位出来网段的IP地址范围。
快速划分网络号
通过上述两种方式我们可以快速划分出来可用主机地址范围,反之我们也可以使用上述两种任何一种方法,反向快速计算出主机号或定位出来主机地址在哪个网络号范围内。
例如还是上述的28位掩码,我们的出来一个16的数字,我们就以16作为地址划分倍数,可以的出来的地址段分别是分别是202.37.132.0/28,202.37.132.16/28,202.37.132.32/28,202.37.132.48/28,202.37.132.64/28……202.37.132.240/28。
这是变长子网掩码的一种方式,还有一种是变短子网掩码,例如原来的24为掩码变为23位掩码情况下如何划分地址呢(这种方式通常是为了扩大可用地址范围)。
这个时候我们也可以采用上述的方式快速来进行划分。例如原来的24位掩码更改为21位掩码,可以通过256减去21位掩码的数值248得出可用网段8个,或者24-21得出3,以2位底数3位幂数得出可用网段8个,可用地址就是8*256=2048,这个时候同样要减去网络号地址和广播地址,同时这个时候要注意的是,202.37.132.0/21也是一个可用地址。
虽然,上述两种方式是取巧,但不得不说,这种方式对于需要快速计算网络号或者划分子网有很大的作用。