我们为什么需要IPv6
2012-06-07 14:58
591 查看
昨天是世界IPv6日,google的首页给出一个IPv6状况的说明。
学校的网管中心也办了很多活动宣传IPv6对互联网的意义。
但是我一直不太理解为什么IPv6是需要的,其必要性在什么地方呢?我们现在也不是每个主机都有一个IP地址的,这个世界不是照常运转吗?所以看了一些网络的东西,来讨论IPv6的必要性。
以一个三个人的寝室为例,我们通过一个路由器上网,我们的IP地址为192.168.1.1, 192.168.1.2 192.168.1.2.显然这是路由器给分配的内部地址,我们三个都是没有实际IP地址的。
那我们是怎么联网的呢?
IP包头部是
,因此当我上外网的时候一个请求是这样的,
显然,路由器是不能直接把这个包发送给216.92.56.91的。
因为如果发出去的话,216.92.56.91只会给192.168.0.1对应的实际主机回信, 而我们的IP 192.168.0.1只是局域网内部虚拟的.我的主机根本不可能收到回信。
路由器(比如实际IP为205.206.163.40)会做一下改动,把包转化为
发送出去。
等一会儿,外网主机回信了,回的是
因此我们的路由器(205.206.163.40)收到了回信,但是这时路由器遇到了一个问题,路由器应该把这个信发送给局域网上的那个主机呢?是192.168.0.1还是192.168.0.2或者是192.168.0.3呢?
路由器该把这个包交给那个主机呢?
这里就用到了网络地址转换NAT,比如可以加入考虑TCP/UDP层的端口后这样进行转换:
内网IP 外网IP
192.168.1.55:5566 219.152.168.222:9200
192.168.1.59:80 219.152.168.222:9201
192.168.1.59:4465 219.152.168.222:9202
从而当路由器收到网络请求时在内网IP和外网IP之间进行转换。
既然一个支持NAT转换的路由器,就可以连接多台没有真是IP地址的主机;也就是说只需给路由器分配IP地址就可以通信了,2**32个路由器在可见的将来足够用了吧,那我们为什么还要IPv6呢?
我想可能的原因是下面三个方面:(才疏学浅,欢迎拍砖)
1, NAT并不是万能的。只要不是每个主机都有一个特定的IP,就总是会出现很复杂的转换问题。当一个局域网里的主机很多的时候,很难找到一个非常有效的映射,使得内网IP能唯一地对应一个外网IP.
2, NAT一般都需要用到高层协议的字段(端口号port),因此每收到一个包,需要解包才能计算转换关系,增加了计算量。而且如果转换计算需要用到port的话,那局域网内部主机直接基于IP层的应用就会受阻。
3, 互联网在急速发展,接入互联网的终端数量种类都在增加,NAT的转换会越来越复杂。如果以后进入物联网时代,每个传感器都联网,会更复杂。
所以IPV6是一个简单有效的解决方案。
但是这个解决方案的未来怎么样,依然是未知的。
参考:
网络地址转换NAT
how a router works
计算机网络 谢希仁
学校的网管中心也办了很多活动宣传IPv6对互联网的意义。
但是我一直不太理解为什么IPv6是需要的,其必要性在什么地方呢?我们现在也不是每个主机都有一个IP地址的,这个世界不是照常运转吗?所以看了一些网络的东西,来讨论IPv6的必要性。
以一个三个人的寝室为例,我们通过一个路由器上网,我们的IP地址为192.168.1.1, 192.168.1.2 192.168.1.2.显然这是路由器给分配的内部地址,我们三个都是没有实际IP地址的。
那我们是怎么联网的呢?
IP包头部是
,因此当我上外网的时候一个请求是这样的,
显然,路由器是不能直接把这个包发送给216.92.56.91的。
因为如果发出去的话,216.92.56.91只会给192.168.0.1对应的实际主机回信, 而我们的IP 192.168.0.1只是局域网内部虚拟的.我的主机根本不可能收到回信。
路由器(比如实际IP为205.206.163.40)会做一下改动,把包转化为
发送出去。
等一会儿,外网主机回信了,回的是
因此我们的路由器(205.206.163.40)收到了回信,但是这时路由器遇到了一个问题,路由器应该把这个信发送给局域网上的那个主机呢?是192.168.0.1还是192.168.0.2或者是192.168.0.3呢?
路由器该把这个包交给那个主机呢?
这里就用到了网络地址转换NAT,比如可以加入考虑TCP/UDP层的端口后这样进行转换:
内网IP 外网IP
192.168.1.55:5566 219.152.168.222:9200
192.168.1.59:80 219.152.168.222:9201
192.168.1.59:4465 219.152.168.222:9202
从而当路由器收到网络请求时在内网IP和外网IP之间进行转换。
既然一个支持NAT转换的路由器,就可以连接多台没有真是IP地址的主机;也就是说只需给路由器分配IP地址就可以通信了,2**32个路由器在可见的将来足够用了吧,那我们为什么还要IPv6呢?
我想可能的原因是下面三个方面:(才疏学浅,欢迎拍砖)
1, NAT并不是万能的。只要不是每个主机都有一个特定的IP,就总是会出现很复杂的转换问题。当一个局域网里的主机很多的时候,很难找到一个非常有效的映射,使得内网IP能唯一地对应一个外网IP.
2, NAT一般都需要用到高层协议的字段(端口号port),因此每收到一个包,需要解包才能计算转换关系,增加了计算量。而且如果转换计算需要用到port的话,那局域网内部主机直接基于IP层的应用就会受阻。
3, 互联网在急速发展,接入互联网的终端数量种类都在增加,NAT的转换会越来越复杂。如果以后进入物联网时代,每个传感器都联网,会更复杂。
所以IPV6是一个简单有效的解决方案。
但是这个解决方案的未来怎么样,依然是未知的。
参考:
网络地址转换NAT
how a router works
计算机网络 谢希仁
相关文章推荐
- 转:我们为什么需要IPv6 - 网络路工作原理
- 为什么我们需要域?Active Directory系列之一
- 我们为什么需要光纤配线架
- 为什么我们需要域?Active Directory系列之一
- 我们为什么需要Java EE 5.0?
- Sql Server优化之索引提示----我们为什么需要查询提示,Sql Server默认情况下优化策略选择的不足
- BuildYourOwnLisp Why we need pointer 为什么我们需要指针
- 为什么我们的技术行业需要更多的女“媛媛”?
- 我们为什么需要睡眠
- 我们为什么需要Windows Workflow Foundation?
- 为什么我们需要uCos?带你透彻理解RTOS
- 说说我们为什么需要加班
- [转]我们为什么需要Windows Workflow Foundation?
- 我们为什么需要设计模式?
- Linux touch 命令 - 为什么我们需要改变时间戳?
- Ivar Jacobson:我们为什么需要软件工程理论
- inux touch 命令 - 为什么我们需要改变时间戳?
- Oracle认证能为我带来什么?我们为什么需要ORACLE认证?Oracle认证的好处有哪些?
- 项目管理:为什么我们需要一个需求文档
- 我们为什么需要校友录 人脈存摺