【网安学术】IP卫星网络接入网关中队列管理器的设计与实现

道玄师傅5797 发表于 2019-01-13 05:54:17 | 打印





摘要:为了充分利用卫星链路带宽资源,设计了一种应用于卫星网接入网关的基于流的队列管理器。队列管理器采用DDR3 SDRAM作为数据缓冲区,提供了大量业务流管理和缓冲所需的存储容量;通过采用SRAM存储链表指针,可根据业务类别基于流动态建立队列、进行存储资源分配和业务调度;可以针对每个队列设定深度门限,为网关进行队列管理和资源动态申请提供支持,有利于提高卫星网络的资源利用率。整个设计在Xilinx xc6vlx240t FPGA平台上实现,且采用ModelSim SE 10.2c进行了系统级的仿真分析。结果表明,在最大支持1 000个业务流的条件下,该设计共消耗了9 780个查找表和50块36 kB的BlockRAM



正文内容:

0 引 言

卫星通信具有覆盖范围广、信号质量好和便于多址通信等优点,已经在通信、广播电视、海事和航空等领域得到了广泛应用[1]。尤其在解决通信不发达地区、边远地区的通信问题方面,它具有不可替代的作用。传统的基于电路交换的卫星网络主要以面向连接的方式提供服务。终端在通信前,需要先向网控中心发起连接请求和资源申请,由网控中心负责确定被叫用户的状态和分配终端的上行带宽资源[2]。随着天地一体化IP卫星网络研究的不断深入,无连接的IP分组成为卫星网络中业务承载的主体。这对终端或接入网关的接入资源申请方式、根据业务类型进行资源合理分配等方面提出了新要求[3]。

为了解决传统卫星网络中信道资源有限、带宽不能合理控制和使用等问题,本文针对智能IP卫星网络接入网关,设计并实现了一种基于流的队列管理器。该设计对每个流进行独立的存储管理和调度,从而能够确保关键业务流的服务质量。


1 典型网络业务与资源需求分析

随着互联网的不断发展,网络应用的类型不断增加,对网络带宽提出了更高要求。尽管技术的不断进步使得卫星的通信能力大大提高,但与地面网络相比,其带宽资源仍然十分稀缺。另外,地面网络的挑战主要来源于数据流负载分布,避免产生拥塞。而卫星通信系统不仅要面对拥塞问题,还要面对可变的信道条件和较大的传输时延[4]。传统的网络没有优先级区分,基于公平原则,不提供任何服务质量保障。当用户的应用数据到达网络设备时,它们进行公平排队和调度,争用网络中的可用带宽,不考虑它们的业务类型。因此,视频下载、P2P应用、FTP文件传输等业务可能大量占用网络资源[5]。而网络中重要的信息应用,如网站服务、IP电话、实时流媒体等应用,因为缺少带宽资源,导致性能严重下降,不能正常提供服务。当网络发生拥塞时,首先想到的是增加接入带宽。但是,仅仅增加带宽资源并不能解决问题。当带宽资源增加时,P2P等应用会建立更多连接,下载更多内容,占用更多资源,关键业务的带宽还是会被挤压,无法保障服务质量。所以,网络性能下降的表面原因是由于带宽资源有限,根本原因在于不能根据业务的类型和需求进行不同优先级的传输。网络应用根据业务需求,可以分为时延敏感性和差错敏感型[6]。如图1所示,娱乐直播类节目对时延敏感,Email、文件传输等业务对差错敏感,金融、IP电话类业务对时延和差错都敏感,而网页浏览和P2P业务对两者敏感程度都低。

针对不同业务对时延和差错的敏感程度不同,结合卫星网的特点,制定不同优先级和资源申请策略。当IP电话、实时视频等重要业务流到达时,进行单独的流管理,为其申请独立的带宽资源,建立专门的队列,以保障服务质量。当Email、FTP等非实时性业务流到达时,根据规则表,设定相应的优先级,从而进入优先级不同的共享队列进行资源的竞争。达到如图2所示的要求,经过网关设备,关键业务流得到保障,占用资源高的应用得到控制,以此解决卫星网关出口带宽和地面宽带网不匹配、资源分配不合理、实时业务无保障等问题。

对于实现接入业务的流量控制,网关中的队列管理和调度算法是两个重要的影响因素。队列管理器为非关键业务提供缓存,保证了数据的完整性。调度算法根据规则进行调度,保证了QoS的实现。


2 队列管理器的结构设计

卫星接入网关为了实现对流量的控制,需要具有以下功能。具有大量的存储空间,能缓存大量业务流,同时能够对每个队列进行单独调度;能够监控队列深度的变化,当超过预定的深度上限或下限时,能够通知接入网关,以便动态申请卫星链路资源;保证关键业务的带宽,实现基于流的带宽分配和基于优先级的权重带宽分配。

队列管理器的模型结构如图3所示。它由多个独立的先入先出队列构成,每个队列都可以设置当前数据深度上限和下限。当用户数据深度高于上限或低于下限时,队列管理器可以向网关中的处理单元发出提示信息。如果采用传统的先入先出存储器实现多用户队列管理器,队列数量和每个队列的深度不能够根据业务实际需求进行动态调整,存储资源的利用率较低。该管理器能够根据业务流的数量以及每个业务流的具体流量特征,动态建立缓存队列,以有效提高缓存的整体利用率。 

