The Wayback Machine - https://web.archive.org/web/20221025173617/https://baike.sogou.com/kexue/d10061.htm

IP地址

编辑

互联网协议地址(简称IP地址)是分配给连接到使用互联网协议进行通信的计算机网络的每个设备的数字标签。[1][2]一个IP地址有两个主要功能:主机或网络接口识别和位置寻址。

互联网协议版本4 (IPv4)将一个IP地址定义为32位数字。[2]然而,由于互联网的发展和可用的IPv4地址的耗尽,1995年开发了一个128位数字的新版本IP地址(IPv6),[3]并于1998年12月将其标准化。[4]2017年7月,公布了IPv6的最终定义。[5]事实上,自2000年代中期以来就一直在部署IPv6的使用工作。

通常用以人类能够辨识的符号编写和显示IP地址,例如172.16.254.1(IPv4版本地址)和 2001:db8:0:1234:0:567:8:1(IPv6版本地址)。用CIDR表示法来标记地址路由前缀的大小,方法是在地址后面加上有效位数,例如192.168.1.15/24,与历史上使用子网掩码255.255.255.0的方式相同。

IP地址空间由互联网号码分配局(IANA)和五个区域互联网注册管理机构(RIRs)在全球范围内进行管理。这五个区域注册管理机构在指定区域内负责将IP地址分配给最终用户和本地互联网注册管理机构,如互联网服务提供商。IANA已给每个区域注册管理机构分配了约1680万个IPv4地址。互联网服务提供商或专用网络管理员给连接到其网络的每个设备分配一个IP地址。这种分配可以是静态的(固定的或永久的),也可以是动态的,这取决于他们使用的软件和操作方式。

1 功能编辑

IP地址有两个主要功能。它能识别主机,或者更具体地说是网络接口,还能确定主机在网络中的位置,并据此在主机与网络间建立一条路径。有人认为IP地址的特点是“名字体现了想找的内容,地址表明位置,路由指示如何到达那个位置。”[2]数据包的名称由源主机和目的主机二者的地址组成。

2 IP版本编辑

目前,互联网协议的两个版本应用都很广泛。1983年,互联网的前身阿帕网首次使用互联网协议版本4 (IPv4),这是互联网协议的第一个版本。

20世纪90年代初,给互联网服务提供商和最终用户分配IP地址的速度加快,可用的IPv4地址已所剩不多。这促使国际互联网工程任务组(IETF)探索新技术来扩展互联网寻址能力。探索的结果是重新制定一份互联网协议,也就是后来1995年发布的互联网协议版本6 (IPv6)。[3][4][5]随后, IPv6协议一直处于不同的测试阶段,直到2000年代中期才开始投入商业化运营。

目前,这两个版本的互联网协议都在使用。除了一些其它的技术层面的差异,IPv4和IPv6的地址格式也不相同。由于IPv4在历史上很流行,通常情况下, “IP地址”这一术语现在指的仍然是IPv4地址。IPv4和IPv6之间还有一个IPv5,指的是1979年的互联网流协议,但只是一个实验版本,没有被采用。

3 子网编辑

一些子网的IP地址中既有IPv4地址元素,也有IPv6地址元素。因此,一般认为IP地址由两部分组成:高位中的网络前缀和剩余字段、主机标识符或接口标识符(IPv6)等剩余位,用于对连接到特定网络的主机进行编号。[1] 子网掩码或CIDR表示法决定了如何将IP地址分为网络号和主机号两部分。

“子网掩码”这一术语仅适用于IPv4地址。不过,IPv4和IPv6都采用了CIDR概念和表示法。因此,IP地址后面有一个斜杠,斜杠后面是网络部分的十进制数字位数,也叫做路由前缀。例如,一个IPv4地址及其子网掩码可能分别是192.0.2.1和255.255.255.0。由于地址的前24位表示网络和子网,因此这个IPv4地址及其子网掩码的CIDR表示法就是192.0.2.1/24。

4 IPv4地址编辑

将IPv 4地址从点-十进制分解为二进制值。

IPv4地址由32位数字组成,这意味着最多有4,294,967,296 (232)个IPv4地址。其中的一些地址有特殊用途,如约1800万个专用网络地址、 约2.7亿个多播地址。

