QoS简介
服务质量QoS(Quality of Service)用于评估服务方满足客户服务需求的能力。通过配置QoS,对企业的网络流量进行调控,避免并管理网络拥塞,减少报文的丢失率,同时也可以为企业用户提供专用带宽或者为不同的业务(语音、视频、数据等)提供差分服务。
影响网络质量的因素:
- 网络带宽:网络带宽是指在单位时间(一般指的是1秒钟)内能传输的数据量。
- 网络时延:时延是指一个报文从一个网络的一端传送到另一端所需要的时间。
- 抖动:由于每个报文的端到端时延不一样,就会导致这些报文不能等间隔到达目的端,这种现象叫做抖动。一般来说,时延越小则时延抖动的范围越小。
- 丢包:丢包率是指在网络传输过程中丢失报文占传输报文的百分比。丢包可用于衡量网络的可靠性。
QoS的功能
- 分组分类器和标记器:
网络边界上的路由器根据TCP/IP分组报头中的一个或多个字段,使用分类器功能来标记识别属于特定通信类的分组,然后用标记器功能标记已被分类的通信,这是通过设置IP优先字段或区分服务代码点(DSCP)字段来实现的。 - 通信速率管理
服务提供商使用控制(policing)功能度量进入网络的客户通信,并将其与客户的通信配置文件(profile)进行比较。同时,接入服务提供商网络的企业可能需要使用通信整形功能 来度量其所有的通信,并以恒定的速率将它们发送出去,以符合服务提供商的控制功能。令牌桶一种常用的通信度量方案。 - 资源分配
先进先出 (FIFO) 调度是一种被当前的 Internet 路由器和交换机所广泛采用的传统排队机制。虽然先进先出调度部署起来很简单,但是在提供 QoS 时有一些基本的问题。它没有提供优先级处理对延迟敏感的通信并将其移至队开头的手段,对所有的通信都完全同等地对待,不存在通信区分或服务区分的概念。
对于提供QoS的调度算法,至少要能区分队列中的不同分组,并知道每个分组的服务等级。调度算法决定接下来处理队列中的哪一个分组,而流分组获得服务的频度决定了为这个流分配的带宽或资源。 - 拥塞避免和分组丢弃策略
在传统的先进先出排队技术中,队列管理是这样实现的:当队列中的分组数量达到队列的最大长度后,将到达的分组全部丢弃。这种队列管理技术叫做尾部丢弃(tail drop), 它只在队列完全填满时发出拥塞信号。在这种情况下,没有使用积极的队列管理来避免拥塞,也没有减小队列尺寸来使排队延迟最小。积极的队列算法管理使得路由器在队列溢出前就可以检测到拥塞。 - QoS信令协议
SVP 是在 Internet 上提供端到端 QoS 的 IETF Intserv 体系结构的一部分,它使得应用程序可以向网络提出每个流的服务质贯要求。服务参数用来量化这些要求,供管理控制使用。 - 交换
路由器的主要功能是根据转发表中的信息快速、高效地将所有输入通信交换到正确的输 出端口和下一中继段地址。传统的基于缓存的转发机制虽然高效,但是由于 它是由通信驱动 的,所以存在扩展性和性能方面的问题,并且在网络不稳定时会增加缓存维护工作,并降低 交换性能。
基于拓扑的转发方法通过建立一个与路由器路由表完全相同的转发表,解决了基于缓存的转发机制中存在的问题。 - 路由
传统的路由仅仅基于目的地,并且在最短路径上是根据路由表来路由分组的。对于某些网络情况,这显得不够灵活。策略路由是一种 QoS 功能,它使得用户可以不根据目的地进行路由,而是根据各种用户自己可以配置的分组参数进行路由。
当前的路由选择协议提供了最短路径路由,它基于量度值(如管理成本、权重或中继段数)来选择路由。分组是根据路由表被传输的,而对流的要求或路由上可用的资源一无所知。 QoS 路由则是一种考虑了流的 QoS 要求的路由选择机制,它在选择路由时,对网络上可用的资源有一定的了解。
QoS服务模型
- 尽力而为的服务模型(Best-Effort):
- Best-Effort是一个单一的服务模型,也是最简单的服务模型。应用程序可以在任何时候,发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络。
- 应用Best-Effort服务模型的网络尽最大的可能性来发送报文,但对时延、可靠性等性能不提供任何保证,但它适用于绝大多数网络应用,如FTP、E-Mail等。
- Best-Effort服务是现在Internet的缺省服务模型,它是通过先入先出(FIFO)队列来实现的。
在尽力而为的服务模型下,可通过增大网络带宽和升级网络设备来提高端到端通信质量: - 增大网络带宽:可以增大单位时间内传输的数据量,使其按照传统先进先出的方式在单位时间内传输更多的数据,改善网络拥塞问题。
- 升级网络设备:可以增大数据处理能力,使其按照传统先进先出的方式在单位时间内能够处理更多的数据,改善网络拥塞问题。
- 综合服务模型(Integrated Services):
RSVP协议工作过程:在应用程序发送报文前,需要向网络申请特定的带宽和所需的特定服务质量的请求,等收到确认信息后才发送报文。
综合服务模型(IntegratedServicesModel):
- IntServ是一种最为复杂的服务模型,它需要用到RSVP(ResourceReservation Protocol)协议。该服务模型在发送报文前,需要向网络申请特定的服务。这个请求是通过信令(signal)来完成的,应用程序首先通知网络它自己的流量参数和所需的特定服务质量的请求,包括带宽、时延等。应用程序一般在收到网络的确认信息后,即认为网络已经为这个应用程序的报文发送预留了资源,然后立即发送报文。
- IntServ模型要求端到端网络的所有节点都支持RSVP协议,且每个节点都需要周期性地同相邻节点交换状态信息,这样就会加大协议报文导致的开销。更关键的是,所有网络节点都需要为每个数据流保存状态信息,而当前在Internet骨干网上有着成千上万条数据流,因此IntServ模型在Internet骨干网上无法得到广泛应用。
- 区分服务模型(DiffServ):
DiffServ区分服务工作过程:首先将网络中的流量分成多个类,然后为每个类定义相应的处理行为,使其拥有不同的优先转发、丢包率、时延等。
Diffserv服务模型概述:
- 业务流分类和标记由边缘路由器来完成。边界路由器可以通过多种条件(比如报文的源地址和目的地址、ToS域中的优先级、协议类型等)灵活地对报文进行分类,然后对不同类型的报文设置不同的标记字段,而其他路由器只需要简单地识别报文中的这些标记,然后对其进行相应的资源分配和流量控制即可。因此,DiffServ是一种基于报文流的QoS模型。
- 它只包含有限数量的服务等级,少量的状态信息来提供有差别的流量控制和转发。
- DS节点:实现DiffServ功能的网络节点称为DS节点。
- DS边界节点:负责连接另一个DS域或者连接一个没有DS功能的域的节点。DS边界节点负责将进入此DS域的业务流进行分类和流量调整。
- DS内部节点:用于在同一个DS域中连接DS边界节点和其他内部节点。DS内部节点仅需基于报文中的EXP、802.1p、IPP等字段值进行简单的流分类以及对相应的流进行流量控制。
- DS域(DSDomain):一组采用相同的服务提供策略和实现了相同PHB(PerHop Behaviors)的相连DS节点组成。一个DS域由相同管理部门的一个或多个网络组成,如一个DS域可以是一个ISP,也可以是一个企业的内部网络。
DiffServ模型充分考虑了IP网络本身所具有的灵活性、可扩展性强等特点,将复杂的服务质量保证通过报文自身携带的信息转换为单跳行为,从而大大减少了信令的工作。该模型是目前应用最广的服务模型。
优点 | 缺点 | |
尽力而为服务模型 | 实现机制简单 | 对不同业务流不能进行区分对待 |
综合服务模型 | 可提供端到端QoS服务,并保证带宽、延迟 | 需要跟踪和记录每个数据流的状态,实现较复杂,且扩展性较差,带宽利用率较低 |
区分服务模型 | 不需跟踪每个数据流状态,资源占用少,扩展性较强; 且能实现对不同业务流提供不同的服务质量 | 需要在端到端每个节点都进行手工部署,对人员能力要求较高 |
资源预留协议(RSVP)
一个需要按特定服务质量发送数据流的RSVP主机将会传输一个RSVP路径消息,这个路径消息将会沿单播或组播路由通过路由协议预先建立的路径传输。如果路径消息到达一个不理解RSVP的路由器,将会将这个消息转发并不对其内容进行分析而且不会为这个流进行资源预留。
当目的路由器接收到路径消息,它将会:
- 按照请求的参数进行资源预留。对此,许可控制和策略控制处理请求参数并通知分组分类以便正确处理选定的数据分组,或者和上层协商如何进行分组处理。
- 向上游转发请求(朝着发送方方向)。在每个节点上,预留消息的流量说明(flowspec)可以由前向节点更改。(例如:在多播流资源预留时,预留请求就可以被合并)
- 路径上的每个节点都可以接收或者拒绝请求。
Network capabilities
Network capabilities are short-term authorizations that senders obtain from receivers and stamp on their packets.They allow receivers to control the traffic they receive, cutting to the heart of the DoS problem by allowing unwanted traffic to be removed in the network, but do so in an open manner by providing destinations with the control over which traffic is filtered.Capabilities are also used in operating systems for access control. In that context, a capability is a token of authorization with which access rights are associated.A user program must present acapability before accessing an object protected by access control.
Anderson et al. first proposed the notion of network capabilities and envisioned to use them to prevent Internet denial-of-service (DoS) attacks in 2003. Researchers later refined their vision and developed capability-based network architectures that are resistant to network-layer DoS flooding attacks,including the SIFF and the TVA architecture.
fair resource reservation mechanism
总结
缺点 | |
QoS架构 | 不能在互联网规模上提供端到端的流量保证 |
网络容量 | 链路泛洪攻击是基于合法的低带宽流量,所以网络容量是无效的 |
公平的资源预留机制 | 可以解决链路泛洪攻击,但是依赖于僵尸网络大小 |