基于AOC光纤的ARM云终端系统的制作方法

文档序号:12068348阅读:318来源:国知局
本发明涉及网络设备数据传输领域,具体涉及一种基于AOC光纤的ARM云终端系统。
背景技术
::VDI(VirtualDesktopInfrastructure,即虚拟桌面基础架构)是通过在数据中心的服务器运行操作系统(如Windows7),将用户的桌面进行虚拟化。用户通过来自客户端设备(客户机或是家用PC)的客户计算协议与虚拟桌面进行连接,用户访问他们的虚拟桌面就像是访问传统的本地安装桌面一样。VDI在一台服务器内完成所有的处理任务,仅将终端设备用作一个I/O平台(如显示器、鼠标、键盘),因此所有的桌面以及可视化渲染工作是在服务器的处理器内完成的,生成的图像通过局域网转发给终端设备。通过这种方式由服务器渲染基本的Windows桌面会话以及其它元素通常没有任何问题,但在执行高级图形任务(比如高清视频播放或者3D图形应用)时会遇到性能问题,影响性能的其中一个重要的因素就是局域网的带宽。例如要播放4Kb高清视频(分辨率为4096×2160b),视频至少需要到达25帧每秒,这样一台终端每秒需要接收4096*2160*4(RGBA)*25=400MB的数据量。对于目前常用的1000Mb网络,单台终端能达到的数据量为125MB/S,这样的数据接收能力显然不能满足高清视频的数据传输需求。为此VDI会在服务器端进行数据压缩,在终端进行解压缩。数据压缩分为有无损压缩和有损压缩,如果采用无损压缩算法,算法会加重服务器的负担;当多台终端同时需要播放视频时,服务器资源消耗出现瓶颈,从而影响视频播放效果。如果采用有损压缩则会影响画面质量。为此要解决带宽问题需要提高网络传输速度,以解决数据传输的瓶颈。光纤技术的出现为解决该问题提供了一种思路,目前云终端系统大多采用ARM(AcornRISCMachine,英国Acorn有限公司设计的低功耗成本的第一款RISC微处理器)芯片。现有技术中基于以太网的ARM云终端如附图1所示,该方案是现在的一种通用架构,其问题在于以太网传输的瓶颈,千兆网络理论最大传输速度仅为125MB/S,无法满足高清4K(2K)数据传输需求。同时当终端数目较多时,传输的稳定性也会受到一定影响。基于USB(UniversalSerialBus,通用串行总线)AOC(ActiveOpticalCables,有源光缆)光纤的零终端如附图2所示,该方案虽然其传输速度较快,但其不足在于需要服务器端同时处理VDI客户端与服务器端的任务,从而造成服务器压力过大。技术实现要素:本发明要解决的技术问题是,针对现有技术存在的上述不足,提供一种基于AOC光纤的ARM云终端系统,利用已有的USBAOC光纤线传输VDI协议数据,以提高数据传输速度与稳定性,同时又不增加服务器的负担。本发明为解决上述技术问题所采用的技术方案是:基于AOC光纤的ARM云终端系统,包括服务器、传输层和ARM终端,ARM终端通过传输层与服务器通讯连接;所述ARM终端包括USB设备控制器层、RNDIS设备层(含设备管理)、网络管理层和VDI客户端,RNDIS设备层设置于USB设备控制器层之上,实现远程网络驱动程序接口规范;网络管理层用于将光纤网络直接模拟为以太网,支持TCP/IP协议,并实现USB设备控制器层、RNDIS设备层与VDI客户端之间的IP网络地址设置;VDI客户端是一个运行于云终端的虚拟机客户端;所述服务器采用网桥或网络地址转换方式管理传输层和ARM终端的网络数据,至少包括VDI服务器端和RNDIS设备管理层。按上述方案,所述传输层使用USBAOC光纤线,USBAOC光纤线作为ARM终端与服务器的硬件数据通道,包括标准的VDI传输协议,VDI传输协议的数据内容按如下格式进行传输:按上述方案,所述服务器还包括网络重定向模块,网络重定向模块用于通过TCP/IP重定向机制使ARM终端访问internet。按上述方案,所述ARM终端的USB设备控制器层由ARM芯片开发厂商提供,分为USB2.0和USB3.0两种不同的实现:i)USB3.0设备控制器(在使用了USB3.0的ARM芯片上,直接将USBAOC光纤线接入到USB3.0设备控制器);ii)USB2.0设备控制器,在ARM芯片板上外接一个USB3TT芯片,该USB3TT芯片用于将从USB2.0DeviceController出来的USB信号转换为USB3.0信号。按上述方案,所述ARM终端的RNDIS设备层包括如下USB控制传输命令:按上述方案,所述ARM终端的网络管理层分为3个组成部分:i)TCP/IP网络协议层,用于设置IP、子网掩码、DNS服务器,完成网络设置;ii)网络抽象层,用于将网络行为定义为如下抽象行为:a.网络连接事件,NET_LINKUP,当该事件发生时表示物理网络已经处于连接状态;b.网络断开事件,NET_LINKDONW,当该事件发生时表示物理网络已经处于连接断开状态;c.网络数据发送,SendData,将网络发送到当前网络接口;d.网络数据接收,RecevieData,从当前网络接口读取数据;f.网络配置事件(IP,子网掩码,网络接口禁用于启用),NetConfig;g.网络当前工作接口选择,SeleteNetInterface;iii)USB热插拔处理层,用于当USBAOC光纤线插入时,USB热插拔处理层向网络抽象层发送网络连接事件,当USBAOC光纤线拔出时向网络管理层发送网络断开事件。按上述方案,所述服务器的RNDIS设备管理层的驱动模块由标准Linuxkernel提供,增加控制命令UsbReqGetIp和UsbReqSetIP的发送端。按上述方案,所述服务器的RNDIS设备管理层实现RNDIS设备的热插拔管理与IP地址管理具体如下:1)热插拔管理:采用udev脚本实现,在/etc/udev/rule.d中增加一条规则,当发现光纤插入云终端时,自动调用shell脚本完成RNDIS接口与网桥的绑定;2)IP地址管理:基于网桥的实现方案,在服务器端维护一个“(终端序列号,IP地址)”的表格(以下简称为TableIp)。与现有技术相比,本发明具有以下有益效果:1、采用USBAOC光纤线连接ARM云终端与服务器,以提高VDI协议的传输效率与稳定性,USBAOC光纤线能达到的速度为5Gb/S=640MB/S,该速度能满足4K高清视频的传输需求;2、在物理连接上云终端采用USB设备控制器(包含加入USB3.0光电转换芯片)来连接USBAOC光纤线与(中间可增加USB3.0Hub)服务器,通用性强;3、在协议层,服务器与云终端采用RNDIS设备支持USBAOC光纤线实现TCP/IP网络连接,RNDIS设备层实现了Mac地址,简化了上层模块设计;4、服务器采用网桥或网络地址转换方式管理USBAOCRndis设备网络数据,VDI客户端与服务器端的传输采用点对点的方式,大幅提高了传输的稳定性;5、该系统不仅适用于ARM云终端,对X86、MIPS等类别的其它终端系统同样适用。附图说明图1为现有技术基于以太网的ARM云终端的结构示意图;图2为现有技术基于USBAOC光纤的零终端的结构示意图;图3为本发明基于AOC光纤的ARM云终端系统的总体方案设计示意图;图4为本发明ARM终端工作原理图;图5为ARM终端引入网络抽象层的网络架构图;图6为本发明服务器端原理图;图7为本发明实施例服务器端设置客户端IP流程图;图8为本发明实施例服务器端在普通教学场景下的架构图;图9为本发明实施例服务器端在中端4K视频支持方案下的架构图;图10为本发明实施例服务器端在高端图形工作站支持方案下的架构图。具体实施方式以下结合附图对本发明的原理和特征进一步的描述,所举实例只用于解释说明本发明,并非限定本发明的应用范围。如图3所示,本发明实施例所述的基于AOC光纤的ARM云终端系统,包括服务器、传输层和ARM终端,ARM终端通过传输层与服务器通讯连接;ARM终端包括USB设备控制器层、RNDIS设备层(含设备管理)、网络管理层和VDI客户端;RNDIS设备层设置于USB设备控制器层之上,实现远程网络驱动程序接口规范;网络管理层用于将光纤网络直接模拟为以太网,支持TCP/IP协议,并实现USB设备控制器层、RNDIS设备层与VDI客户端之间的IP网络地址设置;VDI客户端是一个运行于云终端的虚拟机的客户端;服务器采用网桥或网络地址转换方式管理传输层和ARM终端的网络数据,至少包括VDI服务器端和RNDIS设备管理层,RNDIS设备管理层用于接收USB数据,并转换成TCP/IP数据,实现RNDIS设备的热插拔管理与IP地址管理。传输层使用USBAOC光纤线,包括标准的VDI传输协议,VDI传输协议的数据内容按如下格式进行传输:服务器还包括网络重定向模块,网络重定向模块用于通过TCP/IP重定向机制使ARM终端访问internet。如图4所示,ARM终端包括USB设备控制器层、RNDIS设备层、网络管理层和VDI客户端:(1)USB设备控制器层由ARM芯片开发厂商提供,由于USB分为USB3.0和USB2.0,目前USBAOC需要工作在USB3.0模式下,因此USB设备控制器层分为USB2.0和USB3.0两种不同的实现:i)USB3.0DeviceController,在使用了USB3.0的ARM芯片上,可以直接将USBAOC光纤线接入到USB3.0DeviceController;ii)USB2.0DeviceController,由于USBAOC仅支持USB3.0,但目前大量的ARM芯片仅能支持USB2.0;为了解决这一矛盾,可以在Arm芯片板上外接一个USB3TT芯片,该USB3TT芯片能将从USB2.0DeviceController出来的USB信号转换为USB3.0信号;(2)RNDIS设备层设置于USB设备控制器层之上,用于支持TCP/IP协议,实现远程网络驱动程序接口规范(RemoteNetworkDriverInterfaceSpecification,即RNDIS),基于USB设备控制器层实现RNDIS实际上就是TCP/IPoverUSB,就是在USB设备控制器层上支持TCP/IP协议,因此采用远程网络驱动程序接口规范(RNDIS)后,ARM终端的应用软件觉察不到采用的是光纤网络还是传统网络;同时在RNDIS的驱动中实现了网卡的MAC地址。为了能让服务器方便设置RNDIS设备层的IP,RNDIS设备层需要修改驱动代码,增加如下USB控制传输命令:(3)由于RNDIS设备层实现了网卡的Mac地址,所以为了尽可能的简化上层的软件设计,增加一个网络管理层,网络管理层用于将光纤网络直接模拟为以太网,这样对于网络管理层以上的软件系统而言,就不需要判断是光纤还是以太网了;网络管理层分为3个组成部分:i)TCP/IP网络协议层,用于设置IP、子网掩码、DNS服务器,完成网络设置;对于使用Linux操作系统的云终端,采用ifconfig完成这一功能,无论是rndis还是以太网都可以采用该命令完成网络设置;ii)网络抽象层,用于将网络行为定义为如下抽象行为:a.网络连接事件,NET_LINKUP,当该事件发生时表示物理网络已经处于连接状态;b.网络断开事件,NET_LINKDONW,当该事件发生时表示物理网络已经处于连接断开状态;c.网络数据发送,SendData,将网络发送到当前网络接口;d.网络数据接收,RecevieData,从当前网络接口读取数据;f.网络配置事件(IP,子网掩码,网络接口禁用于启用),NetConfig;g.网络当前工作接口选择,SeleteNetInterface;由于网络抽象层的引入,整个网络架构看起来如图5所示;iii)USB热插拔处理层,用于当USBAOC光纤线插入时,USB热插拔处理层向网络管理层发送网络连接事件,当USBAOC光纤线拔出时向网络管理层发送网络断开事件;(4)VDI客户端由于ARM终端兼容TCP/IP协议,所以VDI客户端(无论是采用RDP协议还是Spice协议)不需要任何修改;这一点正好能体现该方案的优势。如图6所示,服务器的VDI服务器端由于兼容TCP/IP协议,所以不需要任何修改;网络重定向模块用于通过TCP/IP重定向机制使ARM终端访问internet,解决Rndis设备访问公网(internet或企业局域网),其主要实现机制分为两种:1)基于iptables与NAT(网络地址转换)的重定向机制:当检测到从RNDIS设备出来的数据时,将数据转发到服务器的工作网卡,从而将数据发送到外网,当检测到发向工作网卡的某个特定端口的数据时,将数据包重定向到RNDIS接口;2)基于网桥的管理机制:在服务器上建立一个网桥,并将该网桥与服务器上的物理外网网口绑定;将RNDIS接口加入到该网桥,并将RNDIS设备层的IP与网桥设为统一网段;当数据传输时,网桥自动完成数据的转发;RNDIS设备管理层的驱动模块由标准Linuxkernel提供,但需要增加控制命令UsbReqGetIp和UsbReqSetIP的发送端。RNDIS设备管理层,由于服务器会连接多个RNDIS设备,因而RNDIS设备管理层用于实现RNDIS设备的热插拔管理与IP地址管理:1)热插拔管理:一种实现RNDIS设备的热插拔管理的方法是采用udev脚本实现,在/etc/udev/rule.d中增加一条规则,当发现光纤插入云终端时,自动调用shell脚本完成RNDIS接口与网桥的绑定;2)IP地址管理:在基于网桥的实现方案中,由于网桥的网段需要和RNDIS设备在同一个网段中,因而在服务器需要为记录ARM终端的IP地址,每个ARM终端都有其唯一的序列号,因此在服务器端需要维护一个(终端序列号,IP地址)的表格(以下简称为TableIp);当一个新的RNDIS设备加入到网络中时工作流程如下:a.udev发现rndis,RNDIS设备加入到网络,调用脚本激活该RNDIS接口,并加入到网桥;同时读取RNDIS设备序列号,这里记为sid;b.向ARM终端发送usbcontrol命令,UsbReqGetIp,由于ARM终端为初始化IP,所以该命令返回为空;c.服务器查看sid在TableIP中的IP,如果为空则分配一个未使用的IP地址,并加入到TableIP中;d.服务器发送UsbReqSetIp(IpAddr,NetMask,DNS)控制传输命令,设置IP。服务器采用网桥或网络地址转换方式管理USBAOC光纤线和Rndis设备层的网络数据,本发明实际案例中采用了基于网桥的管理方法。服务器启动流程a.服务器(采用中标麒麟操作系统)开机启动后配置网桥,网桥接口名为br100,同时与物理网卡eno0进行绑定。b.对网桥br100设置IP地址、子网掩码和DNS等,例如将IP设为192.168.1.10,子网掩码设为255.255.255.0;c.服务器加载udev规则用于动态监测USBRndis设备插入;当Rndis设备插入时首先用ifconfig激活其网络接口与设定接口IP信息;其次将该Rndis设备接口加入到br100(使用brctl工具)。终端的实现前提:ARM云终端通过实现一个compositeUSBdevice,分为一个Rndis接口和一个acm(串口)接口;Rndis接口用于网络通讯,acm接口用于接受服务器的配置命令;服务器设置VDI客户端的IP流程如下图7所示。普通教学场景仅要求1080P视频支持,所以可以采用较低成本的方案,使用rockhcip3229芯片。该芯片仅提供USB2.0devicecontroller;而USBAOC需要工作在USB3.0模式;所以需要在ARM芯片上在增加一颗USB光电转换芯片(简称为U3TT),同时可采用一根光纤带4个终端(中间采用基于VIA芯片的USB3.0Hub),以分摊光纤成本。其架构如图8所示,该方案了每个终端的理论网络传输速度为800Mb/s=100MB/S。服务器在中端4K视频支持方案下的架构如图9所示,ARM芯片采用Rockchip3368,该芯片支持USB3.0devicecontroller,可以实现光纤与ARM终端的直连。该方案的最大理论传输速度为5Gb/s/4=1.25Gb/s=160MB/S.其性能大于千兆有线网络。如果需要更高的图形传输要求,同时减轻服务器由于视频压缩带来的负担,可采用如图10所示的服务器在高端图形工作站支持方案下的架构图,该方案的最大理论传输速度为5Gb/s=640MB/S。以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之类,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1