⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rfc3032.txt

📁 本程序为在linux下实现FTP传输文件的实现
💻 TXT
📖 第 1 页 / 共 2 页
字号:
组织:中国互动出版网(http://www.china-pub.com/)
RFC文档中文翻译计划(http://www.china-pub.com/compters/emook/aboutemook.htm)
E-mail:ouyang@china-pub.com
译者:万怡敏(scottwan   greatgod@163.net)
版权:本中文翻译文档版权归中国互动出版网所有。可以用于非商业用途自由转载,但必须
保留本文档的翻译及版权信息。



Network Working Group                                           E. Rosen
Request for Comments: 3032                                     D. Tappan
Category: Standards Track                                    G. Fedorkow
                                                     Cisco Systems, Inc.
                                                              Y. Rekhter
                                                        Juniper Networks
                                                            D. Farinacci
                                                                   T. Li
                                                  Procket Networks, Inc.
                                                                A. Conta
                                                  TranSwitch Corporation
                                                            January 2001




RFC3032   MPLS标记栈编码
(RFC3032   MPLS Label Stack Encoding)


本备忘录状态
   This document specifies an Internet standards track protocol for the
   Internet community, and requests discussion and suggestions for
   improvements.  Please refer to the current edition of the "Internet
   Official Protocol Standards" (STD 1) for the standardization state
   and status of this protocol.  Distribution of this memo is unlimited.

版权声明
   Copyright (C) The Internet Society (2001).  All Rights Reserved.

摘要
MPLS需要一组用于为网络层数据包加上“标记栈”,从而将其转化为“标记包”。
支持MPLS的路由器称为“标记交换路由器”,或“LSR”。为了在一条特定链路上传
送一个标记包,LSR必须支持一种可以为给定的一个标记栈和一个网络包产生一个标
记包的编码技术。本文档详细说明了一个LSR为了在点到点(PPP)数据链路上、在
局域网数据链路上、以及其它可能的数据链路上传送数据包,所使用的编码技术。在某
些数据链路上,标记栈顶部的标记可能被以不同的方式编码,但是这里所阐述的技术必
然会被用于编码标记栈剩余的部分。本文档也详细说明了用于处理标记栈编码的不同区
域的法则和进程。

目录

1 介绍
  1.1  要求的详细说明

2  标记栈
2.1	对标记栈编码
2.2	确定网络层协议
2.3	为标记包产生ICMP消息
2.3.1	 隧道封装地通过一个过渡段路由域
2.3.2	 隧道封装私有地址通过一条公共主干
2.4	处理存活周期域
2.4.1	 定义
    2.4.2 独立于协议的规则
    2.4.3  依赖于IP的规则
2.4.4 在不同的封装方法间互译
     
3 分片和路径MTU发现
3.1	术语
3.2	最大原始的被标记的IP数据容量
3.3	什么时候被标记的IP数据太大了?
3.4	对太大的被标记的Ipv4数据的处理
3.5	对太大的被标记的Ipv6数据的处理
3.6	关于“路径MTU发现”的含义

4	在PPP链路上传输标记包
4.1	介绍
4.2	用于MPLS的一个PPP网络控制协议
4.3	发送标记包
4.4	标记交换控制协议配置选项
5	在局域网介质上传输标记包
6	IANA的考虑
7	安全方面的考虑
8	知识的所有权
9	作者的地址
10	参考资料
11	版权说明
1. 介绍
  MPLS需要一组用于为网络层数据包加上“标记栈”,从而将其转化为“标记包”。支持
MPLS的路由器称为“标记交换路由器”,或“LSR”。为了在一条特定链路上传送一个标记
包,LSR必须支持一种可以为给定的一个标记栈和一个网络包产生一个标记包的编码技术。
本文档详细说明了一个LSR为了在PPP数据链路上、和在局域网数据链路上传送数据
包,所使用的编码技术。这里特定的编码技术同时对其他数据链路也有用。
本文档也详细说明了用于处理标记栈编码的不同区域的法则和进程。因为MPLS
是独立于任何网络层协议的,所以大多数这些进程也是独立于网络层协议的。但是,少
数则根据协议的不同而不同。在本文档中,我们详细说明了这些独立于协议的进程,并
且我们还详细说明了依赖于IPv4和IPv6协议的进程。
在某些交换设备(如ATM交换机)上被实现的LSR可以在对标记栈顶部的一个或
两个条目编码时使用不同的编码技术。但是,在此标记栈有另外的条目时,本文档所阐
述的编码技术必然可以用于另外的标记栈条目。

1.	要求的详细说明
    本文档中的这些关键词"MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL"的意义通过RFC 2119  
[2]的阐述来解释。

2.	标记栈
2.1	对标记栈编码
标记栈表现为一个“标记栈条目”序列。每个标记栈条目用4个字节来表示。见
图1所示。
  
 0                   1                   2                   3
 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Label
|                Label                  | Exp |S|       TTL     | Stack
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Entry

                    Label:  标记值,20位 
                    Exp:    实验用,3位
                    S:      标记栈底部标志,1位
                    TTL:    存活时间,8位

图1

  标记栈条目出现在数据链路层头的后面,但在任何网络层头的前面。标记栈的顶部 
最先在数据包中出现,而底部最后出现。网络层数据包紧跟着S位置1的标记栈条目。
  每个标记栈条目被分为下面几个区域:
1.	标记栈的底部(S)
某个标记栈条目的S位被置1,则表示它是标记栈的最后一个条目(如标记栈的底
部),而在标记栈的其他条目中S位都为0。
2.	存活时间(TTL)
这个8位域被用于对一个存活时间值编码。此域的处理将在2.4节中阐述。
3.	实验用
这个3位域被保留作实验用。
4.	标记值
这个20位域搭载实际的标记值。当LSR收到一个标记包时,将查看标记栈顶部的
标记值。在查看成功后获得的结果是:
a)	这个数据包将被转发到的下一跳。
b)	在转发此数据包之前对标记栈顶部的操作:可以是用另一条标记代替标记栈顶
部的标记;或是将标记栈顶部的标记弹出;或是压入一条或多条另外的条目到
此标记栈中以取代当前这条条目。
    
    除了获知下一跳和对标记栈的操作以外,LSR也可以获知出口链路的封装,以及
