## 云计算！网络层IP编址及子网掩码

### 一、IP地址

P地址（Internet Protocol Address）是指互联网协议地址，又译为网际协议地址。
IP地址是IP协议提供的一种统一的地址格式，它为互联网上的每一个网络和每一台主机分配一个逻辑地址，以此来屏蔽物理地址的差异。
IP地址有两种协议：IPV4/IPV6。目前主流使用IPV4协议，但是由于不断使用，已即将枯竭。在未来IPV6将成为主流协议。
IP地址分为网络部分（属于哪一网段）和主机部分（属于网段下哪一主机）。有32个二进制位组成，通常用点十分进制形式表示。

![](images/20210331181648321.png)

### 2.IP地址的分类

最初设计互联网络时，为了便于寻址以及层次化构造网络，每个IP地址包括两个标识码（ID），即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID，网络上的一个主机（包括网络上工作站，服务器和路由器等）有一个主机ID与其对应。Internet委员会定义了5种IP地址类型以适合不同容量的网络，即A类~E类。
![](images/20210331183411621.png)

图示为IP地址的具体分类和每类IP地址的实际范围。五类地址中，常用的为ABC三类。
其中，A类地址比较特殊。

### 3.特殊的IP地址

在常见的五类IP公有地址之外，还有一些特殊类别的IP地址，我们叫他特殊的IP地址。
主要分为两类：1.私有地址；2.特殊地址。
其中，私有地址是在局域网中使用的地。其范围为：
10.0.0.0-10.255.255.255；
172.16.0.0-172.31.255.255；
192.168.0.0-192.168.255.255
而特殊地址，主要由以下几种：
1.本地回环地址。以127为开头的IP地址，主要用作于本地回环使用。
其范围为：127.0.0.0-127.255.255.255
2.0地址。32位全为0的IP地址。可以代表任意一台主机，因此无法用作唯一IP地址。
其结构为：0.0.0.0
3.广播地址。用来进行广播泛洪的IP地址。
其结构为：255.255.255.255

### 4.有类IP地址的缺陷

在设计网络时，有类IP地址会造成地址的浪费。
例如，某公司购为了给2个部门设计网络，购买了2个C类IP地址。每个IP地址可以设置254台机器，但是A部门只有30台电脑，B部门只有20台。这就造成了大量的地址浪费。

![](images/20210331190754784.png)

## 二、子网掩码

### 1.子网掩码的定义

子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩，它是一种用来指明一个IP地址的哪些位标识的是主机所在的子网，以及哪些位标识的是主机的位掩码。
子网掩码不能单独存在，它必须结合IP地址一起使用。子网掩码只有一个作用，就是将某个IP地址划分成网络地址和主机地址两部分。
子网掩码是一个32位地址，用于屏蔽IP地址的一部分以区别网络标识和主机标识，并说明该IP地址是在局域网上，还是在广域网上。
例如：IP地址192.168.1.1和255.255.255.0。255.255.255.0就是192.168.1.1的子网掩码。

![](images/20210331185609409 (1).png)

### 2.默认子网掩码

默认子网掩码即缺省子网掩码即未划分子网，对应的网络号的位都置1，主机号都置0。

![](images/2021033119002484.png)

图示为A,B,C三类常用IP地址的默认子网掩码。

### 3.VLSM–变长子网掩码

变长子网掩码是为了有效的使用无类别域间路由（CIDR）和路由汇聚(route summary)来控制路由表的大小，它是网络管理员常用的IP寻址技术，VLSM就是其中的常用方式，可以对子网进行层次化编址，以便最有效的利用现有的地址空间。

## 三,网关

