Tcp/Ip V6扫盲系列

      电脑与网络 2006-5-6 16:55
[第一篇]-Ipv6概述, 本章概要:Ipv6与Ipv4的对比、Ipv6地址划分 选项 <BR />
水平有限,若有疏漏,还请海涵。。。 <BR />
<BR />
什么是Tcp/Ip V6?Tcp/Ip V6就是Tcp/Ip 版本6。// <BR />
其实这个名词没啥特别的,Tcp/Ip V6就是对现在大家用的Tcp/Ip V4协议的升级。那么为什么要升级Tcp/Ip V4呢?最简单的回答就是:僧多粥少了,Tcp/Ip V4已经不够用了,于是乎就出来这么一个新的Tcp/Ip协议。这个协议干什么用的?就是应付Tcp/Ip V4地址不够分配而产生的。 <BR />
<BR />
IPv4表示方法是点分10进制 <BR />
先解释一个概念,为什么Tcp/Ip V4不够用了? <BR />
首先讲一个定义,Tcp/Ip V4地址定义的IP地址是32位的,那么这个Tcp/Ip V4尽可能最大分配的地址是2的32次方个地址。先看下Tcp/Ip V4地址的分配情况: <BR />
Tcp/Ip V4地址一共分为ABCDE5类,范围分别是(掩码为默认情况): <BR />
A类:1.0.0.0-126.255.255.255 (8) <BR />
B类:128.0.0.0-191.255.255.255 (16) <BR />
C类:192.0.0.0-223.255.255.255 (24) <BR />
D类:224.0.0.0-239.255.255.255 <BR />
E类:240.0.0.0-254.255.255.255 <BR />
其中,ABC是用在我们的Internet上的,D类用于组播通信,E类用于科研。实际上我们使用的只能是ABC这3类。但是ABC这3类的Tcp/Ip V4地址在现在并不能给每一个上网的计算机分配一个合法的Tcp/Ip V4地址,所以,为了让更多的人上网,就出现这么一个东西:NAT地址转换。原理是:一个局域网使用私网地址,通过网关的共网地址,使用NAT,把内网的请求转换为共网的IP,然后访问,数据回送时,先通过网关,再转回到内网。 <BR />
付:所有的私网IP(掩码为默认情况): <BR />
A类:10.0.0.0-10.255.255.255(8) <BR />
B类:172.16.0.0-172.31.255.255(16) <BR />
C类:192.168.0.0-192.168.255.255(24) <BR />
<BR />
使用NAT地址转换的缺点: <BR />
1.加密的数据包无法进过转换。 <BR />
2.为了适应NAT转换,应用程序的复杂性大大提升。 <BR />
总之,NAT地址转换只是延长Tcp/Ip V4共网地址空间使用寿命的权宜之计。 <BR />
<BR />
PS:在这里说一下几个基本概念。 <BR />
1.为什么说Tcp/Ip V4地址是32位的? <BR />
首先,计算机是一个电器设备,那么注定的计算机只能识别0和1,我们所使用的类似192.168.0.1这样的IP地址用2进制表示为: <BR />
11000000.10101000.00000000.00000001 <BR />
这样一共是32个数字,所以是32位。 <BR />
小知识:怎么从10进制换算2进制: <BR />
首先我们要知道,2的N次方是换算的基础。先给一组标准数: <BR />
128 64 32 16 8 4 2 1 <BR />
这些都是2的N次方,128前面还可以加上2的9次方等等。 <BR />
咱们先算192的2进制,首先192大于128,那么192是可以被128减的,那么在128上标示为1,192-128=64,那么64-64刚好减完,所以在64上标示为1,其他数字全是零,然后,我们可以得到,192对应的二进制是11000000。 <BR />
再例如,算110的二进制,首先110不可以被128减,所以,128标示为0。 <BR />
那么110可以被64减,那么在64上标示为1,减得46 <BR />
而46可以被32减,那么在32上标示为1,减得为14 <BR />
14不能被16减,所以16标示为0 <BR />
而14能被8减,那么8上标示为1 <BR />
减得6,6可以被4减,得2,4上标示为1 <BR />
而2不能被4减,所以4上标示为0 <BR />
然后2可以被2减,2标示为1 <BR />
最后得1标示为0。那么110得二进制为:011011010 <BR />
会了吧,那么,对于一个2进制怎么换算10进制?首先还是那排标准数 <BR />
128 64 32 16 8 4 2 1 <BR />
假如现在算10110011这个二进制,那么我们开始对应标准数每位乘起来再相加 <BR />
1*128+0*64+1*32+1*49+0*8+0*4+0*2+0*1=179 <BR />
会算了吧,这个比短除法简单多了吧。嘿嘿。 <BR />
<BR />
2.192.168.0.0-192.168.255.255(24)后面括号里得24是什么意思? <BR />
其实类似192.168.0.1/24这样得写法。24标示掩码中二进制1的个数。 <BR />
例如(8) <BR />
掩码就是 <BR />
11111111.00000000.00000000.00000000 <BR />
根据上面的方法,换算成10进制就是255.0.0.0 <BR />
比如(24) <BR />
掩码就是 <BR />
11111111.11111111.11111111.00000000 <BR />
换算成十进制就是255.255.255.0 <BR />
明白??? <BR />
<BR />
<BR />
上面说完了,Tcp/Ip V4是32位的,那么Tcp/Ip V6是多少位的呢?Tcp/Ip V6被定义为成128位了,那么他有多少个IP地址呢?一共是2的128次方个。 <BR />
换算下来一共是:340282366920938463463374607431768211456个地址。 <BR />
这么多地址有多少呢?实际上来讲,这么打的地址池可以给地球表面每平方米分配6.64×10的23次方个地址。 <BR />
怎么来的呢? <BR />
首先地球陆地面积是197299019×2.59×10的6次方平方米 <BR />
Tcp/Ip V6地址有3.4×10的38次方个。 <BR />
一除,正好是约6.64×10的23次方个地址 <BR />
<BR />
IPv6表示方法是冒号分16进制 <BR />
那么,这么大的地址是不是会让人迷失的,其实Tcp/Ip V6地址是由2部分组成的。 <BR />
64位的子网标识符+64位的接口标识符。 <BR />
<BR />
一个典型的Tcp/Ip V6地址类似这样: <BR />
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A <BR />
这是一个可集聚全球单播地址,说白就是类似Tcp/Ip V4的共网地址。 <BR />
<BR />
这个地址中,21DA:00D3:0000:2F3B是子网标示符,而后面的:02AA:00FF:FE28:9C5A是接口标识符。 <BR />
那么Tcp/Ip V6地址怎么划分的: <BR />
分配 前缀格式 占总空间比例 <BR />
保留 0000 0000 1/256 <BR />
为网络服务接入点分配保留(NSAP) 0000 001 1/256 <BR />
可集聚全球单播地址 001 1/8 <BR />
链路本地单播地址 1111 1110 10 1/1024 <BR />
站点本地单播地址 1111 1110 11 1/1024 <BR />
多播地址 1111 1111 1/256 <BR />
以上是目前分配的Tcp/Ip V6地址,其他没有写出来的都是未分配的,已经划分的地址占总Tcp/Ip V6地址池的12.7% <BR />
Ps:以上前缀格式都是2进制的,一个Tcp/Ip V6地址标示成二进制为 <BR />
0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000:0000000000000000 <BR />
前缀格式是说从第一端最左边开始的数字。 <BR />
先概述一下这些地址吧: <BR />
<BR />
可集聚全球单播地址: <BR />
简称全球地址,可集聚全球单播地址对应的是Tcp/Ip V4的公共地址。 <BR />
例如: <BR />
21DA:00D3:0000:2F3B:02AA:00FF:FE28:9C5A <BR />
<BR />
链路本地单播地址与站点本地单播地址: <BR />
链路本地单播地址用于同一链路上的邻接点之间和邻接点发现过程。 <BR />
它其实类似Tcp/Ip V4的私有地址:如169.254.0.0/16 <BR />
例如: <BR />
FE80:5EFE: 0000:0000:0228:00FF:FE43:9A52 <BR />
<BR />
站点本地单播地址用于同一机构中的节点之间的通信。 <BR />
它类似Tcp/Ip V4的私网地址(注意,上面是私有地址,这个是私有地址):如 <BR />
A类:10.0.0.0-10.255.255.255(8) <BR />
B类:172.16.0.0-172.31.255.255(16) <BR />
C类:192.168.0.0-192.168.255.255(24) <BR />
例如: <BR />
FEC0:5EFE: 0000:0000:0228:00FF:FE43:9A52 <BR />
<BR />
和上面的区别在于最前面,一个是FE80一个是FEC0 <BR />
<BR />
PS:什么是私有地址 <BR />
<BR />
引用一段windows服务器中文站风间子的文章的一段 <BR />
原文在:http://www.winsvr.org/info/info.php?sessid=&infoid=14 <BR />
当DHCP客户端计算机处于以下三种情况之一时,触发DHCPDISCOVER广播消息: <BR />
当TCP/IP协议作为DHCP客户端(自动获取IP地址)进行初始化(DHCP客户端启动计算机、启用网络适配器或者连接到网络时); <BR />
DHCP客户端请求某个IP地址被DHCP服务器拒绝,通常发生在已获得租约的DHCP客户端连接到不同的网络中; <BR />
DHCP客户端释放已有租约并请求新的租约。 <BR />
此时,DHCP客户端发起DHCPDISCOVER广播消息,向所有DHCP服务器获取IP地址租约。此时由于DHCP客户端没有IP地址,因此在数据包中,使用0.0.0.0作为源IP地址,然后广播地址255.255.255.255作为目的地址。在此请求数据包中同样会包含客户端的MAC地址和计算机名,以便DHCP服务器进行区分。 <BR />
如果没有DHCP服务器答复DHCP客户端的请求,DHCP客户端在等待1秒后会再次发送DHCPDISCOVER广播消息。除了第一个DHCPDISCOVER广播消息外,DHCP客户端还会发出三个DHCPDISCOVER广播消息,等待时延分别为9秒、13秒和16秒加上一个长度为0~1000毫秒之间的随机时延。如果仍然无法联系DHCP服务器,则认为自动获取IP地址失败,默认情况下将随机使用APIPA(自动专有IP地址,169.254.0.0/16)中定义的未被其他客户使用的IP地址,子网掩码为255.255.0.0,但是不会配置默认网关和其他TCP/IP选项,因此只能和同子网的使用APIPA地址的客户端计算机进行通讯。 <BR />
<BR />
简单来说,就是对于一个网卡,你即没有DHCP给他分配地址,也没有手工指定地址,它就会用169.254.0.0/16这个私有地址端暂时自己分配一个地址。 <BR />
<BR />
多播地址:主要是用在广播的,在Tcp/Ip V6里,没有了组播地址,没有了广播地址,代替他们的是多播地址。 <BR />
例如: <BR />
FF01:0000:0000:0000:0000:0000:0000:0001(节点本地范围所有的多播地址) <BR />
还有用于路由公告的 <BR />
FF01:0000:0000:0000:0000:0000:0000:0002(节点本地范围所有路由器的多播地址) <BR />
<BR />
此外还定义了几个特殊地址 <BR />
0000:0000:0000:0000:0000:0000:0000:0000 <BR />
这个是未指定地址。就是Tcp/Ip V4的0.0.0.0,用于DHCP请求前的。 <BR />
还有 <BR />
0000:0000:0000:0000:0000:0000:0000:0001 <BR />
这个就是回环地址,就是Tcp/Ip V4的127.0.0.1 <BR />
<BR />
还有一些兼容地址,是为了保证Tcp/Ip V4到Tcp/Ip V6的过渡,这个以后讨论。 <BR />
<BR />
PS:关于Tcp/Ip V6地址的简写 <BR />
这么长的地址写起来肯定麻烦,那么我们可以压缩零位来写。 <BR />
比如0000:0000:0000:0000:0000:0000:0000:0001回环地址。 <BR />
压缩零位就是::1 <BR />
例如 <BR />
FF01:0000:0000:0000:0000:0000:0000:0001 <BR />
压缩零位就是 <BR />
FF01::1 <BR />
但是这样的压缩是不允许的 <BR />
例如 <BR />
FF01:0000:0000:1111:0000:0000:0000:0001 <BR />
不能压缩为FF01::1111::1 <BR />
只能是FF01::1111: 0:0:0:1 <BR />
还有,类似 <BR />
FF01:0010:0101:1111:0000:0100:0000:0001 <BR />
不能压缩为 <BR />
FF01: 1:11:1111:: 1 <BR />
只能压缩为 <BR />
FF01: 10:101:1111:: 1 <BR />
压缩法则: <BR />
不能把一个位端的有效0压缩了。 <BR />
<BR />
OK,这一章讲完了,以后我会继续讲述更详细的文章。未完待续。。 <BR />
<BR />
预告: <BR />
各种地址详细解说 <BR />
用于Tcp/IpV6的工具 <BR />
Tcp/IpV6的主要报文格式 <BR />
组建自己的Tcp/IpV6实验室 <BR />
More……. <BR />
bbs.verycd.com/topics/305651/
bbs.verycd.com/topics/306423/
bbs.verycd.com/topics/308112/
标签集:TAGS:
回复Comments() 点击Count()

回复Comments

{commenttime}{commentauthor}

{CommentUrl}
{commentcontent}