百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

记住3个部分、2个地址,1个公式,你也能轻松划分子网

haoteby 2024-12-28 13:11 13 浏览

感谢!

非常感谢各位小伙伴的支持,昨天头条号通过了优质领域创作者认证,这是对我十几天认真分享网络知识的认可。后续我会继续给大家分享高质量的网络知识,希望小伙伴还能一如既往的继续多持我,帮忙多点赞和转发。后面我还会分享路由、交换、MPLS、VPN、QoS等方面的内容。

同时各位小伙伴有什么需求,可以留言提出来,我会尽量的满足,今天的文章就是为了回报一位粉丝的支持而写的!

概述

划分子网是任何一个网络工程师都必须掌握的基本技能,但由于在工作中经常使用24位掩码,在加上网络上有很多小工具可以自动计算,所以很多小伙伴都已经丧失了手工划分子网的能力。但我们作为一个高手,还是要具备手工划分子网能力的。

其实手工划分子网并不复杂,只需要记住3个部分、2个地址、1个公式,就可以轻松的划分子网。下面我们一起来看一下!

划分子网原因

我们都知道IP地址分为A、B、C、D、E五类Classfull地址,但通常我们只使用A、B、C类地址来划分子网,因为D类地址用于组播,E类地址暂时保留不用。

如上图所示,classful地址只包含两部分:network和host。一个A类地址可以包含的主机有16,777,214 (2的24次方-2 )个,这要是分配给一个组织和公司,是极大的浪费,因为没有公司能用完这么多地址。即使一个C类地址也包含254个可用的IP,这对于公网地址短缺的现状,全部分配给一个公司仍然是太多了。

看到这里,有的小伙伴可能会说,在公司都是使用的是私有地址,随便分配一个8网段的A类地址,就足够整个公司使用,不存在地址不够一说。那么这么想的小伙伴一定没有注意另外2个问题:

问题1:网络中的无用流量对带宽的占用

我们知道,一台主机为了和其它主机进行通信,会发送一些的报文,最典型的就是ARP报文。平常可能我们感知不太明显,因为我们所在的网络规模一般都很小。

但是假设网络中有1万台主机,一台主机发送的ARP报文,交换机会转发给剩下的9999台主机,交换机每秒需要发送9999个ARP报文。在极端情况下,所有的主机之间都互相通信,那么网络带宽很快就会被这些无用的流量占用满的。

问题2:所有的PC都要处理其它PC发送的无用流量;

接上面的例子,一台主机发送的ARP请求报文,只对于目标主机是有用的,对于剩下的9998都是无用的,收到以后就会丢弃。但是这9998台主机收到ARP报文以后,都需要处理,它要判断这个ARP是否是请求自己的MAC地址,这也会消耗主机的资源。网络规模越大,这种消耗越明显,对电脑的运行速度影响也就会越大。

所以在工作中,在网络规模比较小,几台PC怎么连都可以,不需要考虑划分子网。但是在较大的网络中,我们都是要划分子网的,不会把所有的PC都分在同一个网段。

据我观察,越是大型的公司,对子网划分越严格要求,不浪费一个地址是他们追求的目标。这就要求我们也要掌握划分子网这项技能,后面咋们也是需要去大公司镀金的,不能老是在小公司,对我们的职业生涯没有好处。

划分子网的3个部分,2个地址

3个部分

上面我们已经看到了,对于一个classful地址来说,它由二部分组成:network和host。

而划分子网本质是从host拿出一部分出来,作为network;拿出的这一部分network,我们称它为subnet(子网),所以IP地址就变成了三部分:network、subnet、host,如下图所示:

2个地址

对于任何一个IP地址来说,都有两个与它对应的特殊IP地址,一个是网络ID(network ID),一个是网络广播IP,这两个地址是天生存在的。

例如对于192.168.1.10 255.255.255.0 这个地址来说,它的网络ID是192.168.1.0,对应的广播地址是192.168.1.255。

对于上面这种24位的掩码的地址来说,比较简单,我们一眼就能看出,但是这个是怎么计算的呢?因为如果是稍微复杂的地址,我们就看不出来了,例如192.168.1.72 255.255.255.240,这个IP对应的网络ID和广播地址各是多少呢?

网络ID计算

我先来看一下网络ID的定义:用来唯一的标识一个网段,所有在同一个网段上的主机使用相同的网络。

计算网络ID有多种方式,我教大家一种比较常用的方式,其步骤如下:

步骤1:首先把IP地址和子网掩码的后8位都化为2进制,如下图所示:

步骤2:我们知道子网掩码用来标识一个IP地址的网络ID长度的,使用1来表示,而使用0来表示主机;把掩码和IP进行“相与”操作,就可以得到网络ID了,如下图所示:

步骤3:上一步得到网络ID的后8位是01000000,化为十进制是64,则这个IP对应的网络ID就是192.168.1.64

广播地址计算

广播地址,这里说的广播地址不是二层广播MAC地址,而是三层广播IP地址。三层广播地址有什么用呢?也是用来在同一个网段群发报文的,所有在同一个网段的所有主机,收到三层IP广播地址,都是不能丢弃的,需要处理。

一个网段的广播地址,有比较简单的计算方法,就是把所有的host位都置为1,如下图所示:

这样计算出来的广播地址后8位值为79,则这个网段的广播地址就为192.168.1.79

一个公式

上面我们通过计算,已经得到192.168.1.72 255.255.255.240 这个IP地址对应的网络ID和广播地址,那么这个网段可以容纳多个主机呢? 换句话说,有哪些地址是和这个IP在同一个网段里的呢?

其实很简单,掐头去尾,除去网络ID和广播地址,剩下的地址,都是在同一个网段,并且是可用的。

如上面的例子,去除了网络ID 192.168.1.64,广播地址192.168.1.79,剩下的14个IP地址192.168.65-78,都是可以使用的。

这里有一个简单的公式来计算某个网段内可用的IP地址个数:2的n次方-2。

这里的n指的是这个网段内的主机位数,所以计算结果为:

注意点:

一个IP的网络ID和广播地址是不能配置在设备上的,如果配置,就会出错,如下图所示:

顺便说一下计算subnet的公式是:2的n次方。这里不需要减2,n指的是subnet的位数,在这个例子中也是4,所有对于192.168.1.0 255.255.255.0 这个C类地址来说,被分为了2的4次方,即16个subnets。

前缀和掩码换算

掩码地址太长,写起来太复杂,所有很多时候我们习惯使用前缀来表示子网掩码,例如192.168.1.72 255.255.255.240,可以写为192.168.1.72/28。那么掩码和前缀之间是怎么换算的呢?请看下面的步骤:

步骤:1:把内容转化2进制,例如下图

步骤2:前面的24位我们都知道是网络位,在加上后面的子网位,就变成了最终的数字24+4=28;

反过来计算也一样:192.168.1.72/28对应的掩码是多少?

步骤1:28表示掩码的前面28位都是1,简写为:(位了简洁,255没有写成11111111)

步骤2:计算掩码:二进制11110000的值为240,所以掩码就为255.255.255.240;

是不是很简单?

划分子网的影响

划分子网除了可以节省带宽和减少主机的负担以为,也是有缺点的,最大的缺点就是网络变的复杂了。

缺点1:看起来在同一个网段的IP,其实不是

有时你觉得这两个相隔很近的地址,看起来像在同一个网段,其实不是。例如下面的:

192.168.1.78/28,192.168.1.81/28,在同一个网段吗?

不是,它们是不能直接互通的!只有计算了以后才发现它们不在同一个网段,这就增加了维护网络的复杂度!

缺点2:在不同的子网的主机直接要通信,必须要经过网关

那这两个主机(192.168.1.78/28,192.168.1.81/28)想要通信,需要怎么办呢?中间必须加一台网关设备,这就增加了开销!

不同子网的主机通信,需要网关,如果还有疑问,可以参考我之前的文章:https://www.toutiao.com/i6742996863156224526/

总结

从上面的例子中我们可以看出,网络IP地址必须要和掩码结合起来才有意义,不然你不能判断它到底是属于哪个网段,例如192.168.1.72这个地址,如果掩码不同,所在网段也不同!

我们还可以总结出:

关于子网划分,各位小伙伴也明白了吧?给大家留个题目,看有没有完全掌握!

欢迎关注我的头条号,一起讨论网络问题!

相关推荐

一日一技:用Python程序将十进制转换为二进制

用Python程序将十进制转换为二进制通过将数字连续除以2并以相反顺序打印其余部分,将十进制数转换为二进制。在下面的程序中,我们将学习使用递归函数将十进制数转换为二进制数,代码如下:...

