×
嵌入式 > 技术百科 > 详情

细说IPv6那些你不知道的事儿!

发布时间:2024-05-17 发布时间:
|

近日,中共中央办公厅、国务院办公厅印发了《推进互联网协议第六版(IPv6)规模部署行动计划》,并发出通知,要求各地区各部门结合实际认真贯彻落实。

 

 

 

行动计划的主要目标为:

 

•到2018年末,市场驱动的良性发展环境基本形成,IPv6活跃用户数达到2亿,在互联网用户中的占比不低于20%

•到2020年末,市场驱动的良性发展环境日臻完善,IPv6活跃用户数超过5亿,在互联网用户中的占比超过50%,新增网络地址不再使用私有IPv4地址

•到2025年末,我国IPv6网络规模、用户规模、流量规模位居世界第一位,网络、应用、终端全面支持IPv6,全面完成向下一代互联网的平滑演进升级

 

Why IPv6?

 

IPv6的口号是:连接一切。

 

 

到今天,全球联网设备数量首次超过了全世界的人口。

 

未来几年,汽车、电视、数字机顶盒、电表、摄像头、医疗健康...等数十亿规模的设备将连接网络。据Gartner预计,到2020年将有超过260亿个物联网设备连接到互联网。

 

不幸的是,IPv4早在上个世纪80年代就开发出来了,IPv4只有43亿个IP地址,而全球人口早已超过60亿,每人平均可分配量不到一个,到2020年,随着设备连接数量的增长, IPv4地址空间可以容纳的连网设备不到估值的20%。

 

 

 

如果互联网和物联网要持续发展,就必须建立在IPv6基础之上。

 

何为IP?

 

IP代表了电脑在Internet网络上独一无二的地址,用来与其他节点 (电脑)相连沟通。作用如同门牌号码一般。IP地址是用来分辨网络上的不同电脑,让我们可以很容易的知道,谁来过这里做了什么事情。

 

 

 

举一个日常生活中的例子。

 

 

如上图所示,住在北大街的住户要能互相找到对方,必须各自都要有个门牌号,这个门牌号就是各家的地址,门牌号的表示方法为:北大街+XX号。假如1号住户要找6号住户,过程是这样的,1号在大街上喊了一声:”谁是6号,请回答。”,这时北大街的住户都听到了,但只有6号作了回答,这个喊的过程叫”广播”,北大街的所有用户就是他的广播范围,假如北大街共有20个用户,那广播地址就是:北大街 21号。也就是说,北大街的任何一个用户喊一声能让”广播地址-1”个用户听到。 

 

从这个例中可以抽出下面几个词:

     

街道地址:北大街,如果给该大街一个地址则用第一个住户的地址-1,此例为:北大街0号 

    

住户的号:如1号、2号等。 

     

住户的地址:街道地址+XX号,如北大街 1号、北大街 2号等 

     

广播地址:最后一个住户的地址+1,此例为:北大街21号 

     

Internet网络中,每个上网的计算机都有一个像上述例子的地址,这个地址就是IP地址,是分配给网络设备的门牌号,为了网络中的计算机能够互相访问,IP地址=网络地址+主机地址,图1中的IP地址是192.168.100.1,这个地址中包含了很多含义。如下所示: 

     

网络地址(相当于街道地址): 192.168.100.0 

     

主机地址(相当于各户的门号): 0.0.0.1 

     

IP地址(相当于住户地址): 网络地址+主机地址=192.168.100.1 

     

广播地址: 192.168.100.255 

    

IP地址的结构

 

IP地址 = 网络地址+主机地址。

 

 

网络地址(Network ID)

网络地址位于 IP 地址的前段,可用来识别所属的网络。同一网络上的所有设备,都会有相同的网络地址。IP路由便是依据IP地址的网络地址,决定要将IP包送至哪的网络。

 

主机地址(Host ID)

主机地址位于IP的后段,可用来识别网络上个别的设备。同一网络上的设备都会有相同的网络地址,而各设备之间则是以主机地址来区别。

 

由于各个网络的规模大小不一,大型的网络应该使用较短的网络地址,以便能使用较多的主机地址;反之,较小的网络则应该使用较长的IP地址。为了符合不同网络规模的需求,IP在设计时便依据网络地址的长度,划分出IP地址等级。

 

常见的3种地址等级

 

Class A

