草庐IT

IPv6协议:IPv4的终极进化,你要知道的概念、地址和报文

IT一指禅 2023-03-28 原文
大家好,我是IT售前工程师Bernie。

自1981年9月开始,IPv4开始大行其道。作为互联网通信协议的第四个版本,在长达30多年的时间里,IPv4一直作为网络层的核心。

它是一种无连接的协议,即:通信的两台设备不需要事先建立好一条稳定的连接通道,系统只需要选定路线做传输即可。

IPv4好用是好用,但随着互联网高速发展,连接数呈现指数级暴增。32位的IPv4最多只能提供大概43亿个地址(2的32次方,4294967296),2011年9月,43亿个IPv4地址被使用完了!

于是,IPv6走向前台。IPv6号称“可以为地球上每一粒沙标注地址”,这话听着有点大,实际上是有道理的。因为它有128位长度,可以提供的地址数量也就是2的128次方(3.4028237e+38,256万亿亿亿亿)。

IPv6的发展时间线

  • 1992年,IETF(互国际互联网工程任务组)提出关于下一代IP地址的发展建议,并形成白皮书。
  • 1994年,用于定义IPv6的RFC(Request For Comments,需求文件)发表,并且确定了IPv4和IPv6并行使用的指导方针。
  • 2003年,IETF发布IPv6的测试网络(6bone网络),验证IPv4向IPv6迁移的方案可行性。
  • 2009年,用于验证IPv6协议的6bone网络架构开始在全球39个国家的260个组织施行。
  • 2011年,大部分服务器、计算机的操作系统都支持IPv6。
  • 2012年,世界互联网协会举办IPv6纪念日,全球IPv6网络正式启动。
  • 2017年,我国印发《推进互联网协议第六版(IPv6)规模部署行动计划》,各大企业纷纷加入轰轰烈烈的升级计划。

地址表示

与IPv4采用“点分十进制”不同,IPv6采用的是“冒分十六进制”,整个地址包含网络前缀和接口标识两个方面。网络前缀就是网络的ID,接口标识就是主机ID,IPv6有3种表示方法。

① 冒分16进制

格式:x:x:x:x:x:x:x:x,每个X表示地址中的16b,以十六进制表示

举例:
5BCD:E901:23C5:6789:AEC7:E

② 0位压缩

如果一个IPv6地址中间包含连续的一段0,可以把连续的一段0压缩为“::”。

举例:AB00:0:0:0:0:0:0:1101 → AB00::1101

③ 内嵌IPv4

IPv6地址可以嵌入一段IPv4:前96位是v6地址,后32位是v4地址 x:x:x:x:d.d.d.d

举例:::192.168.10.1 ::FF:169.167.3.1

地址类型

IPv6协议的地址类型有三种:单播地址(Unicast Address)、组播地址(Multicast Address)和任播地址(Anycast Address)。

需要注意的是:IPv4地址的广播地址在IPv6中取消了,IPv6用组播替代了。

单播地址

跟IPv4地址中大单播地址一样,用来唯一地标识某一个端口。发送到单播地址的数据报文将被传送给此地址所标识的一个端口。

比如:采用单播地址通信,PC1就可以在同一个交换机下的端口中唯一找到PC2进行通信。

组播地址

用来标识一组端口,发送到组播地址的数据报文被传送给此地址所标识的所有接口。

比如,采用组播地址方式,PC1可以跟PC2/3/4同时通信。

任播地址

发送到任播地址的数据报文被传送给此地址所标识的一组端口中距离源节点最近的一个端口。

注意:这里说的距离是根据路由协议计算出来的,不是物理长度的地址。

IPv6报头

IPv6的报文的整体结构包括报头、扩展报头和上层的协议数据。报头包括如图的以下内容。

  • Version:四位版本号,IPv6对应的是6
  • Traffic Class:流量等级,主要是QoS的等级
  • 流标签:标识同一个流里面的报文内容
  • 数据长度:当前IPv6包头后面包含的字节数,也包含扩展报头
  • 下一报头:当前报头后面接的报文的报头类型
  • 跳数限制:转发一次就做自减,类似于IPv4的TTL

1.6. IPv6与IPv4的对比

与IPv4相比,IPv6可不是数量多这么简单。它还有很多的优点,比如支持QoS网络质量等级、可以做路由聚合提高路由的转发效率等等。列举一小部分区别如下。

1.7. 总结

以上是对IPv6的简要介绍,管中窥豹,很多技术细节没有谈到。比如IPv6的编址技术、重要的基础协议ICMPv6等。

2023年,互联网技术、物联网技术迅猛发展,全球移动连接数已突破55亿,IP地址也超过了42.9亿个。这两个数量都已经超过了IPv4地址总数,但对于IPv6来说这个数量还不够塞牙缝的。有了IPv6,我们再也不必担心连接数过多的情况。

文章出自:​IT一指禅​​,如有转载本文请联系【IT一指禅】今日头条号。


有关IPv6协议:IPv4的终极进化,你要知道的概念、地址和报文的更多相关文章

  1. ruby - 从 Ruby 中的主机名获取 IP 地址 - 2

    我有一个存储主机名的Ruby数组server_names。如果我打印出来,它看起来像这样:["hostname.abc.com","hostname2.abc.com","hostname3.abc.com"]相当标准。我想要做的是获取这些服务器的IP(可能将它们存储在另一个变量中)。看起来IPSocket类可以做到这一点,但我不确定如何使用IPSocket类遍历它。如果它只是尝试像这样打印出IP:server_names.eachdo|name|IPSocket::getaddress(name)pnameend它提示我没有提供服务器名称。这是语法问题还是我没有正确使用类?输出:ge

  2. 报告回顾丨模型进化狂飙,DetectGPT能否识别最新模型生成结果? - 2

    导读语言模型给我们的生产生活带来了极大便利,但同时不少人也利用他们从事作弊工作。如何规避这些难辨真伪的文字所产生的负面影响也成为一大难题。在3月9日智源Live第33期活动「DetectGPT:判断文本是否为机器生成的工具」中,主讲人Eric为我们讲解了DetectGPT工作背后的思路——一种基于概率曲率检测的用于检测模型生成文本的工具,它可以帮助我们更好地分辨文章的来源和可信度,对保护信息真实、防止欺诈等方面具有重要意义。本次报告主要围绕其功能,实现和效果等展开。(文末点击“阅读原文”,查看活动回放。)Ericmitchell斯坦福大学计算机系四年级博士生,由ChelseaFinn和Chri

  3. CAN协议的学习与理解 - 2

    最近在学习CAN,记录一下,也供大家参考交流。推荐几个我觉得很好的CAN学习,本文也是在看了他们的好文之后做的笔记首先是瑞萨的CAN入门,真的通透;秀!靠这篇我竟然2天理解了CAN协议!实战STM32F4CAN!原文链接:https://blog.csdn.net/XiaoXiaoPengBo/article/details/116206252CAN详解(小白教程)原文链接:https://blog.csdn.net/xwwwj/article/details/105372234一篇易懂的CAN通讯协议指南1一篇易懂的CAN通讯协议指南1-知乎(zhihu.com)视频推荐CAN总线个人知识总

  4. ruby-on-rails - 验证电子邮件地址是 Paypal 用户 - 2

    我想验证一个电子邮件地址是否是PayPal用户。是否有API调用来执行此操作?是否有执行此操作的ruby​​库?谢谢 最佳答案 GetVerifiedStatus来自PayPal'sAdaptiveAccounts平台会为您做这件事。PayPal没有任何codesamples或SDKs用于Ruby中的自适应帐户,但我确实找到了编写codeforGetVerifiedStatusinRuby的人.您需要更改该代码以检查他们拥有的帐户类型的唯一更改是更改if@xml['accountStatus']!=nilaccount_status

  5. ruby - HTTP POST 上的 SSL 错误(未知协议(protocol)) - 2

    尝试通过SSL连接到ImgurAPI时出现错误。这是代码和错误:API_URI=URI.parse('https://api.imgur.com')API_PUBLIC_KEY='Client-ID--'ENDPOINTS={:image=>'/3/image',:gallery=>'/3/gallery'}#Public:Uploadanimage##args-Theimagepathfortheimagetoupload#defupload(image_path)http=Net::HTTP.new(API_URI.host)http.use_ssl=truehttp.verify

  6. 物联网MQTT协议详解 - 2

    一、什么是MQTT协议MessageQueuingTelemetryTransport:消息队列遥测传输协议。是一种基于客户端-服务端的发布/订阅模式。与HTTP一样,基于TCP/IP协议之上的通讯协议,提供有序、无损、双向连接,由IBM(蓝色巨人)发布。原理:(1)MQTT协议身份和消息格式有三种身份:发布者(Publish)、代理(Broker)(服务器)、订阅者(Subscribe)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,消息发布者可以同时是订阅者。MQTT传输的消息分为:主题(Topic)和负载(payload)两部分Topic,可以理解为消息的类型,订阅者订阅(Su

  7. ruby-on-rails - 从 Geocode 经纬度获取地址 - 2

    对于我的大部分应用程序,我从Geocoder获取城镇/城市的纬度、经度、邮政编码等。我只是投入城市和州,作为返回,我得到了我处于一个有field的场景中。该场所需要一个地址,我正在从另一个来源获取该场所的纬度和经度。使用Geocodergem,我可以通过给地址提供经纬度来获取地址吗? 最佳答案 在Rails控制台中运行。latitude=40.0397longitude=-76.30144geo_localization="#{latitude},#{longitude}"query=Geocoder.search(geo_loca

  8. python - python的进化路线图是什么 - 2

    按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visitthehelpcenter指导。关闭11年前。在哪里可以找到python的中期或长期路线图。借此,我可以了解决策者最关心的是什么,以及他们眼中这门语言的future是什么?一段时间以来,我一直在玩弄Python和Ruby,制作我在开发中需要的中小型工具,通过比较不同但相似的语言来获得乐趣和学习。Python和Ruby的许多特性可以互换,或者易于模仿。两者都引入了一些函数式风格并且发展迅速(Py300

  9. 网络实验之RIPV2协议(一) - 2

    一、RIPV2协议简介  RIP(RoutingInformationProtocol)路由协议是一种相对古老,在小型以及同介质网络中得到了广泛应用的一种路由协议。RIP采用距离向量算法,是一种距离向量协议。RIP-1是有类别路由协议(ClassfulRoutingProtocol),它只支持以广播方式发布协议报文。RIP-1的协议报文无法携带掩码信息,它只能识别A、B、C类这样的自然网段的路由,因此RIP-1不支持非连续子网(DiscontiguousSubnet)。RIP-2是一种无类别路由协议(ClasslessRoutingProtocol),支持路由标记,在路由策略中可根据路由标记对

  10. 联通家庭宽带开启ipv6 - 2

    联通家庭宽带开启ipv6废话不多,直接开干首先登录联通光猫的后台,机身有写我的是http://192.168.1.1/CU.html广州家庭宽带账号密码CUAdmincuadmin00259e这里好像是默认设置,不大记得了。保存就好然后登陆路由器后台,我的是tp-link选桥模式这里的桥模式跟光猫的wan类型应该是互斥关系,光猫设置桥接,路由器就要设pppoe拨号,我没试过。然后在系统就可以查看了或者直接访问这个网址http://testipv6.com/注意1:如果你是便宜小米红米之类的路由器,他好像是默认不打开这个ipv6防火墙的,也就是你可能在系统上看到有ipv6地址,但实际上是不互通的

随机推荐