综合服务IntServ,资源预留协议RSVP以及区分服务DiffServ

2023-12-29 08:44

本文主要是介绍综合服务IntServ,资源预留协议RSVP以及区分服务DiffServ,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

1.IntServ

2.IntServ/RSVP

3.区分服务(DiffServ)

1.区分服务的基本概念

2.PHB(每跳行为)


1.IntServ

IntServ可对单个的应用会话提供服务质量的保证,其主要特点:

(1)资源预留。一个路由器需要知道给不断出现的会话已经预留了多少资源(即链路带宽和缓存空间)。
(2)呼叫建立。一个需要服务质量保证的会话,必须首先在源点到终点路径上的每一个路由器预留足够的资源,以保证其端到端的服务质量的要求。因此,在一个会话开始之前必须先有一个呼叫建立(又称为呼叫接纳)过程,它需要在其分组传输路径上的每一个路由器都参加。每一个路由器都要确定该会话所需的本地资源是否够用,同时还不要影响到已经律立的会话的服务质量。

IntServ定义了两类服务:
(1)有保证的服务(guaranteed service),可保证一个分组在通过路由器时的排队时延有一个严格的上限。
(2)受控负载的服务(controlled-load service),可以使应用程序得到比通常的“尽最大努力”更加可靠的服务。
IntServ共有以下四个组成部分:
(1)资源预留协议RSVP,它是IntServ 的信令协议。
(2)接纳控制(admissioncontrol),用来决定是否同意对某一资源的请求。
(3)分类器(classifier),用来把进入路由器的分组进行分类,并根据分类的结果把不同类别的分组放入特定的队列。
(4)调度器(scheduler),根据服务质量要求决定分组发送的前后顺序。

会话必须首先声明它所需的服务质量,以便使路由器能够确定是否有足够的资源来满足该会话的需求。资源预留协议RSVP在进行资源预留时采用了多播树的方式。发送端发送PATH 报文(即存储路径状态报文),给所有的接收端指明通信量的特性。每个中间的路由器都要转发PATH报文,而接收端用RESV报文(即资源预留请求报文)进行响应。路径上的每个路由器对RESV报文的请求都可以拒绝或接受。当请求被某个路由器拒绝时,路由器就发送一个差错报文给接收端,从而终止了这一信令过程。当请求被接受时,链路带宽和缓存空间就被分配给这个分组流,而相关的流(flow)状态信息就保留在路由器中。“流”是在多媒体通信中的一个常用的名词,一般定义为“具有同样的源IP 地址、源端口号、目的IP地址、目的端口号、协议标识符及服务质量需求的一连串分组”。

如图用一个简单例子说明RSVP协议的要点。设主机H1要向互联网上的四台主机H2~H5发送多播视频节目,在图中这四台主机右边标注的数据率就是这些主机打算以这样的数据率来接收 H1发送的视频节目。这个视频节目可使用不同的数据率来接收。用较低数据率接收时,图像和声音的质量也就较差了。

主机H1先以多播方式从源点H1向下游方向发送 PATH报文,如图a所示。当PATH报文传送到多播路径终点的四台主机(即叶节点)时,每一台主机就向多播路径的上游发送RESV报文,指明在接收该多播节目时所需的服务质量等级。路由器若无法预留RESV报文所请求的资源,就返回差错报文。若能预留,则把下游传来的 RESV报文合并构成新的RESV报文,传送给自己的上游路由器,最后传送到源点主机H1。这些情况如图b所示。因此,RSVP协议是面向终点的。

需要注意的是,路由器合并下游的 RESV 报文并不是把下游提出的预留数据率简单地相加而是取其中较大的数值。例如,路由器R4收到两个预留3Mbit/s的RESV报文,但R4向R2发送的RESV报文只要求预留3Mbit/s而不是6Mbit/s(因为向下游方向发送数据是采用可以节省带宽的多播技术)。同理,R3向R2发送的RESV报文要求预留100 kbit/s而不是150kbit/s。最后,R1向源点 H1 发送的 RESV 报文要求预留 3 Mbit/s。当H1收到返回的RESV报文后,就开始发送视频数据报文了。