网关(Gateway)又称[网间连接器](https://baike.baidu.com/item/网间连接器/2943752)、[协议转换](https://baike.baidu.com/item/协议转换)器。网关在[网络层](https://baike.baidu.com/item/网络层/4329439)以上实现[网络互连](https://baike.baidu.com/item/网络互连/108997)，是复杂的网络互连设备，仅用于两个高层协议不同的[网络互连](https://baike.baidu.com/item/网络互连/108997)。网关既可以用于[广域网](https://baike.baidu.com/item/广域网/422004)互连，也可以用于[局域网](https://baike.baidu.com/item/局域网)互连。 网关是一种充当转换重任的[计算机系统](https://baike.baidu.com/item/计算机系统/7210959)或设备。使用在不同的[通信协议](https://baike.baidu.com/item/通信协议/3351624)、数据格式或语言，甚至[体系结构](https://baike.baidu.com/item/体系结构/8174145)完全不同的两种系统之间，网关是一个[翻译器](https://baike.baidu.com/item/翻译器/2677454)。与[网桥](https://baike.baidu.com/item/网桥/99310)只是简单地传达信息不同，网关对收到的信息要重新打包，以适应目的系统的需求。同层--应用层。

#### 概念

大家都知道，从一个房间走到另一个房间，必然要经过一扇门。同样，从一个网络向另一个网络发送信息，也必须经过一道“关口”，这道关口就是网关。[顾名思义](https://baike.baidu.com/item/顾名思义)，网关（Gateway） [1] 就是一个网络连接到另一个网络的“关口”。也就是网络[关卡](https://baike.baidu.com/item/关卡)。

#### 设置

##### 手动

手动设置适用于电脑数量比较少、[TCP](https://baike.baidu.com/item/TCP/33012)/IP参数基本不变的情况，比如只有几台到十几台电脑。因为这种方法需要在联入网络的每台电脑上设置“[默认网关](https://baike.baidu.com/item/默认网关)”，非常费劲，一旦因为迁移等原因导致必须修改默认网关的IP地址，就会给网关带来很大的麻烦，所以不推荐使用。

在Windows 7中，设置[默认网关](https://baike.baidu.com/item/默认网关)的方法是在“[网上邻居](https://baike.baidu.com/item/网上邻居)”上右击，在弹出的菜单中点击“属性”，在网络属性对话框中选择“[TCP/IP协议](https://baike.baidu.com/item/TCP%2FIP协议/212915)”，点击“属性”，在“默认网关”选项卡中填写新的默认网关的IP地址就可以了。

需要特别注意的是：[默认网关](https://baike.baidu.com/item/默认网关)必须是电脑自己所在的[网段](https://baike.baidu.com/item/网段)中的IP地址，而不能填写其他网段中的IP地址。

##### 自动

自动设置就是利用[DHCP服务器](https://baike.baidu.com/item/DHCP服务器)来自动给网络中的电脑分配IP地址、[子网掩码](https://baike.baidu.com/item/子网掩码)和[默认网关](https://baike.baidu.com/item/默认网关)。这样做的好处是一旦网络的[默认网关](https://baike.baidu.com/item/默认网关)发生了变化时，只要更改了[DHCP服务器](https://baike.baidu.com/item/DHCP服务器/9956953)中默认网关的设置，那么网络中所有的电脑均获得了新的默认网关的IP地址。这种方法适用于网络规模较大、TCP/IP参数有可能变动的网络。

## 四、IP地址，子网掩码、变长子网掩码的算法解析

在上文中，我们学习了IP地址，子网掩码，变长子网掩码的相关基础知识。接下来我们要介绍如何通过算法去计算主机的IP地址，子网掩码，网络号和广播地址。并且要学习如何通过变长子网掩码去计算IP地址可划分子网数、可用主机数以及相对应的网络号和广播地址。
在这过程中，我们需要运用到与运算法则。



### 1.与运算

#### （一）什么是与运算

“与”运算是计算机中一种基本的逻辑运算方式，符号表示为&，与之相对应的词是“或”，在日常口语交流和书写中一般做关联词。汉语中表示和的意思。

#### （二）与运算的用法

参加运算的两个数据，按二进制位进行“与”运算。运算规则：0&0=0;0&1=0;1&0=0;1&1=1;
即：两位同时为“1”，结果才为“1”，否则为0
例如：3&5即 0000 0011 & 0000 0101 = 0000 0001。

#### （三）与运算的用途

与运算的用途主要有2种。但是目前我们只需要了解其中一种，也就是：置位归零。
置位归零是指使一个二进制数中的某一个/几个数位归零，其余数位不影响。

###### 2.如何去计算具体地址

###### （一）计算网络号及广播地址

对于IP地址和子网掩码的基础运算，是通过IP地址和子网掩码去计算该地址的网络号和广播地址。
例：ip地址192.168.12.72，子网掩码为255.255.255.0，该地址所在的网段的网络地址和广播地址为多少？
首先，我们已知地址和子网掩码分别为：192.168.12.172和255.255.255.0。
因此，我们先将其转化为二进制位。
IP地址: 192.168.12.172=11000000.10101000.00001100.010010000
子网掩码：255.255.255.0 =11111111.11111111.11111111.00000000
通过与运算，11000000.10101000.00001100.010010000 &11111111.11111111.11111111.00000000
得出11000000.10101000.00001100.00000000
再转化为十进制位，得出192.168.12.0
因此，192.168.12.72的网段网络地址：192.168.12.0
广播地址则是把主机位变为1，则可得出192.168.12.72的广播地址：192.168.12.255

###### （二）子网划分

计算这个是为了计算我们通过VLSM可以分出多少子网，每个子网下能链接多少主机。
例：202.106.1.0/27 可以产生几个子网?每个子网可以有几个主机IP?每个子网号是什么?
如题，我们可知IP地址为202.106.1.0，子网掩码为27位。
即 IP地址202.106.1.0=11001010.01101010.00000001.00000000
子网掩码为：255.255.255.224=11111111.11111111.11111111.11100000
由上述可知，子网掩码向前借了3位。
根据子网数=2^n（借位数），可知，子网数为2的3次方，得出8，因此子网数是8。
再根据可用主机数=2^n（主机位数）-2，可知，可用主机数为2的5次方-2，得出30，因此可用主机数为30。

###### （三）如果计算不同网段的网络号及广播地址

通过上述的算法，我们可以计算出IP地址的不同网段，及网段的网络号和广播地址。
例：IP地址10.145.129.20，掩码255.255.248.0，网络地址和广播地址怎么计算？
IP：10.145.129.20=00001010.10010001.10000001.00010100
掩码255.255.248.0=11111111.11111111.11111000.00000000
借5位
子网：32
主机：8
网络：10.145.128.0
广播：10.145.135.255



 以上是学生对网络IP学习的内容，里面有网上查阅的解释和本人自己的理解。