IP地址

IP地址（IP Address，全称Internet Protocol Address），又译为网际协议地址、网际网路协定位址。是网际协议中用于标识发送或接收数据报的设备的一串数字。

**概述**
当设备连接网络，设备将被分配一个IP地址，用作标识。通过IP地址，设备间可以互相通讯，如果没有IP地址，我们将无法知道哪个设备是发送方，无法知道哪个是接收方。 IP地址有两个主要功能：标识设备或网络和寻址。
常见的IP位址分为IPv4与IPv6两大类，IP地址由一串数字组成。IPv4为32位长，通常书写时以四组十进制数字组成，并以点分隔，如：172.16.254.1 ；IPv6为128位长，通常书写时以八组十六进制数字组成，以冒号分割，如：2001:db8:0:1234:0:567:8:1。

**功能**
IP地址有两个主要的功能：
# 标识主机：更具体地说，标识其网络接口，并且提供主机在网络中的位置。
# 网络寻址：网际协议（缩写：IP）的一个重要机制就是网络寻址（internet address）。该功能的目的是将数据报从一个网络模块送到目的地。在发送的整个过程，IP地址（address）充当着目的地的位置，域名（name）意味着我们要找什幺，路由（route）代表着如何到达目的地的这个过程。 每个IP数据包的标头包含了发送主机的IP地址和目的主机的IP地址。

**历史**
1981年，IETF定义了32位IP地址的IPv4。随着互联网的发展，网络位置（IPv4）渐渐被消耗殆尽，虽然当前的网络地址转换及无类别域间路由等技术可延缓网络位置（IPv4）匮乏之现象，但为求解决根本问题，从1990年开始，互联网工程工作小组开始规划IPv4的下一代协议，除要解决即将遇到的IP地址短缺问题外，还要发展更多的扩展，为此IETF小组创建IPng，以让后续工作顺利进行。1994年，各IPng领域的代表们于多伦多举办的IETF会议中，正式提议IPv6发展计划，该提议直到同年的11月17日才被认可，并于1996年8月10日成为IETF的草案标准，最终IPv6在1998年12月由互联网工程工作小组以互联网标准规范（）的方式正式公布。
IP地址空间 是由互联网号码分配局（英语：Internet Assigned Numbers Authority，简称：IANA）以及其他5个区域互联网注册管理机构（英语：Regional Internet Registry，简称：RIR）在其指定区域内分配给本地Internet注册表，例如网络服务提供商（英语：Internet Service Providers，简称：ISP）和其他最终用户。IPv4地址被IANA以块为单位分布给RIR，每个地址块大约为1680万个地址，但自2011年以来在IANA级别已用尽。在非洲，RIR中只有1个RIR仍然可以给当地分配。一些IPv4地址是为专用网络保留的，并不是全局唯一的。

**IP版本**
当今，Internet上普遍使用两种版本的Internet协议。Internet协议的原始版本于1983年在ARPANET（Internet的前身，中文：阿帕网）中首次部署，其版本是Internet协议版本4（IPv4）.
直到1990年代初，可供分配给Internet服务器提供商（ISP）和最终用户组织的IPv4地址空间迅速的消耗殆尽，促使Internet工程任务组（IETF）探索新的技术以扩展在Internet上的寻址能力。结果是对Internet协议进行重新设计，该协议最终在1995年被称为Internet协议版本6（IPv6）。IPv6技术处于各个测试阶段，一直到2000年代中期开始商业生产部署。
今天，这两个版本的Internet协议（网际协议）在同时使用。除了其他的技术性更改之外，每个版本对地址的格式定义都不同。由于IPv4的历史悠久，通用术语IP地址仍通常指IPv4定义的地址（即IPv4地址）。IPv4和IPv6之间的版本顺序差距是由1979年将版本5分配给实验性Internet流协议而引发的，但是从未将其称之为IPv5。
虽然定义了其他的协议版本，版本1（v1）到版本9（v9），但是只有v4和v6得到了广泛的使用，v1和v2是1974年和1977年的TCP协议（传输控制协议）的名称，因为当时IP规范是分开的。v3于1978年定义，而v3.1是TCP与IP分离的第一个版本。v6是几个建议的版本的集合，其中包括v6 简单Internet协议，v7 TP/IX：下一个互联网，v8 PIP（P Internet协议）和v9 TUBA（TCP&UDP和大的地址）。

**子网**
IP网络可以在IPv4和IPv6中划分子网。为此，将IP地址识别成由两部分组成：网络前缀（高位）和其余的位（称为其余字段，主机标识符或者接口标识符（IPv6）），用于网络内的主机编号。子网掩码（subnet mask）或无类别域间路由（英语：Classless Inter-Domain Routing，简称：CIDR）表示法确定了IP地址如何分为网络部分和主机部分。
子网掩码一词仅用于IPv4地址中。但是，两个版本的IP地址都使用CIDR概念和符号。在此，在IP地址后面加斜杠和用于标识网络部分的位数（十进制），也称路由前缀。例如：IPv4地址及其子网掩码分别可以是 192.0.2.1 和 255.255.255.0 。因为IP地址的前24位表示网络和子网，所以相同的IP地址和子网的CIDR表示法为192.0.2.1/24。

