引言


由于互联网的快速发展与普及,原有的IPV4地址已不能满足网络用户的需求,虽然NAT可以缓解IPV4地址的耗尽,但NAT破坏了网络环境的开放、透明以及端到端的特性,因此IPV6地址协议应运而生。IPV6协议使用128位地址替代32位的IPV4地址,这样大约可以产生340万亿亿亿亿(3.4*1038)个可用的地址。此数目可以满足公共IP地址需求。本文作为IPV6入门,主要介绍IPV6地址和IPV6报文格式相关内容。

内容


  • IPV6优点

1、更大地址空间:128位的地址空间可以满足星球上每个人

2、无需NAT:保障端到端通信

3、没有广播地址:包括单播、多播、任意播

4、支持移动性和安全性:有助于确保遵循移动IP标准和Ipsec标准

5、更简单的报文提高了路由器的效率

6、接口标识:从接口的数据链路层

  • IPV6新特性

1、每个接口多个地址

2、链路本地地址:交换路由更新时,IGP将link-local地址作为下一跳地址

3、无状态自动配置:一个IPV6设备根据本身分配一个独特link-local IPV6的地址

4、独立或不独立于提供商的编址

  • IPV6地址

1、IPV6地址由128位组成,使用8个16位段来表示,每个16位段使用十六进制数字表示即每4个十六进制为一组,之间使用英文冒号:分开

2、格式为:x:x:x:x:x:x:x:x   x代表4个十六进制位,举例:2035:0001:2BC5:0000:0000:087C:0000:000A

3、IPV6地址包括两部分:前缀+本地标识

4、前缀:通过在IPV6地址后面加一个斜线/,再跟一个十进制的数字来标识一个IPV6地址的起始位由多少位是前缀位,一般前缀为64位,如:3ffe:1994:100:a::/64

5、接口标识:从接口的数据链路层地址直接派生出接口标识,该标识是全局唯一。长度为64位,根据MAC地址动态创建。

6、特殊的IPV6地址如下表:

IPV6地址

描述

::/0

    • 缺省路由
    • 等同于IPV4   0.0.0.0

::/128

    • 未指定地址
    • 不能分配给真实的网络接口

::1/128

    • 本地的环回地址
    • 等同于IPV4的127.0.0.1

FE80::/10

    • 链路本地单播地址
    • 等同于Windows自动配置的IP地址169.254.x.x

FF00::/8

    • 组播地址

其他地址

    • 全局单播地址
    • 001(当前分配的)即:2xxx::/4或者3xxx::/4
    • 其余的为未分配的全球单播地址
  • IPV6地址简写规则:

1、在4个十六进制位组成的字段中,可以省略前导0;如:09C0=9C0   0000=0

2、在每个地址中,可使用一对冒号(::)来表示任意数量的连续的0,;如: ff02:0000:0000:0000:0000:0000:0000:0005=ff02::5

注:一个地址中只能出现一对冒号,否则无法唯一确定地址

  • IPV6地址类型

地址类型

描述

单播

    • 一个地址标识单个接口
    • 发送给单播地址的分组将传输到该地址标识接口

多播

    • 一个多播地址标识位于不同设备上的一组接口
    • 发送给多播地址的分组将传输到该地址标识的所有接口
    • 多播地址不会作为源地址出现

任意播

    • 一个地址分配给多个接口
    • 这些接口代表不同的节点
    • 将分组发送到任意播组中最近接口(第一个邻居),其他情况根据路由协议的度量值确定
  1. 全球单播地址格式:  网络部分提供一台设备到下行专用数据链路的定位,主机部分提供这条数据链路上该设备的标识 。16位的子网ID字段可以提供65536(216)个不同的子网

全球路由选择前缀(48)

子网ID(16)

接口ID  (64)

                        

  1. 本地单播地址:使用范围限定在单条链路上的地址。唯一性只在所在的链路有效,相同的地址也可能存在于另一条链路上,因此此地址离开所在的链路是不可路由的。链路本地单播地址的起始10位是1111111010(FE80::/10)
  1. IPV6单播地址分配方法:

说明:每个接口只能有一个链路本地地址

仅仅配置一个全局单播地址也会在接口上创建一个链路本地地址(EUI-64)

接口上可以配置多个IPV6地址。IPV4和IPV6地址可以同时配置

以太网的接口ID是基于接口的48位MAC地址中间插入16位的0XFFFE

  1. 多播地址格式

多播前缀:8位

标记:4位

范围:4位

组ID:112

说明:标记位:前3位保留为0,第4位:0-永久的公认的地址;1-暂时的地址

范围:包括:节点本地-0X1、链路本地-0X2、地区本地-0X5、组织本地-0X8、全球-0XE、保留-0XF 0X0

组ID:前面80位设置为0,只使用后面的32位

常见的公认IPV6多播地址:都属于永久的链路本地的范围;

地址

多播组

FF02::1

所有的节点

FF02::2

所有的路由器

FF02::5

OSPFv3路由器

FF02::6

OSPFv3指定路由器

FF02::9

RIPng路由器

FF02::A

EIGRP路由器

FF02::B

移动代理

FF02::C

DHCP服务器/中继代理

FF02::D

所有的PIM路由器

  • IPV6包头格式

说明:

  1. 版本:4位,0110表明版本6
  2. 流量类别:8位,类似于IPV4中的TOS字段
  3. 流标签:20位,设置目的是允许为特定的业务流打上标签,可以提供更精细的服务类别区分的颗粒,在平衡业务流量通过多条路径时可以确保属于同一流的数据包能够总是转发到相同路径上,在发起一个数据包时,加上合适的流标签字段,路由器能够识别一条流,而不必一 一查找数据包头部,目前路由器忽略此字段
  4. 有效载荷长度:用来封装数据包所封装的有效载荷长度,IPV6数据包头部长度为40字节
  5. 下一报头:指出IPV6数据包头部后面的报头,与IPV4包中的协议字段类似
  6. 跳数限制:类似于IPV4中的TTL字段,衡量一个数据包到达目的地的路径中所能跨越的最大路由器跳数的工具
  7. 源地址和目的地址:128位长度
  8. 可选项:包含拓展报头,提供可选功能,如:分段、源路由选择或认证、目的地可选项、TCP/IP协议等,在下一个报文字段中是否有扩展报头

IPV6报头

路由选择扩展报头

分段扩展报头

认证扩展报头

上层协议报头

数据

相关推荐


  • 《TCP/IP路由技术第二章》

