资源预留协议(Resource Reservation Protocol,简称RSVP)是一个通过网络进行资源预留的协议,是为实现综合业务网而设计的,其具体定义于RFC 2205。RSVP要求接收者在连接创建之初进行资源预留,它必须支持单播和多播数据流,并具有很好的可伸缩性和强壮性。主机或者路由器可以使用RSVP满足不同应用程序数据流所需的不同的服务质量(QoS)。RSVP定义应用程序如何进行资源预留并在预留的资源不用时如何进行预留资源的删除。RSVP将会使得路径上每个节点都进行资源预留。
RSVP本身不是一个路由协议,而是被设计用于互联现在的和将来的路由协议。
RSVP为一个流预留资源。一个流是被目的地址、协议号和目的端口号(可选)确定的。在多协议标签交换中,一个流是被定义为一个标签交换路径(LSP)。对于每个流,虽然RSVP不能理解流服务质量的具体信息,但是RSVP也确认其特别要求的服务质量。flowspec是一个固有的RSVP对象,它定义了业务流所希望的服务质量。RSVP通过路径从应用程序到主机和路由器传输flowspec。然后由系统分析flowspec,从而接受和预留资源。
一个flowspec是由如下组成的:
过滤器说明(filterspec)定义了一组被flowspec影响的分组。(比如:接受了flowspec确定的服务质量的数据分组)。一个filterspec挑选节点中处理的所有的分组中的一部分。挑选是根据分组的属性进行的。(比如发送者的IP地址和端口)
现在定义的RSVP预留类型有:
一个RSVP请求是由一个流量说明(flowspec)、一个过滤器说明(filterspec)和一对流描述字(flowdescriptor)组成的。节点上每个说明的功能就是当流量说明(flowspec)设置每个节点分组任务调度的参数时,过滤器说明(filterspec)设置每个分组分类的参数。
有两种主要的消息:
路径消息被沿着数据路径从发送方主机发送,并记录路径上每个节点的的路径状态。
路径状态包括先前节点的IP地址和一些数据对象:
预留消息(resv)是由接收方沿着反向路径发送到发送方。在每个节点上,预留消息的IP目的地址将会改成反向路径上下一节点的地址,同时IP源地址将会改成反向路径上前一节点的地址。预留消息包括流量说明(flowspec)数据对象,这个数据对象上用于确定流需要的资源。
RSVP消息的数据对象可以被按任何顺序进行传输。RSVP消息和其数据对象的所有列表可以在RFC 2205中看到.
一个需要按特定服务质量发送数据流的RSVP主机将会传输一个RSVP路径消息,这个路径消息将会沿单播(UniCast)或组播(multicast)路由通过路由协议预先创建的路径传输。如果路径消息到达一个不理解RSVP的路由器,将会将这个消息转发并不对其内容进行分析而且不会为这个流进行资源预留。
当目的路由器接收到路径消息,它将会:
路径上的每个节点都可以接收或者拒绝请求。