引言


由于互联网的快速发展与普及,原有的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. safari浏览器在window下 打开控制台

    有时候需要在window下测试safari浏览器的兼容性 然后需要打开错误控制台 以下是完整打开的图文教程 1.显示菜单栏 2.打开偏好设置 3.然后切换到高级标签 勾选 在菜单栏显示开发菜单 4.打 ...

  2. Rabbitmq Exchange Type 说明

    Exchange在定义的时候是有类型的,以决定到底是哪些Queue符合条件,可以接收消息 fanout 所有bind到此exchange的queue都可以接收消息 direct 通过routingKe ...

  3. [小程序]那些icons

    摘要 为了提供更友好的提示信息,会使用icon+信息的方式,向用户提示当前操作的成功,失败或者一些警告信息.小程序也为我们定义了一些icons,足够大部分情况的使用了. 那些icons 我们新建一个名 ...

  4. 【转】 解读EOF

    解读EOF 标签: fplinuxc语言filestream 2012-01-31 22:05 439人阅读 评论(0) 收藏 举报  分类: C.C++_程序设计(20)  我学习C语言的时候,遇到 ...

  5. PG 函数的易变性(Function Volatility Categories)

    此概念的接触是在做分区表的时候碰到的,分区表按时间字段分区,在查询时当where条件中时间为now()或者current_time()等时是无法查询的,即使进行格式转换也不行,只有是时间格式如‘201 ...

  6. nyoj 218 Dinner(贪心专题)

    Dinner 时间限制:100 ms  |  内存限制:65535 KB 难度:1   描述 Little A is one member of ACM team. He had just won t ...

  7. 超简单,安卓模拟器手动root

    本文转载自:http://quantoubao.blog.163.com/blog/static/2083211702013870501987/ 安装Android SDK安卓模拟器的方法很简单,网上 ...

  8. 项目vue2.0仿外卖APP(一)

    最近用vue.js做一个仿饿了么外卖APP的项目,现在也把流程啊什么的暂时先整理一下在这个博客上面. 当然,这个过程会有点长,不过确实能学到很多东西. 话不多说,马上开始吧. 1.项目介绍 选用当前最 ...

  9. Linux 下测试串口的命令microcom

    昨天应为要测试主板上的串口,查了一下,可以使用microcom 这条命令进行测试. 命令使用方法很简单: Usage: microcom [-d DELAY] [-t TIMEOUT] [-s SPE ...

  10. HTTP响应消息中的状态代码