支持IPv4/IPv6互访的流媒体代理服务器的研究Speaker:刘沂训山东大学网络中心susan@sdu.edu.cnContents相关工作2测试与总结4背景与问题描述31系统设计与实现33背景流媒体VOD与视频直播远程教育用户自产生媒体内容(UGC),例如Youtube视频会议远程医疗流媒体已经成为互联网上的关键应用之一IPTV问题描述IPv4/IPv6流媒体的互访问题现有流媒体应用大多基于IPv4协议IPv6流媒体服务的兴起:网络电视等。例如:上海交大的IPv6VOD视频服务。IPv4/IPv6流媒体互访的问题。流媒体协议的多样性AdobeRTMP……其它Real,Netscape;IETFStandardRTSPMicrosoftMMS相关工作RTSP协议代理[1,2]应用层的过渡方案,支持RTSP协议,易于实现和部署,。问题:无法满足协议多样性的要求。NAT-PT+ALG网络层的实现方案,与应用层协议无关。问题:需要路由器的支持,存在性能和安全问题[3]我们的改进方法:基于SOCKS代理服务器实现IPv4/IPv6流媒体互访以前工作:基于SOCKS的IPv4/IPv6过渡技术[4]。1.D.Grimm.AUDFDeveloperGrantproject:QuickTimeStreamingandIPv6[C].AUCAcademic&DevelopersConference,Adelaide,2003.2.张雪,董永强,黄一鸣.支持IPv4/IPv6的RTSP流媒体应用代理的设计和实现[J].计算机科学,2006,33(3):140-144.3.C.Aoun,EnergizeUrnet,E.Davies.ReasonstoMovetheNetworkAddressTranslator-ProtocolTranslator(NAT-PT)toHistoricStatus[s],RFC4966,2007.4.H.Kitamura,ASOCKS-basedIPv6/IPv4GatewayMechanism[S],RFC3089,2001微软WMS平台现有的IPv6视频服务大多基于微软WMS平台支持MMS和RTSP两种流媒体协议,其中:MMS是微软的一个专有协议。RTSP是一项IETF标准。我们主要以RTSP协议来进行说明,原因:模块化的实现方式很容易进行扩展来支持MMS等其它协议。RTSP协议的研究和应用很广泛。RTSP协议简介RTSP协议消息流程(图1)采用的数据传输方式UDP传输TCP传输微软WMS平台通过协议翻转(ProtocolRollover)技术来实现数据传输方式的选择HTTPGET客户端网页服务器流媒体服务器会话描述SETUPRTP数据包RTCPPLAYPAUSETEARDOWN图1流媒体代理服务器的网络结构MPlayerWMSWMSWMPIPvYIPvX流媒体代理服务器(DualStacks)流媒体服务器客户端图2SOCKS代理服务器的设计SOCKS协议SOCKS是一种会话层代理协议,具有V4和V5两种标准。V5在V4的基础上,增加了增强的UDP代理、安全验证机制和支持IPv6协议等改进,这儿的SOCKS是指SOCKSV5标准工作模式根据微软WMS平台选择的数据传输方式,SOCKS代理可以有两种工作模式TCP应用模式UDP应用模式SOCKS工作模式TCP应用模式SOCKSCONNECTCONNECTOKOK交互RTSP控制消息RTCP基于TCP的RTP音视频流建立SOCKS通道SOCKS代理IPvX客户端IPvY服务器SOCKS工作模式UDP应用模式SOCKSCONNECTCONNECTOKOK建立SOCKS通道BINDBINDREPLY交互RTSP控制消息基于UDP的RTP音视频流RTCP建立UDP数据通道SOCKS代理IPvX客户端IPvY服务器实现客户端修改流媒体播放器支持SOCKS协议。即应用程序既是流媒体客户端,又是SOCKS客户端。缺点:该方法仅对开源软件Mplayer等有效,目前的商业播放器基本不支持SOCKS协议,也无法修改。改进方法:基于SOCKS化客户端的方法。即不改变应用程序,通过开发类似于TSocks、SocksCap的软件实现SOCKS代理的支持。实现服务器端Linux平台,PIV2GHZ,1GBRAM服务器支持IPv4/IPv6双协议栈和多线程技术实现了简单的SOCKS代理服务器来支持IPv4/IPv6流媒体互访优点:实现简单,主要用于测试目的。缺点:不能够用于实际部署。以后进一步的研究:SOCKS+代理服务器缓存技术测试主观测试结果服务器只设置IPv4地址,客户端只设置IPv6地址。4台PC能够同时流畅的访问流媒体服务器,运行稳定。IPv6toIPv4服务器只设置IPv6地址,客户端只设置IPv4地址。4台PC能够同时流畅的访问流媒体服务器,运行稳定。IPv4toIPv6测试结果测试项目量化测试方案TestPlayer目的:通过TestPlayer,可在一台PC上模拟大量流媒体客户端同时访问代理服务器,来测试代理服务器性能参数。原理:RTSP协议中字段:a=range:npt=0-689980表示视频的播放时间。因此,TestPlayer可在等待这段时间后再向代理服务器发送TearDonwn消息,无需实际播放视频,对PC的性能没有影响。实现:参考LiveMedia的OpenRTSP[1],实现了一个多线程的最基本的RTSP协议客户端脚本。通过命令脚本监测流媒体代理服务器的状态,如流量、CPU、延时等。1.总结提出了一种基于SOCKS代理的IPv4/IPv6流媒体过渡方案。流媒体代理服务器性能的测试。主观测试量化测试