| Previous |
Next |
||||
|
|
|||||
|
|||||
| RSVP Messages | |||||
| Next figure illustrates RSVP's model of a router node. | |||||
|
|
|||||
| There are two fundamental RSVP message types: Resv and Path. | |||||
| Each receiver sends RSVP reservation request (Resv) messages upstream towards the senders. These messages follow exactly the reverse path the data packets will use. Going upstream they create and maintain "reservation state" in each node along the path(s). When Resv messages finally reach the senders, each sender host transmits RSVP Path messages downstream along the uni-/multicast routes provided by the routing protocol(s), following the paths of the data. These Path messages store "path state" in each node along the way. | |||||
| The path state includes the unicast IP address of the previous hop node used to route the Resv message hop-by-hop in the reverse direction, and the following additional information: | |||||
|
|||||
| Path messages are sent with the same source and destination address as the data, so that they are routing correctly through non-RSVP clouds. Resv messages are sent hop-by-hop; each RSVP-node forwards a Resv message to the unicast address of a previous RSVP hop. | |||||
| Merging Flowspecs | |||||
| A Resv message forwarded to a previous hop carries a flowspec that is the "largest" of the flowspecs requested by the next hops to which the data flow will be sent. The flowspecs have been merged. Another case is when there are multiple reservation requests from different next hops for the same session and having the same filter spec; then RSVP should install only one reservation on that interface. Again, the installed reservation will have an effective flowspec being the largest of the flowspec requested. Since flowspecs are opaque to RSVP, the rules for comparing them must be defined and implemented outside RSVP proper. | |||||
| Flowspecs contain Tspec and Rspec components, each of which may be multi-dimensional. Then, it may not be possible to strictly order two flowspecs. For example, if one request calls for a higher bandwidth and another calls for a tighter delay bound, there is no exist a larger one. In this case, the merging routing must be able to return a third flowspec that is at least as large as each. This is known as the "least upper bound" (LUB). When a flowspec at least as small is needed, this is known as the "greatest lower bound" (GLB). | |||||
| The steps to calculate the effective flowspec (Re,Te), where Re is the effective Rspec and Te is the effective Tspec, are: | |||||
|
|||||
| Soft State | |||||
| RSVP takes a "soft state" approach where soft state are created in routers and hosts which are periodically refreshed by Path and Resv messages. Any state is deleted if no matching refresh messages are received before the expiration of a "cleanup timeout" interval. States may also be explicitly deleted by a "teardown" message. | |||||
| Path and Resv messages are idempotent. When a route changes, the next Path message will initializae the path state on the new route, and future Resv messages will establish reservation states there. States on previous now unused segments will timeout. | |||||
| RSVP messages are IP datagrams with no reliability enhacement. Refresh messages are expected to handle any occasional loss of messages. If the cleanup timeout is set to K times the refresh timeout period, then up to K-1 succesive packet losses can be tolerated. Anyway, some minimal bandwidth should be guaranteed to RSVP messages to protect them against congestion losses. | |||||
| States are dynamics. To update them, a host simply starts sending revised Path and/or Resv messages. The result will be an appropriate adjustment on state in all nodes along the path; unused state will timeout if not previously torn down. | |||||
| In steady state, states are refreshed hop-by-hop to allow merging. When a new received state differs from the stored state, the old one is updated. If this update results in modification of state to be forwarded in refresh messages, these messages are generated and forwarded inmediately, so that changes propagate end-to-end asap. | |||||
| State changes propagation stop when a point is reached where merging causes no resulting state change. This minimize control traffic due to changes and improve scaling. | |||||
| One state received on a particular interface I* should never be forwarded out the same interface. Also, state that is forwarded out interface I* must be computed using only state that arrive on interfaces different from I*. And finally, state from Resv messages received from outgoing interface Io should be forwarded to incoming interface Ii only if Path messages from Ii are forwarded to Io. | |||||
| Teardown | |||||
| Teardown messages remove path or reservation state inmediately. Although it is not necessary at all, it is recommended that all end hosts send a teardown request as soon as an application finished. | |||||
| There are two types of teardown messages, PathTear and ResvTear. A PathTear message travels downstream from sender toward all receivers deleting path state and dependent reservation state. A ResvTear message travels upstream from receiver towards all senders deleting reservation state. | |||||
| A teardown request may be initiated either by an application in an end system (sender or receiver), or by a router as the result of state timeout or service preemption. Once initiated, it must be forwarded hop-by-hop without delay. | |||||
| Like all other messages, teardown requests are not delivered reliable. Any loss will not cause a failure because the unused state will eventually time out even though it is not explicitly deleted, if a router fails to receive a teardown message beyond the loss point. | |||||
| For path state, the granularity for teardown is a single sender. For reservation state, the granularity is an individual filter spec. | |||||
| Errors | |||||
| There are two error messages, ResvErr and PathErr. PathErr are sent upstream to the sender that created the error; they do not change path state in the nodes through which they pass. | |||||
| ResvErr are more complex. Since a request that fails may be the result of merging a number of requests, a reservation error must be reported to all of the responsible receivers. Merging heterogeneous requests creates a difficult known as the "killer-reservation" problem, in which one request could deny service to another. There are two killer-reservation problems. | |||||
|
|||||
| A reservation request that fails Admission Control creates blockade state but is left in place in nodes downstream of the failure point for the following reasons: | |||||
|
|||||
| Confirmation | |||||
| To request a confirmation a receiver Rj includes in the Resv message a confirmation-request object containing Rj's IP address. At each merge point, only the largest flowspec and its confirmation-request object is forwarded upstream. If the Rj's reservation-request is equal to or smaller than the reservation in place on a node, its Resv is not forwarded further but if a confirmation-request object is present, a ResvConf message is sent back to Rj. | |||||
| This confirmation mechanism has the following consequences: | |||||
|
|||||
| Policy Control | |||||
|
|
|||||
| Previous |
Next |
||||