GRE的Key和Sequence Number扩展

【GRE的Key和Sequence Number扩展】本备忘录的现状
本文档的现状
本文当描述了一种供Internet协会采用的Internet标准跟踪协议 , 尚需对之进行讨论并提出建议以待改进 。本协议的标准化进程请参考最新版的“Internet正式协议标准”(STD1) 。本文档可以无限制的分发 。
CopyrightNotice
Copyright(C)TheInternetSociety(2000).AllRightsReserved.
摘要
GRE(通用路由封装)定义了在任意一种网络层协议上封装另一个协议的规范 。本文档描述了GRE头部(参考文献[1])可能携带的两个扩展域即Key和SequenceNumber 。
1.简介
当前的通用路由封装规范(参考文献[1])定义了在任意一种网络层协议上封装另一个协议的规范 。本文档描述了GRE头部(参考文献[1])可能携带的两个扩展域即Key和SequenceNumber 。其中Key域主要用来标识隧道内单个的业务流 , SequenceNumber域用来维持GRE隧道内数据报文的顺序 。
1.1.规范用语
要害词“必须”,“不答应” , “必要的” , “应” , “不应” , “应该” , “不应该” , “建议” , “可能”,“可选” , 按RFC2119(参考文献[3])的定义进行解释 。
另外 , 下面的词语用来表示规范的要求:
静静的丢弃
实现不对数据报文作更多处理而只是简单的丢弃报文 , 同时不向发送方表明出错 。实现应该提供记录错误的功能 , 包括被丢弃数据报文的内容 , 同时应该在一个统计计数器中记录该事件 。
2.GRE头部的扩展
GRE数据报文的头部(参考文献[1])拥有下面的格式:
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CReserved0VerProtocolType
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Checksum(optional)Reserved1(Optional)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
推荐使用的GRE头部将拥有下面的格式:
01234567890123456789012345678901
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CKSReserved0VerProtocolType
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Checksum(optional)Reserved1(Optional)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Key(optional)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
SequenceNumber(Optional)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeyPresent(bit2)
假如KeyPresent比特位置为1,那么表明GRE头部中出现Key域 。否则 , GRE头部中不出现Key域 。
SequenceNumberPresent(bit3)
假如SequenceNumberPresent比特位置为1 , 那么表明出现SequenceNumber域 。否则 , GRE头部中不出现SequenceNumber域 。
Key和SequencePresent比特根据与RFC1701(参考文献[2])兼容来选取 。
2.1.Key域(4octets)
Key域是由封装者插入的四个字节的数 。实际获得Key的方法超出了本文档的范畴 。Key域主要用来标识隧道内部单个的业务流 。例如,数据报文可能需要根据某些上下文信息来选择路由 , 而这些上下文信息不出现在所封装的数据中 。Key域提供了这样的上下文 , 并定义了在封装者和拆封者之间的逻辑业务流 。属于同一个业务流的数据报使用同一个Key值来封装 , 隧道的拆封点根据Key域的值识别属于某个业务流的数据报文 。
2.2.SequenceNumber(4octets)
SequenceNumber域是当SequenceNumberPresent比特位置为1时由封装方插入的一个四个字节的数值 。接收者必须根据SequenceNumber来建立从封装者到拆封者之间传送的数据报文的顺序 。使用Sequence域主要是提供不可靠但顺序的传输 。假如Keypresent比特位(bit2)置为1,sequencenumber特定于由Key标识的业务流 。注重sequence比特位没有置位的数据报文可以和sequence比特位置位的数据报文交替发送 。

推荐阅读