网络地址长度为8 Bits,最左边的Bit必须为 0。 Class A 的网络地址可从00000000(二进位)至 01111111(二进位),,总共有 27=128 个。由于Class A 的网络地址长度为8 Bits,因此主机地址长度为 32-8=24Bits,亦即每个Class A 网络可用的主机地址只有2^24=16777216个(一千六百多万)。

 

大部分Class A的IP地址,早已分配给当初参与ARPAnet(Internet 的前身)实验的政府机关、学术单位、企业和非营利组织,例如:美国国防部、麻省理工学院和惠普公司。

 

Class B

网络地址的长度为16 Bits,最左边的 2 Bits必须为10(2进制),因此Class B 的 IP 地址必然介于128.0.0.0 与191.255.255.255 之间。每个Class B网络可用的主机地址有 2^16=65536个,通常用来分配给一些大企业或 ISP使用.

 

 

 

Class C

网络地址的长度为 24 Bits,最左边的3 Bits必须为110(2进制),因此Class C的IP 地址必然介于 192.0.0.0 与 223.255.255.255之间。每个 Class C网络可用的主机地址只有 2^8=256个,通常用来分配给一些小型企业。

 

 

 

IPv4演进

 

IPv4使用32Bits地址,因此只有 4,294,967,296(232)个地址。不过,一些地址是为特殊用途所保留的,如专用网络(约18 百万个地址)和多播地址(约 270 百万 个地址)。

 

随着地址不断被分配,IPv4地址枯竭问题也在随之产生。

 

1981年9月, IETF发布RFC791,此RFC替换了于1980年1月发布的RFC 760,以面向之前未曾考虑到的移动终端设备。

 

但是,网络的快速发展,规模远超设计当初的预期。1990年代前期,IETF开始检讨以下3个问题:

 

①IPv4的极限

②IPv4的延续策略

③设计新的IP

 

 

IPv4的极限

 

•IP地址数的不足 

•路由表太大 

接续上的网络数量增加的话路由表也会跟着变大 

 

因此提出了三种解决办法:CIDR、NAT和IPv6。

 

 

 

 

CIDR

废止IP分类方式,让网络地址的位数不再一定是8的倍数,而是可变动的,加入维持路径表大小的技术,利用路由汇整方式来维持路由表的大小 。

遭遇困难:汇集的网络都必须是集中在附近的,这跟目前实际依组织分配,分布全球的IP规划是大不相同的,也使得实际达成的可能性微乎其微。

 

NAT (Network Address Translation)

 

只对出入网关分配真实地址,内部的主机则采用私有地址的方式;以网关器来做转换。

 

遭遇问题:NAT坏点对点的透明性( 无法确认真实身份 ),没有真实地址,无法达成P2P通信;NAT使得 QoS 、 Security功能及协定失效;提高网络隐藏性的成本等等。

 

因此,IPv4的延续策略尽管暂时缓解IPv4地址紧张,但不是根本解决办法。

 

▲需要注意的是,地址空间不足并不是IPv6的唯一驱动力

 

于是,开始考量下一代IP协议,转向IPv6。

 

转向IPv6

 

地址空间扩充

 

 

IPv4的地址长度为32位,地址空间为2的32次方,约42亿(世界上平均3个人有2个IP地址)。

 

IPv6的地址长度为128位,地址空间为2的128次方,约3.4×10^38个(地球上每一粒沙子都有一个IP地址)。

 

 IPv6地址表示

 

IPv4地址表示二进制:10101100 00010000 00000001 00000001 十进制:172.16.1.1

 

IPv6地址表示十六进制 2001:0410:0000:0001:0000:0000:0000:45ff

 

IPv6地址与IPv4地址表示方法有所不同,用十六进制表示,4位一组,中间用“:”隔开。

 

IPv6地址的压缩表示

 

 

 

 

若以零开头可以省略,连续全零的组可用“::”表示

 

IPv6地址 = 前缀 + 接口标识

 

前缀:相当于IPv4地址中的网络ID

 

接口标识:相当于IPv4地址中的主机ID

 

前缀长度用“/xx”来表示

2001:da8:207::8207/64

 

地址前缀部分,或者有固定的值,或者是路由或子网的标识。例如:站点本地地址

 

 

 

 

IPv6地址分类

 

单播地址(Unicast Address)

 

如同 IPv4 的Unicast模式,适用在单一节点对单一节点的数据传送。标识一个接口,目的地址为单播地址的报文会被送到被标识的接口。

 

