IPv4 vs IPv6

在今天的技术时代,我们见证了互联网和网络设备使用的巨大飞跃。每个家庭都有笔记本电脑、智能手机、数字手表、物联网设备、家庭自动化组件,以及其他与家庭网络或互联网相连的设备。设备之间通过各种网络协议进行通信,其中TCP和IP是最经常使用的协议。每个连接到网络的设备都必须有一个IP地址,以识别网络上的设备。

本文解释了互联网协议以及IPv6与IPv4的不同之处。

什么是IP(互联网协议)?

作为人类,我们用自己的名字来识别和交流。同样地,在计算机世界中,设备使用IP地址来识别和相互交流。所有计算设备用于相互通信的共同语言被称为协议。与人类语言相似,协议也有一套规则,用于格式化和处理数据。

names

互联网协议(IP)是一套规定计算机之间的寻址和数据路由的规则。它主要与网络传输协议一起使用,如TCP和UDP。

互联网今天的存在就是因为这种独特的寻址模式。IANA管理着连接到互联网的网络/网站的IP地址范围。然而,如果我们运行一个孤立的本地网络基础设施,我们可以根据自己的喜好来分配号码。现在,让我们来了解一下这两种架构的细枝末节及其比较分析。

IPv4

互联网协议(IP)的第一个主要版本是版本4(IPv4)。它使用一个32位的网络寻址模式,进一步分成四个8位数字,称为八位数。例如,google.com的IP地址为141.251.36.46。这种格式被称为点状四字节符号。这些IP地址既可以手动配置,也可以通过DHCP服务器自动获得。

为了检查远程设备的实时状态,我们可以使用ping命令对该IP进行ICMP探测。

ping -c 1 google.com
PING google.com (142.251.36.46) 56(84) bytes of data.
64 bytes from ams17s12-in-f14.1e100.net (142.251.36.46): icmp_seq=1 ttl=116 time=247 ms

...

IP地址被分成两部分,网络和主机地址,用于创建子网。子网号码有助于决定IP的网络和主机部分。另外,可用的IP空间被分为五个不同的等级,如下表所示。

地址类别IP范围子网掩码网络数量每个网络的主机数量
A类1.0.0.0至126.0.0.0255.0.0.012616,777,214
B类128.0.0.0至191.255.0.0255.255.0.016,28265,534
C类192.0.0.0 到 223.255.255.0255.255.255.02,097,150254
D类224.0.0.0 到 239.255.255.255多重播送
E类240.0.0.0至255.255.255.255研究/保留/实验

子网的计算涉及到屏幕后面的一些数学摩擦。为了方便我们的计算,我们可以使用ipcalc或subnetcalc等工具来计算IPv4子网。下面的片段展示了如何使用这些工具。

ipcalc 110.0.20.18/24
Address: 110.0.20.18 01101110.00000000.00010100. 00010010
Netmask: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 110.0.20.0/24 01101110.00000000.00010100. 00000000
HostMin: 110.0.20.1 01101110.00000000.00010100. 00000001
HostMax: 110.0.20.254 01101110.00000000.00010100. 11111110
Broadcast: 110.0.20.255 01101110.00000000.00010100. 11111111
Hosts/Net: 254 Class A
subnetcalc 192.168.10.15/24
Address = 192.168.10.15
11000000 . 10101000 . 00001010 . 00001111
Network = 192.168.10.0 / 24
Netmask = 255.255.255.0
Broadcast = 192.168.10.255
Wildcard Mask = 0.0.0.255
Hosts Bits = 8
Max. Hosts = 254 (2^8 - 2)
Host Range = { 192.168.10.1 - 192.168.10.254 }
Properties =
- 192.168.10.15 is a HOST address in 192.168.10.0/24
- Class C
- Private
GeoIP Country = Unknown (??)
DNS Hostname = (Name or service not known)

通常情况下,IP地址是给终端主机和路由器网关接口的,如下图所示。

internet-routing

在这里,来自机器A(10.235.64.58)的流量击中了互联网云左边的路由器网关接口(10.235.64.57)。它通过互联网路由到达谷歌服务器网关,最后到达目标服务器。

要确定网络接口的IP,你可以使用ifconfig , hostname或ip等命令。

