IP地址的格式及分类
1、IP地址的格式
在IP协议的报文中,可以得知IP地址是有32个比特,IP地址在计算机中是以二进制的方式处理的,如果全部以二进制的形式来表示,使用跟表达都非常的困难,所以为了人类方便记忆,采用了点分十进制的方式,将32位的IP地址以8位为一组,分成四个部分,每组以【.】进行隔开,再将每组转换成十进制。

可以发现二进制里面0跟1的组合不一样,得到的数值也不一样,总共IP地址有多少个呢?

最大允许差不多43亿的终端连接到网络里面来,看起来已经非常多了!但是,如今的Internet网中,IP地址是枯竭的状态,这也是为什么推出了IPV6的原因。
IP地址其实是由2个部分组成的,一个是网络号(网段地址)和主机号(主机地址),这个两个组成很关键,网络号是设备所在区域的一种标识区分,网络号相同的设备处于同一个网段内,网络号不同的设备处于不同网段,两个之间通信需要依赖三层设备。
可能我们访问的目的就在一个区域,也可能在另外的区域,那运行了TCP/IP协议的设备不管是PC、手机、路由器还是交换机,都得有一个判断规则,来对比要去的目的跟自己是不是一个网络区域,那就是通过上面的网络号来进行区分。

像上面的图,路由器左边是家庭局域网网,比如有三个终端,地址分别是192.168.255.1、192.168.255.2、192.168.255.240,不管是相互传文件以及访问个人的服务器,直接输入对方的地址就可以了,就算宽带接入出现故障,互联网访问不到了,但这些局域网之间的互访是不影响的。

假设192.168.255相同的前缀为网络号,同一个网段,而最后一位1、2、240为主机号,数字都不是重复的。

比如这里192.168.255.1访问192.168.255.240,这里192.168.255.1设备系统通过自己网卡的参数读取到对应的IP信息与目的的IP比较,发现网络号相同,则在同一个网段内,直接发送给对方,并且二层封装目的主机的MAC地址。

如图 192.168.255.1去访问互联网上的百度 181.55.6.6, 假设对比前三段,终端判断目的与自己的网络号不一致,那么它该怎么处理呢?

设备终端,比如PC、手机、平板运行了TCP/IP协议的,它都有判断的功能,如果目的IP与我网络号相同,判断在一个网段内,直接在同一个区域内完成通信;如果网络号不同,则判断为不同网段,这个时候直接交给网关处理,如果没有网关信息,则通信失败,数据包发送不出。
路由器这些三层设备在处理转发这个数据包的时候,查询路由表根据目的IP的网络号进行查询转发,这样的好处是能够提高效率,不用具体到主机位,否则Internet这么庞大的网络,每个网路设备都存放在路由表中,对设备的压力以及查询的效率就非常低了。
终端设备访问不同网段依靠的是网关,而路由器等三层设备转发数据包去往不同目的地依靠的是路由表中的条目。

比如某个设备上不了网,那我们知道了上网是得有网关的,是不是就先检查网关设置了吗,设置的对吗。当然这些会在后续中反复提到,数据包的通信离不开这些“规则”。
明白了网络号与主机号的概念,那在IP地址中,哪几位是网络号?哪几位是主机号呢?下面就来了解下地址分类以及子网掩码的概念。
2、IP地址分类
在internet诞生初期,IP地址是非常充裕的,计算机科学家们进行了分类地址,把IP地址分为了5大类,分别是A类、B类、C类、D类、E类。

早期沿用的是地址分类的方法,A、B、C作为全局可用唯一地址进行分配,每个列别定义了网络号以及主机号的范围大小,由于这种方式早就不在使用,只有考试以及很多书籍还在介绍,所以这里就简单介绍下。
(1)A类地址
A类IP地址以首位为“0”开头,前面8位是网络号,网络号范围是0~127(0和127属于保留地址)。

算下来就2^(8-1)-2=126,其中8位中最开始0是固定的,所以只有7个可以变化,0与127是保留需要-2,最终有126个网段。
后24位是主机号,表示可容纳的终端数量,2^24次方=16777216个地址。

(2)B类地址
B类IP地址前两位以“10”固定开头,1~16位为网络号,网络号的范围128.0~191.255,其中169.254为保留地址,算下来2^(16-2)-1,有16383个可用网段。

后16位主机号,表示可容纳的终端数量,2^16次方=65536个地址。

(3)C类地址
C类IP地址前三位“110”固定,从1~24位为它的网络号,范围是192.0.0~223.255.255.255,其中192.0.0属于保留地址,所以有2^(24-3)-1=2097151

后8位是主机号,标识可容纳的终端数量,2^8=256个地址。

(4)D与E类地址
D类IP比较特殊,它属于组播地址,不区分网络号与主机号,用于各种协议中以及某些特殊场景,后续会慢慢熟悉,范围是224.0.0.0~239.255.255.255。而E类属于科研方面等方面,不用于互联网使用。
(5)了解网段地址、网段广播地址、以及单播地址
当主机号全为0时,表示某个网段,叫做网段地址,比如192.168.255.0,表示192.168.255.1到192.168.255.254所有地址,这也是以后在项目中经常遇到的表示方法,用于表示某个网段。
当主机号全为1时,它表示的网段广播地址,发往这个地址的数据包,该网段内所有主机都能收到,比如:网段192.168.255.0,广播地址是192.168.255.255。

所以,在每个网段中,主机号全0的网段地址以及主机号全1的广播地址是不能被使用,每个网段实际可用的地址是对应的地址数-2。

那什么是单播地址呢?每个网段内除去网段地址以及网段广播地址以外,剩下的就是单播地址,单播地址也就我们终端PC、手机以及网络设备路由器、交换机设备上使用的地址了,通信双方就一个发送方与接收方,而广播则是一个发送方,其余同网段的主机都为接收方,但是不会发往其他网段,中间三层设备会隔离广播,不会进行转发。
(6)二进制与十进制转换
上面介绍了一大堆地址范围,可能很多朋友有点犯迷糊,怎么就计算出这么多的网段跟主机了,首先,要明白二进制与十进制的换算。

二进制到十进制的换算,可以参考上面表格,也可以借助计算器,采用程序员的模式,输入对应的数值即可,其中BIN表示二进制,DEC表示十进制,HEX表示十六进制。

按照上面的表格,把每一段“置1”的数值相加就得了每一段的十进制,最终就是192.168.255.4,这个是C类地址,因为网络号前三位固定为110,同样的A与B类的地址,都有前面固定的值,范围都不一样,只要知道了固定值的位置,然后就可以计算出每个类的范围。
(7)IP地址分类的好处
判断方便,网络设备需要解析一个IP地址的时候,只需要判断网络位的前四位就可以知道是网络号与主机地址的范围。