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

📄 rfc3032.txt

📁 本程序为在linux下实现FTP传输文件的实现
💻 TXT
📖 第 1 页 / 共 2 页
字号:
  当一个标记包被转发时,标记栈顶部条目的TTL域值必须被设置为输出TTL值。
  注意输出TTL值是输入TTL值单一函数,与数据包被转发前是否有标记被压入或
弹出无关。而不在标记栈顶部的任意条目的TTL值都没有意义。

2.4.3	依赖于IP的规则
    无论使用那一个IP协议,我们定义“IP TTL”域的值为IPv4 TTL域的值,或是IPv6
站点限制域的值。
  在第一次为一个IP数据包加标记时,此标记栈条目的TTL域的值必须被设置为该 
数据包的TTL域值。(如果作为IP进程的一部分,此数据包的TTL域值需要被减一,
此处假设已经作了)。
  当一条标记被弹出后,且剩余的标记栈为空,那么按照上面的定义,此数据包的
TTL
域值必须被输出TTL域值所取代。在IPv4环境中这还需要IP头校验的变换。
  公认的情况是:网络管理员宁愿在标记包穿越一个MPLS域时将IPv4 TTL域值减
一,	而不是用IPv4 TTL域值来减去此域的LSP跳的数目。
  
2.4.4	在不同的封装方法间互译
    有时一个LSR可能在一个标记交换控制的ATM接口(LC-ATM)中收到一个标记
包,且可能基于一个PPP或LAN链路将它发送出去。那么这个输入数据包将不使用本
文档中指定的封装方法来接收,但是输出数据包将用本文档中指定的封装方法来发送。
  在此环境中,由在LC-ATM接口中使用的搭载标记包的进程来确定此“输入TTL”
域值。TTL进程然后按上面所述来进行。
      有时一个LSR可能在一个PPP或LAN链路上收到一个标记包,且可能基于
LC-ATM 
接口将它发送出去。那么这个输入数据包将使用本文档中指定的封装方法来接收,但是
输出数据包将不用本文档中指定的封装方法来发送。在此环境中,由在LC-ATM接口
中      
使用的搭载标记包的进程来确定此“输出TTL”域值。

3. 分片和路径MTU发现
    LSR有可能收到一个非标记数据包,因为太大而不能被在它的输出链路上传输;
有可能收到一个标记数据包,因为太大而不能被在它的输出链路上传输。
  也有可能收到的一个数据包(标记或无标记)最初足够小可以被在链路上传输,但
在压入一个或多个额外的标记到它的的标记栈后,就因为太大不能被在链路上传输。在
标记交换中,一个数据包可能因为被压入额外的标记而增加它的规模。即如果LSR收
到一个带有1500字节帧载荷的标记包,并且另外压入一条标记,那么就必须转发这个
带有1504字节帧载荷的标记包。
  本节详细说明了处理“太大”标记包的规则。特别的是,它提供了让实现Path MTU 
Discovery的主机,和使用IPv6的主机,能产生不需要被分片的IP数据包,即使它们
数据包穿越网络时可能被加上标记。
  通常,IPv4主机不能对发送小于576字节的IP数据包执行Path MTU Discovery。
因为目前在大多数数据链路上使用的MTU大于或等于1500字节,所以即使这些数据
包被加上标记,需要被分片来发送的机会也很小。
  当数据包的IP源地址和目的地址在同一个子网时,有些不能实现Path MTU 
Discovery主机会产生1500字节的IP数据包。但这些数据包不会通过路由器,于是
也不会被分片。
  不幸的是,当数据包的IP源地址和目的地址是同一类网络数时,有些主机会产生
1500字节的IP数据包。这里就存在这些数据包被加上标记后需要被分片的危险性。
  本文档详细说明了允许配置网络,使得来自不能实现Path MTU Discovery的主机
的大数据包仅在它第一次被加上标记时被分片的方法。这些方法避免了对任何那些已
经被加上标记的数据包再分片。
3.1 术语
  根据一条特定的数据链路,我们使用以下的术语:
- 帧载荷:
  除了所有数据链路层头部或尾部外,一个数据链路帧的容量。 
  当一个帧正搭载一个无标记IP数据包时,此帧载荷仅是IP数据包自身。当一个
帧正搭载一个标记包时,此帧载荷包含此IP数据包和标记栈条目。

- 通用的最大帧载荷容量:
  接口硬件能正确发送和接收的最大帧载荷容量附属于此数据链路。
    在以太网和802.3网络中,相信实际最大帧载荷容量比通用的最大帧载荷容量大4
到8个字节。例如:至少只要此数据包以太层头部没有一个802.1Q或802.1p域,相
信大多数以太设备能正确发送和接收一个搭载1504甚至1508字节载荷的数据包。
    在PPP链路上,真正的最大帧载荷容量实际上可以不受限制。

- 对于标记包有实际意义的最大帧载荷容量:
  取决于此数据链路的设备的容量和被使用的数据链路头的容量,要么是通用的最
大帧载荷容量,或者是实际的最大帧载荷容量。  

