🎀 文章作者:二土电子
🐸 期待大家一起学习交流!
一、什么是IP地址
IP地址就像我们需要打电话时的电话号码一样,它用来标识网络中的一台主机,每台主机至少有一个IP地址,而且这个IP地址是全网唯一的。IP地址由网路号和主机号两部分组成。如果一台主机拥有两个或者多个IP地址,那么说明该主机属于两个或者多个逻辑网络,一般用作路由器。网络号相同的主机可以直接互相访问,网路号不同的主机需要通过路由器才能互相访问。
IP地址用一个32位的二进制码来表示,每个字节转换成对应的十进制数,每一个十进制数之间用“.”来分隔,这种方法称为“点分十进制表示法”。
二、IP地址的分类
在TCP/IP协议中,根据网络规模的大小划分了5类IP地址。
- A类IP地址
A类IP地址第一个字节为网络号,后三个字节为主机号。网络号的最高位固定为0。因此能够表示的网络号有2^7^也就是128个。另外,由于全0和全1的网络号有特殊用途,因此,去掉全0和全1的网络号,只能表示126个网络号。有三个字节,24位可以用来表示主机号,可以表示2^24^个主机。A类IP地址常用于大型的网络。 - B类IP地址
B类IP地址用前两个字节表示网络号,后两个字节表示主机号。网络号的最高位为10,因此最多可以表示2^14^ - 2个网络号。最多表示2^16^ - 2个主机号。B类IP地址通常用于中等类型的网络。 - C类IP地址
C类IP地址的前三个字节表示网络号,最后一个字节表示主机号。网络号最高位为110,最多表示2^21^ - 2个网络号。最多表示2^8^ - 2个主机号。C类IP地址通常用于小型的网络。 - D类IP地址
D类IP地址最高位为1110,是多播地址。主要留给Internet体系结构委员会使用。 - E类IP地址
E类IP地址的最高位为11110,它留做今后使用。
需要注意的是,并不是说A类IP地址比其他B类和C类的IP地址高级,或者优先级更高,只是它们的使用场景不同。
三、子网掩码
子网掩码也是用来标识网络中的主机的。既然上面的IP地址也是标识网络中的主机的,那么为什么还要有子网掩码的概念呢?当然是因为只用IP地址存在一些问题。
首先是只是用IP地址能够表示的主机数有限。其次是,IP地址在使用时会存在很大的浪费。比如一个单位申请了一个A类地址,但是实际本单位的主机数并没有达到A类地址的上线,甚至一半都没有达到,这就会造成很大的浪费。为此,增加了子网掩码的概念。
在一个主机很多,分布范围很广的大型网络中,如果所有的主机都是用同一个网络号,就需要用一些网桥来将这些主机连接起来。但是网桥有很多缺点,比如容易引起广播风暴,而且出现问题时不太容易隔离和管理。可以把这个网络分成若干个子网,每个子网之间用路由器来连接。此时,在IP地址中增加一个子网号字段
需要注意的是,子网的划分是网络内部的事情,子网号究竟有多长,是由单位自身决定的。从网络外部来看,该网络只有一个网络号,只有进入网络内部,路由器才会根据子网号进行路由选择,然后找到目的主机。
TCP/IP体系规定,使用32位来表示子网掩码。子网掩码由0和1组成,1对应IP地址的网络号和子网号字段,0对应IP地址的主机号字段。子网掩码也是用点分十进制表示法表示。如果不进行子网划分,那么子网掩码就是默认值,A类IP地址的子网掩码默认值为255.0.0.0,B类IP地址的默认子网掩码为255.255.0.0,C类IP地址的默认子网掩码为255.255.255.0。使用子网掩码时,寻址就变成了三级寻址。首先寻找对应的网络号,然后匹配子网号,最后寻找主机号。
如何判断两个IP地址是否是一个子网呢?具体方法是将两个IP地址分别和子网掩码做二进制“与”运算。如果得到的结果相同,则属于同一个子网。如果结果不同,则不属于同一个子网。