网络编程——计算机网络基本常识之子网掩码小结

Posted CrazyMo_

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络编程——计算机网络基本常识之子网掩码小结相关的知识,希望对你有一定的参考价值。

引言

将两台以上计算机组网是件很容易的事,接入同一个交换机,设置同一个网段的IP地址和一样的子网掩码就搞定了。说起子网掩码大家都不陌生,就是那个默认的“255.255.255.0”,可子网掩码到底是什么,究竟有什么作用呢?

IP地址是以网络号和主机号来标示网络上的主机的(即计算机在网络内的唯一标识),我们把网络号相同的主机称之为本地网络,网络号不相同的主机称之为远程网络主机,本地网络中的主机可以直接相互通信;远程网络中的主机要相互通信必须通过本地网关(Gateway)来传递转发数据。

一、子网掩码相关术语概述

1、子网掩码的定义

子网掩码(Subnet Mask)又叫网络掩码、地址掩码,子网掩码与IP地址一样都是由4个数段组成,每个数段的取值范围是0-255(共256个值,即2的8次方),在计算机网络中子网掩码与IP地址是必须组合使用的,子网掩码由连续的1和0组成

  • 连续的1表示网络地址(网络号),1的个数代表网络号的长度
  • 连续的0表示每个子网中的主机地址,0的个数代表主机号的个数

2、子网掩码的表示

2.1、点分十进制表示

把二进制转换十进制,每8位用点号 . 隔开,例如子网掩码二进制11111111.11111111.11111111.00000000,点分十进制表示为255.255.255.0

2.2、CIDR 斜线表示

点分十进制表示法后附加上 /n ,即IP / n,其中n 为1到32 的整数代表网络号(即二进制系列中1的个数),可以通过n 来计算子网中主机数=2的(32-n)次方再减去2。例如192.168.6.88/16,其子网掩码表示为255.255.0.0,二进制表示为11111111.11111111.00000000.00000000 又称为16位掩码;172.16.198.108/24,其子网掩码表示为255.255.255.0,二进制表示为11111111.11111111.11111111.00000000 又称为24位掩码;172.168.66.88/20表示其掩码为255.255.240.0,二进制表示为11111111.11111111.11110000.00000000。

3、网关和网关地址

连接两个不同的网络的设备都可以叫网关设备(Gateway),计算机的网关就是到其他网段的出口,网关的作用就是实现两个网络之间进行通讯与控制,因此网关设备可以是 交互机(三层及以上才能跨网络)、路由器、启用了路由协议的服务器、代理服务器、防火墙等,默认网关指的是一台主机如果找不到可用的网关,就把数据包发给默认指定的网关(一台主机可以有多个网关),由这个网关来处理数据包。现在主机使用的网关,一般指的是默认网关。自动设置默认网关自动设置就是利用DHCP(Dynamic Host Configuration Protocol, 动态主机配置协议)服务器来自动给网络中的计算机分配IP地址、子网掩码和默认网关 。一旦网络的默认网关发生了变化时,只要更改了DHCP服务器中默认网关的设置,那么网络中所有的计算机均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。而网关地址就是网关设备的IP地址如果网络A中的主机发现数据包的目的主机不在本地网络中,就把数据包转发给它自己的网关,再由网关转发给网络B的网关,网络B的网关再转发给网络B的某个主机。网络A向网络B转发数据包的过程。

网关地址可以是本网段中任何一个地址,不过通常使用该网段的第一个可用的地址或最后一个可用的地址,这是为了尽可能避免和本网段中的主机地址冲突

4、子网掩码可以

IP地址就是计算机在网络中的唯一身份ID,IP地址 = 网络地址(网络号) + 主机地址(主机号)。子网掩码可以分离出IP地址中的网络地址和主机地址,两台主机要通信,首先要判断是否处于同一网段,即网络地址是否相同。如果相同,那么可以把数据包直接发送到目标主机,否则就需要路由网关将数据包转发送到目的地。

  • 只有通过子网掩码,才可判断一台主机所在的子网与其他子网的关系,子网掩码和IP地址做“与”运算可以分离出IP地址中的网络地址和主机地址,用于判断该IP地址是在本地网络上,还是在远程网络网上。具体算法:

