卫星通信上的QoS分析

作者:官骏鸣; 孙恩昌; 何明
卫星链路由于其固有的特点(长时延 , 非对称环境)对QoS(QualityofService)提出新的要求和挑战 , 本文首先对两种QoS策略进行讨论 , 然后对其在卫星链路上的性能及以后研究的方向进行了讨论 。
要害词卫星通信区分服务资源预留协议CRED
1、卫星系统概述
GEO系统的卫星位于地球赤道上35786km四周的地球同步赤道上 , 所以其单向传输时延在230-270ms之间 , 往返时延(roundtrIPdelay)长达540ms , 约比地面链路上WAN的等待时间(latency)大一个数量级 。卫星链路的长时延增大了TCP端到端的时延 , 导致确认信息的延缓 。这种缓慢的反馈会减弱流量控制 , 降低了避免拥塞的性能 , 并会影响吞吐量 。这样就会造成大量的数据包停留在卫星通信管道上 , 增加了包丢失概率 , 从而引起网络的拥塞[1] 。
链路轻易受到不同因素的影响(如干扰、衰落、阴影效应和雨衰) , 因此会有很高的比特差错率(BER) 。大约为1O-6数量级 , 这远远高于高速有线媒质(如光纤).高误码率严重削弱了卫星信道可靠传输数据的性能 , 这是因为TCP是一个使用分组丢失来控制传输行为的丢失敏感协议 , 它无法区分由于传输错误造成的数据包错误还是由于拥塞造成的数据包丢失 , 对这两种都无法确认 , 而被解释成网络拥塞的标志 。当接收到一个损坏的数据包 , 即使没有拥塞发生 , 窗口的大小随即变为原来的一半 , 这就使得吞吐量大大减小 。
许多卫星系统在前向和反向数据信道间有较大的带宽不对称性 。从卫星到地面的前向链路远大于反向链路 。可以知道 , 多个终端通过共享窄带上行链路实现与卫星的连接 , 这就可能导致拥塞 。在大多数时间里上行链路传输的是纯粹的ACK.而TCP是“selfclocking”:即 。源端在接收到对应已发数据的ACK之后发送新的数据 , 这样源端发送的新数据的速率和另一端返回的ACK的速率相匹配 。可以理解为上行链路的ACK流速率控制着下行链路的吞吐量 。在非对称行链路上会出现下列问题:1)由于拥塞窗口的增加依靠ACK , 因此 , ACK的速率越低 , 拥塞窗口的增加就越慢 , 这就降低了慢启动和拥塞避免的性能;2)由于反向信道的限制 , 可能使得ACK包出现拥塞和丢失 , 这也会导致吞吐量的降低 。
不对称比率(返回路径容量与前向路径容量之比)大于ACK包尺寸于数据包尺寸之比时,反向链路较前向链路先达到容量值 , 从而造成拥塞,限制了前向链路的带宽利用 。这时会出现拥塞情况 , 造成ACK的延迟和导致不必要的重传 。
【卫星通信上的QoS分析】 2、服务质量QoS(QualityofService)
现有的互联网所提供的是“尽量做好”best-effort的服务在这种服务模型下所有的业务流被“一视同仁”地公平地竞争网络资源 。网络只需尽快的完成服务 , 而对业务的可靠性、延迟等不能提供任何保证 , 随着IP技术和网络的发展 , IP网正在从当初单纯传送数据向可传送数据、语音、活动/静止图像的多媒体网络转变 。我们可以把传输的业务分成两类:实时业务和非实时业务 。实时业务是指需要端到端的服务保证 , 对资源的持续要求较高的媒体流传输业务 。这些业务对带宽、延迟、延迟抖动都有非凡要求 。主要包括语音、视频传输等;非实时业务是指那些对传输时延要求较低、只需尽量将数据包发送到目的地的业务 , 内容包括Email、FTP、Web浏览等 。
我们关注的就是这些业务在卫星通信网传输之前 , 如何根据它们的特性将它们区分 。以便区别的传送 。这就是QoS解决方案 , QoS研究目标是如何有效的为用户提供端到端的服务质量和保证 。它无法创造带宽 , 只是根据需求和网络状况来治理带宽 。具体可以量化为传输延迟、抖动、丢包率、带宽要求、吞吐量、业务可用性等指标 。为了解决QoS问题 , IETF提出了下面几种服务模型和机制:集成服务和资源预留协议(IntServ/RSVP)、区分服务(DiffServ)、和多协议标签交换(Multiprotocollabelswitching , MPLS) , 本文主要讨论资源预留协议和区分服务在卫星链路上的应用 。
2.1资源预留协议(Resourcereservationprotocol)
Intserv/RSVP服务模型在RFC1633中进行了定义,其基本思想就是在传送数据之前 , 根据业务的QoS需求进行网络资源预留 , 从而为该数据流提供端到端的QoS保证 , 资源预留协议是核心部分 。它是一种信令协议 , 用来通知网络节点预留资源 , 假如资源预留失败 , RSVP协议会向主机返回拒绝消息 。使用RSVP信令建立数据发送路径为业务流预留资源的过程为:在传输数据之前 , 发送端先向接收端发送一个对所传输业务流业务描述的PATH消息 , 它包括了数据包的目的地址和业务特征和和业务规格(所需的带宽上下限、延迟、抖动等) 。PATH消息在网络连接的每个路由器上依次传送 。这样就建立了一个路径软状态 。当接收端接收到一个PATH消息后 , 它将根据业务特点和QoS来计算出所需的资源 , 并且沿相反路径发送一个资源预留请求RESV消息 , 中间路由器在接受到RESV消息后 , 调用程序来决定是否接收该业务流 。假如接受 , 就会分配相应的带宽和缓冲空间并记录该流的相关状态消息 , 然后继续上传该RESV消息 。假如拒绝 , 则向接收端返回错误信息使接收端终止呼叫 。最后的路由器接受到RESV消息并接受该请求时 , 它向接收端发回一个ACK 。则在整个链路上逐点建立了业务流的资源预留软状态(softstate) 。

