IP地址概念

曹至梧 2016-01-10 16:55 更新
  1. 基本概念
  2. 网地址和主机地址
  3. IP地址的分类
  4. 网段表示方法
  5. 私有地址

目前只考虑 IPv4 的情况.

1. 基本概念

IP 地址是一个 4 字节(32 位)的数据, 通常按每字节分成 4 段, 表示成类似于 192.168.0.1 的格式, 写成 16 进制是 C0.A8.00.01 , 二进制是: 11000000.10101000.00000000.00000001 .

- 第一节 第二节 第三节 第四节 写出来
10 进制 192 168 0 1 192.168.0.1
16 进制 C0 A8 00 1 C0.A8.00.01
2 进制 11000000 10101000 00000000 00000001 -

在这些地址当中, 全为 1 的为 广播地址 , 用于向所在网络的所有主机发送报文.

- 第一节 第二节 第三节 第四节 写出来
10 进制 255 255 255 255 255.255.255.255
16 进制 FF FF FF FF FF.FF.FF.FF
2 进制 11111111 11111111 11111111 11111111 -

全为 0 的为 本网络地址 .

- 第一节 第二节 第三节 第四节 写出来
10 进制 0 0 0 0 0.0.0.0
16 进制 00 00 00 00 00.00.00.00
2 进制 00000000 00000000 00000000 00000000 -

第一节为 127 的为 回送地址 , 其中的主机地址, 表示主机自己(无网络传输).

- 第一节 第二节 第三节 第四节 写出来
10 进制 127 0 0 1 127.0.0.1
16 进制 7F 00 00 01 7F.00.00.01
2 进制 01111111 00000000 00000000 00000001 -

127.0.0.0 是表示的网地址, 不是主机地址.

2. 网地址和主机地址

IP 地址当中, 有一层逻辑的划分, 就是 网地址主机地址 . 前面一部分 N 位表示一个网, 后面剩下的表示网中的一台主机.

比如: 192.168.0.1 , 如果你把 192 看成是网地址, 那么剩下的 168.0.1 就是主机地址. 你把 192.168 规定是网地址, 那么剩下的 0.1 就是主机地址. 这个划分是人为定的规则, 表示这个规则的, 是 子网掩码 , 用以标示出 网地址 . 比如如果你是前两节为子网, 对应的子网掩码就是 255.255.0.0 .

- 第一节 第二节 第三节 第四节 写出来
IP 10 进制 192 168 0 1 192.168.0.1
IP 2 进制 11000000 10101000 00000000 00000001 -
掩码 10 进制 255 255 0 0 255.255.0.0
掩码 2 进制 11111111 11111111 00000000 00000000 -
IP & 掩码 11000000 10101000 00000000 00000000 192.168.0.0

IP & 掩码 得到的就是网地址. 网段 IP 的第一个地址是网地址 , 网段 IP 的最后一个地址是广播地址 , 这两个地址是特殊的, 不分配给主机.

对于 IP , 192.168.0.1 , 如果掩码是 255.255.0.0 , 则它对应的网地址是 192.168.0.0 , 此网的广播地址是 192.168.255.255 .

对于 192.168.0.1 , 如果掩码是 255.255.255.0 , 则它对应的网地址是 192.168.0.0 , 此网的广播地址是 192.168.0.255 .

把一个 IP 中的哪部分定义成网地址, 哪部分定义成主机地址, 有一个影响, 就是在 IP 地址中所能表示的 网数量主机数量 是不同的. 直观地不考虑一些特殊地址的情况下, IP 一共只有 32 位, 你用 8 位表示网, 那剩下的 24 位表示主机. 这种情况下, 网数量最大是 511 ( 2 ^ 9-1 ) , 主机数量最大有 33554431 ( 2 ^ 25 - 1 ) .

3. IP地址的分类

前面讲了 网地址主机地址 的概念, 按 网地址 所占位数的不同, IP 地址整个被分成了 A, B, C, D, E 五类. D, E 类特殊, 我们主机会被分配到的地址是 A, B, C 类中的一种.

每类地址在其 网地址 部分都有额外格式规定, 以显示地表明这是哪一类的地址. 否则就会出现前面我们对于 192.168.0.1 这个地址的看法问题, 网地址 占几位是我们自己定的.