十进制转化成二进制你会吗?#数学思维

六年级奥赛起跑线:抽屉原理揭秘。同学们好,我是你们的奥耀老师。今天一起来学习奥赛起跑线第三讲二进制计数法。例一:把十进制五十三化成二进制数是多少?首先十进制就是满十进一,二进制就是满二进一。二进制每个...

二进制、十进制、八进制和十六进制,它们之间是如何转换的?

在学习进制时总会遇到多种进制转换的时候,学会它们之间的转换方法也是必须的,这里分享一下几种进制之间转换的方法,也分享两个好用的转换工具,使用它们能够大幅度的提升你的办公和学习效率,感兴趣的小伙伴记得点...

c语言-2进制转10进制_c语言 二进制转十进制

#include<stdio.h>intmain(){charch;inta=0;...

二进制、八进制、十进制和十六进制数制转换

一、数制1、什么是数制数制是计数进位的简称。也就是由低位向高位进位计数的方法。2、常用数制计算机中常用的数制有二进制、八进制、十进制和十六进制。...

二进制、十进制、八进制、十六进制间的相互转换函数

二进制、十进制、八进制、十六进制间的相互转换函数1、输入任意一个十进制的整数,将其分别转换为二进制、八进制、十六进制。2、程序代码如下:#include<iostream>usingna...

二进制、八进制、十进制和十六进制等常用数制及其相互转换

从大学开始系统的接触计算机专业,到现在已经过去十几年了,今天整理一下基础的进制转换,希望给还在上高中的表妹一个入门的引导,早日熟悉这个行业。一、二进制、八进制、十进制和十六进制是如何定义的?二进制是B...

二进制如何转换成十进制?_二进制如何转换成十进制例子图解

随着社会的发展,电器维修由继电器时代逐渐被PLC,变频器,触摸屏等工控时代所替代,特别是plc编程,其数据逻辑往往涉及到数制二进制,那么二进制到底是什么呢?它和十进制又有什么区别和联系呢?下面和朋友们...

二进制与十进制的相互转换_二进制和十进制之间转换

很多同学在刚开始接触计算机语言的时候,都会了解计算机的世界里面大多都是二进制来表达现实世界的任何事物的。当然现实世界的事务有很多很多,就拿最简单的数字,我们经常看到的数字大多都是十进制的形式,例如:我...

十进制如何转换为二进制,二进制如何转换为十进制

用十进制除以2,除的断的,商用0表示;除不断的,商用1表示余0时结束假如十进制用X表示,用十进制除以2,即x/2除以2后为整数的(除的断的),商用0表示;除以2除不断的,商用1表示除完后的商0或1...

十进制数如何转换为二进制数_十进制数如何转换为二进制数举例说明

我们经常听到十进制数和二进制数,电脑中也经常使用二进制数来进行计算,但是很多人却不清楚十进制数和二进制数是怎样进行转换的,下面就来看看,十进制数转换为二进制数的方法。正整数转二进制...

二进制转化为十进制,你会做吗?一起来试试吧

今天孩子问把二进制表示的110101改写成十进制数怎么做呀?,“二进制”简单来说就是“满二进一”,只用0和1共两个数字表示,同理我们平常接触到的“十进制”是“满十进一”,只用0-9共十个数字表示。如果...

Mac终于能正常打游戏了!苹果正逐渐淘汰Rosetta转译

Mac玩家苦转译久矣!WWDC2025苹果正式宣判Rosetta死刑,原生游戏时代终于杀到。Metal4光追和AI插帧技术直接掀桌,连Steam都连夜扛着ARM架构投诚了。看到《赛博朋克2077》...

怎么把视频的声音提出来转为音频?音频提取,11款工具实测搞定

想把视频里的声音单独保存为音频文件(MP3/AAC/WAV/FLAC)用于配音、播客、听课或二次剪辑?本文挑出10款常用工具,给出实测可复现的操作步骤、优缺点和场景推荐。1)转换猫mp3转换器(操作门...

6个mp4格式转换器测评:转换速度与质量并存!

MP4视频格式具有兼容性强、视频画质高清、文件体积较小、支持多种编码等特点,适用于网络媒体传播。如果大家想要将非MP4格式的视频转换成MP4的视频格式的话,可以使用MP4格式转换器更换格式。本文分别从...