网络层协议 地址耗尽危机

2023-12-03 15:30

本文主要是介绍网络层协议 地址耗尽危机,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

IP地址是IP协议的重要组成部分,它可以识别接入互联网中的任意一台设备。在IP接力中,我们已经看到,IP包的头部写有出发地和目的地的IP地址。IP包上携带的IP地址和路由器相配合,最终允许IP包从互联网的一台电脑传送到另一台。

在【网络层协议 IP家族】中,我们是以IPv4为例说明IP包的格式的。IPv4和IPv6是先后出现的两个IP协议版本。IPv4的地址就是一个32位的0/1序列,比如11000000 00000000 0000000 00000011。为了方便人类记录和阅读,我们通常将32位0/1分成4段8位序列,并用10进制来表示每一段(这样,一段的范围就是0到255),段与段之间以.分隔。比如上面的地址可以表示成为192.0.0.3。IPv6地址是128位0/1序列,它也按照8位分割,以16进制来记录每一段(使用16进制而不是10进制,这能让写出来的IPv6地址短一些),段与段之间以:分隔。

IP地址的分配

IP地址的分配是一个政策性的问题。ICANN(the Internet Corporation for Assigned Names and Numbers)是Internet的中心管理机构。ICANN的IANA(Internet Assigned Numbers Authourity)部门负责将IP地址分配给5个区域性的互联网注册机构(RIR,Reginal Internet Registry),比如APNIC,它负责亚太地区的IP分配。然后RIR将地址进一步分配给当地的ISP(Internet Service Provider),比如中国电信和中国网通。ISP再根据自己的情况,将IP地址分配给机构或者直接分配给用户,比如将A类地址分配给一个超大型机构,而将C类地址分配给一个网吧。机构可以进一步在局域网内部分配IP地址给各个主机。(A/B/C类地址请参阅【网络层协议 IP家族】)

 

5个RIR的分管区域

并不是所有的地址都会被分配。一些地址被预留,用于广播、测试、私有网络使用等。这些地址被称为专用地址(special-use address)。你可以查询RFC5735来了解哪些地址是专用地址。

(RFC,Request For Comments。RFC是一系列的技术文档,用于记录Internet相关的技术和协议规定。每一个RFC文件都有一个固定的编号。它们是互联网的一个重要财产。你可以通过 http://www.rfc-editor.org/ 来查找RFC文件)

 

IPv4地址耗尽

由于IPv4协议的地址为32位,所以它可以提供232, 也就是大约40亿个地址。如果地球人每人一个IP地址的话,IPv4地址已经远远不够。更何况,人均持有的入网设备可能要远多于一个,下图中显示了一个家庭对IP地址的需求,这种需求量已经相当常见了:

 

We need more IP address!

下图显示了各大洲RIR的IPv4地址耗尽日期 (IANA已经将所有的IP分配给各个RIR):

5个RIR区域的预计耗尽日期

 

尽管一些技术措施(比如NAT技术,我会在其他文章中深入NAT)减缓了情况的紧急程度,但IPv4地址耗尽的一天终究还是会很快到来。很明显,我们需要更多的IP地址,以满足爆炸式增长的互联网设备对IP地址的需求。

 

 

更长=更好

IPv6协议的地址最重要的改进就是:加长。IPv6的地址为128位。准确的说,IPv4有4,294,967,296个地址,而IPv6有

340,282,366,920,938,463,374,607,431,768,211,456

个地址。这是怎样一个概念呢?我们可以大概计算一下

地球表面积大约为510,067,866,000,000平方米。在一平方厘米(大约是指甲盖大小)的面积内,我们可以有6.67x1016个IP地址!所以在短期的时间内,我们应该不会看到IPv6被用尽的尴尬。(不排除在未来计算机以分子尺寸出现,那么我们就会有IPv6耗尽危机了)

所以,为了解决IPv4地址耗尽危机,这就是结论。

总结

IPv4地址正在耗尽,而IPv6通过更长的序列提供了更多的IP地址。IPv4向IPv6的迁移正在发生。

阻碍迁移的过程的主要在于IPv4和IPv6 格式的不兼容性。老的路由器支持IPv4格式的IP包,但它们无法理解IPv6格式的IP包。所以这一迁移过程必然要伴随者设备的更新。然而,我们的许多 互联网资产都是建立在IPv4网络上的,不可能一夜之间停止IPv4网络的服务而整体迁移到IPv6网络中。这一迁移过程注定充满坎坷。

这篇关于网络层协议 地址耗尽危机的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/449925

相关文章

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Ubuntu固定虚拟机ip地址的方法教程

《Ubuntu固定虚拟机ip地址的方法教程》本文详细介绍了如何在Ubuntu虚拟机中固定IP地址,包括检查和编辑`/etc/apt/sources.list`文件、更新网络配置文件以及使用Networ... 1、由于虚拟机网络是桥接,所以ip地址会不停地变化,接下来我们就讲述ip如何固定 2、如果apt安

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

使用Java实现获取客户端IP地址

《使用Java实现获取客户端IP地址》这篇文章主要为大家详细介绍了如何使用Java实现获取客户端IP地址,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 首先是获取 IP,直接上代码import org.springframework.web.context.request.Requ

Linux环境变量&&进程地址空间详解

《Linux环境变量&&进程地址空间详解》本文介绍了Linux环境变量、命令行参数、进程地址空间以及Linux内核进程调度队列的相关知识,环境变量是系统运行环境的参数,命令行参数用于传递给程序的参数,... 目录一、初步认识环境变量1.1常见的环境变量1.2环境变量的基本概念二、命令行参数2.1通过命令编程

C++实现获取本机MAC地址与IP地址

《C++实现获取本机MAC地址与IP地址》这篇文章主要为大家详细介绍了C++实现获取本机MAC地址与IP地址的两种方式,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 实际工作中,项目上常常需要获取本机的IP地址和MAC地址,在此使用两种方案获取1.MFC中获取IP和MAC地址获取

C/C++通过IP获取局域网网卡MAC地址

《C/C++通过IP获取局域网网卡MAC地址》这篇文章主要为大家详细介绍了C++如何通过Win32API函数SendARP从IP地址获取局域网内网卡的MAC地址,感兴趣的小伙伴可以跟随小编一起学习一下... C/C++通过IP获取局域网网卡MAC地址通过win32 SendARP获取MAC地址代码#i

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

常用的jdk下载地址

jdk下载地址 安装方式可以看之前的博客: mac安装jdk oracle 版本:https://www.oracle.com/java/technologies/downloads/ Eclipse Temurin版本:https://adoptium.net/zh-CN/temurin/releases/ 阿里版本: github:https://github.com/

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。