ipv6简介

2023-05-16

IPv6地址扩展到128位。2128足够大,这个地址空间可能永远用不完。事实上,这个数足够为地球上每个分子分配一个IP地址。IPv6地址采用冒号分隔的十六进制数表示,例如下面是一个IPv6地址8000:0000:0000:0000:0123:4567:89AB:CDEF为了便于书写,规定了一些简化写法。

首先,每个字段前面的0可以省去(在16位的字段中可以省掉前面的0,不能省掉后面的0),例如0123 可以简写为123;

其次,一个或多个全0字段0000可以用一对冒号代替。例如以上地址可简写为: 8000::123:4567:89AB:CDEF.

IPv6地址的格式前缀(Format Prefix,FP)用于表示地址类型或子网地址,用类似于IPv4 CIDR的方法可表示为“IPv6地址/前缀长度”的形式。为了实现IP地址的自动配置,IPv6主机将MAC地址附加在地址前缀1111 1110 10之后,产生一个链路本地地址,如果通过了邻居发现协议的验证,则表明自我配置的链路本地地址是有效的。       

IPv6地址的具体类型是由格式前缀来区分的。其中链路本地单播地址的格式前缀为1111 1110 10,可聚集全球单播地址的前缀为001。IPv6中的链路本地地址是将主机网卡的MAC地址附加在链路本地地址前缀1111 1110 10之后形成的。链路本地地址用于同一链路相连的结点间通信。链路本地地址相当于IPv4中的自动专用IP地址(APIPA),可用于邻居发现,并且总是自动配置的,包含链路本地地址的分组不会被路由器转发。

协议翻译技术主要用于纯IPV4主机与纯IPV6主机之间的通信。IPv4和IPv6的过渡期间,主要采用三种基本技术。

  1. 双协议栈:主机同时运行IPv4和IPv6两套协议栈,同时支持两套协议
  2. 隧道技术:这种机制用来在IPv4网络之上连接IPv6的站点,站点可以是一台主机,也可以是多个主机。隧道技术将IPv6的分组封装到IPv4的分组中,封装后的IPv4分组将通过IPv4的路由体系传输,分组报头的“协议”域设置为41,指示这个分组的负载是一个IPv6的分组,以便在适当的地方恢复出被封装的IPv6分组并传送给目的站点。

最常用的3种自动隧道技术是6to4隧道6over4隧道和ISATAP隧道。  

  1. NAT-PT:利用转换网关来在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。      

IPv6地址的格式前缀(Format Prefix,FP)用于表示地址类型或子网地址,用类似于IPv4 CIDR的方法可表示为“IPv6地址/前缀长度”的形式。扩展头部的作用是保留IPv4某些字段的功能,但只是由特定的网络设备来检查处理,而不是每个设备都要处理。基本首部长度是40字节。如果一个IPv6分组包含多个扩展头,建议采用下面的封装顺序:

  1. IPv6 头部。
  2. 逐跳选项头。此扩展头必须紧随在IPv6头之后,它包含包所经路径上的每个节点都必须检查的可选数据。
  3. 目标选项头(IPv6头部目标地址字段中指明的第一个目标结点要紅理的信息,以及路由选择头中列出的后续目标结点要处理的信息)。
  4. 路由选择头。
  5. 分段头。
  6. 认证头。
  7. 封装安全负荷头。
  8. 目标选项头(最后的目标结点要处理的信息)。
  9. 上层协议头部。  

可集聚全球单播地址是另一种类型的集聚,它是独立于isp 的。基于供应商的可集聚地址必须随着供应商的改变而改变,而基于交换局的地址则由ipv6 交换实体直接定位。由交换局提供地址块,而用户和供应商为网络接入签订合同。这样的网络接入或者是直接由供应商提供,或者通过交换局间接提供,但选路通过交换局。这就使得用户改换供应商时,无需重新编址。同时也允许用户使用多isp 来处理单块网络地址。可集聚全球单播地址包括地址格式的起始3 位为001 的所有地址。   

地址前缀001代表可聚集全球单播地址,地址前缀1111111010代表链路本地单播地址,地址前缀1111111011代表站点本地单播地址。IPv6组播地址格式前缀为11111111。IPv6单播地址的类型可有多种,包括全球单播地址链路本地地址站点本地地址等。  

  1. 全球单播地址等同于IPv4公网地址,提供给网络服务提供商。这种类型的地址允许路由前缀的聚合,从而限制了全球路由表项的数量。集聚全球单播地址定义地址格式,其格式前缀为0 0 1 (二进制)。  
  2. 链路本地地址用于邻居发现协议和无状态自动配置中链路本地上节点之间的通信。使用链路本地地址作为源或目的地址的数据报文不会被转发到其他链路上。IPv6前缀表示为FE80::/10。
  3. 站点本地地址与IPv4中的私有地址类似。使用站点本地地址作为源或目的地址的数据报文不会被转发到本站点(相当于一个私有网络)外的其它站点。IPv6前缀表示为FEC0::/10。    

   

