1.有类编址。
网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。P地址是网络设备接口的属性,而不是网络设备本身的属性。当我们说给某台设备分配一个IP地址时,实质上是指给这台设备的某个接口分配一个IP地址;设备有多个接口时,通常每个接口至少需要一个IP地址。
IP地址的长度为32比特,由四个字节组成。IP地址通常采用点分十进制数来表示。例如:11.1.0.254就是采用点分十进制数表示的IP地址,下图是它对应的二进制数。
IP地址的分配最初被设计分成了五类,分别是A类、B类、C类、D类、E类,如图:
在这里我们只研究A、B、C三类地址,它们都是单播地址,只有这三类中的IP地址才能分配给主机接口使用。主机接口的IP地址即是该接口在网络层的“身份识别号”,又在一定程度上表示了该接口的位置信息。从图中可以看出IP地址分为主机号和网络号两部分。网络号用于表示主机接口所在的网络而主机号用于表示在网络号所定义的网络范围内某个特定的主机接口。下图是A、B、C三类地址的结构差异:
我们通常也把一个网络号所定义的网络范围称为一个网段 。在图中计算一个网段中可分配的主机IP地址的个数时,除了将主机号的位数作为2的幂,还要减去2,这是因为每一个网络号下都预留两个特殊地址。
一个IP地址,若其网络号为X,且主机号的每个比特均为0,则该IP地址称为网络号为X的网络的网络地址。 网络地址是不能分配给具体的主机接口的。
一个IP地址,若其网络号为X,且主机号的每个比特均为1,则该IP地址称为网络号为X的网络的广播地址 。广播地址是不能分配给具体的主机接口的。
随着通信事业的发展这种编址方式已远远不能适应发展需要。
2.无类编址。
有类编址方法中A、B、C三类地址都限定了网络号和主机号的位数,在无类编制中则不限定,这使得IP地址的分配更加灵活,IP地址的利用率也得到了提高。下图是无类编址中的拓展网络号的位数:
可以看到,保持原来的网络位不变,从之前的主机号中拿出来前两位用于网络位就可以将原来的一整段IP地址分成4个新的网段。
通常我们可以这样来规划和分配IP地址,假设一个组织所需要的主机IP地址的数量为N,我们可以通过计算确定出大于或等于N+2的最小的2的幂,然后以幂的值作为主机号的位数,余下的位全部作为网络地址。
采用有类编址时,我们能很容易的知道关于IP地址的所有信息。例如:对于64.1.5.0这个IP地址。由于其第一个字节的值在0~127的范围类,所以它肯定是一个A类地址,于是64便是其所在网络的网络号,其余3个字节为其主机号。并且,64.0.0.0是这个网络的网络地址,64.255.255.255是这个网络的广播地址,64.1.5.0是这个网络中的一个主机接口地址。采用无类编址后为了了解一个IP地址的网络属性必须引入子网掩码的概念。
3.子网掩码。
子网掩码由32个比特组成,可以看作是由4个字节组成,并且也通常以点分十进制数来表示。但是,子网掩码本身并不是IP地址,并且子网掩码必须由若干个连续的1后接若干个连续的0组成。下面是一些知识点:
我们通常将一个子网掩码中1的个数称为这个子网掩码的长度。例如:子网掩码0.0.0.0的长度为0,252.0.0.0的长度为6,255.192.0.0长度为10,255.255.255.255的长度为32。
当一个子网掩码与一个IP地址结合使用时,子网掩码中1的个数就表示这个IP地址的网络号的位数,而0的个数就表示这个IP地址的主机号的位数。如果将一个子网掩码与一个IP地址进行逐位的‘与’运算,所得的结果就是该IP地址所在网络的网络地址。例如:
对于64.1.5.0这个IP地址,假设其子网掩码为255.255.0.0,那么我们就可以通过计算得知这个IP地址所在网络的网络地址为64.1.0.0,计算过程如下:
子网掩码的引入使得无类编址方式可以完全后向兼容有类编址即:
目前,Internet所使用的都是无类编码方式,一个IP地址总是有其对应的子网掩码。书写IP地址时习惯IP地址在前子网掩码在后,中间用“/”隔开。 例如:64.1.5.0/255.255.0.0为了简化用子网掩码长度代替子网掩码本身,64.1.5.0/16。
4.特殊地址。
私有地址范围:
A类:10.0.0.0~10.255.255.255
B类:172.16.0.0~172.31.255.255
C类:192.168.0.0~192.168.255.255
在Internet上的网络设备均不会接收、发送、或者转发IP地址或目的地址在上述范围类的报文,这些地址只用于私有网络。
特殊地址:
127.0.0.0 ~ 127.255.255.255
0.0.0.0
255.255.255.255
127.0.0.0 ~ 127.255.255.255不属于任何一个有类别地址类。它代表设备的本地虚拟接口,所以默认被看作是永远不会宕掉的接口,主要作用有两个:某一是测试本机的网络配置,能ping通127.0.0.1说明本机的网卡和IP协议安装都没有问题;另一个作用是些SERVER/CLIENT的应用程序在运行时需调用服务器上的资源,一般要指定SERVER的IP地址,但当该程序要在同一台机器上运行而没有别的SERVER时就可以把SERVER的资源装在本机,SERVER的IP地址设为127.0.0.1同样也可以运行。
255.255.255.255是有限广播地址,可以作为IP数据包的目的IP地址使用,路由器在接到这种IP数据包后会停止对它的转发。
0.0.0.0网络地址的通配符,表示任何网络。