2.IntServ/RSVP

IntServ/RSVP使得互联网的体系结构发生了根本的变化,因为 IntServ/RSVP 使得互联网不再是提供“尽最大努力交付”的服务。在有关服务质量的协议中,RSVP 是最复杂的。IntServ/RSVP所基于的概念是端系统中与分组流有关的状态信息。各路由器中的预留信息只存储有限的时间(这称为软状态 soft-state),因而各终点对这些预留信息必须定期进行更新。我们还应注意到,RSVP 协议不是运输层协议而是网络层的控制协议。RSVP 不携带应用数据。图中给出了在路由器中实现的IntServ 体系结构。

IntServ 体系结构分为前台和后台两个部分。前台部分画在下面,包括两个功能块,即分类器与分组转发,分组的调度器。每一个进入路由器的分组都要通过这两个功能块。后台部分画在上面(有灰色阴影的部分),包括四个功能块和两个数据库。这四个功能块是:

•路由选择协议,负责维持路由选择数据库。由此可查找出对应于每一个目的地址和每一个流的下一跳地址。

•RSVP协议,为每一个流预留必要的资源,并不断地更新通信量控制数据库。

•接纳控制,当一个新的流产生时,RSVP 就调用接纳控制功能块,以便确定是否有足够的资源可供这个流使用。

•管理代理,用来修改通信量控制数据库和管理接纳控制功能块,包括设置接纳控制策略。

综合服务IntServ体系结构存在的主要问题是:
(1)状态信息的数量与流的数目成正比。例如,对于OC-48 链路 (2.5 Gbit/s)上的主干网路由器,通过64kbit/s 的音频流的数目就超过39000个。如果对数据率再进行压缩,则流的数目就更多。因此在大型网络中,按每个流进行资源预留会产生很大的开销。
(2)IntServ 体系结构复杂。若要得到有保证的服务,所有的路由器都必须装有 RSVP、接纳控制、分类器和调度器。这种路由器称为RSVP 路由器。在应用数据传送的路径中只要有一个路由器不是 RSVP 路由器,整个的服务就又变为“尽最大努力交付”了。
(3)综合服务IntServ 所定义的服务质量等级数量太少,不够灵活。

3.区分服务(DiffServ)

1.区分服务的基本概念

由于综合服务 IntServ 和资源预留协议 RSVP 都较复杂,很难在大规模的网络中实现,因此IETF 提出了一种新的策略,即区分服务 DiffServ (Differentiated Services)[RFC 2475],区分服务有时也简写为 DS。因此,具有区分服务功能的节点就称为 DS 节点。

区分服务 DiffServ的要点如下:

(1)DiffServ 力图不改变网络的基础结构,但在路由器中增加区分服务的功能。因此,DiffServ 将IP 协议中原有8位的IP4的服务类型段和IPV6 的通信量类字段重新定义为区分服务 DS。

路由器根据 DS 字段的值来处理分组的转发。因此,利用DS 字段的不同数值就可提供不同等级的服务质量。根据互联网的建议标准[RFC 2474],DS字段现在只使用其中的前6位,即区分服务码点DSCP(Differentiated Services CodePoint),再后面的两位目前不使用,记为CU(Currently Unused)。因此由DS字段的值所确定的服务质量实际上就是由DS字段中 DSCP的值来确定的。

在使用DS字段之前,互联网的ISP 要和用户商定一个服务等级协定SLA(Service Level Agreement)。在 SLA 中指明了被支持的服务类别(可包括吞吐量、分组丢失率、时延和时延抖动、网络的可用性等) 和每一类别所容许的通信量。