IPV6的特殊地址和保留地址在第一个1/256 ipv6 地址空间中,所有地址的第一个8 位:0000 0000 被保留。大部分空的地址空间用作特殊地址,这些特殊地址包括:

未指定地址:这是一个“全0”地址,当没有有效地址时,可采用该地址。例如当一个主机从网络第一次启动时,它尚未得到一个ipv6 地址,就可以用这个地址,即当发出配置信息请求时,在ipv6 包的源地址中填入该地址。该地址可表示为0:0:0:0:0:0:0:0,也可写成::。

环回地址:在ipv4 中,环回地址定义为127.0.0.1。任何发送环回地址的包必须通过协议栈到网络接口,但不发送到网络链路上。网络接口本身必须接受这些包,就好像是从外面节点收到的一样,并传回给协议栈。环回功能用来测试软件和配置。ipv6 环回地址除了最低位外,全为0,即环回地址可表示为0:0:0:0:0:0:0:1 或::1。             

IPv6地址是一个或一组接口的标识符。IPv6地址被分配到接口,而不是分配给结点。

IPv6地址有3种类型:

单播(Unicast)地址。 单播地址是单个网络接口的标识符。对于有多个接口的结点,其中任何一个单播地址都可以用作该结点的标识符。但是为了满足负载平衡的需要,在RFC 2373中规定,只要在实现中多个接口看起来形同一个接口就允许这些接口使用同一地址。IPv6的单播地址是用一定长度的格式前缀汇聚的地址,类似于IPv4中的CIDR地址。单播地址中有下列两种特殊地址: •不确定地址地址0:0:0:0:0:0:0:0称为不确定地址,不能分配给任何结点。不确定地址可以在初始化主机时使用,在主机未取得地址之前,它发送的IPv6分组中的源地址字段可以使用这个地址。这种地址不能用作目标地址,也不能用在IPv6路由头中。 •回环地址地址0:0:0:0:0:0:0:1称为回环地址,结点用这种地址向自身发送IPv6 分组。这种地址不能分配给任何物理接口。 

任意播(AnyCast)地址。 这种地址表示一组接口(可属于不同结点的)的标识符。发往任意播地址的分组被送给该地址标识的接口之一,通常是路由距离最近的接口。一个子网内的所有路由器接口都被分配了子网-路由器任意播地址。子网-路由器任意播地址必须在子网前缀中进行预定义。为构造一个子网-路由器任意播地址,子网前缀必须固定,其余位置全“0”,对IPv6任意播地址存在下列限制:

•任意播地址不能用作源地址,而只能作为目标地址。

•任意播地址不能指定给IPv6主机,只能指定给IPv6路由器。  

IPv6中任意播地址只能指定给IPv6路由器、可以用作目标地址、代表一组接口的标识符,但不能作为源地址。   

组播(Multicast)地址。 组播地址是一组接口(一般属于不同结点)的标识符,发往组播地址的分组被传送给该地址标识的所有接口。IPv6中没有广播地址,它的功能已被组播地址所代替。 在IPv6地址中,任何全“0”和全“1”字段都是合法的,除非特别排除的之外。特别是前缀可以包含“0”值字段,也可以用“0”作为终结字段。一个接口可以被赋予任何类型的多个地址(单播、任意播、组播)或地址范围。 

       

IPv6协议对其报头定义了8个字段。

  1. 版本:长度为6位,对于IPv6,本字段的值必须为6。
  2. 通信量类:长度为8位,区分不同的IPv6数据报的类别或优先级。
  3. 流标号:长度为20位,用于标识属于同一业务流的包(和资源预分配挂钩)。
  4. 有效净荷长度:长度为16位,除基本首部以外的字节数。
  5. 下一个首部:长度为8位,指出了IPv6头后所跟的头字段中的协议类型(指出高层是TCP还是UDP)。
  6. 跳数限制:长度为8位,每转发一次该值减1,到0则丢弃,用于高层设置其超时值。
  7. 源地址:长度为128位,指出发送方的地址。
  8. 目标地址:长度为128位,指出接收方的地址。             

               

     通常在联网的计算机中,有一类主机用铜缆或光纤连接在局域网中,从来不会移动,我们认为这些主机是静止的。可以移动的主机有两类,一类基本上是静止的,只是有时候从一个地点移动到另一个地点,并且在任何地点都可以通过有线或无线连接进入Internet;另一类是在运动中进行计算的主机,它通过在无线通信网中漫游来保持网络连接。为解决前一类偶尔移动的主机异地联网的问题,IETF成立了专门的工作组,并预设了下列研究目标:  