这种类型的IPv6地址可区分为Global、Site-Local、Link-Local和IPv4-Compatible 4种型态。

 

①Global 地址:

前3 bits为首码,内容固定是001,最后的64 bits 为接口标识(Interface ID)。Interface ID的功能如同 IPv4 的主机地址(Host ID)。

 

 

 

②Site-Local 地址:

前10 bits 为首码,内容固定为1111111011,间隔38 bits的0之后,接着16 bits 的子网地址(Subnet ID),最后才是 64 bits 的接口标识。

 

 

 

 

③Link-Local 地址:

也是用前10 bits为首码,内容固定为1111111010,接着是连续54 bits的0,最后的64 bits也是接口标识。

 

 

 

④IPv4-Compatible 地址: 没有所谓的首码与接口标识,只有原本32 bits的IPv4地址前面,加上96 bits的 0。

 

 

组播地址(Multicast Address)

 

IPv6 的组播整合了IPv4的Multicast及广播传送 (Broadcast),适用于单一节点对多节点的传送。标识多个接口,目的地址为组播地址的报文会被送到被标识的所有接口。

 

 

这种类型的 IPv6 地址用前8 bits为首码,内容固定为11111111,最后112 bits为Group ID。

 

任播地址(Anycast Address)

 

 

Anycast是IPv6地址新增的类型。它的特殊之处在于:一个Anycast地址可以被多个节点使用,但是传送给此地址的报文,并非真的将它送到这些节点来,而仅仅是送给距离最近或成本最低(根据路由表来判断)的一个节点。以目前的应用为例,Anycast地址只能分配给路由器,不能分配给电脑使用,而且不能作为发送端的地址。这种IPv6地址的首码长度不固定,首码以外的位元都是0。

 

IPv6与IPv4的并存和转换

 

IPv6的实现需通过既有IPv4设备过渡至IPv6, 才能以最少的代价实现IPv6应用。过渡技术主要解决IPV4和IPV6网络共存状况下的互联互通,主要有三种策略:

 

双栈 (Dual-Stack)

双栈是在原有网路层 (Network Layer) 上, 再增加一个 IPv6的堆栈 (Stack) ,让主机同时具备IPv4和IPv6通讯能力。

 

隧道技术( Tunneling )

在 IPv6 报文进入IPv4的网域时,将IPv6报文前面加上 IPv4报头, 再送入IPv4 网域。当离开IPv4网域进入IPv6网域时, 再将IPv4的抱头移除,还原回原本的IPv6报文。或由MPLS承载在IPv4 Internet海洋中连接多个IPv6孤岛。

 

协议转换

提供IPV4和IPV6的互通动作。如NAT-PT等提供IPv6与IPv4互相访问地技术,适用于IPv6 Inernet与IPv4 Internet共存,而两者又需要互相通讯的要求。

 

IPv6的优点

 

•近乎无限的地址空间

 

•更简洁的报文头部

 

•内置的安全性

IPv4原本是为学术研究而生,因而使用初衷较为单纯且环境也较为封闭,所以安全机制并不是很完善,随着时代的演进,网络的普及程度已今非昔比,所以安全问题更加受到关注,虽然IPv4通过IPSec提供安全保护,但架设与管理也是额外的负担。而IPv6在设计时已对安全性的问题进行考量,希望提供内嵌式的点对点安全保护能力,改善安全问题。

 

•更好的QoS支持

 

•更好的移动性

 

•编址层次等级

 

IPv6应用举例

 

移动通信:随时随地移动上网 

 

时时在线,双向通信:网络游戏、网络课堂、随时随地资源共享

 

 

万物连接:

 

 

 

组播应用:

 

应用于出租车联网:

 

还有利用IPv6无状态自动配置的特点部署IPv6视频摄像头等等...

 

总之,由于IPv4网络地址随着网络的需求量而慢慢的被消耗殆尽, 而IPv6补足IPv4所欠缺的,不仅在IP地址空间上增加了许多, 还在安全、自动配置......上加强了许多功能。这次中共中央办公厅、国务院办公厅印发《推进互联网协议第六版(IPv6)规模部署行动计划》,将推进IPv6规模部署,高效支撑移动互联网、物联网、工业互联网、云计算、大数据、人工智能等新兴领域快速发展。

 


『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
Keil5(MDK5)在调试(debug)过程中遇到的问题