diff --git "a/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \344\275\234\344\270\232/\345\255\220\347\275\221\346\216\251\347\240\201 \344\275\234\344\270\232.md" "b/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \344\275\234\344\270\232/\345\255\220\347\275\221\346\216\251\347\240\201 \344\275\234\344\270\232.md" new file mode 100644 index 0000000000000000000000000000000000000000..23949c91d17fdb6816bb6897f935d2ec6f222187 --- /dev/null +++ "b/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \344\275\234\344\270\232/\345\255\220\347\275\221\346\216\251\347\240\201 \344\275\234\344\270\232.md" @@ -0,0 +1,51 @@ +## 子网掩码 作业 + +**1.想把一个B类地址172.16.0.0~172.16.255.255划分成64个子网,计算此时的子网掩码:** + +类地址的默认子网掩码是255.255.0.0,对应的二进制表示是: + +11111111.11111111.00000000.00000000 + +B类地址的网络部分是前16位,主机部分是后16位。现在我们要划分成64个子网,就需要向主机部分借用足够的位数来表示这64个子网 + +64个子网需要至少6位(因为26=6426=64),所以我们从主机部分借用6位作为子网部分,这样网络部分就变成了原来的16位加上借用的6位,共22位 + +因此,新的子网掩码是: + + 11111111.11111111.11111100.00000000 + +转换成十进制表示就是: + +255.255.252.0 + +所以,此时的子网掩码是255.255.252.0 + +**2.计算广播地址,IP地址225.36.25.183,子网掩码255.255.255.240:** + +子网掩码255.255.255.240的二进制表示是: + +11111111.11111111.11111111.11110000 + +这意味着前28位是网络部分,后4位是主机部分 + +接下来,我们需要将IP地址的主机部分设置为最大的值,以得到广播地址。IP地址225.36.25.183的二进制表示是: + +11100001.00100100.00011001.10110111 + +保留网络部分,将主机部分(最后4位)设置为最大值(即1111): + +11100001.00100100.00011001.10111111 + +将上述二进制地址转换回十进制,得到广播地址: + +225.36.25.239 + +因此,给定IP地址225.36.25.183和子网掩码255.255.255.240的广播地址是225.36.25.239 + + + + + + + +| \ No newline at end of file diff --git "a/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \347\254\224\350\256\260/\344\270\200\343\200\201\345\255\220\347\275\221\346\216\251\347\240\201.md" "b/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \347\254\224\350\256\260/\344\270\200\343\200\201\345\255\220\347\275\221\346\216\251\347\240\201.md" new file mode 100644 index 0000000000000000000000000000000000000000..b62d3801d5bfe7db4611284f706f9c2fc6f3f637 --- /dev/null +++ "b/25 \351\222\261\346\263\260\351\223\255/25 \351\222\261\346\263\260\351\223\255 \347\254\224\350\256\260/\344\270\200\343\200\201\345\255\220\347\275\221\346\216\251\347\240\201.md" @@ -0,0 +1,78 @@ +# 一、子网掩码 + +> IP地址是以网络号和主机号来标示网络上的主机的,我们把网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机(`指网络号不同的主机之间的通信`)要相互通信必须通过本地网关(Gateway)来传递转发数据。 + +## 1、子网掩码的概念及作用 + +①、子网掩码(Subnet Mask)又叫网络掩码、地址掩码,必须结合IP地址一起对应使用。 +②、只有通过子网掩码,才能表明一台主机所在的子网与其他子网的关系(`即判断网段是否相同`),使网络正常工作。 +③、子网掩码和IP地址做二进制“与”运算(`具体过程:先把ip地址变成32位二进制,然后把子网掩码也变成32位二进制,然后做二进制“与运算”即可,“与运算”的结果再化成十进制就是网络号`),分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。 +④、子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。 + +**见下图,解释了子网掩码和ip地址做二进制"与运算",然后分离出`网络号`和`主机号`的过程** +[![在这里插入图片描述](https://img-blog.csdnimg.cn/20190903143943911.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjQxOTU3,size_16,color_FFFFFF,t_70)](https://img-blog.csdnimg.cn/20190903143943911.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjQxOTU3,size_16,color_FFFFFF,t_70) + +## 2、子网掩码的组成 + +①、同IP地址一样,子网掩码是由长度为32位二进制数组成的一个地址。 +②、子网掩码32位与IP地址32位相对应,IP地址如果某位是网络地址,则子网掩码为1,否则为0。`举个栗子:如:子网掩码为11111111.11111111.11111111.00000000` + +> 注:左边连续的1的个数代表网络号的长度,(使用时必须是连续的,理论上也可以不连续),右边连续的0的个数代表主机号的长度。 + +## 3、子网掩码的表示方法 + +#### ①、点分十进制表示法 + +二进制转换十进制,每8位用点号隔开 +例如:子网掩码二进制11111111.11111111.11111111.00000000,表示为255.255.255.0 + +#### ②、CIDR斜线记法 + +IP地址/n +**例1**:192.168.1.100/24,(`解释:这里的24的意思可以这样来理解,先把ip地址化成32位二进制数,然后前24位表示的是网络号,剩下的表示主机号`)其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000 +**例2**:172.16.198.12/20(`解释:这里的20的意思可以这样来理解,先把ip地址化成32位二进制数,然后前20位表示的是网络号,剩下的表示主机号`),其子网掩码表示为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000 +不难发现,例1中共有24个1,例2中共有20个1,所以n是这么来的。运营商ISP常用这样的方法给客户分配IP地址。 + +> 注:n为1到32的数字,表示子网掩码中网络号的长度,通过n的个数确定子网的主机数有2^(32-n)-2个(-2的原因:主`机位全为0时表示本网络的网络地址,主机位全为1时表示本网络的广播地址,这是两个特殊地址`) +> +> ## 子网掩码的分类 +> +> #### ①、缺省子网掩码 +> +> 未做子网划分的IP地址:网络号+主机号 +> (提示,ABCDE类网络讲解请参考:https://blog.csdn.net/qq_40241957/article/details/100520709) +> A类网络缺省子网掩码: 255.0.0.0,用CIDR表示为/8 +> +> B类网络缺省子网掩码: 255.255.0.0,用CIDR表示为/16 +> +> C类网络缺省子网掩码: 255.255.255.0,用CIDR表示为/24 +> +> #### ②、自定义子网掩码 +> +> 将一个网络划分子网后,把原本的主机号位置的一部分给了子网号,余下的才是给了子网的主机号。其形式如下: +> 做子网划分后的IP地址:网络号+子网号+子网主机号(`解释:这里把原主机号做了进一步划分拆解,拆解成了子网号+子网主机号`) +> 比如:192.168.1.0/30这个地址本来属于c类的(**只需要通过ip地址的第一个字节,就可以判断是哪一类地址,一看这个ip地址的第一个字节是192,所以是C类地址**),标准/24的,但是如果一个地方的人只有几个人用这个网段的地址给/24的,最多可以254个人用,浪费,所以在这个基础上再划分子网号+子网主机号,子网主机号只用最后32-30=2位,30-24=6位就表示子网号了 +> +> 再举个栗子: +> 如:192.168.1.100/25,(**解释:一看这个ip地址的第一个字节是192,所以是C类地址,而C类地址的特点是前3个字节都是网络号,第4个字节是主机号。如果不懂ABCDE五类地址的划分,请回顾文章:**https://blog.csdn.net/qq_40241957/article/details/100520709)其子网掩码表示:255.255.255.128 +> 意思就是将192.168.1.0这个网段的主机位的最高1位划分为了子网。关于子网划分将在下篇文章讲到,这里不在阐述。 +> +> ## 5、子网掩码和IP地址的关系 +> +> 子网掩码是用来判断任意两台主机的IP地址是否属于同一网络的依据,就是拿双方主机的IP地址和自己主机的子网掩码做与运算,如结果为同一网络,就可以直接通信。 +> +> > **And按位与运算:** +> > 与运算是计算机中一种基本的逻辑运算方式,符号表示为&,也可以表示为 and。 +> > 参加运算的两个数据,按二进制位进行“与”运算。 +> > 运算规则:0&0=0;0&1=0;1&0=0;1&1=1; +> > 即:两位同时为“1”,结果才为“1”,否则为0 +> +> **如何根据IP地址和子网掩码,计算网络地址:** +> ①、将IP地址与子网掩码转换成二进制数。 +> ②、将二进制形式的 IP 地址与子网掩码做“与”运算。 +> ③、将得出的结果转化为十进制,便得到网络地址。 +> +> 如下图: +> [![在这里插入图片描述](https://img-blog.csdnimg.cn/20190903165544745.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjQxOTU3,size_16,color_FFFFFF,t_70)](https://img-blog.csdnimg.cn/20190903165544745.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMjQxOTU3,size_16,color_FFFFFF,t_70) +> +> > **网络地址计算小技巧**:IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。所以只要一看到IP地址和子网掩码,就能马上确认网络地址 \ No newline at end of file