判断是否同一网段是的算法是 : A 主机IP & A 主机的掩码 ?= B 主机IP & B 主机的掩码 结果相等则在同一网段,在同一网段意味着A可以通过ARP广播发现B的MAC地址,同样B也可以发现A的MAC地址,从而互相通信;不同网段时则,ARP广播会在本地网关终结,此时A会把发给B的数据包先发给本地网关,网关再根据B主机的IP地址来查询路由表,再将数据包继续传递转发,最终送达到目的地B。

  • 作为划分子网的依据,子网掩码还用于将网络进一步划分为若干子网,以避免主机过多而拥堵或过少而IP浪费。

子网掩码与IP地址都是由4个数段组成,每个数段的取值范围是0-255(共256个值,即2的8次方),在计算机网络中子网掩码与IP地址是组合使用的,子网掩码由连续的1和0组成连续的1表示网络地址,连续的0表示每个子网中的主机地址,通过0的个数可以计算出子网的容量(即子网中主机的IP地址范围,该掩码同一网段下可以分配多少个IP)

5、IP地址和子网掩码

根据IP地址和子网掩码,计算网络地址:
①、将IP地址与子网掩码转换成二进制数。
②、将二进制形式的 IP 地址与子网掩码做“与”运算。
③、将得出的结果转化为十进制,便得到网络地址

即IP地址和子网掩码做与运算,把IP地址的主机位直接归0,就快速得到网络地址。

IP地址分为A、B、C、D、E五类IP地址分为五类:

IP地址分类使用对象特点范围默认掩码保留和私有地址
A保留给政府机构第1字节为网络地址,其它3个字节为主机地址,当将IP地址写成二进制形式时,第1个字节的第一位总是0(从左往右)1.0.0.1—126.155.255.254255.0.0.0①10.X.X.X是私有地址(即在互联网上不使用,而被用在局域网络中)。
② 127.X.X.X是保留地址,用做循环测试用的。
B分配给中等规模的公司第1字节和第2字节为网络地址,其它2个字节为主机地址,B类地址的前两位总是10128.0.0.1—191.255.255.254255.255.0.0① 172.16.0.0—172.31.255.255是私有地址
② 169.254.X.X是保留地址。如果你的IP地址是自动获取IP地址,而你在网络上又没有找到可用的DHCP服务器。就会得到其中一个IP。
C分配给任何需要的人第1字节、第2字节和第3个字节为网络地址,第4个个字节为主机地址,前三位总是110192.0.0.1—223.255.255.254255.255.255.0192.168.X.X是私有地址
D用于组播不分网络地址和主机地址,它的第1个字节的前四位固定为1110224.0.0.1—239.255.255.254缺省
E用于实验不分网络地址和主机地址,它的第1个字节的前五位固定为11110240.0.0.1—255.255.255.254缺省

其中A类、B类、和C类这三类地址用于TCP/IP节点,其它两类D类和E类被用于特殊用途。而掩码主要分为默认的三类和自定义的掩码。

6、DNS 服务器

域名与DNS,当我们访问一个网站时,虽然输入的是域名,但是网络本质上是通过IP进行通信的,DNS 服务器就是把域名解析为对应的IP。在DNS 维护着 域名(domain name)和IP地址 (IP address)的对照表表,以解析消息的域名,大致流程如下:

  • 在浏览器中输入一个域名时,操作系统会先检查自己本地的hosts文件是否存在与这个域名对应的映射关系,如果找到,就直接使用这个IP地址映射,完成域名解析。

  • 而如果hosts里没有这个域名的映射,则首先查找本地DNS解析器缓存,是否有这个网址映射关系,如果有,直接返回,完成域名解析。

  • 但如果hosts与本地DNS解析器缓存都没有相应的网址映射关系,首先会找TCP/IP参数中设置的首选DNS服务器,在此我们叫它本地DNS服务器,此服务器收到查询时,如果要查询的域名,包含在本地配置区域资源中,则返回解析结果给客户机,完成域名解析,此解析具有权威性。

  • 如果要查询的域名,不由本地DNS服务器区域解析,但该服务器已缓存了此网址映射关系,则调用这个IP地址映射,完成域名解析,此解析不具有权威性。

  • 但如果本地DNS服务器本地区域文件与缓存解析都失效,则根据本地DNS服务器的设置(是否设置转发器)进行查询,如果未用转发模式,本地DNS就把请求发至13台根DNS,根DNS服务器收到请求后会判断这个域名(.com)是谁来授权管理,并会返回一个负责该顶级域名服务器的一个IP。本地DNS服务器收到IP信息后,将会联系负责.com域的这台服务器,这台负责.com域的服务器收到请求后,如果自己无法解析,它就会找一个管理.com域的下一级DNS服务器地址给本地DNS服务器。当本地DNS服务器收到这个地址后,就会找域名对应的域服务器,重复上面的动作,进行查询,直至找到目标主机。

  • 如果用的是转发模式,此DNS服务器就会把请求转发至上一级DNS服务器,由上一级服务器进行解析,上一级服务器如果不能解析,或找根DNS或把转请求转至上上级,以此循环。不管是本地DNS服务器用是是转发,还是根提示,最后都是把结果返回给本地DNS服务器,由此DNS服务器再返回给客户机。