ifconfig ens160
ens160: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.235.64.58 netmask 255.255.255.252 broadcast 10.235.64.59
inet6 fe80::fc7f:d8da:a969:1c1d prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:23:6f:30 txqueuelen 1000 (Ethernet)
RX packets 35607241 bytes 34540488400 (34.5 GB)
RX errors 0 dropped 12 overruns 0 frame 0
TX packets 24701952 bytes 15008379564 (15.0 GB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
hostname -I
10.235.64.58

有一些特殊用途的网络IP地址,如0.0.0.0或127.0.0.1。前者是默认路由或四位数路由,而后者被称为回环地址。

在下面的片段中,我们将看到内核IP路由表和该网络的默认路由。标志 “U “代表网络路由是向上的,而 “G “表示网络路由是网络网关。

netstat -rn | grep ens160
Kernel IP routing table
Destination Gateway Genmask Flags MSS Window irtt Iface
0.0.0.0 10.235.64.57 0.0.0.0 UG 0 0 0 ens160
10.235.64.56 0.0.0.0 255.255.255.252 U 0 0 0 ens160

通常情况下,IPv4数据报由20个字节的头字段、选项字段和长度可变的数据字段组成。样本数据包的格式如下所示。

ipv4-packet

下面,Wireshark捕获有助于破译实时流量中的数据包头信息。

wireshark

IPv6

互联网协议第6版是互联网协议(IP)的更新版本。互联网协议第6版旨在取代旧版(IPv4),截至2018年,旧版承载了75%的互联网总流量(来源:谷歌IPv6统计)。

IPv6地址为128位(16字节),使用32个十六进制数字,而这些数字又被进一步分为八组,每组四位,以便于管理。下面是一个简单的图示。

ipv6

在IPv6的命名规则中,有几个基本步骤。

规则1:所有字母都不区分大小写。例如,’ab41’等于’AB41′ 规则2:带有’0’的连续字段可以看作是”::”,但在一个寻址中只能有一次 规则3。在一个字段中表示前导零是可选的。例如,’001a’等于’1a’。

例如,让我们来看看IPv6地址,45ab:0000:a179:0000:0000:c1c0:abcd:0876

应用规则1 => 45ab:0000:a179:0000:0000:c1c0:abcd:0876 应用规则2 => 45ab:0:a179:0:0:c1c0:abcd:876 应用规则3 => 45ab:0:a179::c1c0:abcd:876

有三种类型的IPv6地址。单播、组播和任播。单播地址是指单个网络接口和传递到该特定接口的数据包。此外,单播地址有本地(链接本地)和全局范围级别。多播地址是数据包被传送到的组接口。任播地址是指群组接口,数据包被传送到最近的接口。

下面列出了一些著名的地址。

]::1/128环回地址
ff00::/8多播地址
fe80::/10链接本地地址
2001::/16常规的IPv6单播地址
2002::/166to4单播地址
subnetcalc 2001:4860:4860::8888/64
Address = 2001:4860:4860::8888
2001 = 00100000 00000001
4860 = 01001000 01100000
4860 = 01001000 01100000
0000 = 00000000 00000000
0000 = 00000000 00000000
0000 = 00000000 00000000
0000 = 00000000 00000000
8888 = 10001000 10001000
Network = 2001:4860:4860:: / 64
Netmask = ffff:ffff:ffff:ffff::
Wildcard Mask = ::ffff:ffff:ffff:ffff
Hosts Bits = 64
Max. Hosts = 18446744073709551616 (2^64 - 1)
Host Range = { 2001:4860:4860::1 - 2001:4860:4860:0:ffff:ffff:ffff:ffff }
Properties =
- 2001:4860:4860::8888 is a HOST address in 2001:4860:4860::/64
- Global Unicast Properties:
+ Interface ID = 0000:0000:0000:8888
+ Sol. Node MC = ff02::1:ff00:8888
GeoIP Country = United States (US)
DNS Hostname = dns.google

同样,IPv6数据包有头和有效载荷。头部大小固定为40字节,源和目的地址占32字节。样本数据包的格式如下所示。

ipv6-packet

虽然IPv6有很多优点,但它不能取代IPv4。两个协议版本必须共存一段时间,才能实现无缝迁移。因此,服务提供商正在提供一个双栈支持系统,它拥有一个能够理解IPv4和IPv6数据包的网络接口。

有一些智能过渡机制,即IPv6隧道、IPv4映射的IPv6地址等。前者将IPv6数据包封装在IPv4中,而后者在双协议栈实施中将IPv6映射到IPv4地址。

IPv4与IPv6–快速比较分析

特点互联网协议–第4版 [IPv4]互联网协议–第6版 [IPv6]
部署和分配19811999
长度32位128位
地址空间4.29 x 10^93.4 x 10^38
格式带点的十进制/ [10.235.64.56]。十六进制/ [2400::4] 。
八位数的数量416
报头大小从20 – 60字节不等40字节
类别五个类别。A类、B类、C类、D类、E类
安全功能/认证和加密不可用
校验和不可用
IPSec外部和可选的内建的功能
跳数由TTL字段指示由Hoplimit字段指示
分片由发送方和转发路由器执行只由发件人执行
选项字段在IPv4头中提供没有可选字段,但IPv6扩展头可使用
组播IGMP管理多播组成员资格MLD取代了IGMP
广播消息可用不可用。使用组播
IP到MAC的映射地址解析协议邻里发现协议

总结

我们探讨了互联网协议的基础知识及其版本。在此过程中,文章阐明了IPv4和IPv6的寻址模式、数据包格式和功能,并进行了比较分析。尽管今天IPv4承载了大部分的互联网流量,但IPv6是网络世界的未来。


已发布

分类

作者:

标签