通常用“点+十进制数字”的方式表示IPv4地址。IPv4地址由四个十进制数字组成,数字从0到255不等,之间用“.”分隔开,如172.16.254.1。其中,每个数字占据IP地址中的8个字节。某些IPv4地址采用的可能是十六进制、八进制或二进制表示法。

4.1 子网划分历史

互联网协议制定初期,网址由八位二进制数字组成。但是这种方法只能对256个网络进行赋址。于是,随着越来越多的网络投入使用,(该方法)很快就被证明不足以满足需求。1981年引入了分类网络体系结构,并对寻址规范进行了修订。[2]

分类网络体系结构的引入使大量个人网络有了自己的地址,也使子网设计更加精细化。IP地址中,前三位是地址的类别。通用单播寻址有三个类别,分别为A类、B类和C类。根据不同的类别,以整个地址八位字节的边界段为基础进行网络识别。每个类别按照先后顺序使用额外八位字节的网络标识符,减少了高阶类别(B类和C类)网址主机的数量。这种分类体系现已过时,其构成要素详见下表。

史上的分类网络体系结构
类别 前导位 网络号字段字节 其他字段字节 网络数 单个网络的地址数 起始地址 终止地址
A类 0 8 24 128 (27) 16777216 (224) 0.0.0.0 127.255.255.255
B类 10 16 16 16384 (214) 65536 (216) 128.0.0.0 191.255.255.255
C类 110 24 8 2097152 (221) 256 (28) 192.0.0.0 223.255.255.255

互联网使用初期阶段,分类网络体系结构的运用达到了它的目的,但是在20世纪九十年代网络快速发展的背景下,这种结构缺乏可扩展性。1993年,无类域间路由( CIDR)取代了这种对地址空间进行分类的系统。CIDR以可变长度子网掩码( VLSM)为基础,对任意长度前缀进行分配和路由。现在,与分类网络体系结构相关的概念只能以某些网络软件或硬件组件的默认配置参数的形式在个别领域出现,或者以技术术语的形式出现在网络管理员的讨论中。

4.2 私有地址

早期人们设想通过全球端到端连接实现所有互联网主机之间的通信,那时的网络地址设计意在使IP地址在全球范围内具有唯一性。然而,随着专用网络不断发展,而且需要为公共网络预留地址空间,人们发现并非任何时候都需要保证IP地址的唯一性。

诸如仅通过网络传输协议或网络协议相互通信的这种未连接到互联网的计算机的网络地址不需要具备全球唯一性。如今,专用网络得到广泛应用,而且,在必要的时候,可以通过网络地址转换(NAT)的方式连接到互联网。

专用网络的三个不重叠的IPv4地址范围得以保留下来。[6] 由于这些地址不通过互联网进行路由,因此不需要与IP地址登记处协调以取得使用权。每个用户都可以使用保留下来的任意一段。通常,网络管理员会将一个段划分为几个子网。例如,许多家用路由器自动使用从192.168.0.0到192.168.0.255 (192.168.0.0/24)区间内的默认地址。

5 IPv6地址编辑

将IPv 6地址从十六进制表示分解为二进制值。

使用IPv6地址后,地址长度从原来IPv4的32位数字增加到128位,从而提供了多达2128个(大约3.403×1038)地址。人们认为,在可预见的未来,如此大的地址空间可以满足我们的需求。

发明IPv6地址不仅仅是为了提供足够数量的IP地址,更是为了通过支持子网路由前缀的更高效聚类来重新定义互联网的路由。这减缓了路由器中路由表数量的增长速度。每次至少可为264台主机分配子网地址,相当于IPv4地址总数量的平方。在这些情况下,任何IPv6地址网段的实际地址利用率都很低。IPv6地址实现了将网段的寻址基础设施(即网段可用空间的本地管理)与用于路由流量进出外部网络的寻址前缀分开,具有自动更改整个网络路由前缀的功能。如果全局连接或路由方式发生变化,无需重新进行内部设计或手动编号。

IPv6地址空间大,因此可以为特定目的分配大量地址,并在适当的情况下进行聚类以实现高效路由。由于地址空间很大,因此不需要像使用CIDR表示法那样运用复杂的地址保存方法。

所有现代台式计算机和企业服务器操作系统都支持使用IPv6协议,但该协议尚未广泛用于其他地方,如住宅网络路由器、网络电话(VoIP)和多媒体设备以及一些网络硬件。