二、子网掩码的简单应用举例

子网掩码与IP地址都是由4个数段组成,每个数段的取值范围是0-255(共256个值,即2的8次方),在计算机网络中子网掩码与IP地址是组合使用的,子网掩码由连续的1和0组成连续的1表示网络地址,连续的0表示每个子网中的主机地址,通过0的个数可以计算出子网的容量(即子网中主机的IP地址范围,该掩码同一网段下可以分配多少个IP);IP地址是计算机在网络内的唯一标识。如我们在搭建局域网时通常用到的IP地址192.168.1.1,配置子网掩码为255.255.255.0,转换成机器能识别的二进制后,一个完整的IP地址或子网掩码就转换成32位二进制序列——即11111111 . 11111111 . 11111111 . 00000000,从二进制序列中可以得到该子网掩码由由24个1和8个0组成,那么8个0代表该子网掩码可划分出的子网容量为256(2的8次方)个IP地址,换言之只要再IP 在192.168.1.0~192.168.1.255 范围的都属于同一网段,但是因为规定每个子网的第一个IP地址——192.168.1.0为网段地址,最后一个IP地址——192.168.1.255为广播地址,都不可用,因此真正可用的只有254个,只要在这个网段内的设备就可以互相通信。

在这里插入图片描述

IP地址还是192.168.1.1,配置其子网掩码为255.255.255.252时,又是怎么划分子网的,同样转为二进制序列 11111111 . 11111111 . 11111111 . 11111100,得知有30个1和2个0,则代表每个子网中只有4个IP地址(2的2次方),但是192.168.1.0192.168.1.255的地址段一共有256个,很明显不可能只有一个子网(网段),因此一共可划分64个子网,第一个子网的地址范围是192.168.1.0192.168.1.3,第二个子网的地址范围是192.168.1.4~192.168.1.7 依次类推。但每个子网第一个和最后一个IP地址不可用,换言之如果把子网掩码设置为255.255.255.252的话,那么第一个子网内最多只能容纳3个设备,如果把一台设备的IP设为192.168.1.1,另外一台电脑的IP必须设置为192.168.1.2 或者 192.168.1.3 才能确保互相可以通信。

在这里插入图片描述

再来一个通过以上两个例子读者应该明白子网掩码的作用了,下面通过一个实际的例子检验刚才的学习成果。

某个小型公司有四个部门:行政、研发、营销、售后,每个部门各40台计算机接入公司局域网交换机,如果要在192.168.1.0网段为每个部门划分子网,子网掩码应该怎么设置,每个子网的地址范围分别是什么?192.168.1.0网段共256个地址,划分4个子网,每个子网需要64个地址;64是2的6次方,子网掩码应该以6个0结尾,剩下的用1补齐,由26个1和6个0组成,转换成十进制是255.255.255.192;每个子网共64个IP地址,掐头去尾后可用地址只有62个,第1个子网的可用IP地址范围是:192.168.1.1-62,第2个子网可用IP地址范围是192.168.1.65-126,第1个子网的可用IP地址范围是:192.168.1.129-190,第2个子网可用IP地址范围是192.168.1.193-254;该公司各部门计算机按照3中的IP地址范围进行设置,所有计算机的子网掩码都必须设置为255.255.255.192,设置完毕后各部门内的计算机能正常联网,不同部门间的计算机无法直接联通。

部分资料整理自 https://baijiahao.baidu.com/s?id=1606474671793061553&wfr=spider&for=pc

以上是关于网络编程——计算机网络基本常识之子网掩码小结的主要内容,如果未能解决你的问题,请参考以下文章

网络常识

网络基础之IP地址和子网掩码

计算机网络的性能指标和基本概念(子网掩码IPMAC地址)

复习笔记计算机网络之网络层

了解网络之子网掩码详解

计算机网络入门基础篇——网络层