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比特位置位的數據報文交替發送 。

推薦閱讀