5.1 私有地址

正如IPv4协议为专用网络保留地址一样,IPv6协议中也会预留出一些地址段,称为唯一本地地址。路由前缀fc00::/7就是为这种地址保留的,[7] 被分成具有不同隐含策略的两个/8段。唯一本地地址中有40位伪随机数字,如果站点合并或数据包路由不正确,可将地址冲突的风险降至最低。

为此,早期的实践中使用了不同的块(fec0::),称为站点本地地址。[8] 然而,当时站点的定义不明确,寻址策略不清晰,导致路由方式不定。现已弃用这种地址,并禁止在新系统中使用该类型地址。[9]

以fe80::开头的地址被称为链路本地地址,被分配给使用链路进行通信的接口。操作系统会自动为每个网络接口生成这种地址,所有使用IPv6地址的主机都可以通过链路进行即时自动通信。较低层次的IPv6网络管理工作会使用该功能,例如邻居发现协议。

私有和链路本地地址前缀不能在公共网络上进行路由。

6 IP地址分配 编辑

主机接通网络后,会被动态分配一个IP地址,或者被主机硬件或软件固定分配一个IP地址。固定分配的地址称为静态IP地址。相反,如果计算机每次重新启动后都被分配一个新的IP地址,这种地址被称为动态IP地址

动态IP地址由网络使用动态主机配置协议(DCHP)进行分配。DHCP协议是最常用的地址分配方式。它消除了为网络上的每个设备分配特定静态地址的管理负担。如果在某一特定时间只有部分设备在线的话,它还允许设备使用网络上有限的地址空间。通常,现代台式电脑的操作系统默认启用动态IP地址配置。

使用DHCP协议分配地址是一种租用行为,通常会有一段时间的有效期。如果到期前主机没有续订,地址可能会被分配给另一台设备。有时,DHCP协议会试图在主机每次加入网络时为其分配同一IP地址( 基于其MAC地址)。网络管理员可以MAC地址为基础,给设备分配特定的IP地址来设定DHCP协议。

除了DHCP协议,还有别的技术可以进行IP地址的动态分配。引导程序(BOOTP)协议是与DHCP协议相似,并且是它的前身。拨号和某些宽带网络使用点对点协议的动态地址分配功能。

计算机和一些基础网络设备( 如路由器和邮件服务器)通常被分配静态IP地址。

无法进行静态或动态地址配置时,操作系统可以采用无状态地址自动配置的方式为主机分配链路本地地址。

6.1 粘性动态IP地址

粘性动态IP地址是有线和DSL用户使用的非正式术语,用来指代很少发生变化的动态IP地址。这些地址通常是用DHCP协议分配的。由于调制解调器可在很长一段时间内保持开机状态,因此,通常地址的有效期也很长,续订也很方便。如果到期之前,调制解调器关机后又重启,通常被分配相同的IP地址。

6.2 地址自动配置

169.254.0.0/16这段地址是专门为IPv4网络链路本地寻址这一特殊用途设计的。[10] 使用IPv6地址时无论是静态还是动态地址的所有接口,都会自动收到含有fe80::/10地址段的一个链路本地地址。[10] 这些地址仅在主机所连接的链路(例如本地网段或点对点连接)上有效,不可路由,并且像私有地址一样,不能作为互联网数据包的源地址或目的地址。

当初保留IPv4链路本地地址段时,没有设定地址自动配置机制的标准。为了填补这个空白,微软公司制定了一个名为自动专用IP寻址(APIPA)的协议,并在视窗1998(Windows 98)系统中首次公开使用该协议。[11] 现在APIPA协议已经在数百万台计算机上得以运用,并成为该行业的实际标准。2005年5月,IETF为其制定了一个正式标准。[12]

6.3 IP地址冲突

当同一本地物理或无线网络上的两个设备被分配相同的IP地址时,就会发生IP地址冲突。进行第二次地址分配时,通常其中一个或两个设备的IP功能会被停用。许多现代操作系统会通知管理员发生了IP地址冲突。[13][14] 当多个人和系统使用不同的方法分配IP地址时,错误可能出在他们任何一方。[15][16][17][18][19] 如果IP地址冲突涉及到局域网之外的默认网关,则局域网上所有设备的访问都可能受到影响。

7 路由编辑

根据不同的操作特征,可将IP地址分为四类:单播、多播、任播和广播寻址。

7.1 单播寻址

最常见的与IP地址相关的概念是单播寻址,IPv4和IPv6两种类型的地址都适用。通常情况下,单播寻址时只有一个发送者和接收者,可以用于发送和接收。通常,单播地址只对应一台设备或主机,但是一个设备或主机可能有多个单播地址。一些个人电脑有几个不同的单播地址,而不同的地址有不同的用途。向多个单播地址发送相同的数据需要发送方多次发送所有的数据,有多少个接收方,就需要发送多少次。

7.2 广播寻址

IPv4地址可以进行广播寻址,即一次性向网络上所有的可能目的地发送数据,同时所有接收器捕获网络数据包( 也就是所谓的全主机广播)。广播寻址适用的地址是255.255.255.255。此外,定向(有限)广播寻址使用的是带有网络前缀的全1型主机地址。例如,向网络192.0.2.0/24上的设备定向广播使用的目的地址是192.0.2.255。

IPv6地址没有采用广播寻址的方式,而是使用特意设计的全节点多播地址进行多播寻址。

7.3 多播寻址

多播地址涉及多个接收器,它们因为关注点相同而组成一个团体。就IPv4地址而言, 224.0.0.0到239.255.255.255区间的地址(以前被称为D类地址)被指定为多播地址。[20] 前缀为ff00::/8的IPv6地址可以进行多播寻址。无论是IPv4多播寻址还是IPv6多播寻址,发送方从其单播地址向某一多播组地址发送单个数据包,中间路由器负责制作副本,并将其发送给已加入相应多播组的所有接收方。

7.4 任播寻址

与广播寻址及多播寻址一样,任播寻址也是一种一对多的路由拓扑行为。然而,数据流并没有传输到所有的接收方,而是传输给了路由器通过逻辑分析认定的最近的接收方。任播地址是IPv6地址独有的特性。使用IPv4地址进行任播寻址时,通常使用BGP路由测量的最短路径来进行,并且不考虑路径的通畅性以及其他属性。任播寻址有助于平衡全局负载,并且通常用于分布式域名系统。

8 地理位置编辑

主机可以使用定位软件来推断对方的地理位置。[21][22]

9 公共地址编辑

通俗地说,公共IP地址是可以在全球范围内进行路由的单播IP地址,也就是说这种IP地址不是为专用网络保留的地址(如RFC 1918保留的地址),也不是IPv6地址中的链路本地地址或站点本地地址。使用互联网的主机可以通过公共IP地址进行通信。

10 防火墙编辑

出于安全和隐私方面的考虑,网络管理员通常希望限制其管理的专用网络的公共互联网流量。每个IP数据包报头中源IP地址和目的IP地址是进行分流的一种方便方法,该方法通过阻止IP地址或选择性地应对内部服务器的外部请求。这是通过在网络网关路由器上运行防火墙软件来实现的。可以将允许访问的IP地址数据库保存在黑名单或白名单中。

11 地址转换编辑

在两种情况下,多个客户端设备可以共用一个IP地址。一种是这些客户端设备公用一个托管网络服务器环境,另外一种是IPv4网络地址转换器(NAT)或代理服务器代表客户端发挥中介作用。在第二种情况下,真正的原始IP地址可能会被接收请求的服务器屏蔽。一种常见的做法是在专用网络中使用NAT以屏蔽大量的设备。只有NAT的“ 外部接口”需要有一个互联网路由地址。[23]

通常网络地址转换设备将大型的公共网络的TCP或UDP端口号映射为伪装网络的独立私有地址。

在住宅网络(环境)下,通常由住宅网络的网关发挥网络地址转换功能。在这种情况下,连接到路由器的计算机有私有IP地址并且路由器的外部接口上有公共地址,以便进行互联网通信。所以,这些内部计算机看上去(就像)用一个公共IP地址。

12 诊断工具编辑

计算机操作系统中有各种诊断工具,用于检查网络接口和地址配置。微软视窗(Windows)操作系统有ipconfig和netsh两种命令行界面工具,类Unix系统的用户则可以使用ifconfig、netstat、route、lanstat、fstat和iproute2六种应用程序进行检查。

