IP(v4)地址
组成
IP(v4公网)地址就是给互联网上的每一台主机(或路由器)的每一个接口分配一个在全世界范围内是唯一的32位的标识符。IP地址的结构使我们可以在互联网上很方便地进行寻址。
为方便书写表示,一般采用点分十进制表示IP(v4)地址
分类编址
A、B、C类为单播地址
IP::={<网络号>:<主机号>}1
分类范围
网络类别 | 起始地址 | 终止地址 |
---|---|---|
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 |
分类IP地址的可指派范围
网络类别 | 最大可指派的网络数 | 第一个可指派的网络号 | 最后一个可指派的网络号 | 每个网络中的最大主机数 |
---|---|---|---|---|
A | 126(2^7-2) 2 | 1 | 126 | 16777214(2^24-2) 3 |
B | 16383(2^14-1)4 | 128.1 | 191.255 | 65534(2^16-2)5 |
C | 2097151(2^21-1) 6 | 192.0.1 | 223.255.255 | 254(2^8-2) |
一般不使用的特殊ip地址
网络号 | 主机号 | 源地址使用 | 目的地址使用 | 代表的意思 |
---|---|---|---|---|
0 | 0 | 可以 | 不可 | 在本网络上的本主机 |
0 | host-id | 可以 | 不可 | 在本网络上的主机号为host-id的主机 |
全1 | 全1 | 不可 | 可以 | 只在本网络上进行广播(各路由器均不转发) |
net-id | 全1 | 不可 | 可以 | 对net-id上的所有主机进行广播 |
划分子网
- 一个拥有许多物理网络的单位,可将所属的物理网络划分为若干个子网(subnet),划分子网纯属一个单位内部的事情。本单位以外的网络看不见这个网络是由多少个子网组成,因为这个单位对外仍然表现为一个网络。
- 划分子网的方法是从网络的主机号借用若干位作为子网号(subnet-id),当然主机号也就相应减少了同样的位数。于是两级IP地址在本单位内部就变成了三级IP地址:网络号、子网号、主机号。也可以用以下记法来表示:
IP地址 ::= {<网络号>,<子网号>,<主机号>}
子网掩码
使用子网掩码的好处:不管网络有没有划分子网,只要把子网掩码和IP地址进行逐位的“与”运算,就可得到网络地址。
划分子网是为了便于查找路由表。互联网标准规定:所有的网络都必须使用子网掩码,同时在路由器的路由表中必须有子网掩码这一栏。如果一个网络不划分子网,那么该网络的子网掩码就使用默认子网掩码。
子网掩码是一个网络或一个子网的重要属性。在RFC950成为互联网的正式标准后,路由器在和相邻路由器交换路由信息时,必须把自己所在网络(或子网)的子网掩码告诉相邻路由器。在路由器的路由表中的每一个项目,除了要给出目的网络地址外,还必须同时给出该网络的子网掩码。若一个路由器在两个子网上就拥有两个网络地址和两个子网掩码。
以一个B类地址为例,说明可以有多少种子网划分的方法。在采用固定长度子网时,所划分的所有子网的子网掩码都是相同的。(见下表)7
子网号的位数 | 子网掩码 | 子网数 | 每个子网的主机数 |
---|---|---|---|
2 | 255.255.192.0 | 4 | 16382(2^14-2) |
3 | 255.255.224.0 | 8 | 8190(2^13-2) |
4 | 255.255.240.0 | 16 | 4096(2^12-2) |
5 | 255.255.248.0 | 32 | 2046(2^11-2) |
6 | 255.255.252.0 | 64 | 1022(2^10-2) |
7 | 255.255.254.0 | 128 | 510(2^9-2) |
8 | 255.255.255.0 | 256 | 254(2^8-2) |
9 | 255.255.255.128 | 512 | 126(2^7-2) |
10 | 255.255.255.192 | 1024 | 62(2^6-2) |
11 | 255.255.255.224 | 2048 | 30(2^5-2) |
12 | 255.255.255.240 | 4096 | 14(2^4-2) |
13 | 255.255.255.248 | 8192 | 6(2^3-2) |
14 | 255.255.255.252 | 16384 | 2(2^2-2) |
例如IP:141.14.72.14,子网掩码:255.255.192.0。求网络地址的过程如下:
注意:上图中的b、d是为了方便计算,在表示IP地址时不可一部分使用点分十进制一部分使用二进制
无分类编址(构造超网)
后来为了进一步提高IP地址资源利用率,开始广泛采用无分类编址方法——无分类域间路由选择CIDR(Classless Inter-Domain Routing,CIDR的读音是“sider”)取消了对IP地址的分类以及划分子网的概念。
CIDR把32位的IP地址划分为前后两个部分。前面部分是”网络前缀“(network-prefix),用来指明网络,后面部分则用来指明主机。因此CIDR使IP地址从三级编址(使用子网掩码)又回到了两级编址,但这已是无分类的两级编址。
IP ::= {<网络前缀>,<主机号>}
CIDR还是用“斜线记法”,或称为CIDR记法,即在IP地址后面加上斜线“/”,然后写上网络前缀所占的位数。
“::=” 表示“定义为” ↩︎
减2的原因:第一,IP地址中的全0表示“这个(this)”。网络号字段为全0的IP地址是个保留地址,意思是“本网络”;第二,网络号为127(即01111111)保留作为本地软件的环回测试(loopback test)本主机的进程之间的通信之用。 ↩︎
减2的原因:全0的主机号字段表示该IP地址是“本主机”所连接到的单个网络地址(例如,一主机的IP地址为5.6.7.8,则该主机所在的网络地址就是5.0.0.0),而全1表示“所有的(all)”,因此全1的主机号字段表示该网络上的所有主机 ↩︎
因为网络号字段后面的14位无论怎样取值也不可能出现使整个2字节网络号字段称为全0或全1,因此这里不存在网络总数减2的问题。但实际上B类网络地址128.0.0.0是不指派的(曾经是,但目前已经被使用了),而可以指派的B类最小网络地址是128.1.0.0。因此B类地址可指派的网络数为2^14-1。 ↩︎
同上,要扣除全0和全1的主机号。 ↩︎
192.168.0.0也是不指派的 ↩︎
此处划分的子网数是按照子网号可全为0和全1计算的,而且RFC950中并未规定子网号不能全为0和1,只是在分配给主机的时候,全0的是网络地址,全1的是广播地址,这两个不能分配给主机。所以计算划分子网数的时候不用-2,计算可用主机时需要-2 ↩︎