**IPv4**
IP地址由32位二进制数组成，为便于使用，常以XXX.XXX.XXX.XXX形式表现，每组XXX代表小于或等于255的10进制数，该表示方法称为点分十进制。例如维基媒体的一个IP位址是208.80.152.2。位址可分为A、B、C、D、E五大类，其中E类属于特殊保留地址。
IP地址是唯一的。目前IPv4技术可能使用的IP地址最多可有4,294,967,296个（即232）。看上去像是很难会用尽，但由于早期编码和分配上的问题，很多区域的编码实际上被空出或不能使用。加上互联网的普及，使大部分家庭都至少有一部电脑，连同公司的电脑，以及连接网络的各种设备都消耗大量IPv4地址资源。
随着互联网的快速成长，IPv4的42亿个地址最终于2011年2月3日用尽。相应的科研组织已研究出128位的IPv6，其IP位址数量最高可达3.402823669 × 1038个，届时每个人家居中的每件电器，每件物件，甚至地球上每一粒沙子都可以拥有自己的IP位址。
在A类、B类、C类IP地址中，如果主机号是全1，那幺这个地址为直接广播地址，它是用来使路由器将一个分组以广播形式发送给特定网络上的所有主机。32位全为1的IP地址「255.255.255.255」为受限广播地址（"limited broadcast" destination address），用来将一个分组以广播方式发送给本网络中的所有主机，路由器则阻挡该分组通过，将其广播功能限制在本网内部。
说明：D类与E类IPv4地址不区分网络地址与主机地址

**子网划分的历史**
在Internet协议开发的早期阶段，网络号始终是最高阶的八位元组（最高且有效的八位）。由于此方法仅允许256个网络使用，因此很快被证明这样是不够的，因为所开发的其他网络都独立于已经由网络号指定的现有网络。1981年，随着分类网络体系结构的引入，对寻址规范进行了修订。
一流的网络设计允许进行大量的单独网络分配和细颗粒的子网设计。IP地址的最高的有效的八位元组的前三位被定义为地址的类别位。为通用单播寻址定义了三个类别（A类、B类和C类）。根据派生的类，网络标识基于整个地址的八位字节边界段。每个类别在网络标识符中依次使用其他八位元组，从而减少高阶类别（B类和C类）中的主机数量。上表概述了这个过时的系统。
分类网络的设计在Internet启用阶段就达到了这个目的，但是对于20世纪90年代的网络的迅速发展，它缺乏可扩展性。地址空间的类系统在1993年被无类别域间路由（CIDR）取代。CIDR基于可变长子网掩码（VLSM），允许基于任意长度前缀来分配以及路由。当今，分类网络的残余概念仅仅在有限的范围内用于某些网络的软件和硬件（例如子网掩码）的默认配置参数，以及用于网络管理员们讨论中使用的术语。

**IPv6**

**IP编址**
从IPv4到IPv6最显着的变化就是网络地址的长度。RFC 2373和RFC 2374定义的IP地址，就像下面章节所描述的，有128位长；IP地址的表达形式，一般采用32个十六进制数。
IP中可能的地址有2128≈3.4×1038个，具体数量为340,282,366,920,938,463,463,374,607,431,768,211,456（即1632)，因为32位地址每位可以取16个不同的值。
在很多场合，IP地址由两个逻辑部分组成：一个64位的网络前缀和一个64位的主机地址，主机地址通常根据物理地址自动生成，叫做EUI-64（或者64-位扩展唯一标识）。

**私有地址**
就像IPv4为专用的网络保留的地址一样，在IPv6中也有被预留的地址。在IPv6中，这些地址被称为唯一本地地址（ULA）。路由前缀：fc00::/7 就是为这个块保留的，且被分为2个 /8 块，都具有不同的隐藏策略。这些地址包括一个40位的伪随机数，如果站点合并或者数据包被错误的路由，则可以将地址冲突的风险降到最低。
以fe80::开头的地址，我们称之为本地链路地址，将这类地址分配给链路上的通信接口，这些地址由操作系统为每个接口自动生成。这为在链路上的所有的IPv6的主机之间提供了即时通信。此功能适用于IPv6网络中的管理的较低的层，例如邻居发现协议。
专用地址前缀和本地链路地址不得在公共互联网中进行路由。

**IP地址的分配**
IP地址是在主机加入网络时动态分配的，或是通过主机硬件/软件的配置永久分配给主机的。永久性的配置也称为使用静态IP地址。相反，在每次重新启动时分配的IP地址，称为使用动态IP地址。
动态IP地址是通过网络使用动态主机配置协议（DHCP）分配的。DHCP是分配地址最常用的技术。它避免了为网络上的每台设备分配特定静态地址的管理负担。如果某些设备在特定的时间处于联机状态，它还允许设备共享网络上有限的地址空间。通常，在现代的台式计算机操作系统中，默认情况下会启用动态IP地址分配。
DHCP分配的地址于租约相关联，并且一般都是具有有效期。如果主机在到期前未能续订租约，则可以将该地址分配给其他设备中的一台设备。某些DHCP实现会在主机每次加入网络时根据其MAC地址尝试将相同的IP地址重新分配给该主机。网络管理员可以通过基于MAC地址分配特定的IP地址来配置DHCP。
DHCP并不是唯一一种动态IP地址分配技术。Bootstrap协议是DHCP的类似协议和前身。拨号和某些宽带网络使用点对点协议的动态地址功能。
用于网络设施的计算机和设备（例如：路由器或者邮件服务器等），通常配置为静态地址分配。
在动态或者静态地址分配失效的情况下，操作系统可以将无状态地址自动配置，将链接本地的地址分配给主机。

**地址转换**
NAT设备会将专用网络上的不同IP地址映射为公共互联网上的不同的TCP或者UDP的端口号。在家用网络中，NAT功能通常是在家庭网络的网关中实现的。在这种情况下，连接到网关的计算机具有专用的IP地址，并且网关会在外部接口上进行Internet通信。内部的计算机共享这一个公共的IP地址。

**参见**
 RFC 791- IP协议（网际协议）

**参考资料**

**参见**
分类网络- ipip.netdate=20180617112433  通常IP库较新- IP2Location LITEdate=20200912083057  通用国际版IP库- IP138date=20200922195206