(2) 网络被划分为许多个 DS 域(DS Domain)。一个 DS 域在一个管理实体的控制下实现同样的区分服务策略。DiffServ 将所有的复杂性放在 DS域的边界节点(boundary node)中,而使 DS 域内部路由器工作得尽可能简单。边界节点可以是主机、路由器或防火墙等。为了简单起见,下面只讨论边界节点是边界路由器的情况(原理都是一样的)。图中给了DS 域、边界路由器(boundary router)和内部路由器(interior router)的示意图。图中标有 B的路由器都是边界路由器。

(3)边界路由器中的功能较多,可分为分类器(classifier)和通信量调节器(conditioner)两大部分。调节器又由标记器(marker)、整形器(shaper)和测定器(meter)三个部分组成。分类器根据分组首部中的一些字段(如源地址、目的地址、源端口、目的端口或分组的标识等)对分组进行分类,然后将分组交给标记器。标记器根据分组的类别设置 DS 字段的值。以后在分组的转发过程中,就根据 DS 字段的值使分组得到相应的服务。测定器根据事先商定的SLA 不断地测定分组流的速率(与事前商定的数值相比较),然后确定应采取的行动,例如可重新打标记或交给整形器进行处理。整形器中设有缓存队列,可以将突发的分组峰值速率平滑为较均匀的速率,或丢弃一些分组。在分组进入内部路由器后,路由器就根据分组的DS值进行转发。图中给出了边界路由器中各功能块的关系。

(4)DiffServ 提供了一种聚合(aggregation)功能。DiffServ 不是为网络中的每一个流维持供转发时使用的状态信息,而是把若干个流根据其 DS 值聚合成少量的流。路由器对相同DS值的流都按相同的优先级进行转发。这就大大简化了网络内部的路由器的转发机制。区分服务DiffServ不需要使用RSVP信令。

2.PHB(每跳行为)

DiffServ定义了在转发分组时体现服务水平的每跳行为PHB(Per-Hop Behavior)。所谓“行为”就是指在转发分组时路由器对分组是怎样处理的。“行为”的例子可以是:“首先转发这个分组”或“最后丢弃这个分组”。“每跳”是强调这里所说的行为只涉及本路由器转发的这一跳的行为,而下一个路由器再怎样处理则与本路由器的处理无关。这和IntServ/RSVP考虑的服务质量是“端到端”的很不一样。
IETF 的 DiffServ 工作组已经定义了两种 PHB,即迅速转发 PHB 和确保转发 PHB

迅速转发 PHB (Expedited Forwarding PHB)可记为 EF PHB,或 EF [RFC 3246,建议标准]。EF 指明离开一个路由器的通信量的数据率必须等于或大于某一数值。因此 EF PHB用来构造通过 DS 域的一个低丢失率、低时延、低时延抖动、确保带宽的端到端服务(即不排队或很少排队)。这种服务对端点来说像点对点连接或“虚拟租用线”,又称为 Premium(优质)服务。对应于EF的区分服务码点DSCP的值是101110。
确保转发PHB(Assured Forwarding PHB)可记为AF PHB或AF[RFC297,建议标准],AF用DSCP的第0~2位把通信量划分为四个等级 (分别为001,010,011和100),并给每一种等级提供最低数量的带宽和缓存空间。对于其中的每一个等级再用 DSCP的第 3~5位划分出三个“丢弃优先级”(分别为 010,100 和 110,从最低丢弃优先级到最高丢弃优先级),当发生网络拥塞时,对于每一个等级的 AF,路由器就首先把“丢弃优先级”较高的分组丢弃。
从以上所述可看出,区分服务 DifServ 比较灵活,因为它并没有定义特定的服务或服务类别。当新的服务类别出现而旧的服务类别不再使用时,DiffServ 仍然可以工作。

这篇关于综合服务IntServ,资源预留协议RSVP以及区分服务DiffServ的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/548973

相关文章

Linux上设置Ollama服务配置(常用环境变量)

