IPv4与IPv6?它们有什么区别?它们的优缺点是什么?
IPv4 是目前最常见、使用最广泛的互联网协议版本。尽管它仍然是互联网的基础、 IPv6 (它的新版本)正慢慢引起人们的兴趣。
在这篇文章中,我们将介绍两种IP协议。我们将用深入的技术解释来解释它们的区别。然后,我们将描述它们的11个关键区别。
目录
- 什么是IPv4?
- 什么是IPv6?
- 11个关键区别:IPv4 与 IPv6。
- 地址组合的数量。
- 不同的地址表示法。
- 缩写技巧。
- 地址类型和范围不同。
- 全局唯一地址 vs. 公共地址。
- 不同的本地地址分配。
- 首部(控制位)的差异。
- 谁需要网络地址转换(NAT)?
- IPSec实现。
- 广播、组播和任播。
- IPv4和IPv6的速度。哪个更快?
- IPv6与IPv4的差异对比表格。.
- IPv4与IPv6常见问题解答。
1. 什么是IPv4?
IPv4(Internet Protocol version 4)是主导的互联网协议,使整个互联网运作。它在以下描述中进行了说明 RFC 791 自1981年起,IPv4为连接到网络(包括互联网)的每个设备提供了唯一标识符。
由于选项和数据字段,IPv4数据包的大小可能以位为单位而异。IPv4数据包的最小大小可以从20字节(用于控制)到最大60字节。 一个IP数据包包含控制平面(头部)和数据平面(有效载荷)。
数据包的前四位(版本)表示IP版本。箭头指示了数据包头部中显示协议版本的第一个位。
了解IPv4在其控制字段中携带的内容将有助于您理解IPv4与IPv6之间的关键差异。
因此,让我们定义一下这些数据包字段:
- 因此,让我们定义一下这些数据包字段:
- IHL(第4位):Internet Header Length(IHL)指定头部的长度。
- 服务类型(TOS - 8位):指定数据报如何处理。
- 总长度(16位):数据报的长度。
- 标识(16位):用于标识其他数据报的片段。
- 标志位(3位):片段、不分片或更多片段。
- 片段偏移(13位):用于组装片段。
- 生存时间(TTL - 8位):标识数据报的生存时间。
- 协议(8位):该字段指定下一个封装的协议。
- 头部校验和(16位):有助于检测损坏的数据包。
- 源地址(32位):发送方的IP地址。
- 目标地址(32位):接收方的IP地址。
- 选项(可变位数):可选参数。
- 数据(最多524,120位或65 K字节):携带要发送给接收方的IP数据(如果有)。
以下是一个数据包嗅探器(Wireshark)显示的IPv4数据包的图片。 通过IP数据包捕获,您可以确定用于特定数据包的控制参数。如下图所示的箭头所示,此IP数据包的版本是4。下面是表示版本和数据包长度的十六进制数(45)。
有趣的事实! 那么,IPv1、IPv2、IPv3和IPv5发生了什么?IEEE和科学家们经过三个版本(IPv1、IPv2和IPv3)的实验,最终得出了完全可操作的IP寻址方案:IPv4。当IPv5出现时,它被用作流协议(SP)的实验,因此IP科学家们决定将其更名为IPv6,以避免与实验混淆。
b. IPv4地址格式。
计算机使用十六进制数进行通信。但是,由于十六进制对人类来说不容易理解,IPv4地址使用十进制表示法。IPv4地址使用点号分隔其四个八位字节(32位/4 = 8)。每个八位字节的十进制范围为0-255。地址根据IPv4地址类别(A、B或C)和一些保留位(用于定义类别),被划分为网络标识符和主机标识符,它们的长度会有所不同。
作为示例,下图显示了一个类B的IPv4地址172.16.254.1,它是一个32位地址,由四个(8位)部分组成。
有趣的事实! IPv4地址的总可能组合约为40亿,几乎为全球每两个人提供一个IP地址。但尽管有如此庞大的组合数量,仍然没有足够的IP地址来支持全球通信。这种耗尽的原因有很多,包括物联网设备、虚拟化、云计算,尤其是IPv4的不当分配。
2. IPv6是什么?
IPv6技术是根据 RFC 2460 的适当更新和修订来定义的。IPv6地址使用128位地址空间,可以产生2^128个地址,而IPv4只有32位,可以产生2^32个地址。128位的组合结果是二进制表示的地址,对于人类来说太难记忆,因此IPv6使用十六进制表示法。
让我们看一下下面的示例图片。IPv6地址的长度(0123:4567:89ab:cdef:0123:4567:89ab:cdef)为16字节(或128位)。它由八组16位组成,用冒号(:)分隔。总共有8 x 16 = 128位。
IPv6地址,例如2001:0db8:0000:0000:0000:ff00:0042:8329,很难管理、记忆和使用。因此,IPv6引入了规则,例如省略前导和连续的零节段,以帮助缩短地址。例如,经过应用这些规则后,上述地址可以缩写为2001:db8::ff00:42:8329。
IPv6地址被分为两部分。最高有效位(最左边),64位,表示网络——在互联网上用作路由前缀。在另一半(n-128)中,最低有效位(最右边)的64位表示接口标识符——用于本地网络中的主机。
IPv6数据包。
IPv6和IPv4数据包格式非常相似。IPv6还具有称为有效载荷的“数据”空间,用于传输数据,以及称为头部的“控制”空间。整个IPv6数据包(包括头部和有效载荷)的最小大小为1280字节——头部固定为40字节,而“可选有效载荷”为1240字节。
当您查看IPv6数据包格式时,您会立即注意到它比IPv4的格式要简单得多。它更简单,但尺寸要大得多!
IPv6固定的控制数据包由320位(40字节)组成:
- 版本(4位):IPv4或IPv6数据包的前四位相似,它们将确定IP版本。
- 流量类别(8位):确定数据包的优先级。
- 流标签(20位):确定服务质量(QoS,Quality of Service)。
- 有效载荷长度(16位):指示为数据保留的长度。
- 下一标头(8位):该字段指示以下的标头。
- 跳限制(8位):生存时间限制了两个IPv6节点之间的最大跳数(链路数)。
- 源地址(128位):数据包的来源(在双栈环境中,源可以是IPv4或IPv6)。
- 目标地址(128位):数据包的目的地(在双栈环境中,可以是IPv4或IPv6)。
IPv6控制数据包还可以扩展以包含有关分段、路由或安全性(IPSec)等数据包的详细信息。最后一个扩展,IPSec,广泛用作主要的VPN协议,已内置在IPv6中。
IPv4与IPv6的11个主要区别。
下面是IPv4和IPv6之间的11个主要区别。
1. IPv6提供了一个令人惊叹的地址数量。
IPv6是为了解决IPv4地址耗尽而引入的。IPv4的地址大小为32位,而IPv6的地址大小为128位。IPv6的格式可以支持令人难以置信的大量网络地址组合。而IPv4大约只能提供40亿个地址,IPv6可以提供大约340万亿亿亿个IP地址。从IPv6开发至今,IPv6协议已经解决了IPv4枯竭问题,并提供了额外的好处和服务。
2. IPv4和IPv6具有不同的地址表示方式。
IPv4地址使用十进制表示法,而IPv6地址使用十六进制表示法,这是最高效的阅读和记忆方式。由于IPv4的尺寸较小(32位),可以使用十进制表示法编写和记忆,结果为四个十进制数。但是,使用十进制来表示IPv6地址(128位)将是不可能的,因此IPv6地址使用十六进制数字。每个十六进制数字由4位组成,总共有32个十六进制数字。
3. IPv6具有缩短技术,而IPv4没有。
IPv6 格式有助于扩展寻址能力。IPv6 地址可以使用双冒号缩写,省略前导零。双分号可以省略 IPv6 地址的整个部分。例如,IPv6 地址 ff06:0:0:0:0:0:0:c3 可以写成 ff06::c3。这种缩写是为了简化 IPv6 地址符号。还要记住,双冒号(::) 只能使用一次,以省略 IPv6 地址中的连续零段.这是为了避免歧义。
4. IPv6和IPv4的地址类型和范围是不同的。
IPv6有三种类型的地址:全局单播地址(Global Unicast Address)、唯一本地地址(Unique Local)和链路本地地址(Link-Local)。IPv6全局单播地址与IPv4的公共地址具有相同的目的——在互联网上进行路由。互联网机构将这些地址分配给ISP或LIR,后者通过租赁或销售将其分配给用户。IPv4和IPv6之间的区别在于内部本地地址或私有地址空间。IPv4使用保留的数字范围(A类、B类和C类)的内部地址,这些地址在互联网上不进行公共路由。然而,IPv6使用两种类型的内部地址:唯一地址和链路本地地址。唯一地址在内部网络或VPN上进行路由,而链路本地地址仅用于单个网络域,不进行外部或内部路由。
5. IPv6的全局唯一地址与IPv4的公共地址有所不同。
IPv4和IPv6地址格式都分为网络部分和主机部分,以及由子网划分产生的第三部分。但是,为了处理IPv6的较大尺寸,还必须对其进行额外的调整。IPv6可以省略整个主机前缀。这个特性可以帮助减小路由表的大小,并在互联网上实现更快、更高效的路由。例如,IPv6的网络前缀(高64位)可以被分组为单个前缀(例如/48或/64),而主机前缀可以完全省略。
6. 不同的本地地址分配方式(DHCP vs. 自动分配)。
在IPv4中,本地地址是通过第三方DHCP服务器或手动配置分配的,在一些情况下,还可以在子网内自动分配一个链路本地IP:169.254.0.0/16。对于IPv6的本地地址,也可以通过DHCPv6进行动态分配,但不是强制性的。IPv6地址可以使用两种类型的自动配置(有状态和无状态)进行动态分配。IPv6有状态自动配置或DHCPv6类似于IPv4的DHCP,而无状态自动配置不同,并且现在是IPv6环境中的默认模式。在IPv6的无状态自动配置中,低64位(接口ID)是根据物理地址(MAC)使用扩展唯一标识符(EUI-64)格式的指导方针推导得出的。
7. IPv6的头部比IPv4更精简。
在IPv4中,头部长度限制为60字节,而在IPv6中,最大长度为40字节。其中一个原因是IPv6的头部不使用校验和字段,而IPv4的数据包会使用校验和字段。IP中的错误检查由其他层(如TCP)执行,因此校验和字段是多余的。在两个或三个层级上进行校验和检查和重新计算会导致路由效率低下。分段字段是另一个例子。IPv6要求分段必须由IPv6下面的层以及发送方提供。而在IPv6中,分段字段从强制性变为可选项。
8. IPv4需要使用NAT(网络地址转换);IPv6不需要。
在IPv4世界中,网络地址转换(NAT)是重用IP地址空间所需的协议。NAT将公共IP地址映射到私有IP地址,使网络更安全并节省地址空间。然而,糟糕的NAT实现可能会使网络变慢和更加复杂。IPv6没有地址短缺问题,因此不需要NAT。NAT提供的额外地址空间与IPv6寻址范围可能的大规模地址空间无法相提并论。实际上,希望使用IPv6的新网络实现建议避免使用NAT。
9. 在IPv4中,必须实现IPSec,而在IPv6中,它是内建的。
互联网协议安全(IPSec)是一种提供数据包认证和加密机制的网络协议。IPSec是虚拟专用网络(VPN)中常用的安全协议。在IPv4中,IPSec是一个可选字段;而在IPv6中,它是内建的,始终可用。虽然它仍然是可选的(意味着可以禁用它),但任何新的IPv6实现都支持IPSec。尽管IPSec在IPv6中是内建的,但并不意味着它自动比IPv4更安全。糟糕的IPSec实现与没有任何安全措施一样不安全。
10. IPv4进行广播,而IPv6进行组播和任播。
IPv4上可以进行广播消息。通过广播消息,任何设备都可以向所有连接的节点发送数据包。然而,由于性能问题,IPv4中的广播消息必须受到限制。IPv6中的广播概念早已不存在。IPv6依靠其他技术(如组播或任播)来提供类似的功能。组播是发送到特定组域的消息。此外,IPv6引入了新的任播概念,即向设备组中的任何成员发送消息。
11. IPv4与IPv6的速度。哪个更快?
就速度而言,这两种协议之间只有微小的差异。理论上,IPv6应该稍微更快,因为它不需要使用NAT(网络地址转换)将一个IP地址映射到另一个IP地址。然而,IPv6的数据包长度较长,因此理论上它应该比IPv4更慢。正如前面所示,IPv6使用128位,而IPv4使用32位。
因此,实际上IPv4和IPv6之间的速度差异是什么?目前,导致这两者速度差异的原因是IPv4(包括所有底层基础设施、软件等)比IPv6更加成熟、受支持和优化。但是由于IPv6不需要NAT,并且依赖组播技术,在直接连接测试时速度更快。因此,随着IPv6技术的成熟,其速度将会更快。一个在速度方面明显更好的应用示例是 IPv6代理服务器.
4. IPv6与IPv4的差异对比表。
所以,既然你理解了每个IP版本,让我们用一张对比图来定义它们的基本区别。 下表将帮助您比较IPv4与IPv6地址之间的差异。
IPv4 | IPv6 | |
部署年份。 | 1981 | 1999 |
地址大小(以位为单位)。 | 32位 | 128位 |
表示法。 | 四个二进制八位字节用十进制表示。 | 八个二进制四位组用十六进制表示。 |
格式。 | 192.168.0.0/24 | 2001:db8::/48 |
数据包大小 | 576字节(需要分片) | 1280字节(无需分片) |
地址数量 | 2^32 ≈ 40亿 | 2^128 ≈ 340万亿万亿万亿 |
有效载荷(数据) | 有效载荷长度字段为16位长(数据) | 有效载荷长度字段为16位长(用于数据) |
环回地址 | 120.0.0.1 | ::1 |
报头 | 可变长度报头。 | 固定长度报头。 |
动态寻址 | 动态主机配置协议 | IPv6 无状态地址自动配置 |
分片。 | 路由器和发送主机。 | 仅由发送者执行。 |
广播 | 广播消息可用。 | 无广播(但使用组播实现类似功能)。 |
IPSec | 自选的 | 内置。始终可用。 |
L3-L2解析 | ARP广播 | 组播邻居请求。 |
路由器发现 | 自选的 | 强制的 |
流识别 | 无法使用 | 可用于 IPv6 |
校验和 | 可用于 IPv4 | 不需要。 |
安全 | 不是强制性的 | 内置IPSec |
5. IPv4 与 IPv6 常见问题解答。
a. IPv6 有何用途?
IPv6的设计目的是解决IPv4地址枯竭问题。它与IPv4相同,为网络上的设备提供寻址和标识,但规模更大。IPv6将有助于应对物联网设备、虚拟化和云计算的快速增长。
b. IPv4 和 IPv6 哪个更快?
没有比另一个机制更快的。IPv6确实提供了一个更简洁、更简单的报头,这可能导致更高效的路由和数据包处理。此外,IPv6免于NAT的限制。但是,糟糕的IPv6实现仍然可能导致IPv4网络速度较慢。
c. IPv6 与 IPv4 哪个更安全?
就安全性而言,IPv4和IPv6之间的差异取决于实现方式。这是因为IPv6和IPv4具有不同的安全特性和漏洞。然而,IPv6的设计考虑了安全性,包括一些在IPv4中不存在的安全特性。例如,IPv6作为强制性功能包括了IPsec(Internet Protocol Security)(VPN协议),为网络流量提供了加密和认证。此外,IPv6支持更大的数据包大小,使攻击者更难以执行某些类型的攻击,如分段攻击。另一方面,IPv4是一种较老的协议,安全性并非其主要关注点。虽然IPv4也支持IPsec,但它不是强制性功能,许多设备和网络并未使用它。
d. VPN 的 IPv4 与 IPv6 比较?
两者都可以用于VPN,但需要考虑一些事项。IPv4是较旧且更广泛使用的协议,因此许多VPN仍然完全依赖IPv4。然而,IPv6在VPN方面具有一些优势。通过使用内置的IPsec加密和认证,IPv6可以为VPN连接提供更好的性能和安全性。IPv6还可以避免一些与NAT相关的问题,这可能会对依赖IPv4的VPN造成问题。但不幸的是,IPv6的广泛采用程度还不如IPv4。许多组织和服务提供商尚未完全过渡到IPv6。对于仍不支持IPv6 VPN连接的VPN而言,情况也是如此。
d. IPv6 与 IPv4 适合游戏?
IP为您提供寻址和标识,不会影响您的应用程序。但是,在游戏中使用IPv4和IPv6时仍然存在一些差异。主要的区别在于IPv4依赖于NAT,在数据包经过多个NAT时可能会延迟游戏体验(帧率)。
e. 我如何知道我是否使用IPv4还是IPv6呢?
e. 要快速了解您当前是否使用IPv4或IPv6,最简单的方法是进行在线测试,例如 测试我的IPv6 或 ipv6-test.com。您还可以在Windows上打开“命令提示符”或在macOS或Linux上打开“终端”,然后键入“ipconfig”或“ifconfig”。在那里,您将找到有关接口IP地址的摘要信息。
f. IPv6最终会用完吗?
虽然数量并非无限,但IPv6被设计为几乎无穷的地址池。IPv6有34万亿亿亿个地址,这足以支持数万亿台设备连接到互联网。IPv6在可预见的未来几乎不会用尽。
g. IPv4将何时被逐步淘汰?
事实上,IPv4地址正在枯竭,这正是IPv6的重要性所在。它解决了IPv4地址枯竭问题,并为创新和服务开启了许多机会。尽管IPv6的升级进展缓慢,IPv6已经存在约十年,但它仍未广泛部署。然而,IPv6的采用率仍在稳步增长。
h. 在游戏中,IPv6和IPv4哪个更好?
事实上,所有新的游戏主机都支持IPv6,这表明了过渡的必要性。视频游戏公司了解IPv6和IPv4在游戏中的差异。尽管IPv4是一项成熟且成熟的技术,但IPv6在性能、速度和安全性方面要好得多。首先,IPv6不需要任何端口转发、UPnP或NAT-PMP,因此在速度和性能上有很大的区别。另外,由于IPv6启用的设备会自动配置其地址,这也极大地提升了游戏体验。
i. IPv6被分类为与IPv4相同吗?
IPv6没有像IPv4那样被分类。在IPv4中,IP地址被分为A类、B类、C类、D类和E类。这些类别是根据用于表示网络和主机部分的位数进行划分的。这种分类系统允许按层次分配IP地址。因此,IPv6不使用类别进行组织,而是使用更简单的寻址方案,将地址分为前缀和接口ID两部分。
j. IPv4的生存时间(Time to Live)与IPv6的生存时间有何区别?
在IPv4和IPv6中,生存时间(TTL)字段用于限制网络数据包的生存期。尽管这在两种协议中的目标相同,但存在一些显著的差异。在IPv4中,TTL字段是一个1字节的字段,意味着最大TTL值为255。相比之下,IPv6中的TTL字段是一个2字节的字段,允许更大的最大值为65,535。在IPv6中,数据包在被丢弃之前可以经过更多的跳数,这对于非常大或复杂的网络是有帮助的。
你好
dans votre article très intéressant, vous précisez que les adresses IPv6 peuvent être abrégés par des "doubles points-virgules" hors dans votre exemple, li est fait usage de doubles points ":" il y a donc une confusion avec la réalité.
"IPv6 格式允许扩展地址容量。IPv6 地址可以通过双点虚拟地址(double points-virgules)和省略初始零点(zéros initiaux)来删除。双点虚拟地址允许省略 IPv6 地址的各个部分。因此,IPv6 地址 ff06:0:0:0:0:0:0:c3 可以写成 ff06::c3。该缩写是为了减少 IPv6 地址的尾数"。
感谢您为我们提供了这篇既有说服力又有指导性的文章。
亚历克斯,谢谢你的观察。实际上,文中有一处错误。正确的说法是 "双 deux-points"(::),而不是 "double point-virgule"。此外,缩写可以简化 IPv6 地址的标注,但不能减少其尾数......现在已全部更正。谢谢