IPV6入门篇的更多相关文章

  1. Membership三步曲之入门篇 - Membership基础示例

    Membership 三步曲之入门篇 - Membership基础示例 Membership三步曲之入门篇 -  Membership基础示例 Membership三步曲之进阶篇 -  深入剖析Pro ...

  2. spring boot(一):入门篇

    构建微服务:Spring boot 入门篇 什么是spring boot Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框 ...

  3. 1. web前端开发分享-css,js入门篇

    关注前端这么多年,没有大的成就,就入门期间积累了不少技巧与心得,跟大家分享一下,不一定都适合每个人,毕竟人与人的教育背景与成长环境心理活动都有差别,但就别人的心得再结合自己的特点,然后探索适合自己的学 ...

  4. 一个App完成入门篇(七)- 完成发现页面

    第七章是入门篇的倒数第二篇文章了,明天整个APP将进入收官. 本节教程主要要教会大家使用二维码扫描和用do_WebView组件加在html页面. 导入项目 do_WebView组件 扫描功能 自定义事 ...

  5. [原创]Linq to xml增删改查Linq 入门篇:分分钟带你遨游Linq to xml的世界

    本文原始作者博客 http://www.cnblogs.com/toutou Linq 入门篇(一):分分钟带你遨游linq to xml的世界 本文原创来自博客园 请叫我头头哥的博客, 请尊重版权, ...

  6. 转:OSGi 入门篇:模块层

    OSGi 入门篇:模块层 1 什么是模块化 模块层是OSGi框架中最基础的一部分,其中Java的模块化特性在这一层得到了很好的实现.但是这种实现与Java本身现有的一些模块化特性又有明显的不同. 本文 ...

  7. 转:OSGi 入门篇:生命周期层

    OSGi 入门篇:生命周期层 前言 生命周期层在OSGi框架中属于模块层上面的一层,它的运作是建立在模块层的功能之上的.生命周期层一个主要的功能就是让你能够从外部管理应用或者建立能够自我管理的应用(或 ...

  8. 【three.js详解之一】入门篇

    [three.js详解之一]入门篇   开场白 webGL可以让我们在canvas上实现3D效果.而three.js是一款webGL框架,由于其易用性被广泛应用.如果你要学习webGL,抛弃那些复杂的 ...

  9. [Maven]Apache Maven 入门篇

    作者:George Ma 上 写这个 maven 的入门篇是因为之前在一个开发者会的动手实验中发现挺多人对于 maven 不是那么了解,所以就有了这个想法.这个入门篇分上下两篇.本文着重动手,用 ma ...

随机推荐

  1. CSS 实现背景透明 内容文字不透明 显示

    思路主要是 IE9+ 谷歌 火狐等使用rgba(0,0,0,0.5)来确定透明度 前三个值是RGB值 可以直接参考PS里对应的值 最后一个是透明度 例子 background:rgba(255,255 ...

  2. winform 多线程编程

    参考资料: WinForm中新开一个线程操作 窗体上的控件(跨线程操作控件) c# 使用定时器Timer

  3. 15个JavaScript本地存储技术的函数库和工具

    当构建更复杂的JavaScript应用程序运行在用户的浏览器是非常有用的,它可以在浏览器中存储信息,这样的信息可以被共享在不同的页面,浏览会话. 在最近的过去,这将有可能只被cookies文本文件保存 ...

  4. Java 程序的内存泄露问题分析

    什么是内存泄露? 广义的Memory Leak:应用占用了内存,但是不再使用(包括不能使用)该部分内存 狭义的Memory Leak:应用分配了内存,但是不能再获取该部分内存的引用(对于Java,也不 ...

  5. tyvj4541 zhx 提高组P1

    背景 提高组 描述 在一个N×M的棋盘上,要求放置K个车,使得不存在一个车同时能被两个车攻击.问方案数. 输入格式 一行三个整数,N,M,K. 输出格式 一行一个整数,代表答案对1000001取模之后 ...

  6. XHTML的规则

    以正确的DOCTYPE和命名空间开始文档 使用meta内容元素声明你的字符编码 用小写字母写所有元素和属性名称 给所有属性值加引号 给所有属性赋一个值 关闭所有标签 用空格和斜杠关闭“空”标签 不要在 ...

  7. 关于Javascript的使用参考

    DOM编程>1.js重要的作用就是可以让用户可以与网页元素进行交互操作-->JS精华之所在 >2.DOM编程也是ajax的基础 >3.DOM(文档对象模型),是HTML与XML ...

  8. thinkphp3.2.3之自动完成的实现

    有时候,我们希望系统能够帮我们自动完成一些功能,比如自动为密码加密,忽略空等,这个时候我们就需要利用到自动完成(填写)的功能. ThinkPHP 模型层提供的数据处理方法,主要用于数据的自动处理和过滤 ...

  9. 【荐】说说CSS Hack 和向后兼容

    人一旦习惯了某些东西就很难去改,以及各种各样的原因,新的浏览器越来越多,而老的总淘汰不了.增长总是快于消亡导致了浏览器兼容是成了谈不完的话题.说 到浏览器兼容,CSS HACK自然而然地被我们想起.今 ...

  10. ReactiveCocoa源码拆分解析(七)

    (整个关于ReactiveCocoa的代码工程可以在https://github.com/qianhongqiang/QHQReactive下载) 在这篇博客中,我将把ReactiveCocoa中的擦 ...