其 
它可能需要的用于正确转发数据包的信息。

  几个保留的标记值:
i.	0表示“IPv4显式空标记”。此标记值仅在标记栈的底部条目中合法。它表明此
标记栈必须被弹出,而必须基于这个数据包的IPv4头来转发数据包。
ii.	1表示“路由器报警标记”。此标记值除了在标记栈的底部条目中非法外,其它
位置都合法。  
iii.	2表示“IPv6显式空标记”。此标记值仅在标记栈的底部条目中合法。它表明此
标记栈必须被弹出,而必须基于这个数据包的IPv6头来转发数据包。
iv.	3表示“模糊空标记”。这是一条LSR可分配和设置的但从不出现在封装头中的
标记。在一LSR用一条新标记来取代栈顶标记的时候,如果新标记是“模糊空”,
这个LSR将弹出标记栈而不进行取代。虽然这个值从不在封装头中出现,但它
需要由标记分配协议来指定,所以这个值被保留。
2.2 确定网络层协议
当最后一条标记被从标记栈中弹出时(结果是此标记栈为空),对这个数据包的进
步的处理就基于数据包的网络层头。所以LSR将标记栈中最后一条标记弹出时随后必 
须能识别出此数据包的网络层协议。然而,标记栈并没有任何一个显式地标识网络层协      
议的域。这意味着对网络层协议的标识可能连同网络层头自身的内容一起,必须可以从
被从栈底弹出的标记值中推断出来。
  于是,在将第一条标记压入一个网络层数据包的时候,要么这条标记一定仅被用于
一个特定网络层的数据包中;要么这条标记一定仅被用在一组特定网络层协议中,而此
特定网络层的数据包可以通过检查网络层头来辩识。进一步的说,在一个包的传送中无
论什么时候用一个新的标记值取代旧的标记值,新的标记值也必须遵守同一标准。如果
不是这样,当LSR将最后一条标记弹出时,将不能标识此数据包的网络层协议。
  遵守这种规则,就不要求中间节点必须能识别一个数据包的网络层协议。在普通情
况下,这不是必要条件,但在出错情况下就是必要条件。例如,如果一个中间LSR确
定一条标记不可发送,则希望此LSR产生此数据包网络层特定的错误信息。这仅意味
着,中间LSR通过检查标记栈顶标记和网络层头来识别网络层。于是如果中间节点能
为标记包产生协议特定的错误信息,标记栈中所有的标记必须满足以上为出现在栈底的
标记而指定的标准。
  如果一个数据包因为某种原因不能被转发(如它超出了数据链路MTU),并且要么