- 初始的标记IP数据:
  假设一个特定的LSR收到一个无标记数据包,并且这个LSR在转发此数据包之
前为它加上一个标记。那么称这样一个数据为那个LSR的初始的标记IP数据。

- 早先的标记IP数据:
  一个IP数据,在一个特定的LSR收到它之前已经被加上标记。

3.2	最大初始的标记IP数据容量
每个LSR都有以下的能力:
a)	接收一个无标记IP数据;
b)	为这个数据加上一个标记栈;
c)	转发所得到的标记包。
    应该支持一个名为“最大初始的标记IP数据容量”的配置参数,此参数被设置为
一个非负值。
  
  如果此配置参数被设为0,则无意义。
  
  如果此配置参数被设为负值,则有以下的应用。
  如果:
a)	收到一个无标记IP数据;
b)	此数据的IP头中DF位未被设置为1;
c)	此数据在被转发前需要加上标记;
d)	此数据的大小(被加标记前)超出了该参数的值。
    那么
a)	此数据必须被分片,每片大小不能大于该参数的值;
b)	每片必须被加上标记再转发。
    
    例如,如果此参数被设置为1488,那么任何包含大于1488字节的无标记数据包
将再被加上标记前先被分片。每个分片即使再有三个之多的标记被压入它的标记栈中,
也不用被再进一步分片,就可以被搭载在一个1500字节的数据链路上。
  换句话说,将此参数设置为一个非0值使得LSR不用对早先的标记IP数据分片,
但也可能导致对某些初始的标记IP数据的不必要的分片。
  要注意的是:此参数的设置不能影响对DF位为1的IP数据的处理;因此Path MTU
Discovery的结果不受此参数设置的影响。
3.3 什么时候标记IP数据是太大?  
    当一个标记IP数据被在一条数据链路上转发时,它的容量超出了此数据链路的通
用的最大帧载荷容量,那么这个数据就被认为“太大”。
    当一个标记IP数据被在一条数据链路上转发时,它的容量超出了此数据链路的实
际的最大帧载荷容量,那么这个数据就被认为“太大”。
  一个不是“太大”的标记IP数据必须不被分片而转发。
3.4 对太大的标记IPv4数据的处理
    如果一个标记IPv4数据是“太大”,并且它的IP头的DF位不是1,则LSR可能
声地丢弃此数据。
  要注意地是:仅当网络中的LSR有能力给一个无标记的IP数据加上一个标记栈,
并且LSR的“最大初始的标记IP数据容量”被设置为非0值的时候,丢弃这些数据
才是一个可以被察觉的过程。
  如果此LSR选择了不丢弃一个太大的标记IPv4数据,或者此数据的DF位被设置
为1,那么LSR必须执行下面的算法:
1.	 取下标记栈条目,得到IP数据。
2.	 给N赋值为标记栈的字节数(即标记栈条目数的4倍)。
3.	 如果此IP数据的IP头DF位不是1:
      a. 分片这个数据,每片大小至少比现行的最大帧载荷容量小N个字节。   
      b. 预先为每个分片加上一样的标记头可以使得初始数据不须分片。
      c. 转发这些分片。  
4. 如果此IP数据的IP头DF位是1:
a.	这个数据必然不能被转发。
b.	产生一个ICMP目的地不可到达消息:
i.	将它的Code域设为“需要分片和DF为1”,
ii.	将它的下一跳MTU域值设为现行的最大帧载荷容量和N的差值。
c.	如果可能的话,将这个ICMP目的地不可到达消息传送到此被丢弃数据的
        源地址。
3.5 对太大的标记IPv6数据的处理
  为了处理一个太大的标记IPv6数据,那么LSR必须执行下面的算法:
1.	取下标记栈条目,得到IP数据。
2.	给N赋值为标记栈的字节数(即标记栈条目数的4倍)。
3.	如果此IP数据大于1280字节(不算标记栈条目),或者它没有一个分片头,
那么:
a.	产生一个ICMP数据包太大消息,将它的下一跳MTU域值设为现行的最
大帧载荷容量和N的差值。
b.	如果可能的话,将这个ICMP数据包太大消息传送到此被数据的源地址。
c.	丢弃这个标记IPv6数据。
4.	如果此IP数据不大于1280字节,并且它有一个分片头,那么:
a.	分片这个数据,每片大小至少比现行的最大帧载荷容量小N个字节。
b.	预先为每个分片加上一样的标记头可以使得初始数据不须分片。
c.	转发这些分片。   
对这些分片的重新组合将在目的地主机上进行。
3.6 关于Path MTU Discovery的含义
    上述关于处理DF位为1,但“太大”的数据的过程对于RFC1191的Path MTU    
Discovery过程有一点影响。实施此过程的主机将会发现一个足够小的MTU使得不用
分片就可以将n个标记压入这个数据,在此n是沿着当前使用的路线实际上被压入的
标记数目。
    换句话说,来自实施Path MTU Discovery过程的主机的数据将从不会因为被压入
