IPv4地址
网络中的任何一台设备都要通过网络接口卡(NIC)接入网络,如果该台设备想要被其他设备访问到,那么其网卡必须有一个唯一的地址。一台设备还可以有多个网卡并同时接入多个网络,相应地该设备就有多个地址,如果这个设备是主机的话,一般被称为multihomed主机。路由器一般有多个网卡并接入多个网络,所以路由器也有多个地址,但是一般不把路由器称为multihomed主机。
IPv4使用一个32位二进制地址,所以理论上可供使用的IPv4地址一共由4 294 967 296个,即2 32 。为了便于管理和寻址(路由),一个IPv4地址的32位被划分为两部分:网络ID和主机ID。从左边开始的、连续的若干个二进制位作为网络ID,用于标识设备所在的网络;剩余的二进制位作为主机ID,用于标识在网络中的设备。目前有三种划分方法:分类法、子网化和CIDR。
分类法
基本划分
分类法是最早的、也是最简单的一种划分方法。它把IPv4地址固定地分为五类:A、B、C、D和E。
A类把前8位划分为网络ID,但第1位必须是0;
B类把前16位划分为网络ID,但前2位必须是10;
C类把前24位划分为网络ID,但前3位必须是110;
D类用于组播,但前4为必须是1110;
E类作为预留地址,但是前4位必须是1111。
分类法的五类地址取值范围:
类 | 取指范围 |
---|---|
A | 0.0.0.0~127.255.255.255 |
B | 128.0.0.0~191.255.255.255 |
C | 192.0.0.0~223.255.255.255 |
D | 224.0.0.0~239.255.255.255 |
E | 240.0.0.0~255.255.255.255 |
从表中可以看出,从A到E的取指范围是连续的,即从A类的第一个地址0.0.0.0开始到E类的最后一个地址255.255.255.255,中间没有任何的间断。
分类法的特点就是能够很容易并且很快速地确定任意一个IPv4地址的分类,因为最多只需要检查其开头4位就能确定下来了。
特殊地址
-
网络地址
当一个IP地址中的主机ID的二进制位全为0时,该地址用来表示其网络ID所表示的网络。如192.168.1.0就表示网络ID为192.168.1的这个网络。 -
广播地址
当一个IP地址中的主机ID的二进制位全为1时,该地址用来表示其网络ID所表示的网络的广播地址。如192.168.1.255,这是一个C类地址,其用于表示网络ID为192.168.1.0这个网络的广播地址。 -
当前网络的主机地址
当一个IPv4地址中的网络ID的二进制位全为0时,该地址用来表示在当前网络、其主机ID所表示的主机。如0.0.0.123这个地址,表示的就是当前网络的主机ID为123的主机。 -
通配地址0.0.0.0
用来表示本机的任意一个IP地址。在winsock2.h头文件里面,INADDR_ANY就定义为0x00000000,即0.0.0.0。 -
环回地址
在A类地址中,从127.0.0.0~127.255.255.255的所有地址被称为环回地址。顾名思义,环回就是自己发给自己,即所有发送到该地址范围的数据都是发送被本机。
一般来说,我们都使用127.0.0.1作为环回地址,并且其名字一般叫做localhost。在winsock2.h头文件里面,INADDR_LOOPBACK被定义为0x7f000001,即127.0.0.1。 -
私有地址
不被公网所认可的特殊的IP地址。- 10.0.0.0~10.255.255.255(A类)
- 172.16.0.0~172.31.255.255(B类)
- 192.168.0.0~192.168.255.255(C类)
除此之外,还有一个地址范围169.251.0.0~169.254.255.255,是在主机自动私有地址分配(APIPA)时使用的。在没有DHCP服务器的网络环境下,各个主机可以使用APIPA来自动分给地址,使得它们之间仍然可以通信。
-
保留地址
- 0.0.0.0~0.255.255.255
- 128.0.0.0~128.0.255.255
- 191.255.0.0~191.255.255.255
- 192.0.0.0~192.0.0.255
- 223.255.255.0~223.255.255.255
0.0.0.0虽然是通配地址,但其实它也是一个保留地址,尽管我们可以在程序里面使用它,但是不能把它作为IP地址来分配给一台主机。
分类法的优缺点
优点:地址本身包含了类别信息,并不需要额外的信息来确定一个地址的网络ID和主机ID。
缺点:没有考虑到一个机构里面可能存在多个子网络的问题。
子网化
在原有三类网络A、B和C的基础上,对其进行再划分,细分出能够石瑛各种网络规模的子网(Subnet)。具体的说,就是在A、B和C类地址的基础上,对其主机ID部分再划分,即使用主机ID的前若干位作为子网ID,剩余的位作为在该子网里的主机ID。
子网掩码
子网掩码把其对应于IPv4地址中网络ID和子网ID的部分所有位设为1,其余设为0。目的是当把IPv4地址和子网掩码进行与操作时,其结果就是该IPv4地址的完整网络地址。
可以根据网络的需要来设置子网ID的位数。子网ID的位数越多,则支持的子网个数就越多,同时每个子网可容纳的主机个数就越少。具体的说,假定原来在分类法的方案下,主机ID位数为N(24、16、8,分别对应于A、B、C类),如果我们选择前M(M>=0 && M<N
)位作为子网ID,则支持的子网个数为2 M
,每个子网所支持的主机个数为2 N−M
。
可变长度子网掩码
可变长度子网掩码指的是我们在选择子网ID位数的时候,并不需要使所有划分出来的子网都具有相同位数的子网ID,而是可以根据需要,对不同的子网指定不同位数的子网ID。
无分类域间路由
CIDR就是应用VLSM的方法,把一个IPv4地址划分为网络ID和主机ID两部分,其中网络ID的位数可以根据网络的规模来灵活配置。
在CIDR中使用CIDR标记法来表示网络ID的位数,即在一个IPv4地址后先加一斜线(/),然后在斜线后面加上一个数字,该数字就是网络ID的位数,如192.168.1.123/24,这个地址的前24为是网络ID,后面8位是主机ID。
转载:http://blog.csdn.net/foreverling/article/details/44310097