IP的组成
IP是由32位2进制数组成的。
如1100 0000 1010 1000 0000 0001 0000 0001
但是因为这样的2进制数不方便识别,因此在使用的时候,会将其分为四段,转为10进制,并用点相隔,方便人识别。
如192.168.1.1
IP的分类
考虑一个问题,前面说到,IP能够比MAC更方便的在网络中标识计算机以降低成本。那么是如何降低的?
看看上面这图
A_0,A_1,A_2,A_3,A_4构成了一个网络,这个网络通过中间设备C_0与其他网络通信
B_0,B_1,B_2,B_3,B_4构成了一个网络,这个网络通过中间设备C_3与其他网络通信
……
也许我们可以试着利用这一个特性,就是同一个网络里面的主机,能够用IP地址通过聚合的方式标识。
确实有这么一种方法,那就是网络号,将IP地址的前n位作为网络号,用于标记一个网络,剩下的位作为主机号,标识网络中的一个主机,如下
在最开始设计的时候,将IP地址分为五类
A、B、C类地址网络号分别为1,2,3个字节长,使用第一个字节的前1-3位进行标识某一类IP。当初的考虑是面对不同的网络,主机数量不一样,因此分为三类满足不同需求。D类则是用于多播(1对多通信),E类则是保留以后使用。
用了网络号的标识方法,A_1与B网络中的设备再进行通信,对中间设备的消耗就降低了
比如,A_1与B_1通信,当数据到达中间设备C_0的时候,它看了看数据包内的IP,只需要识别到B_1的网络号,然后转发给相应的设备,当数据到了C_3的位置,再用主机号进行识别。
A_1与B_2通信,当数据到达中间设备C_0的时候,根据数据包内的IP,也只需要识别到B_2的网络号即可。
B_1与B_2虽然IP是不同的,但是主机号相同(IP的前n位相同),那么对于中间设备C_1的负担就小了,C_1不需要知道具体的主机位置,它只需要那个主机所在的网络的位置。然后把数据包传输到那个网络与外界沟通的中间设备处(C_3),之后传送到具体主机的事情,就由C_3来做了
这是分类阶段的地址,网络号是固定的1-3字节
特殊的IP地址
- 主机号全0的地址(网络地址),网络地址表明的是一片区域,比如主机A的IP地址为
202.210.192.1
,这是一个C类地址,其主机号为后8位,用主机号全0来表示,对应的网络地址则为202.210.192.0
,对于主机B的IP202.210.192.2
来说,其网络地址也为202.210.192.0
- 主机号全1的地址,这个IP地址用于表示此网络,表示一组主机,如 一个C类IP
202.210.192.255
,主机号全1,表示在C类网络202.210.192.0
上的所有主机 - 网络号全0的地址,用于表示
这个
网络,如在网络202.210.192.0
中,0.0.0.35
,表示在这个202.210.192.0
网络中,主机号位35
的主机即202.210.192.35
这个主机 - IP地址中,网络号为127的地址用于环回测试,如127.0.0.1,若目的地址为换回地址,则最终会视为发送主机即为接受主机。