win10怎么使用ipv6 (win10怎么使用iphone的usb共享网络)
本文主要从基本概念出发,IPv6关于移动应用的相关网络工具IPv6和IPv介绍了自动降级机制在网络环境中的研究IPv入门教程6。
前言

众所周知,32位IPv4地址已经基本耗尽(这里的耗尽只是说已经分配好了,其实相当一部分还没有投入使用),新一代网络协议—IPv6.地址长度为128位,地址空间较大。这么大的地址空间可以分配地球上的每一粒沙子IPv6地址。IPv6网络普及的声音喊了很多年,但由于国内各种因素的限制,一直没有推广。

2017年11月,中共中央办公厅和国务院办公厅发布了《互联网推荐协议》第六版(IPv6)规模部署行动计划,并发出通知,要求各地区各部门认真落实。这条新闻传达了一个非常重要的信息:这是为了促进中国IPv6发展战略总动员令。

2018年6月,网信办向三大运营商和50家国内领先互联网公司发出红头文件,要求各大运营商和领先互联网公司给出自己的实施计划和时间表,并设定目标:到2018年底IPv6活跃用户数量上升一个阶段。所以从2018年6月开始,各大公司IPv6.改造才如火如荼,2018年底取得了相当大的成绩。

由于IPv6.网络协议仍然是一个相对较新的协议。在推广过程中,很多人对网络协议缺乏必要的知识,所以在这里写一篇简单的文章来简要介绍和应用协议。

基础概念

软件支持

目前,大多数操作系统和硬件都得到了更好的支持IPv6.简单列举如下:

Windows:windows 7、windows 8.x、windows 10,默认开启IPv6;Linux:内核2.6.x、内核3.x、内核4.x已经支持IPv6(需手动开启);iOS:IOS支持从9开始IPv6 电脑 Only,苹果在2016年强制要求app必须支持IPv6;Android也已经支持IPv6(但不支持DHCPv6)。

如何查看手机或电脑网络是否支持?IPv6.打开手机或电脑上的浏览器:Ipv6-test.com,如下所示,您的手机网络已支持IPv并已分配IPv6地址。


电脑

图1:检查当前网络是否支持IPv6


从以上截图可以看出,目前的大部分支持IPv6的网络环境是双栈环境,即同时支持IPv4和IPv也就是说,当我们连接运营商时,LTE网络时,它通常分配一个IPv4地址(通常是10。开头的内网地址)和一个IPv6地址(相当于全球单播地址)ipv里面的公网地址)。在双栈环境下,用户自动选择使用什么IPv6或者IPv如果服务端域名支持,4协议将远端服务连接起来IPv6(域名分析中存在AAAA记录),客户将优先使用IPv6协议连接服务端(特殊情况除外);服务端域名只支持IPv4(DNS只有A记录在分析中使用)IPv协议连接服务端,完成请求。

IPv6协议简介

先看一个简单的IPv6报文抓包图:

图二:ipv6数据报文

从WireShark根据报文信息,IPv6报文类型字段、头部字段和IPv报文差别很大。


IPv6协议简介

先看一个简单的IPv6报文抓包图:


图二:ipv6数据报文

从WireShark根据报文信息,IPv6报文类型字段、头部字段和IPv报文差别很大。RFC2460定义了IPv6数据报格式。总体结构,IPv6数据报格式及IPv4.数据报告格式相同,由IP报头和数据(在IPv6中称为有效载荷)由两部分组成,但在IPv数据报告的数据部分也可以包括0或多个IPv6扩展报头(Extension header),如下图所示。IP报头部分固定为40字节长度,有效载荷部分不得超过65535字节。

图三:IPv6头部字段

简单介绍下IPv6报文中的头部字段:

Version(版本):字段表示IP版本,值为6。Traffic class(流量类别):字段及其功能相似IPv4业务类型字段。该字段区分业务代码点(DSCP)标记一个IPv6数据包,以指示数据包应该如何处理。Flow label(流标)IP在当前标准中,如何管理和处理流量标签的细节并没有定义数据包的流量。Payload length(有效载荷长度):该字段表示有效载荷长度,有效载荷是指紧跟IPv6基本报头数据包,包括IPv6扩展报头。Next header(下一报):字段指示跟随IPv6基本报头后扩展报头的信息类型。

详见本文:

IPV六报头部格式:(http://support.huawei.com/hedex/pages/EDOC10000256133118G231/08/EDOC10000256133118G231/08/resources/fea_des/topics/fea_ipv6_00014.html)

IPv6地址表示方法

IPv六个地址由八组4位16进制数字组成,每组之间由:分开,看一个简单的例子:

2001:cdba:000:000:0000:3257:9652,每个:前后都是4位16进制的数字,分成8组)根据简写规则,上述地址可简写如下:1.省略前导零,上述ip地址可以表示为:

2001:cdba:0:0:0:0:3257:9652(4个0简写为1个0)

2.用双冒号(::)代替一系列零指定Ipv以上地址可以表示为:

2001:cdba::957:9652。:0:0:0:0:0:。也就是说,要注意省略所有0(一个IP双冒号只能在地址中使用一次)

IPv6地址分类

IPv6地址是单个或一组接口的128位标志符。在IPv4中,ip地址分为A、B、C、D、E五类,而IPv6突破了IPv四类分类,主要分为三类:单播地址、组播地址和任意播地址,各类地址介绍如下:

单播(Unicast)地址:单播地址作为单接口标识符。在IPv4中,ip地址分为A、B、C、D、E五类,而IPv6突破了IPv四类分类,主要分为三类:单播地址、组播地址和任意播地址,各类地址介绍如下:

单播(Unicast)地址:单播地址作为单接口标识符。IPv6数据包发送到单播地址,传输到地址标识的接口。对应于IPv4普通公网和私网地址;多播(MultiCast)地址:作为一组标识符,多播地址的行为/接口可能属于不同的节点集合。IPv6数据包发送到多播地址,传输到多个接口;任播(AnyCast)地址:一组接口(一般属于不同节点)的标识符。发送到任播地址的包被送到地址标识的接口之一(路由协议测量最近)。

单播地址是使用最广泛的地址,单播地址包含多种地址类型,包括:

1-1.单播地址


1-1-1

前缀2000:/3IPv6的前3bit,必须是二进制001。二进制换成十六进制需要4bit所以IPv从左到右的全球单播地址第一字段变化范围为0010到0011,变化为16进制变化范围为2-3。如下图4所示,表示IPv6全球单播地址范围。相当于IPv4的公网地址(IPv6的诞生基本上是为了解决IPv4公网地址耗尽的问题)。这个地址可以在全球路由器之间路过。



1-1-2链路本地地址

前缀FE80:/10,顾名思义,这些地址用于同一链路上节点之间的通信,主要用于自动配置地址和邻居节点发现过程。Windows和Linux开启IPv默认情况下,网卡接口将自动配置链路本地地址。也就是说,一个接口必须有本地址。如下图:

图五.IPv6链路本地地址

每个接口必须至少有一个链接本地址;每个接口可以配备一个以上的单播地址,如一个链接本地址或全球单播地址。

注:链路的本地地址和地址很容易使用IPv4私网/内网地址对应,链路本地地址对应IPv4的APIPA169.254开头的地址(典型场景是windows169.254地址在获得失败后自动分配)。而IPv4私网对应于IPv6的唯一地址。

地址1-1-3

前缀FC00:/7,相当于IPv4私网地址(10.0.0.0、172.16.0.0、192.168.0.0),在RFC解决私网需求的单播地址类型是4193中新定义的。在IPv4中,利用NAT技术私网内的网络节点可以利用统一的公网出口访问互联网资源,大大节省了IPv消耗4公网地址(IPv推进缓慢的原因之一)。另一方面,由于私人网络节点和外部通信的默认启动是单向的,网络访问只能从私人网络启动,外部启动的请求将被统一的网关或防火墙阻挡。这种网络架构很好地保护了私人网络中节点的安全性和隐私。因此,在安全和隐私的要求下,IPv6中还需要支持私网和私网NAT。在Linux内核3.7版开始加入IPv6 NAT支持、实现方式和IPv四下差别不大(Linux变量和函数在核代码中的命名几乎是ctrl c和ctrl v过来的)。IPv唯一的地址配置如下图所示:

图六.IPv6唯一的地址

1-1-4特殊地址

除上述常见的单播地址外,IPv6中还有一些特殊地址,简要列出如下:
0地址:/128为未定义地址,除最后一个是1,其他地址为0:1/128为本地环回地址,相同IPv4里面的127.0.0.1FF00:/8这个网段的地址是多播地址

IPv6相关网络工具

dig

dns解析,检查域名是否有AAAA记录


图七.dig获取域名的AAAA记录

curl

通过IPv6网络协议响应请求,获取服务数据


图八.curl通过IPv6获取接口数据

ping6

查看IPv网络连通性和域名分析的正确性


图九.ping6测试IPv6网络连通性


telnet

查看对应IPv地址端口是否开放

图十.telnet检查端口的可用性

mtr

IPv6网络连通性判断工具

图十一.mtr查看IPv6网络连通性

traceroute6

IPv6网络测试、评估和管理工具

图十二.traceroute6查看IPv6路由节点

ip&route

查看本机IPv6路由表

图十三.查看本机IPv6路由表

关于移动应用IPv6和IPv4网络环境中自动降级机制的研究

因为最近帮助业务上线,IPv6,所以简单使用安卓手机(小米5S MIUI10 浏览器)验证了如何在双栈环境中自动选择合适的协议向服务器请求数据。具体流程如下:

第一步:服务端域名需要进行DNS解析。具体流程如下:

第一步:服务端域名需要进行DNS分析。客户端获取域名DNS在分析时,您将首先要求域名AAAA记录,等DNS服务器返回域名AAAA记录分析后,请求域名A记录。具体过程如下:抓包截图:

图十四.DNS解析抓 包{