一种新型VOD方案客户端软件的实现

2010-05-13 09:17杨震伦,蒋亚军,黄中伟
现代电子技术 2009年20期

摘 要:在基于流媒体流量均衡装置的VOD应用方案的基础上,提出一种客户端软件。该客户端软件基于ip filter driver hook及原始套接字进行设计,从网络底层实现用户VOD点播请求的转发,配合改进的分级流量均衡装置结构,优化了该VOD应用方案的结构,降低了流量均衡装置的额外负载,提高了运行效率和应用的灵活性,拓展了该VOD方案的应用前景。

关键词:VOD;客户端软件;流媒体流量均衡装置;ip filter driver hook

中图分类号:TN919.85文献标识码:A

文章编号:1004-373X(2009)20-100-03

Implementation of Client End Software for New VOD Scheme

YANG Zhenlun,JIANG Yajun,HUANG Zhongwei

(Guangzhou Panyu Polytechnic College,Guangzhou,511483,China)

Abstract:Based on VOD scheme of load balancing equipments in stream medium,a new client end software is proposed.The client end software is developed under ip filter driver hook and raw socket.It redirects the users′ VOD demand in the way of network drivers operation.Cooperating with the advanced graded application structure of load balancing equipments of stream medium,it optimizes the application structure of VOD scheme and decreases the additional load of load balancing equipments of stream medium,improves the flexibility,efficiency and application prospects of VOD scheme.

Keywords:VOD;client end software;load balancing equipments of stream medium;ip filter driver hook

0 引 言

针对中小型园区网VOD应用中因网络带宽及点播服务器I/O带宽不足导致的系统阻塞问题,作者前期的研究成果提出了一种新型网络设备流媒体流量均衡装置(以下简称流量均衡装置),基于该装置的VOD方案通过在VOD系统中添加多个流量均衡装置,从而减轻点播服务器和主干网络的负载,解决系统阻塞问题[1]。

该方案依赖流量均衡装置内部的均衡策略,通过各个单点设备之间的协同来实现全局流量均衡,而由于每个单点设备只能获取对应区域的点播状况,因此实现全局均衡则需要各个设备进行频繁且大量的信息交换,增加了每个单点设备的负载,也导致全局流量均衡收敛时间的延长,并且新的流量均衡设备加入后,需要一段时间才能融合到系统中,这限制了该VOD优化方案的应用。

为解决该问题,在此提出一种应用于该VOD方案的客户端软件,前述的VOD应用方案在引入了该客户端软件后,能进一步优化VOD应用结构,提高运行效率,增强该方案的实用性。

这里将分别对改进方案结构以及客户端软件的设计进行说明。

1 改进方案结构

通常的VOD系统都配有Web服务器,以提供节目列表[2],原来基于流量均衡装置的VOD应用方案的点播需要Web服务器修改客户机上网页插件的属性,使得用户的点播请求重定向到每个区域指定的流量均衡装置中,再由流量均衡装置为之提供服务。由于目前VOD系统有若干种主流的点播软件方案,用户可能使用Real player,Media player或QuickTime player等几种客户端中的一种[3]。该方式需要根据客户机上的不同点播软件提供不同的配置方式,而实现全局流量均衡需要各个单点的流量均衡装置之间的交互来获知整个园区网的点播状况,为了达到较快的全局均衡收敛速度,这种信息交互的频率较高,这给资源相对有限的流量均衡装置带来一定的额外负载。如果降低信息交互的频率,则会导致收敛性能的降低。

改进的VOD应用方案主要是在点播的客户机上添加了一个与流量均衡装置配合的客户端软件,该软件除了能实现将客户机的点播请求转发到某个流量均衡装置,实现各种点播软件对流媒体流量均衡装置的透明使用外,主要还提供一个额外的通信接口,流量均衡装置可以通过该通信接口修改相应点播客户机的点播请求转发方向。在这种情况下,全局流量均衡主要是通过将点播客户机的点播请求,依据全局网络状况转发到最合适的流量均衡装置处而得到实现。

为了实现这个目的,对VOD应用方案进行微调,根据具体数量将网络中的流量均衡装置分为两级或者三级,每一级的下一层流量均衡装置将所属区域的网络状况发到上一层的流量均衡装置中。最终汇总到一个事先指定的主控流量均衡装置中,该流量均衡装置根据全局流量均衡策略以及实际网络状况控制所有点播客户机上客户端软件的点播转发方向,如图1所示。

2 客户端软件设计

该改进方案的关键在于客户端软件。客户端软件需要实现的最主要功能是将客户机的点播请求重定向到流量均衡装置中,并且引导服务器将流媒体数据发送到流量均衡装置中。由于目前主流流媒体协议RTSP协议簇在发送流媒体数据前,必须在服务器及客户端之间经过多次RTSP协商,确定具体参数,而后续的操作则根据RTSP协商的结果进行。如果在客户机对点播软件发起的RTSP协商过程进行干预时,则完全可实现点播全过程的重定向。本文客户端软件的设计思想正是基于这一点。实现RTSP协商数据包的重定向实质是实现数据包的截获、修改和转发,在客户端发起连接时,从网络底层将请求数据包拦截,并根据接收到的命令将其目的IP地址修改再发出去,接收到回复包再进行反向的处理,而这一切对于客户机的点播软件都是透明的。

