引言


由于互联网的快速发展与普及,原有的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. html5新增的主体结构元素

    1.  article 主体结构元素 通常是一篇文章.一个页面.一个独立完整的内容模块一般会带个标题,并放在 header 标签中,article 元素可以互相嵌套,使用频率极高,强调独立性,多注意下 ...

  2. cf723b Text Document Analysis

    Modern text editors usually show some information regarding the document being edited. For example, ...

  3. Development of large-scale site performance optimization method from LiveJournal background

    A LiveJournal course of development is a project in the 99 years began in the campus, a few people d ...

  4. H5案例分享:移动端滑屏 touch事件

    移动端滑屏 touch事件 移动端触屏滑动的效果的效果在电子设备上已经被应用的越来越广泛,类似于PC端的图片轮播,但是在移动设备上,要实现这种轮播的效果,就需要用到核心的touch事件.处理touch ...

  5. Java NIO 系列教程

    http://www.iteye.com/magazines/132-Java-NIO

  6. Linux下用于查看系统当前登录用户信息 w命令

    作为系统管理员,你可能经常会(在某个时候)需要查看系统中有哪些用户正在活动.有些时候,你甚至需要知道他(她)们正在做什么.本文为我们总结了4种查看系统用户信息(通过编号(ID))的方法. 1. 使用w ...

  7. 关于int,integer初始值问题

  8. cf596d

    题意:有一排等高的树木,高度都为h.给出每棵树在数轴上的坐标,每次有可能是最左边或者最右边的立着的树倒下,概率都是0.5.最终所有树都倒下.每棵树在倒下的时候有p的概率向左倒,1-p的概率向右倒.如果 ...

  9. mongodb的查询语句学习摘要

    看了些资料,对应只需要知道怎么查询和使用mongodb的我来说,这些足够啦. 左边是mongodb查询语句,右边是sql语句.对照着用,挺方便. db.users.find() select * fr ...

  10. Android之界面(布局文件layput)

    1.关于组件居中  ① android:layout_gravity="center" 控件在包含该控件的父控件中的位置.同样,当我们在Button按钮控件中设置android:l ...