資源預留協定
互聯網協定套組 |
---|
應用層 |
傳輸層 |
網絡層 |
連結層 |
資源預留協定(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)可以由前向節點更改。(例如:在多播流資源預留時,預留請求就可以被合併)
路徑上的每個節點都可以接收或者拒絕請求。