一个标记头,或者被为一个现存的标记头增加一条新标记,而需要被分片。(来自实施
Path MTU Discovery过程的主机的数据的DF位通常为1)。
    需要注意的是:如果Path MTU Discovery仅在一个标记IP数据需要被分片的节点
正常工作的话,这将可能导致一个ICMP目的地不可到达消息被路由到这个数据包的
源地址。参见2.3节。
  如果不能从一条MPLS“隧道”中转发一个ICMP消息到一个数据包的源地址,但
网络配置使得在隧道传输端点的LSR可能会收到必须要穿过此隧道的数据包,而此数
据包太大以至于不能不被分片就通过此隧道,那么:
  - 在隧道传输端点的LSR必须能确定整个隧道的MTU。这可以通过在将数据包
穿过隧道发送到隧道的接收端点的同时,对那些数据包实施Path MTU Discovery的方
法来实现。
  - 任何时候隧道传输端点需要发送一个数据包到隧道中,而此数据包的DF位为
1,	并且它超过了此隧道的MTU,则隧道传输端点必须发送一条按上述“需要分片DF
位设置”编码,及下一跳MTU域值设置的ICMP目的地不可到达消息给此数据包的源
地址。
4. 在PPP链路上传输标记包
    PPP协议为在点到点链路上传输多协议数据提供了一个标准方法。PPP定义了一个
扩展的链路控制协议,并且提出了一组网络控制协议用于建立和配置不同的网络层协
议。
  本节详细说明了用于在PPP上建立和配置标记交换的网络控制协议。
4.1 简介
    PPP有三个主要构件:
1.	一种封装多协议数据的方法。
2.	一种建立、配置、和测试数据链路连接的链路控制协议(LCP)。
3.	一组建立和配置不同网络层协议的网络控制协议。
    为了在一条点到点链路上建立通信,此PPP链路每一端必须首先发送LCP数据包
以配置和测试这条数据链路。当这条链路已经被建立,并且按LCP的要求协商了任选
的设备后,PPP必须发送“MPLS控制数据包”使得可以传送标记包。一旦这个“MPLS
控制数据包”已到达开放状态,则可以在这条链路上发送标记包了。
  除非显式LCP或MPLS控制协议数据包关闭这条链路,或者某些外部事件发生(一
个不活动的计时器过期或网络管理员介入),这条链路将保持通信的配置。
4.2 一个MPLS的网络控制协议
    MPLS网络控制协议(MPLSCP)负责一条PPP链路上是否允许使用标记交换。它
使用于LCP一样的数据包交换机制。MPLSCP数据包直到PPP已到达网络层协议阶段
才被交换。在此阶段到来之前收到的MPLSCP数据包被无声地丢弃。
  MPLSCP与LCP除了下面的不同外其它都完全一样:
  1. 帧的变型 
    在链路建立阶段这个数据包将使用已协商的基本帧格式的变型。
  2. 数据链路层协议域
    准确地说MPLSCP数据包是被在PPP信息域中封装,PPP域表示H0281类型
   (MPLS)。
  3. 代码域
    仅使用代码1到7(配置请求,配置确认,配置_Nak,配置拒绝,中断请求,
    中断确认和代码拒绝)。其它代码将不被识别并导致代码拒绝。
  4. 暂停
    MPLSCP数据包直到PPP已到达网络层协议阶段才被交换。在暂停等待一个
    配置确认或其它响应之前,将准备执行等待完成鉴证和确定链路质量。在此建
    议在用户介入或一个配置的时间数后放弃执行。

    5. 配置选项类型
      无。
4.3 发送标记包
    在任意标记包可以被交换之前,PPP必须到达网络层协议阶段,并且MPLSCP必
须到达开放状态。
  准确地说一个标记包数据包是被在PPP信息域中封装,PPP域表示H0281类型
MPLS)或H0283类型(MPLS组播)。在一条PPP链路上传输的一个标记包的最大长
度与一个PPP封装数据包的信息域的最大长度相同。
  第2节定义了信息域自身的格式。
  要注意的是为标记包定义了两个码点;一个用于单播一个用于组播。一旦MPLSCP
已到达开放状态,标记交换组播和标记交换单播都可以在PPP链路上被发送。
4.4 标记交换控制协议配置选项
    没有配置选项。
5. 在局域网介质上传输标记包
    每类帧都可以搭载标记包。
    标记栈条目跟在任一数据链路层头(包括可能的802.1Q头)之后,紧跟它的是网
络层头。  
  以太类值H8847被用于表示一个正搭载一个MPLS单播数据包的帧。
  以太类值H8848被用于表示一个正搭载一个MPLS组播数据包的帧。
  这些以太类值可以用在通过以太封装或802.3 LLC/SNAP封装来搭载标记包的时
候。关于选择那一种封装的方法超出了本文档的范围。
6. IANA的考虑
    按照本文档的说明,或由IANA的进一步分配,标记值0-15有特别的意义。
    在本文档第2.1节说明了标记值0-3。
    IANA将根据IETF的意见分配标记值4-15。
RFC3032   MPLS Label Stack Encoding                       RFC3032   MPLS标记栈编码


1
RFC文档中文翻译计划

⌨️ 快捷键说明

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