<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh">
	<id>https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=IPv4</id>
	<title>IPv4 - 版本历史</title>
	<link rel="self" type="application/atom+xml" href="https://arolstar52-zhtest.hf.space/index.php?action=history&amp;feed=atom&amp;title=IPv4"/>
	<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=IPv4&amp;action=history"/>
	<updated>2026-07-05T02:07:47Z</updated>
	<subtitle>在这个wiki上该页的修订历史</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://arolstar52-zhtest.hf.space/index.php?title=IPv4&amp;diff=4331&amp;oldid=prev</id>
		<title>imported&gt;Rx5674：​/* 地址空間枯竭 */ 修飾語句</title>
		<link rel="alternate" type="text/html" href="https://arolstar52-zhtest.hf.space/index.php?title=IPv4&amp;diff=4331&amp;oldid=prev"/>
		<updated>2026-05-25T13:29:54Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;地址空間枯竭：​&lt;/span&gt; 修飾語句&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{NoteTA&lt;br /&gt;
|G1=IT&lt;br /&gt;
|1=zh-hans:掩码; zh-hant:遮罩;&lt;br /&gt;
|2=zh-hans:报文; zh-hant:封包;&lt;br /&gt;
|3=zh-hans:地址; zh-hant:位址;&lt;br /&gt;
|4=zh-hans:链路层; zh-tw:連結層; zh-hk:鏈結層;&lt;br /&gt;
|5=zh-hans:网络; zh-tw:網路; zh-hk:網絡;}}&lt;br /&gt;
{{IPstack}}&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;网际协议版本4&amp;#039;&amp;#039;&amp;#039;（{{langx|en|&amp;#039;&amp;#039;&amp;#039;I&amp;#039;&amp;#039;&amp;#039;nternet &amp;#039;&amp;#039;&amp;#039;P&amp;#039;&amp;#039;&amp;#039;rotocol &amp;#039;&amp;#039;&amp;#039;v&amp;#039;&amp;#039;&amp;#039;ersion &amp;#039;&amp;#039;&amp;#039;4&amp;#039;&amp;#039;&amp;#039;}}，缩写：&amp;#039;&amp;#039;&amp;#039;IPv4&amp;#039;&amp;#039;&amp;#039;，又稱&amp;#039;&amp;#039;&amp;#039;網際網路通訊協定第四版&amp;#039;&amp;#039;&amp;#039;）是[[网际协议]]开发过程中的第四个修订版本，也是此协议第一个被广泛部署和使用的版本。其後繼版本為[[IPv6]]，直到2011年，[[IANA]] IPv4位址完全用盡時，IPv6仍处在部署的初期。&lt;br /&gt;
&lt;br /&gt;
IPv4在[[IETF]]于1981年9月发布的 RFC 791 中被描述，此RFC替换了于1980年1月发布的 RFC 760。&lt;br /&gt;
&lt;br /&gt;
IPv4是一种[[無連接式通訊|无连接]]的协议，操作在使用[[分组交换]]的链路层（如[[以太网]]）上。此协议会尽最大努力交付数据包，意即它不保证任何数据包均能送达目的地，也不保证所有数据包均按照正确的顺序无重复地到达。这些方面是由上层的传输协议（如[[传输控制协议]]）处理的。&lt;br /&gt;
&lt;br /&gt;
== 地址 ==&lt;br /&gt;
IPv4使用32位地址長度，[[地址空间]]共可提供43億（4,294,967,296）个地址，其中可在互联网上路由的公共地址約37億個，近6億個IP地址保留作其他用途。&lt;br /&gt;
&lt;br /&gt;
在早期的[[分類網絡]]架構中，[[多播]]地址（D類）被分配了4位前綴，因此佔用了約2.7億（2&amp;lt;sup&amp;gt;28&amp;lt;/sup&amp;gt;）個地址。多播地址的使用率不高，16個&amp;lt;Code&amp;gt;/8&amp;lt;/Code&amp;gt;網絡前綴中有12個屬於「保留」。&amp;lt;ref&amp;gt;{{cite web |last1=Meyer |first1=David |last2=Cotton |first2=Michelle |last3=Vegoda |first3=Leo |title=IANA Guidelines for IPv4 Multicast Address Assignments |url=https://www.rfc-editor.org/info/rfc5771/ |publisher=Internet Engineering Task Force |date=2010-03}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
約2.7億個E類地址保留作研究、實驗或未來用途。部分軟件和硬件把E類地址視為不合法，並自動丟棄這些[[封包]]。由於存在[[相容性]]問題，所以在IP位址枯竭時沒有投入使用。此外，IANA認為各國對IP地址的需求龐大，即使把E類地址改為公共地址，人們依然會迅速耗盡所有IP地址。&lt;br /&gt;
&lt;br /&gt;
另外，一些地址是为特殊用途所保留。在A類、B類和C類網絡中，各有一個地址區塊保留作[[专用网络]]，合共有約1789万个地址。&amp;lt;code&amp;gt;127.0.0.0/8&amp;lt;/code&amp;gt;保留作[[Localhost]]回送測試，&amp;lt;code&amp;gt;0.0.0.0/8&amp;lt;/code&amp;gt;保留作「本網絡」，各佔用1678萬個地址。这都减少了可在互联网上路由的公共地址数量。&lt;br /&gt;
&lt;br /&gt;
随着地址不断被分配给最终用户，[[IPv4地址枯竭问题]]也在随之产生。基于[[无类别域间路由]]和[[网络地址转换]]的地址结构重构显著地减少了地址枯竭的速度。2011年2月3日，在最后5个地址块被分配给5个[[区域互联网注册管理机构]]之后，IANA的主要地址池已经用尽。&lt;br /&gt;
&lt;br /&gt;
由於[[IPv6]]並不[[向下相容]]IPv4，導致使用率增長緩慢。即使已經耗盡IPv4位址，也未能刺激[[互聯網服務供應商]]部署[[IPv6]]。ISP更傾向於部署[[電信級NAT]]，把一個IPv4公共地址轉換為多個IPv4私人地址，供多個客戶同時使用。用戶的路由器也使用NAT，把ISP的一個私人地址轉換為屬於用戶自己的多個私人地址。整個NAT過程包括三個IPv4地址空間，因此稱為NAT444。&lt;br /&gt;
&lt;br /&gt;
=== 地址格式 ===&lt;br /&gt;
IPv4地址可被写作任何表示一个32位整数值的形式，但为了方便人类阅读和分析&amp;lt;ref&amp;gt;{{cite web|last1=Onsem|first1=Willem Van|title=What is the purpose of dot-decimal notation?|url=http://stackoverflow.com/questions/28574048/what-is-the-purpose-of-dot-decimal-notation|website=Stack Overflow|accessdate=2016-10-06|archiveurl=https://web.archive.org/web/20150929035914/http://stackoverflow.com/questions/28574048/what-is-the-purpose-of-dot-decimal-notation|archivedate=2015-09-29|date=2015-02-18|dead-url=no}}&amp;lt;/ref&amp;gt;，它通常被写作[[点分十进制]]的形式，即四个字节被分开用[[十进制]]写出，中间用点分隔。&lt;br /&gt;
&lt;br /&gt;
下表展示了几种不同的格式：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 格式 !! 值 !! 从点分十进制转换&lt;br /&gt;
|-&lt;br /&gt;
| [[点分十进制]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;192.0.2.235&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 不适用&lt;br /&gt;
|-&lt;br /&gt;
| 点分十六进制&amp;lt;ref name=inet&amp;gt;{{cite web |url=http://www.unix.com/man-page/Linux/3/inet_addr/ |title=INET(3) man page |accessdate=2010-11-28}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC0.0x00.0x02.0xEB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 每个字节被单独转换为十六进制&lt;br /&gt;
|-&lt;br /&gt;
| 点分八进制&amp;lt;ref name=&amp;quot;inet&amp;quot;/&amp;gt;&lt;br /&gt;
| &amp;lt;tt&amp;gt;0300.0000.0002.0353&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 每个字节被单独转换为八进制&lt;br /&gt;
|-&lt;br /&gt;
| [[十六进制]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;0xC00002EB&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 将点分十六进制连在一起&lt;br /&gt;
|-&lt;br /&gt;
| [[十进制]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;3221226219&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 用十进制写出的32位整数&lt;br /&gt;
|-&lt;br /&gt;
| [[八进制]]&lt;br /&gt;
| &amp;lt;tt&amp;gt;030000001353&amp;lt;/tt&amp;gt;&lt;br /&gt;
| 用八进制写出的32位整数&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
此外，在点分格式中，每个字节都可用任意的进制表达。如，&amp;lt;tt&amp;gt;192.0x00.0002.235&amp;lt;/tt&amp;gt;是一种合法（但不常用）的表示。点分格式也支持零省略的写法，例如&amp;lt;tt&amp;gt;127.1.1&amp;lt;/tt&amp;gt;等同于&amp;lt;tt&amp;gt;127.1.0.1&amp;lt;/tt&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
=== 分類網絡 ===&lt;br /&gt;
{{Main|分類網絡}}&lt;br /&gt;
IP地址最初被分成两部分：網路識別碼在地址的首8位，主機識別碼在剩下的24位。此層級結構限制了互聯網只能由254個網絡組成，可擴展性不足。为了克服这个限制，在随后出现的[[分类网络]]中，地址的高位字节被重定义为网络的类(Class)。这个系统定义了五个类別：A、B、C、D和E。&lt;br /&gt;
&lt;br /&gt;
A、B和C类有不同的网络类別长度，剩余的部分被用来识别网络内的主机，这就意味着每个网络类別有着不同的给主机编址的能力。D类被用于[[多播]]地址，E类被留作将来使用。&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+IPv4地址空间分类&amp;lt;ref&amp;gt;{{cite book|author=Wendell Odom|title=CCENT/CCNA ICND1 100-105 Official Cert Guide|url=https://archive.org/details/ccentccnaicnd1100000odom|publisher=Cisco Press|year=2016|pages=89页|isbn=978-1-58720-580-4}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
!前8位地址范围&lt;br /&gt;
!类&lt;br /&gt;
!路由形式&lt;br /&gt;
!占地址总空间的比例&lt;br /&gt;
|-&lt;br /&gt;
|0-127&lt;br /&gt;
|A&lt;br /&gt;
|[[单播]]&lt;br /&gt;
|1/2&lt;br /&gt;
|-&lt;br /&gt;
|128-191&lt;br /&gt;
|B&lt;br /&gt;
|[[单播]]&lt;br /&gt;
|1/4&lt;br /&gt;
|-&lt;br /&gt;
|192-223&lt;br /&gt;
|C&lt;br /&gt;
|[[单播]]&lt;br /&gt;
|1/8&lt;br /&gt;
|-&lt;br /&gt;
|224-239&lt;br /&gt;
|D&lt;br /&gt;
|[[多播]]&lt;br /&gt;
|1/16&lt;br /&gt;
|-&lt;br /&gt;
|240-255&lt;br /&gt;
|E&lt;br /&gt;
| -&lt;br /&gt;
|1/16&lt;br /&gt;
|}&lt;br /&gt;
1993年，[[无类别域间路由]]（CIDR）正式地取代了[[分类网络]]，后者也因此被称为“有类别”的。&lt;br /&gt;
&lt;br /&gt;
CIDR採用可變長度的網絡前綴，按需要分配不同大小的地址块给用户，不再是三款固定長度。CIDR创建的分层架构由[[互联网号码分配局]]（IANA）和[[区域互联网注册管理机构]]（RIR）进行管理，每个RIR均维护着一个公共的[[WHOIS]]数据库，以此提供IP地址分配的详情。&lt;br /&gt;
&lt;br /&gt;
=== 特殊用途的地址 ===&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;&lt;br /&gt;
|+ 保留的地址块&lt;br /&gt;
|-&lt;br /&gt;
! [[CIDR]]地址块 || 描述 || 参考资料&lt;br /&gt;
|-&lt;br /&gt;
| 0.0.0.0/8 || 本网络（仅作为源地址时合法） ||RFC 6890&lt;br /&gt;
|-&lt;br /&gt;
| 10.0.0.0/8 || [[专用网络]] || RFC 1918&lt;br /&gt;
|-&lt;br /&gt;
| 100.64.0.0/10 || [[电信级NAT]] || RFC 6598&lt;br /&gt;
|-&lt;br /&gt;
| 127.0.0.0/8 || [[Localhost|环回]] || RFC 5735&lt;br /&gt;
|-&lt;br /&gt;
| 169.254.0.0/16 || [[链路本地地址|链路本地]] || RFC 3927&lt;br /&gt;
|-&lt;br /&gt;
| 172.16.0.0/12 || [[专用网络]] || RFC 1918&lt;br /&gt;
|-&lt;br /&gt;
| 192.0.0.0/24 || 保留（IANA） || RFC 5735&lt;br /&gt;
|-&lt;br /&gt;
| 192.0.2.0/24 || TEST-NET-1，文档和示例 || RFC 5735&lt;br /&gt;
|-&lt;br /&gt;
| 192.88.99.0/24 || [[6to4]]中继 || RFC 3068&lt;br /&gt;
|-&lt;br /&gt;
| 192.168.0.0/16 || [[专用网络]] || RFC 1918&lt;br /&gt;
|-&lt;br /&gt;
| 198.18.0.0/15 || 网络基准测试 || RFC 2544&lt;br /&gt;
|-&lt;br /&gt;
| 198.51.100.0/24 || TEST-NET-2，文档和示例 || RFC 5737&lt;br /&gt;
|-&lt;br /&gt;
| 203.0.113.0/24 || TEST-NET-3，文档和示例 || RFC 5737&lt;br /&gt;
|-&lt;br /&gt;
| 224.0.0.0/4 || [[多播]]（之前的D类网络）|| RFC 3171&lt;br /&gt;
|-&lt;br /&gt;
| 240.0.0.0/4 || 保留（之前的E类网络） || RFC 1700&lt;br /&gt;
|-&lt;br /&gt;
| 255.255.255.255/32 ||[[受限广播]]|| RFC 919&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|+特殊IP地址&lt;br /&gt;
!网络号&lt;br /&gt;
!主机号&lt;br /&gt;
!是否可以作为源地址&lt;br /&gt;
!是否可以作为目的地址&lt;br /&gt;
!备注/描述&lt;br /&gt;
|-&lt;br /&gt;
|全为0&lt;br /&gt;
|全为0&lt;br /&gt;
|允许&lt;br /&gt;
|禁止&lt;br /&gt;
|表示本网主机&lt;br /&gt;
|-&lt;br /&gt;
|全为0&lt;br /&gt;
|Host ID&lt;br /&gt;
|允许&lt;br /&gt;
|禁止&lt;br /&gt;
|表示特定主机&lt;br /&gt;
|-&lt;br /&gt;
|全为1&lt;br /&gt;
|全为1&lt;br /&gt;
|禁止&lt;br /&gt;
|允许&lt;br /&gt;
|定向广播地址&lt;br /&gt;
|-&lt;br /&gt;
|127&lt;br /&gt;
|任意合法的值&lt;br /&gt;
|允许&lt;br /&gt;
|允许&lt;br /&gt;
|迂回地址，用于本地测试&lt;br /&gt;
|-&lt;br /&gt;
|Network ID&lt;br /&gt;
|全为1&lt;br /&gt;
|禁止&lt;br /&gt;
|允许&lt;br /&gt;
|直接广播地址&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 专用网络 ===&lt;br /&gt;
{{main|专用网络}}&lt;br /&gt;
在IPv4所允许的大约四十亿地址中，三个地址块被保留作[[专用网络]]。这些地址块在专用网络之外不可路由，专用网络之内的主机也不能直接与公共网络通信。但通过[[网络地址转换]]（NAT），使用这些地址的主机可以像拥有公共地址的主机在互联网上通信。&lt;br /&gt;
&lt;br /&gt;
下表展示了三个被保留作专用网络的地址块（RFC 1918）：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 名字 !! 地址范围 !! 地址数量 !! 有类别的描述 !! 最大的[[CIDR]]地址块&lt;br /&gt;
|-&lt;br /&gt;
| 24位块 || 10.0.0.0–10.255.255.255 || 16,777,216 || 一个A类 || 10.0.0.0/8&lt;br /&gt;
|-&lt;br /&gt;
| 20位块 || 172.16.0.0–172.31.255.255 || 1,048,576 || 连续的16个B类 || 172.16.0.0/12&lt;br /&gt;
|-&lt;br /&gt;
| 16位块 || 192.168.0.0–192.168.255.255 || 65,536 || 连续的256个C类 || 192.168.0.0/16&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== 虚拟专用网络 ====&lt;br /&gt;
{{Main|虚拟专用网}}&lt;br /&gt;
&lt;br /&gt;
通常情况下，路由器根据数据报文的目的地址决定转发数据报文的下一跳地址。使用专用网络地址作为目的地址的数据包通常无法被公共路由器正确送达，因为公共路由器没有相应的路由信息，即无法得知如何才能转发到该IP地址。因此，这就需要通过一种方法，将指引数据报文转发的下一跳地址和真正要传输的目的地址分离开。于是就使用[[虚拟专用网]]，将IP报文封装在其他报文内，以便于通过公网上的公共路由器，达到能处理该封包内层数据的网络设备上解除封包后，该数据包可以被继续转发到目的地址。&lt;br /&gt;
&lt;br /&gt;
将数据报文封装的过程中，可以将数据报文封装于IP报文中，也可以使用[[多协议标签交换]]协议等，通过其他协议引导数据报文转发。也可以封装同时加密数据，以保护数据内容。&lt;br /&gt;
&lt;br /&gt;
=== 链路本地地址 ===&lt;br /&gt;
{{Main|链路本地地址}}&lt;br /&gt;
&lt;br /&gt;
RFC 5735&amp;lt;nowiki/&amp;gt;中将地址块169.254.0.0/16保留为特殊用于链路本地地址，这些地址仅在链路上有效（如一段本地网络或一个端到端连接）。这些地址与专用网络地址一样不可路由，也不可作为公共网络上报文的源或目的地址。链路本地地址主要被用于地址自动配置：当主机不能从DHCP服务器处获得IP地址时，它会用这种方法生成一个。&lt;br /&gt;
&lt;br /&gt;
当这个地址块最初被保留时，地址自动配置尚没有一个标准。为了填补这个空白，[[微软]]创建了一种叫&amp;#039;&amp;#039;&amp;#039;自动专用IP寻址&amp;#039;&amp;#039;&amp;#039;（APIPA）的实现。因微软的市场影响力，APIPA已经被部署到了几百万机器上，也因此成为了事实上的工业标准。许多年后，[[IETF]]为此定义了一份正式的标准：RFC 3927，命名为“IPv4链路本地地址的动态配置”。&lt;br /&gt;
&lt;br /&gt;
=== 环回地址 ===&lt;br /&gt;
{{main|127.0.0.1}}&lt;br /&gt;
地址块127.0.0.0/8被保留作环回通信用（Loopback Address）。此范围中的地址绝不应出现在主机之外，发送至此地址的报文被作为同一虚拟网络设备上的入站报文（环回），主要用于检查TCP/IP协议栈是否正确运行和本机对本机的链接。&lt;br /&gt;
&lt;br /&gt;
=== 以0或255结尾的地址 ===&lt;br /&gt;
一个常见的误解是以0或255结尾的地址永远不能分配给主机：这仅在子網路遮罩至少24位元长度时（旧的C类地址，或CIDR中的/24到/32）才成立。&lt;br /&gt;
&lt;br /&gt;
在有类别的编址中，只有三种可能的子網路遮罩：A类：255.0.0.0，B类：255.255.0.0，C类：255.255.255.0。如，在子網路192.168.5.0/255.255.255.0（即192.168.5.0/24）中，網路識別碼192.168.5.0用来表示整个子網路，所以它不能用来标识子網路上的某个特定主机。&lt;br /&gt;
&lt;br /&gt;
[[广播地址]]允许数据包发往子網路上的所有设备。一般情況下，廣播位址是藉由子網路遮罩的位元反码並和網路識別碼執行 OR 的位元運算得到，即广播地址是子網路中的最后一个地址。在上述例子中，广播地址是192.168.5.255，所以为了避免歧义，这个地址也不能被分配给主机。在A、B和C类网络中，广播地址总是以255结尾。&lt;br /&gt;
&lt;br /&gt;
但是，这并不意味着每个以255结尾的地址都不能用做主机地址。比如，在B类子网192.168.0.0/255.255.0.0（即192.168.0.0/16）中，广播地址是192.168.255.255（主机位全1）。在这种情况下，尽管可能带来误解，但192.168.1.255、192.168.2.255等地址可以被分配给主机。同理，192.168.0.0作为網路識別碼不能被分配，但192.168.1.0、192.168.2.0等都是可以的。&lt;br /&gt;
&lt;br /&gt;
随着CIDR的到来，广播地址不一定总是以255结尾（广播地址是指主机位都为1的地址，255只是其中一种情况）。比如，子網路203.0.113.16/28的广播地址是203.0.113.31。过程如下：&lt;br /&gt;
&lt;br /&gt;
网络：203.0.113.16&lt;br /&gt;
&lt;br /&gt;
掩码：255.255.255.240&lt;br /&gt;
&lt;br /&gt;
掩码反码：0.0.0.15&lt;br /&gt;
&lt;br /&gt;
OR操作：&lt;br /&gt;
&lt;br /&gt;
00010000 | 00001111 = 00011111 =31&lt;br /&gt;
&lt;br /&gt;
一般情況下，子網路的第一个和最后一个地址分别被作为網路識別碼和广播地址，任何其它地址都可以被分配给其上的主机。&lt;br /&gt;
&lt;br /&gt;
=== 地址解析 ===&lt;br /&gt;
{{Main|域名系统}}&lt;br /&gt;
&lt;br /&gt;
互联网上的主机通常被指定，但IP报文的路由是由IP地址而不是这些名字决定的。这就需要将域名翻译（解析）成地址。&lt;br /&gt;
&lt;br /&gt;
[[域名系统]]（DNS）提供了域名转换为IP地址的服务。与CIDR相像，DNS是层级结构。&lt;br /&gt;
&lt;br /&gt;
== 地址空間枯竭 ==&lt;br /&gt;
{{Main|IPv4地址枯竭}}&lt;br /&gt;
從20世紀80年代起，一個很明顯的問題是IPv4地址正以比設計時的預計更快的速度耗盡。&amp;lt;ref&amp;gt;{{cite web &lt;br /&gt;
 |title=World &amp;#039;running out of Internet addresses&amp;#039; &lt;br /&gt;
 |url=http://technology.inquirer.net/infotech/infotech/view/20110121-315808/World-running-out-of-Internet-addresses &lt;br /&gt;
 |accessdate=2011-01-23 &lt;br /&gt;
 |deadurl=yes &lt;br /&gt;
 |archiveurl=https://web.archive.org/web/20110125195711/http://technology.inquirer.net/infotech/infotech/view/20110121-315808/World-running-out-of-Internet-addresses &lt;br /&gt;
 |archivedate=2011-01-25 &lt;br /&gt;
 }}&amp;lt;/ref&amp;gt;這是創建[[分類網絡]]、[[無類別域間路由]]，和最終決定重新設計基於更長地址的互聯網協議（[[IPv6]]）的誘因。&lt;br /&gt;
&lt;br /&gt;
一些市場力量也加快了IPv4地址的耗盡，如：&lt;br /&gt;
* 互聯網用戶的急速增長；&lt;br /&gt;
* 總是開著的設備：[[ADSL]][[調制解調器]]、[[纜線數據機]]等；&lt;br /&gt;
* 移動設備：[[筆記型電腦]]、[[PDA]]、[[移動電話]]等。&lt;br /&gt;
&lt;br /&gt;
隨著互聯網的增長，各種各樣的技術隨之產生以應對IPv4地址的耗盡，如：&lt;br /&gt;
* [[網絡地址轉換]]（NAT）；&lt;br /&gt;
* [[专用网络|專用網絡]]的使用；&lt;br /&gt;
* [[動態主機設置協議]]（DHCP）；&lt;br /&gt;
* 基於名字的[[虛擬主機]]；&lt;br /&gt;
* 區域互聯網註冊管理機構對地址分配的控制；&lt;br /&gt;
* 對互聯網初期分配的大地址塊的回收。&lt;br /&gt;
&lt;br /&gt;
隨著[[IANA]]把最後5個地址塊分配給5個RIR，其主地址池在2011年2月3日耗盡。&amp;lt;ref&amp;gt;{{cite web |url=http://twitter.com/theiana/status/33170437856825344 |title=102, 103, 104, 179 and 185 have been allocated. No unicast IPv4 /8s remain unallocated. |author=IANA |date=2011-02-03 |accessdate=2011-02-03 |archive-date=2011-02-07 |archive-url=https://web.archive.org/web/20110207013420/http://twitter.com/theiana/status/33170437856825344 |dead-url=no }}&amp;lt;/ref&amp;gt;許多地址分配和消耗的模型都預測第一個耗盡地址的RIR會在2011年的下半年出現。&amp;lt;ref&amp;gt;{{cite web|last=Huston|first=Geoff|title=IPv4 Address Report, daily generated|url=http://www.potaroo.net/tools/ipv4/index.html|accessdate=2011-01-31|archive-date=2009-04-01|archive-url=https://web.archive.org/web/20090401001902/http://www.potaroo.net/tools/ipv4/index.html|dead-url=no}}&amp;lt;/ref&amp;gt;ARIN在2015年用完可用的供应，APNIC、LACNIC和AFIC根据其社区政策定量供应&amp;lt;ref&amp;gt;{{Cite web |title=IPv4 exhaustion {{!}} APNIC |url=https://www.apnic.net/manage-ip/ipv4-exhaustion/ |language=en-AU |access-date=2022-09-24 |archive-date=2022-11-30 |archive-url=https://web.archive.org/web/20221130213406/https://www.apnic.net/manage-ip/ipv4-exhaustion/ |dead-url=no }}&amp;lt;/ref&amp;gt;。&lt;br /&gt;
&lt;br /&gt;
廣泛被接受且已被標準化的解決方案是遷移至[[IPv6]]，地址長度從32位增加到128位，其中由ISP分配的網絡前綴最長64位元。&lt;br /&gt;
&lt;br /&gt;
在IPv4年代，[[路由器]]把ISP分配的IP地址轉換為私人網絡（如&amp;lt;Code&amp;gt;192.168.0.0/16&amp;lt;/Code&amp;gt;），再分配IP地址給其他設備。IPv6的其中一個設計理念是不使用[[网络地址转换]]（NAT），網絡前綴佔64位，後64位元作為主機地址，讓每一台設備都可以有自己的公共地址。&lt;br /&gt;
&lt;br /&gt;
== 网络地址转换 ==&lt;br /&gt;
{{Main|网络地址转换}}&lt;br /&gt;
对地址的快速分配和其造成的地址短缺促成了许多有效应用地址的方法，其中一种就是网络地址转换（NAT）。&lt;br /&gt;
&lt;br /&gt;
== 报文结构 ==&lt;br /&gt;
IP报文包含IP首部和数据部分&lt;br /&gt;
&lt;br /&gt;
=== 首部 ===&lt;br /&gt;
IPv4报文的首部包含14个字段，其中13个是必须的，第14个是可选的（红色标出），并命名为：“选项”字段。首部中的字段均以[[大端序]]包装，在以下的图表和讨论中，[[最高有效位]]（Most Significant bit）被标记为0。&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! width=&amp;quot;4%&amp;quot;| 位偏移&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; width=&amp;quot;12%&amp;quot;| 0–3&lt;br /&gt;
! colspan=&amp;quot;4&amp;quot; width=&amp;quot;12%&amp;quot;| 4–7&lt;br /&gt;
! colspan=&amp;quot;6&amp;quot; width=&amp;quot;24%&amp;quot;| 8–13&lt;br /&gt;
! colspan=&amp;quot;2&amp;quot; width=&amp;quot;6%&amp;quot;| 14-15&lt;br /&gt;
! colspan=&amp;quot;3&amp;quot; width=&amp;quot;9%&amp;quot;| 16–18&lt;br /&gt;
! colspan=&amp;quot;13&amp;quot; width=&amp;quot;39%&amp;quot;| 19–31&lt;br /&gt;
|-&lt;br /&gt;
! 0&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot;| 版本&lt;br /&gt;
| colspan=&amp;quot;4&amp;quot;| 首部长度&lt;br /&gt;
| colspan=&amp;quot;6&amp;quot;| 区分服务&lt;br /&gt;
| colspan=&amp;quot;2&amp;quot;| [[显式拥塞通知]]&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot;| 全长&lt;br /&gt;
|-&lt;br /&gt;
! 32&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot;| 标识符&lt;br /&gt;
| colspan=&amp;quot;3&amp;quot;| 标志&lt;br /&gt;
| colspan=&amp;quot;13&amp;quot;| 分片偏移&lt;br /&gt;
|-&lt;br /&gt;
! 64&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot;| [[存活時間|存活时间]]&lt;br /&gt;
| colspan=&amp;quot;8&amp;quot;| [[协议]]&lt;br /&gt;
| colspan=&amp;quot;16&amp;quot;| 首部检验和&lt;br /&gt;
|-&lt;br /&gt;
! 96&lt;br /&gt;
| colspan=&amp;quot;32&amp;quot;| 源IP地址&lt;br /&gt;
|-&lt;br /&gt;
! 128&lt;br /&gt;
| colspan=&amp;quot;32&amp;quot;| 目的IP地址&lt;br /&gt;
|-&lt;br /&gt;
! 160&lt;br /&gt;
| colspan=&amp;quot;32&amp;quot; bgcolor=&amp;quot;#FFBBBB&amp;quot;| 选项（如首部长度&amp;gt;5）&lt;br /&gt;
|-&lt;br /&gt;
! 160&amp;lt;br /&amp;gt;或&amp;lt;br /&amp;gt;192+&lt;br /&gt;
| colspan=&amp;quot;32&amp;quot;| &amp;amp;nbsp;&amp;lt;br /&amp;gt;数据&amp;lt;br /&amp;gt;&amp;amp;nbsp;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
; 版本（Version）&lt;br /&gt;
: 版本字段占4bit，通信双方使用的版本必须一致。对于IPv4，字段的值是4。&lt;br /&gt;
&lt;br /&gt;
; 首部长度（Internet Header Length， IHL）&lt;br /&gt;
: 占4bit，首部长度说明首部有多少32位字（4字节）。由于IPv4首部可能包含数目不定的选项，这个字段也用来确定数据的偏移量。这个字段的最小值是5（二进制0101），相当于5*4=20字节（RFC 791），最大十进制值是15。&lt;br /&gt;
&lt;br /&gt;
; 区分服务（Differentiated Services，DS）&lt;br /&gt;
: 占6bit，最初被定义为[[服务类型]]字段，实际上并未使用，但1998年被IETF重定义为区分服务RFC 2474。只有在使用区分服务时，这个字段才起作用，在一般的情况  下都不使用这个字段。例如需要实时数据流的技术会应用这个字段，一个例子是[[VoIP]]。&lt;br /&gt;
&lt;br /&gt;
; 显式拥塞通告（ Explicit Congestion Notification，ECN）&lt;br /&gt;
: 在RFC 3168中定义，允许在不丢弃报文的同时通知对方网络拥塞的发生。ECN是一种可选的功能，仅当两端都支持并希望使用，且底层网络支持时才被使用。&lt;br /&gt;
&lt;br /&gt;
; 全长（Total Length）&lt;br /&gt;
: 这个16位字段定义了报文总长，包含首部和数据，单位为字节。这个字段的最小值是20（20字节首部+0字节数据），最大值是2&amp;lt;sup&amp;gt;16&amp;lt;/sup&amp;gt;-1=65,535。IP规定所有主机都必须支持最小576字节的报文，这是假定上层数据长度512字节，加上最长IP首部60字节，加上4字节富裕量，得出576字节，但大多数现代主机支持更大的报文。当下层的数据链路协议的[[最大传输单元]]（MTU）字段的值小于IP报文长度时，报文就必须被分片，详细见下个标题。&lt;br /&gt;
&lt;br /&gt;
; 标识符（Identification）&lt;br /&gt;
: 占16位，这个字段主要被用来唯一地标识一个报文的所有分片，因为分片不一定按序到达，所以在重组时需要知道分片所属的报文。每产生一个数据报，计数器加1，并赋值给此字段。一些实验性的工作建议将此字段用于其它目的，例如增加报文跟踪信息以协助探测伪造的源地址。&amp;lt;ref&amp;gt;{{cite web | last=Savage | first=Stefan | title=Practical network support for IP traceback | url=http://portal.acm.org/citation.cfm?id=347057.347560 | accessdate=2010-09-06}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
; 标志 （Flags）&lt;br /&gt;
: 这个3位字段用于控制和识别分片，它们是：&lt;br /&gt;
:* 位0：保留，必须为0；&lt;br /&gt;
:* 位1：禁止分片（Don’t Fragment，DF），当DF=0时才允许分片；&lt;br /&gt;
:* 位2：更多分片（More Fragment，MF），MF=1代表后面还有分片，MF=0 代表已经是最后一个分片。&lt;br /&gt;
: 如果DF标志被设置为1，但路由要求必须分片报文，此报文会被丢弃。这个标志可被用于发往没有能力组装分片的主机。&lt;br /&gt;
: 当一个报文被分片，除了最后一片外的所有分片都设置MF为1。最后一个片段具有非零片段偏移字段，将其与未分片数据包区分开，未分片的偏移字段为0。&lt;br /&gt;
&lt;br /&gt;
; 分片偏移 （Fragment Offset）&lt;br /&gt;
: 这个13位字段指明了每个分片相对于原始报文开头的偏移量，以8字节作单位。&lt;br /&gt;
&lt;br /&gt;
; 存活时间（Time To Live，TTL）&lt;br /&gt;
: 这个8位字段避免报文在互联网中永远存在（例如陷入路由环路）。存活时间以秒为单位，但小于一秒的时间均向上取整到一秒。在现实中，这实际上成了一个跳数计数器：报文经过的每个路由器都将此字段减1，当此字段等于0时，报文不再向下一跳传送并被丢弃，最大值是255。常规地，一份[[ICMP]]报文被发回报文发送端说明其发送的报文已被丢弃。这也是[[traceroute]]的核心原理。&lt;br /&gt;
&lt;br /&gt;
; 协议 （Protocol）&lt;br /&gt;
: 占8bit，这个字段定义了该报文数据区使用的协议。[[IANA]]维护着一份协议列表（最初由RFC 790定义），详细参见[[IP协议号列表]]。&lt;br /&gt;
&lt;br /&gt;
; 首部检验和 （Header Checksum）&lt;br /&gt;
: 这个16位[[校验和|检验和]]字段只对首部查错，不包括数据部分。在每一跳，路由器都要重新计算出新的首部检验和并与此字段进行比对，如果不一致，此报文将会被丢弃。重新计算的必要性是因为每一跳的一些首部字段（如TTL、Flag、Offset等）都有可能发生变化，不检查数据部分是为了减少工作量。数据区的错误留待上层协议处理——[[用户数据报协议]]（UDP）和[[传输控制协议]]（TCP）都有检验和字段。此处的检验计算方法不使用CRC。&lt;br /&gt;
: RFC 1071&lt;br /&gt;
&lt;br /&gt;
; 源地址（Source address）&lt;br /&gt;
: 一个IPv4地址由四个字节共32位构成，此字段的值是将每个字节转为二进制并拼在一起所得到的32位值。&lt;br /&gt;
: 例如，10.9.8.7是00001010000010010000100000000111。&lt;br /&gt;
: 但请注意，因为NAT的存在，这个地址并不总是报文的&amp;#039;&amp;#039;真实&amp;#039;&amp;#039;发送端，因此发往此地址的报文会被送往NAT设备，并由它被翻译为真实的地址。&lt;br /&gt;
&lt;br /&gt;
; 目的地址（Destination address）&lt;br /&gt;
: 与源地址格式相同，但指出报文的接收端。&lt;br /&gt;
&lt;br /&gt;
; 选项（Options）&lt;br /&gt;
: 附加的首部字段可能跟在目的地址之后，但这并不被经常使用，从1到40个字节不等。请注意首部长度字段必须包括足够的32位字来放下所有的选项（包括任何必须的填充以使首部长度能够被32位整除）。当选项列表的结尾不是首部的结尾时，EOL（选项列表结束，0x00）选项被插入列表末尾。下表列出了可能&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! 字段 !! 长度（位） !! 描述&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;备份&amp;#039;&amp;#039;&amp;#039; || 1 || 当此选项需要被备份到所有分片中时，设为1。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;类&amp;#039;&amp;#039;&amp;#039; || 2 || 常规的选项类别，0为“控制”，2为“查错和措施”，1和3保留。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;数字&amp;#039;&amp;#039;&amp;#039; || 5 || 指明一个选项。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;长度&amp;#039;&amp;#039;&amp;#039; || 8 || 指明整个选项的长度，对于简单的选项此字段可能不存在。&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;数据&amp;#039;&amp;#039;&amp;#039; || 可变 || 选项相关数据，对于简单的选项此字段可能不存在。&lt;br /&gt;
|}&lt;br /&gt;
* 注：如果首部长度大于5，那么选项字段必然存在并必须被考虑。&lt;br /&gt;
* 注：备份、类和数字经常被一并称呼为“类型”。&lt;br /&gt;
: 宽松的源站选路（LSRR）和严格的源站选路（SSRR）选项不被推荐使用，因其可能带来安全问题。许多路由器会拒绝带有这些选项的报文。&lt;br /&gt;
&lt;br /&gt;
=== 数据 ===&lt;br /&gt;
数据字段不是首部的一部分，因此并不被包含在首部检验和中。数据的格式在协议首部字段中被指明，并可以是任意的[[传输层]]协议。&lt;br /&gt;
&lt;br /&gt;
一些常见协议的协议字段值被列在下面：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! 协议字段值 !! 协议名 !! 缩写&lt;br /&gt;
|-&lt;br /&gt;
| 1 || [[互联网控制消息协议]] || ICMP&lt;br /&gt;
|-&lt;br /&gt;
| 2 || [[互联网组管理协议]] || IGMP&lt;br /&gt;
|-&lt;br /&gt;
| 6 || [[传输控制协议]] || TCP&lt;br /&gt;
|-&lt;br /&gt;
| 17 || [[用户数据报协议]]  || UDP&lt;br /&gt;
|-&lt;br /&gt;
| 41 || [[IPv6|IPv6封装]] || ENCAP&lt;br /&gt;
|-&lt;br /&gt;
| 89 || [[开放式最短路径优先]] || OSPF&lt;br /&gt;
|-&lt;br /&gt;
| 132 || [[流控制传输协议]]  || SCTP&lt;br /&gt;
|}&lt;br /&gt;
参见[[IP协议号列表]]以获得完整列表。&lt;br /&gt;
&lt;br /&gt;
== 分片和组装 ==&lt;br /&gt;
{{Main|IP分片}}互联网协议（IP）是整个互联网架构的基础，可以支持不同的物理层网络，即IP层独立于链路层传输技术。不同的链路层不仅在传输速度上有差异，还在帧结构和大小上有所不同，不同[[最大传输单元|MTU]]参数描述了数据帧的大小。为了实现IP数据包能够使用不同的链路层技术，需要将IP数据包变成适合链路层的数据格式，IP报文的[[分片]]即是IP数据包为了满足链路层的数据大小而进行的分割。&lt;br /&gt;
&lt;br /&gt;
在IPv6不要求路由器执行分片操作，而是将检测路径最大传输单元大小的任务交给了主机。&lt;br /&gt;
&lt;br /&gt;
=== 分片 ===&lt;br /&gt;
当设备收到IP报文时，分析其目的地址并决定要在哪个链路上发送它。MTU决定了数据载荷的最大长度，如IP报文长度比MTU大，则IP数据包必须进行分片。每一片的长度都小于等于MTU减去IP首部长度。接下来每一片均被放到独立的IP报文中，并进行如下修改：&lt;br /&gt;
* 总长字段被修改为此分片的长度；&lt;br /&gt;
* 更多分片（MF）标志被设置，除了最后一片；&lt;br /&gt;
* 分片偏移量字段被调整为合适的值；&lt;br /&gt;
* 首部检验和被重新计算。&lt;br /&gt;
&lt;br /&gt;
例如，对于一个长20字节的首部和一个MTU为1,500的以太网，分片偏移量将会是：0、(1480/8)=185、(2960/8)=370、(4440/8)=555、(5920/8)=740、等等。&lt;br /&gt;
&lt;br /&gt;
如果报文经过路径的MTU减小了，那么分片可能会被再次分片。&lt;br /&gt;
&lt;br /&gt;
比如，一个4,500字节的数据载荷被封装进了一个没有选项的IP报文（即总长为4,520字节），并在MTU为2,500字节的链路上传输，那么它会被破成如下两个分片：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| #&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;200&amp;quot;| 总长&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 更多分片（MF）？&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |DF    &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 分片偏移量&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| 首部&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| 数据&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 1 ||colspan=&amp;quot;2&amp;quot;| 2500 ||rowspan=&amp;quot;2&amp;quot; {{yes}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 2480&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 2 ||colspan=&amp;quot;2&amp;quot;| 2040 ||rowspan=&amp;quot;2&amp;quot; {{no}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; |310&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 2020&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
现在，假设下一跳的MTU为1,500字节，那么每一个分片都会被再次分成两片（由于数据片段只有在目的主机才重新被组成数据报，因此再次分片是针对每个在网络中传输的数据帧）：&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| #&lt;br /&gt;
!colspan=&amp;quot;2&amp;quot; width=&amp;quot;200&amp;quot;| 总长&lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 更多分片（MF）？&lt;br /&gt;
! rowspan=&amp;quot;2&amp;quot; |DF    &lt;br /&gt;
!rowspan=&amp;quot;2&amp;quot;| 分片偏移量&lt;br /&gt;
|-&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| 首部&lt;br /&gt;
!width=&amp;quot;100&amp;quot;| 数据&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 1 ||colspan=&amp;quot;2&amp;quot;| 1500 ||rowspan=&amp;quot;2&amp;quot; {{yes}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; | 0&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 1480&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 2 ||colspan=&amp;quot;2&amp;quot;| 1020 ||rowspan=&amp;quot;2&amp;quot; {{yes}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; | 185&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 1000&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 3 ||colspan=&amp;quot;2&amp;quot;| 1500 ||rowspan=&amp;quot;2&amp;quot; {{yes}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; | 310&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 1480&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 4 ||colspan=&amp;quot;2&amp;quot;| 560 ||rowspan=&amp;quot;2&amp;quot; {{no}} &lt;br /&gt;
| rowspan=&amp;quot;2&amp;quot; |0|| rowspan=&amp;quot;2&amp;quot; | 495&lt;br /&gt;
|-&lt;br /&gt;
| 20 || 540&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
第3和4片是从原始第2片再次分片而来，所以除了分片后的最后一个分片外MF为都为1。&lt;br /&gt;
&lt;br /&gt;
=== 重组 ===&lt;br /&gt;
当一个接收者发现IP报文的下列项目之一为真时：&lt;br /&gt;
* DF标志为0；&lt;br /&gt;
* 分片偏移量字段不为0。&lt;br /&gt;
它便知道这个报文已被分片，并随即将数据、标识符字段、分片偏移量和更多分片标志一起储存起来。&lt;br /&gt;
&lt;br /&gt;
当接受者收到了更多分片标志未被设置的分片时，它便知道原始数据载荷的总长。一旦它收齐了所有的分片，它便可以将所有片按照正确的顺序（通过分片偏移量）组装起来，并交给上层协议栈。&lt;br /&gt;
&lt;br /&gt;
== 辅助协议 ==&lt;br /&gt;
互联网协议定义并激活了[[网络层]]，它使用一个逻辑地址系统。IP地址并不以任何永久的方式绑定到硬件，而且事实上一个网络接口可以有许多IP地址。为了正确地交付一份报文，主机和路由器需要其它机制来识别设备接口和IP地址之间的关联。[[地址解析协议]]（ARP）为IPv4执行这种IP地址到物理地址（[[MAC地址]]）的转换。&lt;br /&gt;
&lt;br /&gt;
此外，反向操作有时候也是必须的，比如，一台主机在启动时需要知道自己的IP地址（除非地址已经被管理员预先设置）。目前被用于这一用途的协议有动态主机设置协议（[[动态主机设置协议|DHCP]]）、引导协议（[[BOOTP]]）和比较不常用的[[RARP]]。&lt;br /&gt;
&lt;br /&gt;
== 参见 ==&lt;br /&gt;
* [[分类网络]]&lt;br /&gt;
* [[无类别域间路由]]&lt;br /&gt;
* [[互联网号码分配局]]&lt;br /&gt;
* [[已分配的/8 IPv4地址块列表]]&lt;br /&gt;
* [[区域互联网注册管理机构]]&lt;br /&gt;
* [[各國IPv4位址分配列表]]&lt;br /&gt;
&lt;br /&gt;
== 参考文献 ==&lt;br /&gt;
{{reflist}}&lt;br /&gt;
&lt;br /&gt;
== 外部链接 ==&lt;br /&gt;
* RFC 791 — Internet Protocol{{en}}&lt;br /&gt;
* RFC 3344 — IPv4 Mobility{{en}}&lt;br /&gt;
* [https://web.archive.org/web/20170920185613/http://www.iana.org/ IANA] — 互联网地址分配局官方网站{{en}}&lt;br /&gt;
* [http://www.networksorcery.com/enp/protocol/ip.htm IP Header Breakdown, including specific options]{{Wayback|url=http://www.networksorcery.com/enp/protocol/ip.htm |date=20110514231900 }}{{en}}&lt;br /&gt;
* [https://web.archive.org/web/20100608114541/http://www.networkworld.com/news/2010/060710-tech-argument-ipv6-nat.html IPv6 vs. carrier-grade NAT/squeezing more out of IPv4]{{en}}&lt;br /&gt;
* [http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml IPv4特殊用途地址]{{Wayback|url=http://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xhtml |date=20161123090347 }} {{en}}&lt;br /&gt;
&lt;br /&gt;
地址耗尽：&lt;br /&gt;
* [https://web.archive.org/web/20110109025511/http://www.ripe.net/rs/news/ipv4-ncc-20031030.html RIPE report on address consumption as of October 2003]&lt;br /&gt;
* [https://web.archive.org/web/20100430190605/http://www.iana.org/assignments/ipv4-address-space/ Official current state of IPv4 /8 allocations, as maintained by IANA]&lt;br /&gt;
* [http://www.potaroo.net/tools/ipv4/ Dynamically generated graphs of IPv4 address consumption with predictions of exhaustion dates — Geoff Huston]{{Wayback|url=http://www.potaroo.net/tools/ipv4/ |date=20110219132954 }}&lt;br /&gt;
* [https://web.archive.org/web/20110629000602/http://www.apnic.net/community/about-the-internet-community/internet-governance/articles/ip-addressing-in-china-2004 IP addressing in China and the myth of address shortage]&lt;br /&gt;
* [http://www.inetcore.com/project/ipv4ec/index_en.html Countdown of remaining IPv4 available addresses]{{Wayback|url=http://www.inetcore.com/project/ipv4ec/index_en.html |date=20110327122343 }} (estimated)&lt;br /&gt;
&lt;br /&gt;
{{Authority control}}&lt;br /&gt;
&lt;br /&gt;
[[Category:IPv4| ]]&lt;br /&gt;
[[Category:网际协议]]&lt;br /&gt;
[[Category:互联网标准]]&lt;br /&gt;
[[Category:互联网结构]]&lt;br /&gt;
[[Category:网络层协议]]&lt;/div&gt;</summary>
		<author><name>imported&gt;Rx5674</name></author>
	</entry>
</feed>