网络协议IPV6基础知识点集锦
由于互联网的快速发展与普及,原有的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地址类型
地址类型 |
描述 |
单播 |
一个地址标识单个接口 发送给单播地址的分组将传输到该地址标识接口 |
多播 |
一个多播地址标识位于不同设备上的一组接口 发送给多播地址的分组将传输到该地址标识的所有接口 多播地址不会作为源地址出现 |
任意播 |
一个地址分配给多个接口 这些接口代表不同的节点 将分组发送到任意播组中最近接口(第一个邻居),其他情况根据路由协议的度量值确定 |
全球单播地址格式: 网络部分提供一台设备到下行专用数据链路的定位,主机部分提供这条数据链路上该设备的标识 。16位的子网ID字段可以提供65536(216)个不同的子网
全球路由选择前缀(48) |
子网ID(16) |
接口ID (64) |
本地单播地址:使用范围限定在单条链路上的地址。唯一性只在所在的链路有效,相同的地址也可能存在于另一条链路上,因此此地址离开所在的链路是不可路由的。链路本地单播地址的起始10位是1111111010(FE80::/10)
IPV6单播地址分配方法:
说明:每个接口只能有一个链路本地地址
仅仅配置一个全局单播地址也会在接口上创建一个链路本地地址(EUI-64)
接口上可以配置多个IPV6地址。IPV4和IPV6地址可以同时配置
以太网的接口ID是基于接口的48位MAC地址中间插入16位的0XFFFE
多播地址格式
多播前缀: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包头格式
说明:
版本:4位,0110表明版本6
流量类别:8位,类似于IPV4中的TOS字段
流标签:20位,设置目的是允许为特定的业务流打上标签,可以提供更精细的服务类别区分的颗粒,在平衡业务流量通过多条路径时可以确保属于同一流的数据包能够总是转发到相同路径上,在发起一个数据包时,加上合适的流标签字段,路由器能够识别一条流,而不必一 一查找数据包头部,目前路由器忽略此字段
有效载荷长度:用来封装数据包所封装的有效载荷长度,IPV6数据包头部长度为40字节
下一报头:指出IPV6数据包头部后面的报头,与IPV4包中的协议字段类似
跳数限制:类似于IPV4中的TTL字段,衡量一个数据包到达目的地的路径中所能跨越的最大路由器跳数的工具
源地址和目的地址:128位长度
可选项:包含拓展报头,提供可选功能,如:分段、源路由选择或认证、目的地可选项、TCP/IP协议等,在下一个报文字段中是否有扩展报头
IPV6报头 |
路由选择扩展报头 |
分段扩展报头 |
认证扩展报头 |
上层协议报头 |
数据 |
网络协议IPV6基础知识点集锦的更多相关文章
- TCP/IP网络协议基础知识集锦[转]
引言 本篇属于TCP/IP协议的基础知识,重点介绍了TCP/IP协议簇的内容.作用以及TCP.UDP.IP三种常见网络协议相关的基础知识. 内容 TCP/IP协议簇是由OSI七层模型发展而来的,之所以 ...
- ****** 四十二 ******、软设笔记【网络基础】-IPv6协议、常用的网络协议
一.IPv6协议 IPv6协议,全称"互联网协议第6版",即下一代的网际协议. 相对于IPv4来说,IPv6协议主要改进: *扩展的地址.IPv6地址长度为128位. *IPv6使 ...
- Java 面试知识点解析(五)——网络协议篇
前言: 在遨游了一番 Java Web 的世界之后,发现了自己的一些缺失,所以就着一篇深度好文:知名互联网公司校招 Java 开发岗面试知识点解析 ,来好好的对 Java 知识点进行复习和学习一番,大 ...
- python之旅:网络基础之网络协议篇
一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- python全栈学习笔记(一)网络基础之网络协议篇
阅读目录 一.操作系统基础 二.网络通信原理 2.1 互联网的本质就是一系列的网络协议 2.2 osi七层协议 2.3 tcp/ip五层模型讲解 2.3.1 物理层 2.3.2 数据链路层 2.3.3 ...
- 27 python 网络基础之网络协议
一.操作系统基础 操作系统:(Operating System,简称OS)是管理和控制计算机硬件与软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才 ...
- 网络基础之网络协议篇---CS架构--网络通信--osi 协议---套接字socket--粘包
1 C\S 客户端/服务器架构: .硬件 C/S架构 (打印机) .软件 C/S 架构 互联网中处处是C/S架构 如黄色网站是服务端,你的浏览器是客户端(B/S架构也是C/S架构的一种) 腾讯作为服务 ...
- python 网络编程(网络基础之网络协议篇)
前言 C/S B/S 架构 client<----->server browser<--->server 学习socket编程就是要编写一个客户端软件和服务端软件,然后实现服 ...
- TCP/IP网络协议基础
实验楼学习网络协议传送门 一.TCP/IP简介 TCP/IP(Transmission Control Protocol/Internet Protocol)是传输控制协议和网络协议的简称,它定义了电 ...
随机推荐
- Xml学习笔记(2)
不同的xml文档构可能要用到不同的方法进行解析这里用到的是例如<student name="张三" id="1" sex="男"/&g ...
- CF817C Really Big Numbers
思路: 二分. 实现: #include <iostream> #include <cstdio> using namespace std; typedef long long ...
- JavaScript开发心得--如何传递某行数据给下一页
1, 应用场景 在某个html页面显示一批数据,如20个用户的名称.年龄等,每行都要一个编辑按钮,点击编辑后,将此行数据带入某个专门的编辑页进行显示,修改后保存. 问题是 点击编辑按钮后,如何得知要编 ...
- 【Python-2.7】换行符和制表符
在Python中换行符“\n”表示接下来的内容将会换到下一行显示,制表符“\t”表示下面的内容显示时在前面留出空白,如打印如下内容: Dear: I love you forever! 上面的一段话分 ...
- VC++函数只被调用一次
如何保证某个函数只被调用一次 一个函数caller会在其内部调用另外一个函数callee,现在的情况是,caller可能会在多个地方被多次调用,而你希望callee只在第一次被调用时被调用一次.一 ...
- 你的宽带ip地址被100.64了吗?
你的宽带ip地址被100.64了吗? 最近需要用外网的时候发现,宿舍路由wan口的ip变成了100.64.X.X,本以为是一个外网的ip,可事实上并不是,并且从外网无法直接访问. 首先,我们都 ...
- 自定义 Java Annotation ,读取注解值
1. 首先是自定义注解: package cn.veji.hibernate.po; import java.lang.annotation.ElementType; import java.lang ...
- Jmeter之关联——常用提取器
Jmeter关联 所谓关联,从业务角度讲,即:某些操作步骤与其相邻步骤存在一定的依赖关系,导致某个步骤的输入数据来源于上一步的返回数据,这时就需要“关联”来建立步骤之间的联系. 简单来说,就是:将上一 ...
- JS设计模式—节流模式的实际应用
在实际工作中,我们会经常遇到这样的业务场景,比如点击按钮提交表单,点击一次发一次请求,如果快速点击多次会发送多次请求,这样发送了多次请求是我们不愿意看到的.又比如输入框我们输入内容会调搜索的接口,那么 ...
- boostrap标签
字体: <lead>:加强显示 <strong><b>:字体加粗 <i><em>:斜体字 .text-muted:提示,使用浅灰色(#999 ...