4

IPv4 与 IPv6 | myfreax

 2 years ago
source link: https://www.myfreax.com/ipv4yu-ipv6qu-bie/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

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

本文解释了 Internet 协议以及 IPv6 与IPv4的区别。

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

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

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

由于这种独特的寻址模式,今天的 Internet 得以存在。IANA 管理连接到 Internet 的网络/站点的 IP 地址范围。但是,如果我们运行一个隔离的本地网络基础设施,我们可以根据自己的喜好分配IP 地址。现在,让我们深入了解这两种架构及其比较分析的本质。

Internet 协议 (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,214B级128.0.0.0 到 191.255.0.0255.255.0.016,28265,534C级192.0.0.0 到 223.255.255.0255.255.255.02,097,150254D级224.0.0.0 到 239.255.255.255组播E级240.0.0.0 到 255.255.255.255研究/保留/实验

子网的计算涉及背后的一些数学量规。为了减轻我们的计算,我们可以使用类似的工具ipcalcsubnetcalc针对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 地址分配给终端主机和路由器网关接口,如下图所示。

在这里,来自机器 A (10.235.64.58) 的流量到达互联网云左侧的路由器网关接口 (10.235.64.57)。它通过 Internet 路由到达 Google Server 网关,最后到达目标服务器。

要识别网络接口 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.0127.0.0.1。前者为默认路由或四零路由,后者称为环回地址

在下面的片段中,我们将看到内核 IP 路由表以及该网络的默认路由。标志'U'表示网络路由是UP,而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 字节的报头字段、选项字段和长度可变的数据字段组成。示例数据包格式如下所示。

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

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

IPv6 地址为 128 位(16 字节),使用 32 个十六进制数字,同时这些数字被进一步分为八组,每组四位数字,以便于管理。下面显示了一个简要说明。

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虽然有很多优点,但它无法取代IPv4。两个协议版本必须共存一段时间才能无缝迁移。因此,服务提供商正在提供双栈支持系统,该系统拥有可以理解 IPv4 和 IPv6 数据包的网络接口。

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

IPv4 与 IPv6 - 快速比较分析

特征Internet 协议 - 版本 4 [IPv4]互联网协议 - 版本 6 [IPv6]部署和分配1981年1999年长度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 承载了大部分 Internet 流量,但 IPv6 是网络世界的未来。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK