在今天的技术时代,我们见证了互联网和网络设备使用的巨大飞跃。每个家庭都有笔记本电脑、智能手机、数字手表、物联网设备、家庭自动化组件,以及其他与家庭网络或互联网相连的设备。设备之间通过各种网络协议进行通信,其中TCP和IP是最经常使用的协议。每个连接到网络的设备都必须有一个IP地址,以识别网络上的设备。
本文解释了互联网协议以及IPv6与IPv4的不同之处。
什么是IP(互联网协议)?
作为人类,我们用自己的名字来识别和交流。同样地,在计算机世界中,设备使用IP地址来识别和相互交流。所有计算设备用于相互通信的共同语言被称为协议。与人类语言相似,协议也有一套规则,用于格式化和处理数据。

互联网协议(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.0 | 255.0.0.0 | 126 | 16,777,214 |
B类 | 128.0.0.0至191.255.0.0 | 255.255.0.0 | 16,282 | 65,534 |
C类 | 192.0.0.0 到 223.255.255.0 | 255.255.255.0 | 2,097,150 | 254 |
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地址是给终端主机和路由器网关接口的,如下图所示。

在这里,来自机器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个字节的头字段、选项字段和长度可变的数据字段组成。样本数据包的格式如下所示。

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

IPv6
互联网协议第6版是互联网协议(IP)的更新版本。互联网协议第6版旨在取代旧版(IPv4),截至2018年,旧版承载了75%的互联网总流量(来源:谷歌IPv6统计)。
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::/16 | 6to4单播地址 |
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–快速比较分析
特点 | 互联网协议–第4版 [IPv4] | 互联网协议–第6版 [IPv6] |
---|---|---|
部署和分配 | 1981 | 1999 |
长度 | 32位 | 128位 |
地址空间 | 4.29 x 10^9 | 3.4 x 10^38 |
格式 | 带点的十进制/ [10.235.64.56]。 | 十六进制/ [2400::4] 。 |
八位数的数量 | 4 | 16 |
报头大小 | 从20 – 60字节不等 | 40字节 |
类别 | 五个类别。A类、B类、C类、D类、E类 | 无 |
安全功能/认证和加密 | 不可用 | 有 |
校验和 | 有 | 不可用 |
IPSec | 外部和可选的 | 内建的功能 |
跳数 | 由TTL字段指示 | 由Hoplimit字段指示 |
分片 | 由发送方和转发路由器执行 | 只由发件人执行 |
选项字段 | 在IPv4头中提供 | 没有可选字段,但IPv6扩展头可使用 |
组播 | IGMP管理多播组成员资格 | MLD取代了IGMP |
广播消息 | 可用 | 不可用。使用组播 |
IP到MAC的映射 | 地址解析协议 | 邻里发现协议 |
总结
我们探讨了互联网协议的基础知识及其版本。在此过程中,文章阐明了IPv4和IPv6的寻址模式、数据包格式和功能,并进行了比较分析。尽管今天IPv4承载了大部分的互联网流量,但IPv6是网络世界的未来。