YD/T 2710-2014
基本信息
标准号:
YD/T 2710-2014
中文名称:IPv6 路由协议适用于低功耗有损网络的 IPv6 路由协议(RPL)技术要求
标准类别:通信行业标准(YD)
标准状态:现行
出版语种:简体中文
下载格式:.zip .pdf
下载大小:30921764
相关标签:
路由
协议
适用
低功耗
网络
技术
标准分类号
关联标准
出版信息
相关单位信息
标准简介
YD/T 2710-2014 IPv6.IPv6 routing protocol- technical requirements of IPv6 routing protocol for low-power and lossy networks(RPL).
1范围
YD/T 2710规定了低功耗有损网络IPv6路由协议(RPL)的技术要求,包括协议基本操作、协议消息格式、协议字段属性、及协议报文处理等方面。
YD/T 2710适用于支持低功耗有损路网络IPv6协议网关及节点。
2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。
IETF RFC1958互联网架构原则
IETF RFC3447公共密钥标准(PKCS)#1: RSA密钥规范2.1版(Public-Key Cryptography Standards(PKCS) #1: RSA Cryptography Specifications Version 2.1)
IETF RFC4191默认路由器优先选择和更加明确路由( Default Router Preferences andMore -Specific Routes)
IETF RFC4302IP认证头(IP Authentication Header)
IETF RFC4443符合IPv6要求的ICMPv6 ( Internet Control Message Protocol (ICMPv6) for the Internet Protocol Version 6 (IPv6) Specification)
标准内容
ICS33.040.40
中华人民共和国通信行业标准
YD/T2710-2014
IPv6路由协议
适用于低功耗有损网络的
IPv6路由协议(RPL)技术要求
IPv6 routing protocoltechnical requirements of IPv6 routingprotocol for low-power and lossy networks(RPL)(IETFRFC6550,RPL:IPv6Routing Protocol for Low-Power and LossyNetworks,MOD)
2014-10-14发布
2014-10-14实施
中华人民共和国工业和信息化部发布前言·
1范围-
2规范性引用文件
3术语、定义和缩略语…
4RPL协议概述.
5RPL支持的通信模式
6RPL实例-
7ICMPv6RPL控制消息
序列计数器
向上路由
向下路由·
安全机制
转发数据包和环路避免/探测
多播操作
路由邻接的维护。
目标函数的指导方针
邻居发现互操作的建议…
互操作性的需求摘要·
RPL常量和变量.
可管理性的注意事项
安全考虑
YD/T2710-2014
YD/T2710-2014
本标准按照GB/T1.1-2009给出的规则起草。本标准使用重新起草法修改采用IETFRFC6550《低功耗有损网络IPv6路由协议》,本标准与IETFRFC6550的技术性差异及其原因如下主要差异如下:一按照汉语习惯对一些编排格式进行了修改:一将一些适用于国际标准的表述改为适用于我国标准的表述:一根据GB/T1系列的要求,增加了第1章、第2章和第3章,其中第3.1节从技术内容上与ETFRFC6550第2章保持一致;
本标准的第4章从技术内容上与IETFRFC6555的第3章保持一致,只是考虑到我国使用习惯重新进行了描述:
一本标准的第5章~第20章分别与RFC6550的第4章~第19章保持一致。请注意本文件的某些内容可能涉及专利。本文件的发布机构不承担识别这些专利的责任。本标准由中国通信标准化协会提出并归口。本标准起草单位:工业和信息化部电信研究院、中国科学院计算技术研究所。本标准起草人:马军锋、宋菲、王煜伟、常城、高飞、李红阳、黄春秀。H
1范围
IPv6路由协议
YD/T2710-2014
适用于低功耗有损网络IPv6路由协议(RPL)技术要求本标准规定了低功耗有损网络IPv6路由协议(RPL)的技术要求,包括协议基本操作、协议消息格式、协议字段属性、及协议报文处理等方面。本标准适用于支持低功耗有损路网络IPv6协议网关及节点。2规范性引用文件
下列文件对于本文件的应用是必不可少的。凡是注日期的引用文件,仅所注日期的版本适用于本文件。凡是不注日期的引用文件,其最新版本(包括所有的修改单)适用于本文件。互联网架构原则
IETFRFC1958
IETFRFC3447
公共密钥标准(PKCS)#l:RSA密钥规范2.1版(Public-KeyCryptographyStandards(PKCS)#1: RSA Cryptography Specifications Version 2.1)IETFRFC4191
More-SpecificRoutes
IETFRFC4302
IETFRFC4443
默认路由器优先选择和更加明确路由(DefaultRouterPreferencesandIP认证头(IPAuthenticationHeader)符合IPv6要求的ICMPv6(InternetControlMessageProtocol(ICMPv6)fortheInternetProtocolVersion6(IPv6)Specification)IETFRFC4862
IETFRFC5548
and Lossy Networks)
IPv6无状态地址自动配置(IPv6StatelessAddressAutoconfiguration)城市应用低功耗有损网络路由需求(RoutingRequirementsforUrbanLow-PowerIETFRFC5673工业应用低功耗有损网络路由需求(IndustrialRoutingRequirementsinLow-Powerand Lossy Networks)
IETFRFC5706
新协议和协议扩展的考忠运行和管理指南(GuidelinesforConsideringOperationsand Management of New Protocols and Protocol Extensions)IETFRFC5826
家庭自动化应用低功耗有损网络路由需求(HomeAutomationRoutingRequirements in Low-Power and Lossy Networks)楼宇自动化应用低功耗有损网络路由需求(BuildingAutomationRoutingIETFRFC5867
Requirements in Low-Power and Lossy Networks)IETFRFC6551适用于低功耗有损网络路径计算的路由度量(RoutingMetricsUsedforPathCalculation in Low-Power and Lossy Networks)适用于低功耗有损网络路由协议的目标函数零(ObjectiveFunctionZerofortheIETFRFC6552
RoutingProtocol forLow-PowerandLossyNetworks(RPL))IETFRFC6553
用于在数据平面数据报文中承载RPL信息的RPL选项(TheRoutingProtocolforLow-Power and Lossy Networks (RPL)Option for Carrying RPL Information in Data-Plane Datagrams)YD/T2710-2014
IETFRFC6554
适用于低功耗有损网络路由协议的一种IPv6路由头(AnIPv6RoutingHeaderforSource Routes with the Routing Protocol for Low-Power and Lossy Networks (RPL))3术语、定义和缩略词
3.1术语和定义
下列术语和定义适用于本文件。3.1.1
有向无循环图DirectedAcyclicGraph(DAG)一个所有边上没有循环存在的有向图。所有边都包含在定向的路径上,指向并终结于一个或者多个根节点。
DAG根节点DAGRoot
DAG内没有外出边的节点。因为图是非循环的,所以按照定义所有的DAG至少应有一个DAG根,且所有路径终止于一个根节点。
面向目的地的有向无循环图DestinationOrientedDAG(DODAG)以唯一目的地为根的DAG,没有外出边。3.1.4
DODAG的根节点DODAGRoot
在DODAG内部充当一个边界路由器,完成DODAG内部聚合路由,并重新分配DODAG路由到其他路由协议内。
虚拟DODAG的根节点VirtualDODAGRoot个虚拟的DODAG根是两个或两个以上的RPL路由器的集合,如6LoWPAN边界路由器(6LBRs)。它协调同步DODAG状态,确保集合内的RPL路由器采取一致行动。3.1.6
向上Up
从叶节点沿着DODAG的边向根的方向。3.1.7
向下Down
从DODAG根反向沿着DODAG的边叶节点的方向。3.1.8
序列Rank
一个节点的序列定义了该节点相对于其他节点距离一个DODAG根节点的位置。序列在向下方向上严格增加,在向上的方向上严格减少。序列的具体计算方法是由DAG的目标函数来决定的。序列可以近似地记录一个简单的拓扑距离,依据链路度量计算出来,或考虑其他属性作为约束。3.1.9
ObjectiveFunction(OF)
目标函数
YD/T2710-2014
定义了路由度量、最佳目的以及相关函数如何被用来计算出Rank值。此外,OF指出了在DODAG内如何选择父节点从而形成DODAG
目标编码点ObjectiveCodePoint(OCP)表明DODAG使用哪一个目标函数的标识符。3.1.11
RPL实例标识RPLinstancelD
一个网络的唯一标识。具有相同RPL实例标识的DODAG共享相同的OF。3.1.12
RPL实例RPLInstance
共享同一个RPL实例标识的一个或者多个DODAG的一个集合。一个RPL节点在一个RPL实例中只能最多属于一个DODAG。每个RPL实例都独立其他RPL实例运行。3.1.13
DODAG根的标识符DODAGID
DODAGID在低功耗有损网络一个RPL实例中具有唯一性。数组[RPLInstanceIDDODAGID]唯一确定了一个DODAG。
DODAG版本DODAGVersion
给定DODAGID的DODAG的版本。
DODAG版本号DODAGVersionNumber一个连续的计数器,由根递增形成一个新的DODAG版本。DODAG版本由唯一数组[RPLInstanceIDDODAGIDDODAGVersionNumberj确定。3.1.16
目标Goal
RPL范围之外定义的特定应用目标。DODAG的任何节点都要了解该目标,以便确定能否满足该目标。一个典型的目标是根据特定目标函数构建DODAG图,确保它与一组主机之间的连通性。3.1.17
固定的Grounded
当一个DODAG根能够满足目标时该DODAG是固定的。3.1.18
浮动的Floating
当DODAG不是固定的,那么它是浮动的。一个浮动的DODAG被预期没有能力满足目标,但可以为DODAG内其他节点提供连通性。
DODAG父节点DODAGParent
YD/T2710-2014
DODAG内的一个节点的父节点,是该节点通向DODAG根路径上的直接后继。父节点的序列比该节点的序列低。
DODAG子集Sub-DODAG
一个节点的DODAG子集是另外一些节点的集合,这些节点通向DODAG根都应经过该节点。3.1.21
本地DODAGLocalDODAG
本地DODAG包含唯一一个根节点,并允许该根节点分配和管理一个RPL实例。本地DODAG是由一个本地RPL实例标识,不需要其他节点的调整。3.1.22
全局DODAGGlobalDODAG
全局DODAG使用一个全局的RPL实例标识,可能被其他几个节点调整。3.2缩略语
下列缩略语适用于本文件。
6LoWPAN适用于低功耗有损无线个域网的IPv6协议IPv6overLow-PowerWirelessPersonalAreaNetworks
DODAGID
4RPL协议概述
4.1拓扑
Consistency Check
Destination Advertisement ObjectDirected Acyclic Graph
DODAG Information Object
DODAG Information SolicitationDestination Oriented DAG
DODAG Identity
Internet Assigned Numbers AuthorityNon Broadcast Multi Access
Objective CodePoint
Objective Function
IPv6RoutingProtocolforLow-PowerandLossy Networks
描述RPL基本拓扑以及拓扑形成的基本规则。4.1.1构造拓扑
一致性检验
目的地通告对象
有向无循环图
DODAG信息对象
DODAG信息请求
面向目的地的有向无循环图
DODAG标识
互联网号码分配中心
非广播多路访问
目标编码点
目标函数
适用于低功耗有损网络的路由协议低功耗有损网络中,如无线电网络,没有一个预先定义的网络拓扑,RPL应当先发现链路,然后以节约模式选择对等体。
在大多数情况下,2层拓扑只是部分重叠,RPL形成一个非可传递的/非广播多路访问(NBMA)网络拓扑,并基于该拓扑计算路由。4
YD/T2710-2014
RPL对发往或来自一个或多个作为拓扑汇聚节点的根节点流量进行路由优化。RPL构造一个DAG拓扑,该拓扑被分割成一个或多个DODAG拓扑。每个汇聚节点对应一个DODAG。如果DAG有多个根,彼此之间通过一个公共的骨干链路相连接。4.1.2RPL标识符
RPL使用4个值来标识和维护拓扑。a)RPL实例标识
标识一组或多组DODAG。一个网络可能有多个RPLIntanceID,每个都定义一个相互独立的DODAG,基于不同的目标函数或应用进行优化。RPL实例是由RPLIntanceID标识的一组DODAG。在同一个RPL实例中的所有DODAG使用相同的目标函数。b)DODAG标识
DODAGID的作用域是一个RPL实例。RPL实例标识和DODAGID结合能够唯一标识网络中的一个DODAG。一个RPL实例可能有多个DODAG,每个都有唯一的DODAGID。c)DODAG版本号
DODAG版本号的作用域是一个DODAG。一个DODAG会通过增加其版本号从根节点开始重建DODAG。RPL实例标识、DODAGID和DODAG版本号组合在一起唯一标识个DODAG版本。d)序列bzxz.net
序列的作用域是一个DODAG版本。序列在DODAG版本中建立了一种序列关系,定义了单个节点相对于DODAG根的位置。
4.1.3实例,DODAGs和DODAG版本RPL实例包含一个或多个DODAG根。一个RPL实例可以提供到某个目的地前缀的路由,通过DODAG根或者是DODAG内的替换路由可达。这些根节点可以独立运行,也可以通过一个网络协同工作。RPL实例构成:
a)单个DODAG,单个根:
例如,家居自动化应用中,DODAG优化以减少单个集中灯光控制器的时延。b)多个不协同的DODAG,相互独立的根(不同的DODAGID):例如,在城市数据采集应用中,多个数据采集点之间没有适当的连接来彼此协同,或者是使用多个DODAG格式作为一种方式来动态自主的划分网络。c)单个DODAG,使用虚拟的根通过一个骨干网络来协同低功耗有损网络汇聚节点,这些汇聚节点具有相同的DODAGID。
例如,在一条可靠的转发链路上运行的多个边界路由器,支持6LoWPAN应用,能够作为相同DODAG汇聚节点的等价逻辑接口。
d)以上相结合,适用于一些应用场景每个RPL分组都与一个特定的RPL实例标识和RPL实例相关联。图1描述了RPL的一个实例,包括3个DODAG以及R1、R2、R3三个根。每个DODAG根通告相同的RPLInstanceID。连线描述父节点与子节点之间的连接。5
YD/T2710-2014
图1RPL实例
(F)(G)
图2描述了DODAG版本如何增加形成一个新的DODAG版本。以及一个新的DODAG拓扑。需要指出的是,新的DODAG版本并不意味着形成新的DODAG拓扑,但是新的DODAG拓扑要求一个新的DODAG版本。
需要注意的是,下面这个类似树形的结构描述是出于简化,尽管DODAG结构允许每个节点有多个父节点。
VersionN
4.2上行路由和DODAG结构
图2RPL版本
Version N+1
RPL预置路由向上指向DODAG的根,根据一个目标函数(OF)形成一个优化的DODAG。RPL节点通过DODAG信息对象(DIO)消息构造和维护这些DODAG。4.2.1目标函数(objectiveFunction)目标函数定义了RPL节点在一个RPL实例内如何选择和优化路由。目标函数通过DIO配置选项中的目标码点属性定义。一个目标函数定义节点如何将一个或多个路径值和约束转换成一个序列,该值近似于节点到DODAG根节点的距离,见IETFRFC6551。目标函数也定义了节点如何选择父节点,具体规定见IETFRFC6551和IETFRFC6552。
4.2.2DODAG修复
YD/T2710-2014
DODAG根通过增加DODAG的版本号发起全局的修复操作。这将启动一个新的DODAG版本,该版本中的节点可以选择一个新的位置,其序列不会受到老DODAG版本序列值的影响。RPL也支持在DODAG版本内的本地修复机制。DIO消息指定必要的参数依据DODAG根节点的配置和策略进行控制。
4.2.3安全
RPL支持消息的机密性和完整性。RPL使用三种基本的安全模式。a)不安全,RPL控制消息在没有任何附加安全机制的情况下发送。不安全模式并不意味着RPL网络是不安全的,它可以使用其它现有的安全机制(如链路层安全)来满足应用安全需求。b)预置安装,节点加入RPL实例时有预安装的密钥,使得节点能够处理和产生安全RPL的消息。c)已认证,在已认证模式下,节点具有预安装的密钥,但是预安装的密钥只能作为叶节点加入RPL实例。作为一个路由器加入一个已认证的RPL实例,要求从一个已认证实体获得一个密钥。4.2.4固定和浮动的DODAG
DODAG可能是固定的或者是浮动的。固定的DODAG提供到主机的连通性,要求满足预定义的应用目标。浮动的DODAG不要求满足目标,大多数情况下只提供到DODAG内的路由。例如,浮动DODAG可以用于在修复过程中保留内部连接。4.2.5本地DODAG
RPL节点通过形成一个本地的DODAG,能够优化到低功耗有损网络内目的节点的路由。本地DODAG的根是期望到达的目的地。本地DAG有且仅有一个DODAG,因此也只有一个DODAG根。本地DODAG能够按需构造。
4.2.6管理优先级
一个实现/部署通过管理优先级可以指定一些DODAG根节点优先于其他根节点被使用。管理优先级提供一种控制流量和DODAG工程信息的方式,以便更好的支持应用需求。4.2.7数据路径验证和环路检测
低功耗有损网络的低功耗、有损耗特性促使RPL使用数据分组进行按需环路检测。由于数据流量交互可能不频繁,所以维护路由拓扑与物理拓扑相一致会浪费能量。典型的低功耗有损网络呈现那些短暂的、不影响流量转发的物理连接变化,但是从控制平面来看成本是较高的。短暂的、不频繁的连接变化不需要RPL实时跟踪,直到有数据发送。RPL分组信息通过数据分组传送,包含发送者的序列。一个分组(上行或下行)路由决策与两个节点之间的序列关系不一致表明一个潜在的环路。当接收到这样一个分组,节点触发一个本地修复操作。例如,如果节点沿着上行方向收到一个带标签的分组,且分组记录发送者的序列比接收者的序列低那么接收节点能够推断出分组不在上行方向,DODAG不一致。4.2.8分布式算法运行
构造DODAG图的分布式算法概述如下:a)一些节点配置成DODAG的根:b)发送本地链路组播DIO消息到所有RPL节点,用来通告节点的存在、所归属DODAG、路由代价、以及相关度量值:
YD/T2710-2014
c)节点侦听DIO消息,使用其信息加入一个新的DODAG(因此选择DODAG父节点),或者根据指定的目标函数和其邻居的序列来维护已有的DODAG:d)节点通过DODAG版本中的父节点预置路由表项给DIO消息中指定的目的地。决定加入一个DODAG的节点可以预配置一个或多个DODAG父节点作为缺省路由的下一跳以及相关实例外部路由的下一跳。
4.3下行路由和目的地通告
RPL使用自的通告对象(DAO)消息建立下行路由。DAO消息是点到多点或点到点通信应用的一个可选特征。RPL支持两种下行流量模式:存储(完全状态)模式或非存储(完全源路由)模式。任一给定的RPL实例要么是存储模式,要么是非存储模式。在两种模式下,点到点的分组经由上行路由到DODAG根,下行路由到最终的目的地(除非目的地在上行路由上)。在非存储模式下,分组向下转发之前会沿各个方向到DODAG根。在存储模式下,分组在到达DODAG根之前,可以通过一个源和目的地的一般祖先节点直接向目的地转发
4.4本地DODAG路由发现
在一个RPL网络中,到一个特定的目的地可选支持按需的DODAG发现。本地的DODAG行为与全局的DODAG行为存在细微差别:本地DODAG是通过DODAGID和RPL实例标识相结合来唯一定义的。RPL实例标识指示一个DODAG是否是一个本地的DODAG。4.5Rank属性
节点的序列是一个节点在DODAG版本内位置的层级表示。序列通常用于避免和检测环路,并表明特定的属性。序列的准确计算依据目标函数,并且应实现通用的属性。特别是,节点的序列必须依照到DODAG目的地的DODAG版本单向递减。在这种情况下,序列能够被作为一个DODAG版本内节点位置的层级表示。目标函数如何计算节点的序列超出了本标准。序列不是一个路径的代价值,尽管它的值受到路径权值的影响,并能够根据该值推算出。序列有下述一些自身的的属性:
a)类型:是一个摘要数值。
b)功能:序列是一个节点在一个DODAG版本中相对于邻居的相对位置表示,并不是一个到根节点距离或者是路径代价的必要或适当表示。c)稳定性:序列的稳定性决定了路由拓扑的稳定性。d)属性:序列严格按照递增的模式增加,用于验证来自或者是去向根节点的进程。e)摘要:序列没有一个物理单元,而是每一跳增加的一个范围,每次增加值的分配都是由目标函数来确定。
根据RPL环路避免策略,序列值为DODAG父节点的选则提供依据。一旦增加一个父节点,同时节点在DODAG内的序列值被通告,与DODAG父节点选择相关的更多选项和节点在DODAG内的移动被限制,以避免造成环路。
4.5.1序列比较(DAGRank())序列的值是定点数,整数部分和小数部分之间小数点的位置由MinHopRankIncrease值决定。MinHopRankIncrease是节点和它的任一DODAG父节点之间序列的最小增加值。DODAG根节点规定8
小提示:此标准内容仅展示完整标准里的部分截取内容,若需要完整标准请到上方自行免费下载完整标准文档。