• 移动主机能够在任何地方使用它的家乡地址进行连网;  

• 不允许改变主机中的软件:

• 不允许改变路由器软件和路由表的结构;  

• 发送给移动主机的大部分分组不需要重新路由;  

• 移动主机在家乡网络中的上网活动无须增加任何开销。 IETF 给出的解决方案是RFC 3344 (IP Mobility Support for IPv4)和RFC 3775 (Mobility Support in IPv6)。RFC 3344增强了IPv4协议,使其能够把IP数据报路由到移动主机当前所在的连接站点。按照这个方案,每个移动主机配置了一个家乡地址(home address)作为永久标识。当移动主机离开家乡网络时,通过所在地点的外地代理,它被赋予了一个转交地址(care-of address)。             

               

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ipv6简介 的相关文章

  • 闲谈IPv6-源IP地址的选择(RFC3484读后感)

    杭州数月的连续淅淅沥沥的雨 让我感到舒适 但却不知湿了多少人的皮鞋 回想起2014年的一个周末从上海来杭州 我在思考一个关于IPv6的问题 但一切却不是因为IPv6而起 缘起 在多年以前 我被一个看似很简单的问题困扰了很久很久 问题是这样的
  • 为什么我的 Xamarin iOS 中的 WebRequest 在 ipv6 环境中失败?

    我设置了本地ipv6环境如下https developer apple com library content documentation NetworkingInternetWeb Conceptual NetworkingOvervie
  • SSH 在通过 ipv6 连接时超时,但适用于 ipv4 [关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 昨天我重新安装了 Ubuntu 出于不相关的原因 从那时起 ssh 的行为就非常奇怪 连接需要很长时间 几分钟 使用 vvv 我发现它首先尝试使用 ipv6 连接 超时 然后尝试通过
  • 将 Jetty 绑定到 IPv6 地址

    我正在尝试将 Jetty 绑定为仅侦听 IPv6 地址 我正在使用 Jetty 7 4 2 v20110526 我的jetty xml
  • 此正则表达式 (RegEx) 标志有何含义 /iD

    我想使用这个正则表达式来验证 IPv6 但我想了解它所做的一切https stackoverflow com a 1934546 3112803 gt gt a f0 9 1 4 gt 1 7 a f0 9 gt 8 1 gt 1 0 6
  • 使用 C# 检查 Windows 7 上是否启用了 IPv6

    我正在尝试使用 C 编写一个程序作为我公司的多功能工具 我们希望在此工具中完成的一件事是确定 IPv6 是否已启用 绑定到我们的 Windows 7 计算机上的局域网连接网络适配器 我并不是在寻找它的地址 只是想知道它是否在该适配器上启用或
  • 如何在 XAMPP 下配置 MySQL 以使用 IPv6 [关闭]

    Closed 这个问题是无关 目前不接受答案 我有 XAMPP v 3 1 0 出于测试目的 我需要使用 IPv6 格式连接到 MySQL 数据库 如何配置MySQL 找到我的 ini 更改 取消注释bind address for ipv
  • Windows 不会从所有接口接收多播 IPv6 数据包

    我正在尝试使用此 python 2 7 代码在 Windows 上接收 IPv6 多播数据包 发送到 ff02 1 地址 import socket import win inet pton import struct socket IPP
  • 如何将链接本地地址绑定到 ipv6 套接字

    这个问题可以看作是一个姐妹问题前一个 https stackoverflow com questions 2455762 why cant i bind ipv6 socket to a linklocal address我自己发布的 非常
  • Swift 中 IPv6 网络上的网络连接检查崩溃

    我最近有一个应用程序因不兼容 IPv6 而被拒绝 当调用以下代码时 应用程序导致崩溃 我怀疑崩溃是因为它利用了SCNetworkReachabilityCreateWithAddress当苹果建议不要再使用它时 谁能帮我一下 让下面的代码与
  • 无法在辅助接口上接收 UDP/IPv6 数据包

    我有以下用于 UDP 服务器的 C 代码 它将绑定到辅助接口 tap0 的 ipv6 地址 context t new context const struct sockaddr listen addr size t addr size c
  • 在存储之前对用户的 IP 地址进行加密

    我在用着PHP http www php net and MySQL http www mysql com 我想将用户的IP地址存储到数据库中比较目的 例如 每个 IP 的线程仅允许一个标志 按下面的方法做可以吗 在 PHP 中检索它 ip
  • IPv6:connect() 总是失败并显示 errno 22

    操作系统是Ubuntu 我正在对基本 IPv6 操作进行简单测试 PC通过集线器与IP Camera 支持IPv6 连接 ping6 测试成功 ping6 I eth1 fe80 240 8cff fe94 451e PING fe80 2
  • 如何判断IPv6地址是否私有?

    我试图确定给定的 IPv6 地址在 C 中是否是私有的 并且我很想简单地使用 IPAddress 类上的 IsIPv6SiteLocal 属性 然而 正如本节中所解释的comment https stackoverflow com ques
  • 使用 PHP 检查 IPv4/IPv6 地址是否已启动

    我有一个 IPv4 地址 前任 172 19 20 21 我曾经这样做过 fs fsockopen ip port errno errstr 3 if fs error SSC is down return Redirect to gt w
  • 从 MAC 转换为 IPv6

    我想了解如何将 MAC 地址转换为 IPv6 地址 例如 00 01 04 76 2A 5C 应该成为 FE80 0201 04FF FE76 2A5C 有人可以详细说明一下转换吗 我们假设本地机器的自动配置没有随机参数 逐步转换 http
  • 匹配有效 IPv6 地址的正则表达式

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 我在编写匹配有效 IPv6 地址的正则表达式时遇到问题 包括压缩形式的地址 使用 或从每
  • 在同一端口上支持 IPv6 和 IPv4 的 C# 服务器

    是否有可能有一个同时侦听和接受 IPv6 和 IPv4 客户端的 Socket 我在 C 中使用了 IPv6 套接字 希望它能自动向后兼容 但 IPv4 客户端会导致无效的 ip 地址异常 看一看 您可以接受 IPv4 客户端以及 IPv6
  • Python 3:http.server 支持 ipv6 吗?

    Does http server http作为 Python 3 x 模块 支持 ipv6 例如 使用以下命令行代码 启动网络服务器 python m http server port 从 Python 3 8 开始 python m ht
  • 链路范围 IPv6 多播数据包突然无法在 MacBook Pro 上路由?

    这是一个有点晦涩的问题 但我很困惑 我想也许有人对这个问题有更多的线索 我的同事已经在他的 MacBook Pro 上成功运行了一个使用 IPv6 多播的内部应用程序几个月了 但今天 Mac 决定停止路由多播数据包 特别是 该程序打印此错误

随机推荐

  • 小知识·PD充电协议

    目录 PD充电器硬件结构 pd充电协议是什么 pd协议快充什么意思 PD快充协议优势 USB PD快速充电通信原理 PD充电器硬件结构 典型的手机充电器的硬件结构 xff08 以基于Dialog方案的高通QC2 0快充协议为例 xff09
  • 小知识·typec耳机原理

    目录 数字耳机和模拟耳机 手机中模拟和数字耳机的差异 typec耳机介绍 数字耳机和模拟耳机 模拟耳机即我们的常见的3 5mm接口的耳机 xff0c 包括左右声道 xff0c 地或者mic xff0c 如左图 数字耳机 右图 包含一个usb
  • 小知识·adb安装和使用方法

    目录 一 adb是什么 xff1f 二 adb有什么作用 三 如何启用adb调试 四 如何判断设备连接正常 五 如何下载安装adb 1 adb下载地址 xff1a 2 按装步骤 六 adb命令大全 1 查看设备 2 Adb应用管理 3 安装
  • 【C++】搭建HTTP服务器

    目录 项目介绍 网络协议栈介绍 协议分层 数据的封装与分用 HTTP相关知识介绍 HTTP的特点 URL格式 URI URL URN HTTP的协议格式 HTTP的请求方法 HTTP的状态码 HTTP常见的Header CGI机制介绍 CG
  • Linux命令·netstat

    netstat命令用于显示与IP TCP UDP和ICMP协议相关的统计数据 xff0c 一般用于检验本机各端口的网络连接情况 netstat是在内核中访问网络及相关信息的程序 xff0c 它能提供TCP连接 xff0c TCP和UDP监听
  • Linux命令·ss

    ss是Socket Statistics的缩写 顾名思义 xff0c ss命令可以用来获取socket统计信息 xff0c 它可以显示和netstat类似的内容 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息 xff0c
  • LeetCode·每日一题·2437. 有效时间的数目·模拟

    作者 xff1a 小迅 链接 xff1a https leetcode cn problems number of valid clock times solutions 2262448 mo ni zhu shi chao ji xian
  • john破解用户密码和防破解

    目录 一 系统弱口令检测 二 防止暴力破解 一 系统弱口令检测 Joth the Ripper xff0c 简称JR 一款开源的密码分析工具 xff0c 支持字典式的暴力破解 通过对shadow文件的口令分析 xff0c 可以检测密码强度
  • 块设备驱动介绍-linux驱动开发第10部分-朱有鹏-专题视频课程

    块设备驱动介绍 linux驱动开发第10部分 3265人已学习 课程介绍 本课程是linux驱动开发的第10个课程 xff0c 主要内容是linux的块设备驱动的介绍 xff0c 首先详细讲了块设备驱动和字符设备驱动的核心差异 xff0c
  • Linux各个系统版本及区别(Ubuntu,CentOS..)

    一 概览 Linux的版本号分为两部分 xff1a 内核版本和发行版本 内核版本 xff1a 不包含外围程序GNU程序库和工具 xff0c 命令行shell xff0c 图形界面的X Window系统和相应的桌面环境等 发行版本 xff1a
  • keil5编译报错问题

    keil5一开始编译文件总是报错 error 3092 anonymous unions are only supported in gnu mode or when enabled with pragma anon unions 错误 x
  • MySQL中的函数

    1 单行函数和多行函数 xff08 聚合函数 分组函数 xff09 xff1a 只对一行进行变换 每行返回一个结果 xff1b 1 单行函数 xff1a a 数值函数 xff1a 基本函数 xff1a ABS x 绝对值 SIGN x 0
  • Centos防火墙配置

    一 防火墙的概念 防火墙技术是用于安全管理的软件和硬件设备 xff0c 在计算机内 外网之间构建一道相对隔绝的保护屏障 xff0c 以保护数据和信息安全性的一种技术 防火墙分为网络防火墙和主机防火墙 网络防火墙由软件和硬件组成 xff0c
  • linux 线程的调度策略

    目录 一 调度策略 1 实时线程 2 非实时线程 3 抢占式调度策略 运行特点 xff1a 4 轮询式调度策略 运行特点 xff1a 二 设置线程的调度策略步骤 1 定义线程句柄 2 定义线程属性结构体 3 初始化属性结构体 4 设置线程是
  • 16选1数据选择器和32选1数据选择器multisim

    大致思路 xff1a xff08 正经内容在下边 xff09 学校期中考试 xff0c 搜了半天发现连16 1都很难搜到 xff0c 一整天做出来 xff0c 趁着还有兴致记录一下过程 老师上课只教了4 1数据选择器 xff0c 于是先从8
  • 【软件工程】对软件工程课程的希望及个人目标

    自我简介 首先进行一下自我介绍 xff0c 我是一名桂林理工大学信息科学与工程学院的本科在读生 xff0c 现已经是本科二年级的学生了 xff0c 上个学期我们刚经历了专业分流 xff0c 很幸运 xff0c 我来到了我所希望来到的软件工程
  • 网络设备驱动介绍-linux驱动开发第11部分-朱有鹏-专题视频课程

    网络设备驱动介绍 linux驱动开发第11部分 3869人已学习 课程介绍 本课程是linux驱动开发的第11个课程 xff0c 主要内容是linux的网络驱动的介绍 xff0c 首先讲述了网络设备驱动接口和之前讲的2种的不同 xff0c
  • 六、如何使用VS调试代码、条件语句

    how to use Visual Studio to debug our code 查看程序断点 调试程序 1 设置断点 断点 xff0c 调试器将中断 xff0c break xff0c 程序调试是将会中断 xff0c continue
  • 【FPGA】Verilog:组合电路 | 3—8译码器 | 编码器 | 74LS148

    前言 xff1a 本章内容主要是演示Vivado下利用Verilog语言进行电路设计 仿真 综合和下载 示例 xff1a 编码 译码器的应用 功能特性 xff1a 采用 Xilinx Artix 7 XC7A35T芯片 配置方式 xff1a
  • ipv6简介

    IPv6地址扩展到128位 2128足够大 xff0c 这个地址空间可能永远用不完 事实上 xff0c 这个数足够为地球上每个分子分配一个IP地址 IPv6地址采用冒号分隔的十六进制数表示 xff0c 例如下面是一个IPv6地址8000 0