IP 地址详解(IPv4IPv6)

Posted 鱼丸丶粗面

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了IP 地址详解(IPv4IPv6)相关的知识,希望对你有一定的参考价值。

文章目录

1 概述

  • IP地址:Internet Protocol Address(互联网协议地址网际协议地址
  • 为互联网上每一个网络和每一台主机分配一个 逻辑地址,以此来屏蔽 物理地址 的差异

2 IP 地址结构

2.1 IPv4 地址结构

  • 地址位数及表示方法:IPv4 地址用 32位二进制数 来表示一台网络设备,为了方便记忆,常用 “点分十进制” 的形式表示
  • 地址数量不够:IPv4 地址最多支持 2^32 ≈ 43亿 个网络设备同时接入,这个数量在最初是够用的,但随着互联网行业的发展,这个数量就不够了。
  • 两种解决办法:
    • NAT 协议(Network Address Translation,网络地址转换):IP + 端口号,实现 ip 复用
    • 迁移至 IPv6:直接扩充至 128位二进制2^128 ≈ 世间万物

2.2 IPv6 地址结构

  • IPv6 的地址长度为 128 位,是 IPv4 地址长度的 4 倍。于是 IPv4 点分十进制格式不再适用,采用十六进制表示,有 3 种表示方法
  • 一、冒分十六进制表示法
    • 格式:X:X:X:X:X:X:X:X,每个 X 表示 16 个二进制数(128 = 16 * 8)
    • 注意:每个 X 的 前导 0 是可以省略的,例如:
    • 2001 : 0DB8 : 0000 : 0023 : 0008 : 0800 : 200C : 417A →
    • 2001 : DB8 : 0 : 23 : 8 : 800 : 200C : 417A
  • 二、0 位压缩表示法
    • 连续很长 的一段 0 压缩为 "::"。且为保证地址解析的唯一性,"::" 只能 出现一次,例如:
    • FF01 : 0 : 0 : 0 : 0 : 0 : 0 : 1101 → FF01 :: 1101
    • 0 : 0 : 0 : 0 : 0 : 0 : 0 : 1 → ::1
    • 0 : 0 : 0 : 0 : 0 : 0 : 0 : 0::
  • 三、内嵌 IPv4 地址表示法
    • 为了实现 IPv4-IPv6 互通,IPv4 地址会嵌入 IPv6 地址中,前 96 位采用 冒分十六进制 表示最后 32 位 依然采用 IPv4 的 点分十进制
    • 格式:X:X:X:X:X:X:d.d.d.d,例如:
    • ::192.168.0.1::FFFF:192.168.0.1

3 IP 地址管理

3.1 地址分类策略:A、B、C、D、E 类

类别IP 地址范围最大主机数私有 IP 地址范围
A0.0.0.0 ~ 127.255.255.2552^24 - 2 = 1677721410.0.0.0 ~ 10.255.255.255
B128.0.0.0 ~ 191.255.255.2552^16 - 2 = 65534172.16.0.0 ~ 172.31.255.255
C192.0.0.0 ~ 233.255.255.2552^8 - 2 = 254192.168.0.0 ~ 192.168.255.255

IP 地址范围:分类号 + (最小:网络位全为 0,最大:网络位全为 1),例如
A 类:分类号 = 0,最小 00000000 = 0,最大 01111111 = 127
B 类:分类号 = 10,最小 10000000 = 128,最大 10111111 = 191
C 类:分类号 = 110,最小 11000000 = 192,最大 11011111 = 223
其它:0 = 00000000(8 个 0),255 = 11111111(8 个 1)

主机数 为啥要 减少 2 ?因为:在每个网络中,有 2 个 IP 地址不能被分配,留作他用,如:
主机号全 0:指定某个网络本身
主机号全 1:指定某个网络的所有主机(用于广播)

3.2 无分类策略:CIDR

  • 无分类策略的实现:CIDR 协议(Classless Inter-Domain Routing,无类别域间路由
  • 无分类策略方案:
    • 32 位 IP 地址被使用者 按需任意划分 为两部分,同样,前面是 网络号,后面是 主机号
    • 提高了 IP 地址的分配效率,解决了 IP 地址资源紧张的局面
  • 无分类策略地址划分
    • 对于人类:采用 a.b.c.d/n 的形式表示,其中 n 表示 前 n 位为网络号
    • 对于机器:采用 子网掩码 的形式表示,网络位均为 1,主机位均为 0。因此,将子网掩码与 IP 地址 相与,即可得到 IP 地址的网络号

参数取值说明
可用地址个数2542^8 - 2(特定地址)
子网掩码255.255.255.0简称 24,详见下列子网掩码表
网络号10.100.122.0特定地址,不做分配
第一个可用地址10.10.122.1
最后可用地址10.100.122.254
广播地址10.100.122.255特定地址,不做分配

默认子网掩码表:

类别默认子网掩码子网掩码简写二进制表示
A 类255.0.0.08 位11111111 00000000 00000000 00000000
B 类255.255.0.016 位11111111 11111111 00000000 00000000
C 类255.255.255.024 位11111111 11111111 11111111 00000000

3.3 地址分类策略 和 无分类策略 相结合

  • 由于分类策略已经使用了很长时间,很难直接推倒之前的 ABCDE类网划分
  • 可行的做法是将两种分类策略融合在一起工作,而这就是我们今天使用 IP 地址的策略
  • 明显的区别:灵活划分若干子网

以上是关于IP 地址详解(IPv4IPv6)的主要内容,如果未能解决你的问题,请参考以下文章

leetcode 93 Restore IP Addresses详解

leetcode 93 Restore IP Addresses详解

MTR命令详解

使用 C# 从 IP 地址中删除前导零

java 使用正则表达示判断是不是合法的IPV4IPV6地址

计算机基础——计算机网络