一、IP地址

1、IP地址分为A、B、C、D、E五类,每一类有不同的划分规则

地址标准化库 python_IP

2、A、B、C三类IP地址的组成

地址标准化库 python_IP_02

3、有类IP地址

为标准IP地址,分为5类,IP地址 = 网络号 + 主机号,A、B、C类是我们用于分配给一般主机使用的;D、E则不作一般用途:D类用做组播地址(IP数据报三种传输方式:单播:一对一、广播一对多、组播一对列),E类作为科研保留网络。

4、无类地址(无类别域间路由CIDR)

CIDR消除了有类的界限,让子网掩码的三层结构回到两层,分配IP地址的时候不再以类别来分,而是按照可变长的地址块来分配,提高 IPv4 地址空间分配效率

无类地址格式: a.b.c.d / x, 其中x为前缀长度,表示网络号的位数

CIDR还可以提高路由效率:将多个子网聚合为一个较大的子网,构造超网(supernetting)。有效减少了路由器中路由表项,由此提高了路由效率

二、子网掩码

1、IP地址和子网掩码作“逻辑与”运算得到网络地址

  • 0和任何数相与都等于0
  • 1和任何数相与都等于任何数本身

地址标准化库 python_子网_03

2、IP地址中的特殊网络地址

地址标准化库 python_IP_04

3、A、B、C三类地址的默认子网掩码

  • A类:255.0.0.0
  • B类:255.255.0.0
  • C类:255.255.255.0

三、子网划分的原理

1、子网划分的理解

公式为:

子网数=2n,其中n为子网部分位数(主机借位数)
有效主机数=2N-2,其中N为主机部分位数(剩余主机位数)
例如:将192.168.1.0/24划分为4个小网段

解题思路为:

  • 1、首先判断此IP地址是C类地址,网络部分为24位,划分为4个小网段,即子网数=4=22,n=2,需要向主机部分借2位,为26位
  • 2、将192.168.1.0转为二进制11000000.10101000.00000001.00000000
  • 3、需要借2位,子网号分别为00、01、10、11,对应二进制转十进制可得出四个可用网段的IP地址,即为子网地址
  • 4、子网掩码即为网络部分全为1,即借的两位也变为1,转十进制即可得出子网掩码
  • 5、广播地址即为=下个子网地址的主机数-1
  • 6、算出每段可用的IP地址范围,注意:第一个地址(网络地址)和最后一个地址(广播地址)不可用,主机数为127(环回地址)不可用

2、子网划分中一些地址概念的理解

  • 子网的网络地址=从0到255,取每块地址段的首个值
  • 子网的广播地址=下一个子网地址的网络地址-1
  • 子网的可用地址=子网的网络地址到子网的广播地址区间
  • 网络地址主机号部分为0,该地址用于标识网络,不能分配给主机,因此不能作为数据的源地址和目的地址

3、子网划分的应用

1、子网掩码及相关参数对应表

地址标准化库 python_IP_05

2、可变长子网掩码(VLSM)

借用现有网段的主机位的最左边某几位作为子网位,划分出多个子网;VLSM允许把子网划分出更小的子网
- 网络ID→通过借位→主机ID

  • “主机ID”的部分变成→“网络ID”(子网ID)
  • 原来的“网络ID”+“子网ID”=新“网络ID”
  • “子网ID”的长度(n)决定了可以划分子网的数量(2n)

3、子网地址与广播地址的计算方法

  • 写出二进制的子网掩码(将n所在的位也变为1,即借位之后的网络部分全为1)
  • 写出二进制的IP地址
  • 确定子网部分:网络位和主机位之间是子网部分
  • 主机位全是0的地址是其所属子网的网络地址(网络地址可IP地址与子网掩码与运算)
  • 主机位全是1的地址是其所属子网的广播地址(即把网络地址中的主机位全变为1)