IP地址

IPv4

IPv4是目前广泛使用的IP地址版本,它由四个十进制数(0-255之间)组成,以点分十进制表示,例如192.168.0.1。IPv4的地址空间有限,因此随着互联网的发展,IPv6被引入作为下一代IP地址。

编址方法经历了三种:

  1. 分类的IP地址:最基本的编址方法
  2. 子网划分:对最基本的编址方法的改进
  3. 构成超网:新的无分类编址方法

分类的IP地址

特殊IP地址:

  1. 广播地址
  • 一个子网内的所有网络接口都能收到此广播消息
  • 直接广播:带目标网络号,主机地址二进制全1的地址
  • 有限广播:网络号和主机地址二进制全为1的地址(即255.255.255.255)
  1. 组播地址
  • 可实现跨网段的组播(多播)地址。
  • D类地址,主要用于视频广播和视频点播系统
  • 地址范围从 224.0.0.0 到 239.255.255.255
  • 224.0.0.1 指所有主机,224.0.0.2 指所有路由器
  1. 环回地址
  • 网络地址是 127 的 IP 地址成为环回地址或回送地址,主要用于对本地回路测试及实现本地机器进程间的通信。
  • 在实际中经常使用的环回地址是 127.0.0.1 ,它还有一个别名叫做 localhost。
  1. 私有地址
  • IP 地址是由网络信息中心统一管理并分配给提出注册申请的组织机构的,这类 IP 地址成为公有地址。
  • 而私有地址属于非注册地址,专门为组织机构内部网络使用。

特殊地址汇总:

网络地址全为0(网络号除了前面固定位数的剩下位数,例如A类除了第1位0还有7位)是不为指派网络,即为不使用的。

子网划分

子网划分就是将原来的两级IP地址进一步划分为三级IP地址,即:**{<网络地址/网络号>,<子网地址/子网号>,<主机地址/主机号>}**。参考如下图,将C类的两级IP地址划分为三级IP地址。

利用子网掩码进行划分:子网掩码将某个IP地址划分成网络地址和主机地址两部分,可以用来判断任意两台主机的IP地址是否属于同一子网络。具体来说就是两台计算机各自的IP地址与子网掩码进行“与”运算后,如果得出的结果是相同的,则说明这两台计算机是处于同一个子网络上的,可以进行直接的通信。

在实际应用中,我们会遇到这样的IP地址:

  • IP地址:192.168.1.1 子网掩码:255.255.255.0
  • IP地址:192.168.1.2 子网掩码:255.255.255.0

可以直接判断出,他们网络地址都为192.168.1.0,属于同一子网网段。

无分类编址 CIDR(构造超网)

子网的划分有效地减少了网络中浪费的IP地址,但是仍然存在一些问题。比如某公司需要2000个地址,分配一个B类IP地址,那可就太浪费了,分配一个C类IP地址,又不够用。那这个问题要怎么解决呢?

无分类编址 CIDR 消除了传统ABC类及子网划分的概念,使网段的划分更加灵活。
CIDR记法(斜线记法)表示IP地址:{<网络前缀><主机地址/主机号>}/网络前缀占位数。

在上述公司案例中,需要8个C类地址,这8个C类地址可以构成一个地址块,分配这个CIDR地址块给该公司。只需要11位表示主机地址,21位表示网络前缀。则子网掩码表示为11111111.11111111.11111000.00000000

IPv6

现在使用的 IPv4 采用 32 位地址长度,只有大约 43 亿个地址,估计在未来的若干年间将被分配完毕。

IPv6 地址结构

128 位的 IPv6 地址由 64 位网络地址和 64 位主机地址组成。其中,64 位的网络地址又分为 48 位的全球网络标识符和 16 位的本地子网标识符:

IPv6 地址表示方法

  • IPv6 地址采用十六进制的表示方法,共 128 位,分 8 组表示,每组 16 位,每组表示 4 个十六进制数。
  • 各组之间用 “ : ”号隔开,例如:1080:0:0:0:8:800:200C:417A
  • 在 IPv6 地址段中有时会出现连续的机组0,为了简化书写,这些 0 可以用“ : : ”代替,但一个地址中只能出现一次“ : : ”
1080:0:0:0:8:800:200C:417A 1080::8:800:200C:417A
FF01:0:0:101:0:0:1:101 FF01::101:0:0:1:101 或 FF01:0:0:101::1:101
0:0:0:0:0:0:0:1 ::1

IPv6 包含 IPv4 地址:在某些情况下,IPv4 地址需要包含在 IPv6 地址中,这时,IPv6 的最后两组用现在习惯使用的 IPv4 地址的十进制表示法,前6组用 IPv6表示。例如:IPv4地址 61.1.133.1 包含在 IPv6地址中表示为 0:0:0:0:0:0:61.1.133.1 或者 ::61.1.133.1。

IPv4 vs IPv6

鸣谢

关于ipv4和ipv6讲解最好的一篇文章
网络知识一箩筐:IP地址划分的那些知识点
什么是IPv6?IPv4 vs IPv6 - 华为
计算机网络(第7版)