它的网络层协议不能被识别,要么没有特定的协议隶属的规则来处理此错误情况,那么
此数据包会被无声的丢弃。
2.3 为标记IP数据包产生ICMP消息
    第2.4节和第3节讨论了希望为标记IP包产生ICMP消息的情景。为了让一个特
定   
的LSR能产生一个ICMP数据包,并且将此包传送到IP包的源地址,必须支持下列两
个条件:
1.	此LSR必须能确定一个特定标记包是一个IP数据包。
2.	此LSR必须能路由到此数据包的IP源地址。
    条件1已经在2.2节中讨论了。下面的小节讨论条件2。但是,可能有一些条件2
完全不支持的情况,那么在这些情况下LSR不能产生ICMP消息。

    2.3.1  隧道封装地通过一个过渡路由域
       考虑到使用MPLS技术“隧道封装”地通过一个过渡路由域时,在此外部路由不
会渗漏进该域的内部路由器。例如,内部路由器可能正运行OSPF,并且仅可能知道
如何到达此OSPF域内的目的地。此域可以有一些用BGP相互交谈的ASBR(AS边
界路由器)。但是,在此例中来自BGP的路由不会被分配给OSPF,并且不是ASBR
的LSR不运行BGP。
  在此例中,仅一个ASBR知道如何路由到一些任意数据包的源地址。如果一个内
部LSR需要发送一个ICMP消息到一IP数据包的源地址,它将不知道如何路由此ICMP
消息。
  解决方案之一是让一或多个ASBR注入到IGP的“缺省路由”中。这将保证任何
要离开此域的无标记数据包(如一个ICMP消息)被发送到一个有完整路由信息的路
由器。这个有完整路由信息的路由器给这个包加上标记后使它通过过渡路由域发送回
源地址,从而在此过渡路由域中采用缺省路由不会导致环回。

  2.3.2 隧道封装私有地址通过一条公共主干
    在MPLS技术被用于“隧道封装”穿过一个路由域的情况下,完全不可能路由到
一个分片包的源地址。例如下面情况,在一个IP数据包中搭载的IP地址是私有地
址(不是全球唯一的),并且使用MPLS技术来“隧道封装”那些穿过一条公共主干
的数据包。在此环境中到一个ASBR的缺省路由不能工作。
  在这种环境下,为了发送一个ICMP消息到一个数据包的源地址,LSR可以从原
始数据包中拷贝标记栈给ICMP消息,然后用标记交换此ICMP消息。这将导致该消
息被沿着到原始数据包的目的地址的方向,而不是源地址的方向进行标记交换。除非
此消息一直被标记交换到目的主机,否则它将因为无标记而终止在一个知道如何路由
到原始数据包源地址的路由器处,在这个节点处,该消息被以正确方向重新发送。
  当ICMP消息是“Time Exceeded”消息或“Destination Unreachable because  
fragmentation needed and DF set”消息时这项技术就很有用。
  当从原始数据包中将标记栈拷贝到ICMP消息时,标记值必须被精确拷贝。但在标
记栈中的TTL值将被ICMP消息的IP头中的TTL值取代。这个TTL值必须足够大使得此ICMP
消息能被往返路由。
  注意如果一个数据包的TTL过期是因为要表示一个路由环回,那么如果使用这项技
术,此ICMP消息也可能环回。因为一条ICMP消息从不作为收到一条ICMP消息的结果来发
送,并且因为一些工具调节产生ICMP消息的速度,所以这不会造成任何问题。
2.4  处理存活周期域
  2.4.1 定义
    一个标记数据包的“输入TTL”的定义是:当一个数据包被收到时,顶部标记栈
条目的TTL域的值。
  一个标记数据包的“输出TTL”被定义为下面值的较大的一个:
a)	输入TTL减1
b)	0

2.4.2	独立于协议的规则
    如果一个标记数据包的TTL值是0,那么此数据包必然不能被进一步转发;或者
数据包的标记栈被剥离然后作为一个非标记包被转发。在此网络中这个数据包的“生命”
被认为是结束了。
  根据标记栈条目中标记值,这个数据包可能被简单的丢弃,或者被传到恰当的“原 
始”网络层来错误处理。(例如产生一个ICMP消息,参见第2.3节)

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -