-
1 课程内容
-
2 作业




我们现有的网络中,几乎所有网络都使用IP协议作为通信的地址协议,我们的网络使用IP来表示地址信息,每一个节点都应该分配一个唯一的地址,才能保证通信正常。现在正常使用的IP协议为版本4,用32位来表示,地址空间为65536×65536,结果约为42.9亿,需要说明的是,虽然地址共有42.9亿之多,但并不表示这些地址可以供42.9亿个节点使用,因为我们的地址是分网段的,也就是说即使在一个节点的情况下,分配地址时,也是分配一个网段而不是一个地址,所以这样就使得版本4的IP地址一下子变得空间陕小,再加了有相当一部分地址是不可用的,那么随着网络的迅速膨胀,IP ver4的地址空间变得几乎快耗尽了。在这样的情况下,出现了一些如VLSM子网技术,NAT网络地址翻译技术,试图来缓和地址空间的快速消耗。与此同时,人们也开发出了一个地址空间更为庞大的IP协议,这个协议拥有比IP ver4多出数倍的地址空间,来解决网络地址匮乏的问题,这个IP协议就是IP版本6,即IPv6。

IPv6拥有更为庞大的地址空间,是因为IPv4只是采用32位来表示,而IPv6采用128位来表示,这样大的一个地址空间,几乎可以容纳无数个节点。正因为IPv6使用了128位来表示地址,在表示和书写上面具有相当的困难,原来的IPv4使用10进制来表示,而IPv6由于地址太长,则采用16进制来表示,但无论我们如何表示,计算机都是处理二进制。因为10进制表示时,使用0到9共十个数字来表示,而16进制需要在10进制原有的基础上多出6个数字,即需要多出11,12,13,14,15,这6个数字则采用字母的形式来表示,分别为
A(表示10),B(表示11),C(表示12),D(表示13),E(表示14),F(表示15),这些字母是不区别大小写的。
但是由于IPv6拥有128位的长度,所以不能直接表示,必须像IPv4那样进行分段表示。IPv6将整个地址分为8段来表示,每段之间用冒号隔开,每段的长度为16位,表示如下:
XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX
从上面可以看出,IPv6中每一个段是16位,每段共四个X,其中X使用4 bit表示,一个X就表示一个数字或字母,一个完整的地址共128 bit。
一个X使用4 bit表示,那么XXXX的取值范围就应该从0000 到 FFFF。

对于一个完整的IPv6地址,需要写128位,已经被分成了8段,每段4个字符,也就是说完整地表示一个IPv6地址,需要写32个字母,这是相当长的,并且容易混淆和出错,所以IPv6在地址的表示方法上,是有讲究的,到目前为止,IPv6地址的表示方法分为三种,分别是:首选格式、压缩表示和IPv4内嵌在IPv6中。
首选格式的表示方法其实没有任何讲究,就是将IPv6中的128位,也就是共32个字符完完整整,一个不漏地全写出来。
从前面一个IPv6地址表示方法首选格式表示方法中可以看出,一个完整的IPv6地址中,会经常性的出现许多个0,而我们知道,许多时候,0是毫无意义的,0表示没有,写出来,也表示没有,不写,也同样表示没有,那么我们就考虑能否将不影响地址结果的0给省略不写,这样就可以大大节省时间,也方便人们阅读和书写,这样的将地址省略0的表示方法,称为压缩格式。
在网络还没有全部从IPv4过渡到IPv6时,就可能出现某些设备即连接了IPv4网络,又连接了IPv6网络,对于这样的情况,就需要一个地址即可以表示IPv4地址,又可以表示IPv6地址。
因为一个IPv4地址为32位,一个IPv6地址为128位,要让一个IPv4地址表示为IPv6地址,明显已经少了96位,那么就将一个正常的IPv4地址通过增加96位,结果变成128位,来与IPv6通信。在表示时,是在IPv4原有地址的基础上,增加96个0,结果变成128位,增加的96个0再结合原有的IPv4地址,表示方法为0:0:0:0:0:0:A.B.C.D 或者::A.B.C.D.。

在IPv4地址中,地址分许多类型,比如代表节点自己的127.0.0.0/8,私有地址段,组播地址段,广播地址,以及一些不可用的地址。在IPv6中,同样地址也像IPv4那样分了许多类型,我们需要了解的有3种类型,为Unicast(单播),Anycast(任意播)和Multicast(组播)。
即使是在IPv4中,单播地址的类型也分好多种,就是我们常用的也分私有,公有,还有回环地址,在IPv6中,单播地址也分好几种,有Link-Local Address(链路本地地址)、Unique Local Address (本地站点地址)、Aggregatable Global Address(可聚合全球)、回环地址。
任意播地址表示一组接口,当一个发向某个任意播地址的数据包,只被最近的接口收到,这个地址是由路由协议定义的,不能手工配置,但是我们无法看到一个地址就能区别出到底是单播地址还是任意播地址,因为任意播地址的表示格式和单播地址是一样的,也就是说任意播地址就是用普通的单播地址来表示的。任意播地址只能出现在路由器上,并且不能作为数据包的源地址来使用。
组播地址就是一个目标为组播地址的数据包将被多个节点收到,地址以FF00::/8 (1111 1111)打头,.表示为
FF00:0000:0000:0000:0000:0000:0000:0000/8
FF00:0:0:0:0:0:0:0/8
FF00::/8