本课题以DDR3作为数据缓冲区,通过构建动态链表和基于流的队列调度器,可以同时对上千个业务流进行精确管理。它具有以下特点:

(1)可以根据用户配置,以链表结构为特定的业务建立单独的队列,并且为其分配指定的输出调度带宽。这里所分配的存储资源为该队列独占的资源,除了独占的资源,整个缓冲的剩余存储空间可以作为所有队列的共享存储资源;

(2)可以根据优先级建立不同的队列,队列资源被同一优先级的队列共享,输出调度器根据调度权重在不同优先级的队列之间分配带宽;

(3)每个队列所分配的存储资源和带宽资源可以进行动态调整;

(4)可以为每个队列独立设定深度上限和下限,当队列内的数据深度超过上限或低于下限时,队列管理器可以向网关内部的处理器发出通知消息供网关参考,以动态增加或减少卫星链路上行带宽资源的申请,优化卫星网络整体资源利用率。

图4是根据卫星接入网关的需求所设计的队列管理器,包括写预处理模块、自由指针管理模块、DDR3控制器模块、多用户接口管理模块、多队列控制模块和片外SRAM接口模块等主要部分。

系统工作时,首先对DDR3进行初始化。初始化完成后,从DDR3中预先读取一些指针,存入自由指针管理模块。当数据需要进入队列管理器时,首先发送业务流的相关信息。管理器根据流编号(flow_id)判断是否满足建队列的要求。如果不满足,则指示丢弃;如果满足要求,则指示数据输入,接着从自由指针管理模块中取出空闲指针,将数据写入DDR3,而指针以链表形式存入片外SRAM。当调度器以优先级调度数据时,需要给出流信息。队列管理器根据flow_id找到链表头部,读出DDR3的地址。需要说明的是,数据读出的同时,需回收指针资源。

2.1 数据流写入流程

当新的业务流到达时,由前级处理模块发出输入请求,同时告知业务流的流编号和信元个数。多队列控制器利用上述信息对业务流进行判断处理,具体流程如图5所示。由控制器以flow_id为地址,从片内SRAM中读出该编号的流的相关信息,包括队列已有信元长度(q_length)、队列预先设定的门限(q_threshold)、队列预先设定的总容量(q_capacity)、队列建立标志(q_used)。如果队列为空,判断该队列曾经是否建立。如果建立,标志位(q_used)为1,代表已经分配过存储资源,数据流可以进入队列;如果q_used为0,代表未分配过资源,需要再判断剩余存储资源大小。若剩余存储资源大小大于队列所需总容量,则可以分配资源,建立队列;若剩余存储资源大小小于总容量,则向前级模块发出丢弃指示。如果队列不为空,需要根据队列长度判断数据是否可以进入队列。

2.2 基于链表的队列控制器

本文设计的队列管理器需要对大量的业务流进行管理。为了提高队列管理器性能,节约存储资源,采用基于链表的队列控制方式。图6为控制器的结构。head n和tail n分别表示第 条链的头节点和尾节点。节点的帧格式如图6所示,包含帧头尾指示位、DDR3的地址位和下一跳的节点地址。头尾两个节点以流编号为地址存在片内SRAM,其余节点存在片外SRAM。指针回收队列存储被释放的片外SRAM的地址。


当数据写入DDR3后,地址需要写入相应的链表。首先判断指针回收队列是否有指针,如果当前没有指针回收,则按片外SRAM的地址顺序进行取指针。由于DDR3的地址个数少于SRAM的深度,可确保不会发生有用数据被覆盖的情况。将节点信息存入该地址后,修改原tail的下一跳指向,同时更新片内SRAM的tail信息。当某一队列被调度时,从该队列的头结点中读出片外SRAM地址,再从该地址中读出相应的信元指针,然后将其送入DDR3控制器进行轮询调度,等待数据输出。同时,将该SRAM地址归还给指针回收队列,而头指针寄存器的值更新为原头结点的下一跳地址。

2.3 缓存资源管理

本文设计的队列管理器需要对大量的业务流进行管理和调度,考虑到FPGA内部的存储资源有限,片外SRAM读写速度较慢。而DDR3具有容量大、读写速度快等优点,因此采用DDR3作为数据缓冲区。同时,为了进一步节省片内资源,将其中的一部分空间作为自由指针存储区。但是,地址读写模块和数据读写模块可能同时需要访问DDR3。为了解决这一问题,设计了一个多用户接口电路。该电路采用轮询方式将用户的读写请求依次发送给控制器,申请从存储器中读出或写入数据。图7为资源管理电路结构。