由于目前VOD系统中的用户端以采用Windows操作系统的微机为主,该客户端软件的设计面向Windows。在Windows下实现这些功能需要使用内核模式驱动程序[4]。目前适用于该客户端要求的可选内核模式驱动模式包括:微端口NIC 驱动程序(Miniport NIC Drivers) 、中间层驱动程序( Intermediate Drivers) 、协议驱动程序(Protocol Drivers)以及过滤器钩子驱动程序(IP Filter Driver Hook)等[5-7]。相比较而言,过滤器钩子驱动程序具有处理流程简单,效率较高的特点[8],并且从功能上能很好地满足要求。该方案采用过滤器钩子驱动程序进行设计。

过滤器钩子驱动程序依赖于Microsoft 提供的IP 协议过滤驱动程序,在Windows 2000/XP 系统中,System 32\drivers目录下的ipfltdrv.sys是Microsoft 提供的IP 协议过滤驱动程序,它允许用户注册自己的IP 数据包处理函数,即过滤器钩子函数[9]。本机所有进出的IP包都经操作系统的IP过滤驱动程序处理,而IP过滤驱动程序调用用户定义的过滤器钩子函数进行处理,确定是丢弃或者传送。

该客户端软件由处于内核态的过滤器钩子驱动程序和处于用户态的应用程序组成,应用程序包括接收主控流量均衡装置命令的监听线程和配合驱动程序工作的服务线程,如图2所示。

图1 改进方案结构示意图

图2 客户端软件结构图

过滤器钩子驱动程序中设计主要是进行过滤钩子函数的编写。该客户端软件过滤器钩子驱动程序的钩子函数完成的工作主要是比较本机进出的数据包是否符合设定的转发方向设置,如果符合则拦截,进行改写后传送,具体流程如图3所示。

图3 过滤器钩子驱动程序流程图

过滤器钩子驱动程序工作在IP层,只能改写IP包的内容,对于本机发送到其他机器的包,由于其MAC地址已经设定好,只改写IP地址不能实现数据包的重定向。为解决该问题,驱动程序修改目标IP为本机IP,端口号为约定传送端口后传送数据包。由于基于原始套接字能实现自由收发TCP包的功能[10]。应用程序中的服务线程采用原始套接字方式与驱动程序配合进行二次处理:在约定的传送端口进行监听,获取驱动程序发送的需要,重定向的IP包,根据设定的规则改写对应IP地址及端口号,再通过原始套接字转发至相应的流量均衡装置,其流程图如图4所示。

命令监听线程等待主控流量均衡装置发送的命令,一旦接收到命令,则通过修改程序的配置来实现转发方向的更改,具体流程如图5所示。

图4 应用程序服务线程流程图

图5 应用程序命令监听线程流程图

3 结 语

本文在前期的研究成果即基于流媒体流量均衡装置的VOD方案基础上,提出一种改进方法。在点播的用户计算机上添加一个客户端软件,减少了流量均衡装置间的信息交互,降低了流量均衡装置的负载,并且该软件直接对用户发送的点播请求网络包进行拦截和改写,能与各种不同的VOD客户端配合使用,具有较高的灵活性和适用性,从而拓展了该新型VOD方案的应用前景。

参考文献

[1]杨震伦,蒋亚军,黄中伟.基于MIPS的流媒体流量均衡设备的设计[J].计算机应用与软件,2008(11):125-127.

[2]胡斌.基于Web流媒体系统的设计与实现[J].现代电子技术,2009,32(2):111-113.

[3]薛元昕,韩维.论流媒体技术及流媒体服务器的建立[J].现代电子技术,2004,27(16):28-31.

[4]王兰英,居锦武.Windows内核模式驱动程序运行环境的分析[J].微计算机信息,2005(23):201-202.

[5]廖永红,李洛,黄战.基于Windows 200x的WDM体系的IP过滤实现技术[J].计算机工程与设计,2007,22(11):5 425-5 427.

[6]裴林,曹斌.基于NDIS中间层的网络数据包拦截技术及实现[J].计算机安全,2008(12):13-15.

[7]李明欣,佘堃.基于NDIS中间驱动的入侵检测[J].计算机工程与设计,2007(1):51-52.

[8]吕建军,罗万伯,陈蓉,等.基于过滤器钩子驱动的数据包过滤研究与实现[J].四川大学学报:自然科学版,2005,41(4):754-757.

[9]莫向阳.基于Filter-Hook Drive设计个人防火墙[J].广东技术师范学院学报,2007(10):18-20.

[10]卢建华,蒋明,陈淑芳.网络数据包捕获及分析[J].网络安全技术与应用,2009(2):16-18.