《Linux上设置Ollama服务配置(常用环境变量)》本文主要介绍了Linux上设置Ollama服务配置(常用环境变量),Ollama提供了多种环境变量供配置,如调试模式、模型目录等,下面就来介绍一... 目录在 linux 上设置环境变量配置 OllamPOgxSRJfa手动安装安装特定版本查看日志在

SpringCloud之LoadBalancer负载均衡服务调用过程

《SpringCloud之LoadBalancer负载均衡服务调用过程》:本文主要介绍SpringCloud之LoadBalancer负载均衡服务调用过程,具有很好的参考价值,希望对大家有所帮助,... 目录前言一、LoadBalancer是什么?二、使用步骤1、启动consul2、客户端加入依赖3、以服务

Nginx配置系统服务&设置环境变量方式

《Nginx配置系统服务&设置环境变量方式》本文介绍了如何将Nginx配置为系统服务并设置环境变量,以便更方便地对Nginx进行操作,通过配置系统服务,可以使用系统命令来启动、停止或重新加载Nginx... 目录1.Nginx操作问题2.配置系统服android务3.设置环境变量总结1.Nginx操作问题

Rust中的Drop特性之解读自动化资源清理的魔法

《Rust中的Drop特性之解读自动化资源清理的魔法》Rust通过Drop特性实现了自动清理机制,确保资源在对象超出作用域时自动释放,避免了手动管理资源时可能出现的内存泄漏或双重释放问题,智能指针如B... 目录自动清理机制:Rust 的析构函数提前释放资源:std::mem::drop android的妙

springboot的调度服务与异步服务使用详解

《springboot的调度服务与异步服务使用详解》本文主要介绍了Java的ScheduledExecutorService接口和SpringBoot中如何使用调度线程池,包括核心参数、创建方式、自定... 目录1.调度服务1.1.JDK之ScheduledExecutorService1.2.spring

Qt 中集成mqtt协议的使用方法

《Qt中集成mqtt协议的使用方法》文章介绍了如何在工程中引入qmqtt库,并通过声明一个单例类来暴露订阅到的主题数据,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 目录一,引入qmqtt 库二,使用一,引入qmqtt 库我是将整个头文件/源文件都添加到了工程中进行编译,这样 跨平台

Android 悬浮窗开发示例((动态权限请求 | 前台服务和通知 | 悬浮窗创建 )

《Android悬浮窗开发示例((动态权限请求|前台服务和通知|悬浮窗创建)》本文介绍了Android悬浮窗的实现效果,包括动态权限请求、前台服务和通知的使用,悬浮窗权限需要动态申请并引导... 目录一、悬浮窗 动态权限请求1、动态请求权限2、悬浮窗权限说明3、检查动态权限4、申请动态权限5、权限设置完毕后

TP-Link PDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务

《TP-LinkPDDNS服将于务6月30日正式停运:用户需转向第三方DDNS服务》近期,路由器制造巨头普联(TP-Link)在用户群体中引发了一系列重要变动,上个月,公司发出了一则通知,明确要求所... 路由器厂商普联(TP-Link)上个月发布公告要求所有用户必须完成实名认证后才能继续使用普联提供的 D

微服务架构之使用RabbitMQ进行异步处理方式

《微服务架构之使用RabbitMQ进行异步处理方式》本文介绍了RabbitMQ的基本概念、异步调用处理逻辑、RabbitMQ的基本使用方法以及在SpringBoot项目中使用RabbitMQ解决高并发... 目录一.什么是RabbitMQ?二.异步调用处理逻辑:三.RabbitMQ的基本使用1.安装2.架构

解读静态资源访问static-locations和static-path-pattern

《解读静态资源访问static-locations和static-path-pattern》本文主要介绍了SpringBoot中静态资源的配置和访问方式,包括静态资源的默认前缀、默认地址、目录结构、访... 目录静态资源访问static-locations和static-path-pattern静态资源配置