;2.2区分服务(differentiatedservices)
区分服务的思想就是将用户的数据流按照服务质量要求来划分等级 , 在网络出现拥塞的时候 , 级别高的数据流在排队和占用资源时后拥有更高的优先权[3] 。
实际上 , 区分服务提供了一种在一个子网络域内实施QoS的框架结构 。当业务流到达域的边界路由器时 , 边界节点根据用户的流规格、和用户与Internet服务供给商签订的服务等级协定SLA(service1evelagreement)对到达的业务流进行分类、整形、标记、聚合为不同的流聚集 。将流聚集信息写在IP包头中的区分服务标记域中(DSfield)即:DSCP(differ code point) 。每种DSCP对应一种“逐跳行为”(Per-hop-behavior , PHB) , 这里的PHB本质上是一种相对优先级机制 , 其描述单个节点为特定流资源分配资源的方式 。目前已定义的PHB有加速性转发(EXPedited forwarding)、确保型转发(assured forwarding)、缺省型BE(best effort)、兼容ip优先级的类选择型CS(Class selector) 。
核心路由器在调度IP包时以流聚集为服务对象 。根据IP包头的DSCP , 具有相同的DSCP的业务流组成宏流 。核心路由器中保存简单的DSCP和PHB机制 。不同的DSCP提供不同的转发服务质量 。
目前,区分服务提供下面几种服务类型:
1)奖赏服务(Premiumservice , Ps) , 为用户提供低延时、低丢失率及保证带宽的端到端或者是网络边界到边界的传输服务 。这种“三低一保证”服务承诺使得用户可以享受类似专线的服务质量 , 因此奖赏服务也称为“虚拟专线”服务 , 这是目前所定义的服务级别最高的区分服务种类 。
2)确保服务AS(assuredservice) , 其出发点是无论是否拥塞 , 都能保证用户占有预约的最低限量的带宽;其着眼点是带宽和丢包率 , 而不太注重延迟和抖动 。只要采用简单的标记和丢弃机制就能实现IPQoS , 实现机制简单 。
3、对卫星链路的QoS分析
3.1长延时问题
在卫星链路上的长延时会出现大量的未被确认的包停留在链路管道上 , 假如我们采用RSVP协议 , 通过我们上面介绍的工作原理可以发现 , 在传输业务流之前 , 必须建立传输路径 。在链路上传输PATH消息并等待收端的RESV的确认消息返回 。这无疑增加了用户的等待时间 。大大增加了短时流在卫星网络中的传播时间 , 降低了网络的他吞吐量;而在区分服务模型中 , 我们可以通过设置ISP和用户之间的服务等级协定SLA 。通过对某些特定的业务(实时业务)设置相对高的优先级 。通过在卫星边界路由器的数据包的整形和相对高的优先级 。我们可以优化实时业务在长时延链路的传输性能 。
3.2带宽不对称
在卫星链路上带宽的不对称 , 反向链路的延时和拥塞影响ACK的正确传输 , 假如采用RSVP协议 , 可能使情况变得更糟 , 因为在网络中每一个路由器的预流信息是“软”的 , 必须由接收者周期的更新 。这样 。现有RESV更新、新、旧业务的ACK在反向信道的传输 , 增加了拥塞的可能 , 所以 , 我们可以得出结论 , RSVP可能加重带宽不对称带来的烦恼 。
在使用区分服务的情况下 , 我们可以赋予ACK更高的优先级 。这样 , 他可以在其余的业务流之前传送 , 保证了ACK的准确传送 。
3.3误码率高
这两种QoS解决方案都不能有效的解决这个问题 。但是我们可以在链路层采用更加强有力的前向纠错方案 , 这样就会使可用带宽减小 , 我们知道与RSVP协议相比 。区分服务占有的网络资源相对较少 , 这使得我们倾向使用区分服务协议 。
另外 , 在卫星链路上采用资源预留协议就必须提供更高的带宽 。假如过多用户都要求资源预留 , 这将大大增加路由器的负担 , 因为状态信息随业务流数量增长而增长 , 沿途的路由器要为每个数据流都维持一个“软状态” , 而路由器的存储容量有限 , 可以保存软状态信息是由限的 。而区分服务只在内部节点进行简单的调度转发 , 流状态信息的保存和流监控的实现等只在边界节点进行 。并且其服务对象使流聚集而非单个流 。还有 , 我们可以动态和灵活的对业务流进行分类和整形 。所以我们可以得出结论 , 区分服务能够在卫星链路充分利用带宽 , 提供相对较好的服务质量保证 。
下面我们研究区分服务的确保服务类型 。它通常采用RED队列治理机制[2] 。RED机制通过随即丢弃数据分组 。控制平均队列长度 , 避免网络拥塞与全网同步重发 。能够有效的减轻缓冲溢出从而增加卫星吞吐量;RIO是RED的改进算法:边界路由器监视每个进入网络的用户数据流 , 根据它们的服务规格对包进行标识 , 预约带宽以内的标为IN(inprofile) , 超出的标为OUT(outprofile) 。在拥塞的路由器上 , OUT包被丢弃的概率要大于IN包 , 从而在一定程度上保护IN包 。WRED是CISCO公司提出的一种支持区分服务的AQM机制 。与RIO一样 , WRED基本思路也是在IP包头按照某种策略进行标记 , 丢包优先级基于该标记 。
可以知道 , 我们可以根据用户要求提供的服务质量 。对某些业务流(如实时业务、需要连续或交互的业务流)设置较高的优先级 。从而保证该业务流的传输 。这样 。在卫星链路上 。我们能够为所有的应用程序设定服务次序 。西安电子科技大学孙恩昌博士的硕士毕业论文的CRED算法就是典型的区分服务模型算法 , 其思想可以概括为 , 区分不同的业务(TCP、UDP) , 区分不同业务的不同阶段(TCP的慢启动和拥塞避免阶段)或带宽波动程度(UDP业务)对于其给定的拓扑结构 , 我们将其应用在卫星链路上 , 获得了极大的成功 。
可以看出 , 对于TCP业务 , CRED的平均吞吐量明显高于FRED和RED的 , 而对于音频、视频等多媒体业务 , CRED的平均吞吐量略高于FRED , 但该两者的吞吐量要高于RED的 。对于UDP-others和UDP-large , CRED的吞吐量最低 , 其次是FRED , RED最高 。总之 , 由以上仿真图形可以看出 , CRED通过对业务置不同优先级 , 能够保证卫星链路上较好的传输TCP业务 , 并且音频、视频业务也能够得到较好的传输 。

; 4、结论
在本文中 , 我们首先介绍了网络QoS保证中常见的两种措施:RSVP(资源预留协议)和DiffServ(区分服务)的具体概念 , 并且分析了各安闲卫星系统上的优劣之处 。我们注重到 , 在RSVP架构下 , 所有的信息流经过的节点都需要对每一个信息流保持一个状态 , 并且作监控和治理 。这将造成延展性(scaling)问题 。
区分服务在开始预算了几种服务 , 将封包分类一起聚集处理 , 提供相同的品质保证 , 将复杂的流量调节功能放在网络边界的路由器里 。这样加快了网络传输的速度 。
结合卫星网络的固有特点 , 作者通过具体的分析 , 认为区分服务更加适合在卫星网络中提供较为优质的QoS 。
参考文献
1J.ToUCh , S.Ostermann , D.Glover , et.al.“OngoingTCPResearch Related to Satellites” , RFC 2760 , IETF , February 2000
2姜明.浙江大学Internet主动式队列治理机制综述文章来源:赛迪网2002年11月08日S.Blake , D.Black , M.Carlson , E.Davies , Z.Wang , andW.Weiss , “An Architecture for Differentiated Services , ”RFC2475 , Dicembre 1998.