一共有 5 类地址, 直观地, 2 ^ 2 = 4, 2 ^ 3 = 8, 我们使用三位地址就可以区分它们了, 000, 001, 010, 011, 100. 但是这种平均分的方式, 对于 A 类地址这种, 消耗太大, 它一共网地址就只有 8 位可用, 标示就占去了 3 位, 肯定尴尬啊. 于是就用上了 进位两分 的方式.

种类 第一位 第二位 第三位 第四位
A 0 - - -
B 1 0 - -
C 1 1 0 -
D 1 1 1 0
E 1 1 1 1

这种分法不是最有效率的, E 类要 4 位才能区分. 但是却是对短的网地址分类更有利, A 类只占用了一位网地址空间.

每类 IP 对网地址的表示定义.

分类 网地址位数 主机地址位数 十进制 二进制
A 8 24 10.10.0.1 00001010.00001010.00000000.00000001
B 16 16 172.16.0.1 10101100.00010000.00000000.00000001
C 24 8 192.168.0.1 11000000.10101000.00000000.00000001

3.1. A类地址

A 类地址使用 8 位空间表示网地址, 24 位表示主机地址. 网地址以 0 起始作为标示. 剩下能用来网地址有 7 位空间. 所以 A 类地址的网数总数量上能有 2 ^ 7 = 128 个.

A 类地址的 128 个网中, 有两个是特殊的, 0.0.0.00 网, 127.0.0.1127 网. 所以实际可用的 A 类地址中, 有 126 个网.

A 类地址有 24 位的主机地址空间, 单网下的主机数量有 2 ^ 24 = 16777216 个, 除去第一个表示网本身的地址, 和最后一个用于广播的地址, 可用的主机地址有 16777214 个.

3.2. B类地址

B 类地址使用 16 位的网地址, 16 位的主机地址. 网地址以 10 起始作为标示. 剩下 14 位的网地址空间. B 类地址的网的总数量有 2 ^ 14 = 16384 个. 主机空间 16 位, 则单网的主机数量最多有 2 ^ 16 - 2 = 65534 个.

3.3. C类地址

C 类地址使用 24 位网地址, 8 位的主机地址. 网地址以 110 起始作为标示. 剩下 21 位网地址空间. C 类地址的网的总数量有 2 ^ 21 = 2097152 个. 主机空间 8 位, 单网主机数量 2 ^ 8 - 2 = 254 个.

3.4. D类和E类

D 类地址用于多点广播, 用于一次寻址一组主机.

E 类地址目前保留.

4. 网段表示方法

有时我们需要表示一段的 IP , 直观地, 可能会想到的形式是, 192.168.0.* , 表示的网段是 192.168.0.0 ~ 192.168.0.255 . 但是这种在十进制形式上表示的做法, 和 IP 的数据本质是有一些不匹配的. IP 的数据是 32 位二进制位, 我们只是为了方便可以写成 4 节十进制的形式. 但是在实际使用中, 我们自己规划的网络环境下, 网地址的位数不一定就是 8 的整数倍. 如果我们希望表示的 IP 段是, 前 6 位是 011111 , 后 26 位随意, 那按前面的 * 的形式就无能为力了.

于是, 我们使用 124.0.0.0/6 的形式来表示 "固定前 6 位". 这种情况通常是前 6 位作为网地址(和 IP 是哪类没关系).

- 第一节 第二节 第三节 第四节 写出来
第一个地址 01111100 00000000 00000000 00000000 124.0.0.0
最后一个地址 01111111 11111111 11111111 11111111 127.255.255.255

5. 私有地址

IP 地址是有限的, 而且每个设备很多时候都是需要一个 IP 地址的. 但是, 并不是所有设备都需要接入互联网. 为了规范 IP 地址的使用, 使那些私网自己分配的 IP 地址不和那些互联网公网 IP 地址冲突, 在 IP 地址的协议上, 每类 IP 中都预留了一段地址供私网自己使用, 这些地址不进行公开的分配.

这三段地址是:

类型 网段 范围
A 10.0.0.0/8 10.0.0.0 ~ 10.255.255.255
B 172.16.255.255/12 172.16.0.0 ~ 172.31.255.255
C 192.168.0.0/16 192.168.0.0 ~ 192.168.255.255
评论
©2010-2016 zouyesheng.com All rights reserved. Powered by GitHub , txt2tags , MathJax