資源預留協定
資源預留協定(Resource Reservation Protocol,簡稱RSVP)是一個通過網路進行資源預留的協定,是為實現綜合業務網而設計的,其具體定義於RFC 2205。RSVP要求接收者在連接建立之初進行資源預留,它必須支援單播和多播資料流,並具有很好的可伸縮性和強壯性。主機或者路由器可以使用RSVP滿足不同應用程式資料流所需的不同的服務品質(QoS)。RSVP定義應用程式如何進行資源預留並在預留的資源不用時如何進行預留資源的刪除。RSVP將會使得路徑上每個節點都進行資源預留。
RSVP本身不是一個路由協定,而是被設計用於互聯現在的和將來的路由協定。
主要特徵
編輯- RSVP為每個流請求資源:這是只有一個傳送者但可以有一個或多個接收者的流。
- RSVP不是一個路由協定,而是用於互聯現在的和將來的路由協定。
- RSVP是由資料流的接收者發起並維護資源預留。
- RSVP維護主機和路由器的軟體狀態(每個節點上的資源預留都需要周期性的更新),因此支援源自適應網路變化。
- RSVP提供多種預留類型(一組預留選項)並允許將來加入其他類型,進行協定改進,以支援不同的應用程式。
- RSVP傳輸並維持通訊和策略控制參數,這些對於RSVP都是不透明的。
流量說明(flowspec)
編輯RSVP為一個流預留資源。一個流是被目的位址、協定號和目的埠號(可選)確定的。在多協定標籤交換中,一個流是被定義為一個標籤交換路徑(LSP)。對於每個流,雖然RSVP不能理解流服務品質的具體資訊,但是RSVP也確認其特別要求的服務品質。flowspec是一個原生的RSVP對象,它定義了業務流所希望的服務品質。RSVP通過路徑從應用程式到主機和路由器傳輸flowspec。然後由系統分析flowspec,從而接受和預留資源。
一個flowspec是由如下組成的:
- 服務類
- 預留說明——定義服務品質
- 傳輸說明——描述資料流
過濾器說明(filterspec)
編輯過濾器說明(filterspec)定義了一組被flowspec影響的分組。(比如:接受了flowspec確定的服務品質的資料分組)。一個filterspec挑選節點中處理的所有的分組中的一部分。挑選是根據分組的屬性進行的。(比如傳送者的IP位址和埠)
現在定義的RSVP預留類型有:
- 固定過濾器(Fixed Filter)類型:對特定的流預留資源
- 直接共享(Shared explicit) :對不同的流預留資源,並共享資源
- 通配過濾器(Wildcard Filter)類型:對於沒有特別定義的常規類型的流預留資源,所有的流共享資源
一個RSVP請求是由一個流量說明(flowspec)、一個過濾器說明(filterspec)和一對流描述字(flowdescriptor)組成的。節點上每個說明的功能就是當流量說明(flowspec)設定每個節點分組任務排程的參數時,過濾器說明(filterspec)設定每個分組分類的參數。
訊息
編輯有兩種主要的訊息:
路徑訊息
編輯路徑訊息被沿著資料路徑從傳送方主機傳送,並記錄路徑上每個節點的的路徑狀態。
路徑狀態包括先前節點的IP位址和一些資料對象:
- sender template(傳送方模板)是用於描述傳送方資料格式
- sender tspec(資料流的話務描述特徵)是用於描述資料流傳輸特徵
- adspec攜帶廣告資料
預留訊息
編輯預留訊息(resv)是由接收方沿著反向路徑傳送到傳送方。在每個節點上,預留訊息的IP目的位址將會改成反向路徑上下一節點的位址,同時IP源位址將會改成反向路徑上前一節點的位址。預留訊息包括流量說明(flowspec)資料對象,這個資料對象上用於確定流需要的資源。
RSVP訊息的資料對象可以被按任何順序進行傳輸。RSVP訊息和其資料對象的所有列表可以在RFC 2205中看到.
操作過程
編輯一個需要按特定服務品質傳送資料流的RSVP主機將會傳輸一個RSVP路徑訊息,這個路徑訊息將會沿單播(UniCast)或組播(multicast)路由通過路由協定預先建立的路徑傳輸。如果路徑訊息到達一個不理解RSVP的路由器,將會將這個訊息轉發並不對其內容進行分析而且不會為這個流進行資源預留。
當目的路由器接收到路徑訊息,它將會:
- 按照請求的參數進行資源預留。對此,許可控制和策略控制處理請求參數並通知分組分類以便正確處理選定的資料分組,或者和上層協商如何進行分組處理。
- 向上游轉發請求(朝著傳送方方向)。在每個節點上,預留訊息的流量說明(flowspec)可以由前向節點更改。(例如:在多播流資源預留時,預留請求就可以被合併)
路徑上的每個節點都可以接收或者拒絕請求。