DDR3是突发操作,突发数据宽度为64 bits,突发长度为8。因此,一次突发操作可以读写512 bits数据。为了满足突发数据的位宽要求、提高读写操作的效率,数据在写入DDR3前需要在前一级模块进行缓存,当达到数据位宽要求时,再发出写请求。读数据时也要先进行缓存,再拆成位宽为36 bits的数据给后级模块处理。考虑到对DDR3的操作需要轮询,且读操作时数据输出会有延时,自由指针管理模块采用预先读取的方式缓存指针。当自由指针管理模块中的指针个数低于最低门限时,提前从DDR3中读出指针,便于队列控制器使用。如果其指针个数大于预设的最高门限,那么将一部分指针归还至DDR3中。


3 仿真结果与分析

该队列管理器的实现选用Xilinx的xc6vlx240t FPGA,开发环境为ISE 14.7,电路模块采用Verilog HDL编程,并用ModelSim SE 10.2c进行仿真分析。

3.1 帧写入过程工作仿真

图8显示了指针的读取过程,请求指示(req)的不同位代表不同用户的读写操作。当其为0x21时,表示初始化模块和指针管理模块都要访问DDR3。根据优先级高低,先进行初始化模块的操作。app_af_cmd信号为低电平,表示对DDR3进行写操作,表明当前初始化模块正在将指针按顺序存入DDR3的指针缓存区。当请求指示变为0x20时,表示初始化模块不再占用DDR3的控制器,指针初始化已完成,仅有指针队列模块需要访问DDR3。app_af_cmd信号为高电平,表示对DDR3进行读操作,表明指针队列正在从DDR3中预先读出一些指针缓存至本地fifo,以便提高控制器取指针的速度。 

3.2 数据写入仿真

当数据申请进入队列管理器时,管理器需要根据缓存资源的大小判断是否接纳数据。图9显示了该过程的仿真。当信元个数(cell_num)为0x10的数据准备进入队列时,先将请求位(recv_req)置1,管理器根据前级模块输入的流信息进行判断。由于第一次建队列,需要判断共享指针数量(shared_depth)是否充足。图9中shared_depth为0x40000,q_capacity为0x200,表明剩余指针个数大于该队列所需指针个数,满足队列建立的需要。然后,更新该流的队列深度为数据进来之后的深度,剩余指针个数为使用后的剩余个数,同时将确认位(recv_ack)置1。当前级模块收到确认信号后,开始发送位宽为36 bits的数据,队列管理器将数据缓存至相应的fifo队列中。 

3.3 业务流调度仿真

业务流的读取被调度器控制,调度器根据不同业务的特点,选择相应的调度算法,具体流程如图10所示。确定被调度的业务流后,向队列管理器发出所需流的编号(d_flow_id),同时发出调度请求(scheduler_req),由队列管理器根据流的信息读出指针链表的头部,并从DDR3中读出该流的数据(rd_cell),修改业务流的队列长度、帧长度等信息,完成一次调度。


4 结 语

本文针对智能卫星接入网关设计了一种基于流的队列管理器,并介绍了关键模块的结构。仿真结果表明,该电路实现了对不同流的接入控制、排队、调度,能够优化带宽资源,对不同的业务提供不同的服务质量保证,减少了关键业务的时延。下一步将结合前级处理模块和调度器,对该队列管理器的性能做进一步测试,检测其在不同业务流输入下的时延特性。


参考文献:

[1] Takahashi T.On-board Baseband Switch for Wideband InterNetworking Engineering Test and Demonstration Satellite(WINDS)(Large-capacity, Wide-area and High-quality Satellite Communication Technologies)[J].Journal of the Institute of Electronics Information & Communication Engineers,2008(91):771-776.

[2] Chini P,Giambene G,Bartolini D,et al.Dynamic Resource Allocation based on a TCP-MAC Cross-layer Approach for DVB-RCS Satellite Networks[J].International Journal of Satellite Communications & Networking,2010,24(05):367-385.

[3] Whitefield D,Gopal R,Arnold S.Spaceway Now and in the Future:On-board IP Packet Switching Satellite Communication Network[C].IEEE Conference on Military Communications,2006:168-174.

[4] Kota S,Giambene G.QoS for IP-Based Satellite Network:Cross Layer Design[C].Aiaa International Communications Satellite Systems Conference,2013.

[5] Lin W,Deng Z,Fang Q,et al.A New Satellite Communication Bandwidth Allocation Combined Services Model and Network Performance Optimization[J].International Journal of Satellite Communications & Networking,2016(35):263-277.

[6] Ajith K V,Thorenoor S G.Analysis of IP Network for Different Quality of Service[C].Proceedings of International Symposium on Computing,2009.



作者:武东明,乔庐峰,陈庆华

单位:中国人民解放军理工大学 通信工程学院,江苏 南京 210007

作者简介:武东明,男,硕士,主要研究方向为高性能交换机和路由器相关技术;

乔庐峰,男,博士,教授,主要研究方向为通信和计算机网络中关键芯片和电路技术;

陈庆华,男,硕士,副教授,主要研究方向为交换技术和计算机网络。

本文刊登在《通信技术》第10期(转载请注明出处,否则禁止转载)
























































































































































中国通信事业的奠基者

学界务实求真的思想者

科技创新强国的开拓者

投稿网址: www.txjszz.com 

通信技术编辑部电话:

(028)85169918/

(028)69907566 





































































































本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

国内网站建设费用联盟

© 2017-2018 cqydfl.com