整个的互联网就是一个单一的、抽象的网络。IP地址就是给互联网上的每一台主机 (或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址的结 构使我们可以在互联网上很方便地进行寻址。
分类的IP地址
所谓“分类的IP地址”就是将IP地址划分为若干个固定类,每一类地址都由两个固定 长度的字段组成,其中第一个字段是网络号((net-id),它标志主机(或路由器)所连接到的网络。一个网络号在整个互联网范围内必须是唯一的。第二个字段是主机号(host-id),它标志该主机(或路由器)。一台主机号在它前面的网络号所指明的网络范围内必须是唯一的。由 此可见,一个IP地址在整个互联网范围内是唯一的。
这种两级的IP地址可以记为: IP地址:={<网络号>,<主机号>}
对主机或路由器来说,IP地址都是32位的二进制代码。为了提高可读性,我们常常把 32位的IP地址中的每8位插入一个空格(但在机器中并没有这样的空格)。为了便于书 写,可用其等效的十进制数字表示,并且在这些数字之间加上一个点。这就叫做点分十进制记法(dotted decimal notation)。
例如一个B类IP地址:10000000 00001011 00000011 00011111 可以用点分十进制记法表示为128.11.3.31
ps:1字节占8位(即1Byte=8bit)
A类地址的网络号字段占1个字节,只有7位可供使用(该字段的第一位已固定为 0),但可指派的网络号是126个(即27-2)。
减2的原因是:
第一,IP地址中的全0表示 “这个(this)”。网络号字段为全0的IP 地址是个保留地址,意思是“本网络”;
第二,网络号为127(即01111111)保留作为本地软件环回测试(loopback test)本主机的进程之间的通信之用。
若主机发送一个目的地址为环回地址(例如127.0.0.1)的IP数据报,则本主机中的 协议软件就处理数据报中的数据,而不会把数据报发送到任何网络。目的地址为环回地址的 IP数据报永远不会出现在任何网络上,因为网络号为127的地址根本不是一个网络地址。
A类地址的主机号占3个字节,因此每一个A类网络中的最大主机数是2**24-2,即 16777214。
这里减2的原因是:
全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0)
而全1表示“所有的(all)”,所以全1的主机号字段表示该网络上的所有主机。
IP地址空间共有2**32(即4294967296)个地址。整个A类地址空间共有2**31个地址,占整个IP地址空间的50%。(2**31/2**32=50%) (ps:2**32就是2^32,就是2的32次方)
B类地址的网络号字段有2个字节,但前面两位(10)已经固定了,只剩下14位可以进行分配。因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节的网络号 字段成为全0或全1,因此这里不存在网络总数减2的问题。
实际上B类网络地址 128.0.0.0是不指派的
B类可以指派的最小网络地址是128.1.0.0
(ps:128.1.0.0代表的是10000000 00000001 00000000 00000000)
因此B类 地址可指派的网络数为2**14-1,即16383。B类地址的每一个网络上的最大主机数是2**16- 2,即65534。(这里减1的原因是上面提到的128.0.0.0是不指派的)
这里需要减2是因为要扣除全0和全1的主机号。
整个B类地址空间共约有 2**30个地址,占整个IP地址空间的25%。
C类地址有3个字节的网络号字段,最前面的3位是(110),还有21位可以进行分配。
C类网络地址192.0.0.0也是不指派的,可以指派的C类最小网络地址是192.0.1.0
因此C类地址可指派的网络总数是2**21-1,即2097151。每一个C类地址的最大主机数是2**8-2,即254。
整个C类地址空间共约有229个地址,占整个IP地址的 12.5%。
A:1(00000001) 126(011111110)
B:128.1(10000000 00000001) 191.255(10111111 111111111)
C:192.0.1(11000000 00000000 00000001) 223.255.255(11011111 11111111 11111111)
(ps:191-128+1==64==2**6 加的1是因为B类网络地址 128.0.0.0是不指派的 )