参考文献

  • [1]

    ^RFC 760, DOD Standard Internet Protocol, DARPA, Information Sciences Institute (January 1980)..

  • [2]

    ^J. Postel. Internet Protocol, DARPA Internet Program Protocol Specification. IETF. September 1981. RFC 791. Updated by RFC 1349..

  • [3]

    ^S. Deering; R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. Network Working Group. December 1995. RFC 1883..

  • [4]

    ^S. Deering; R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. Network Working Group. December 1998. RFC 2460..

  • [5]

    ^S. Deering; R. Hinden. Internet Protocol, Version 6 (IPv6) Specification. IETF. July 2017. RFC 8200..

  • [6]

    ^Y. Rekhter; B. Moskowitz; D. Karrenberg; G. J. de Groot; E. Lear. Address Allocation for Private Internets. Network Working Group. February 1996. BCP 5. RFC 1918. Updated by RFC 6761..

  • [7]

    ^R. Hinden; B. Haberman. Unique Local IPv6 Unicast Addresses. Network Working Group. October 2005. RFC 4193..

  • [8]

    ^R. Hinden; S. Deering. Internet Protocol Version 6 (IPv6) Addressing Architecture. Network Working Group. April 2003. RFC 3513. Obsoleted by RFC 4291..

  • [9]

    ^C. Huitema; B. Carpenter. Deprecating Site Local Addresses. Network Working Group. September 2004. RFC 3879..

  • [10]

    ^M. Cotton; L. Vegoda; R. Bonica; B. Haberman. Special-Purpose IP Address Registries. Internet Engineering Task Force. April 2013. BCP 153. RFC 6890. Updated by RFC 8190..

  • [11]

    ^"DHCP and Automatic Private IP Addressing". docs.microsoft.com (in 英语). Retrieved 2019-05-20..

  • [12]

    ^S. Cheshire; B. Aboba; E. Guttman. Dynamic Configuration of IPv4 Link-Local Addresses. Network Working Group. May 2005. RFC 3927..

  • [13]

    ^"Event ID 4198 — TCP/IP Network Interface Configuration". Microsoft. 7 January 2009. Archived from the original on 24 December 2013. Retrieved 2 June 2013. "Updated: January 7, 2009".

  • [14]

    ^"Event ID 4199 — TCP/IP Network Interface Configuration". Microsoft. 7 January 2009. Archived from the original on 22 December 2013. Retrieved 2 June 2013. "Updated: 7 January 2009".

  • [15]

    ^Mitchell, Bradley. "IP Address Conflicts – What Is an IP Address Conflict?". About.com. Archived from the original on 13 April 2014. Retrieved 23 November 2013..

  • [16]

    ^Kishore, Aseem (4 August 2009). "How to Fix an IP Address Conflict". Online Tech Tips Online-tech-tips.com. Archived from the original on 25 August 2013. Retrieved 23 November 2013..

  • [17]

    ^"Get help with "There is an IP address conflict" message". Microsoft. 22 November 2013. Archived from the original on 26 September 2013. Retrieved 23 November 2013..

  • [18]

    ^"Fix duplicate IP address conflicts on a DHCP network". Microsoft. Archived from the original on 28 December 2014. Retrieved 23 November 2013. Article ID: 133490 – Last Review: 15 October 2013 – Revision: 5.0.

  • [19]

    ^Moran, Joseph (1 September 2010). "Understanding And Resolving IP Address Conflicts - Webopedia.com". Webopedia.com. Archived from the original on 2 October 2013. Retrieved 23 November 2013..

  • [20]

    ^M. Cotton; L. Vegoda; D. Meyer. IANA Guidelines for IPv4 Multicast Address Assignments. IETF. March 2010. BCP 51. RFC 5771. ISSN 2070-1721..

  • [21]

    ^"IP Information". 11 April 2013. Archived from the original on 4 July 2013. Retrieved 11 April 2013..

  • [22]

    ^"NetAcuity Edge Offers Hyper-local IP targeting". 28 July 2009. Archived from the original on 5 February 2012. Retrieved 10 December 2011..

  • [23]

    ^Comer, Douglas (2000). Internetworking with TCP/IP:Principles, Protocols, and Architectures – 4th ed. Upper Saddle River, NJ: Prentice Hall. p. 394. ISBN 978-0-13-018380-4. Archived from the original on 13 April 2010..

阅读 8.3w
版本记录
  • 暂无