主流流媒体软件pplive和ppstream的分析

     现有P2P流媒体软件开发新的流媒体系统,充分了解现有的流媒体软件的优劣得失是必不可少的。主流的软件pplive和ppstream就是分析的对象。以下分析全部基于Sockmon5的数据包拦截。手上资源有限,对协议的分析不很充分。        

     一、pplive:这款软件的数据分发引擎和播放器是分离的,也给了我们专门分析数据分发引擎的机会。 pplive会打开本地的8888端口,作为windows media服务的端口。对于windows media player来说,认为本地8888端口就是一个cs模式的windows media服务(real格式类同)。节点会在一个时段内集中向几十个其他节点发送udp数据包,每一个数据包略有区别,之后收到其他节点回复。分析为确认节点存在的数据包,或许带有测速信息。之后节点会和速度较高的几个节点建立连接。传输的数据包格式无法解析,但是可以看到规律。数据头为十六进制e9034601的数据包从19K到8K不等,内容丰富。其他规格的数据包头还有e9034401、e9034101等等。e9034201似乎是连接断开的标志。e9034501的数据包大小一致,每发送一次第六字节加一,e9034401的数据分发每个数据包是一致的。每一个节点都主动连接含有数据的上线,这可以从节点没有频繁和连续的accept动作看出。否则用户在获取数据之前必定有一组连续accept的被连接过程。一旦选择一个速度最高的节点,则播放所需所有数据都从这个节点获得。这点从获取数据包的流密度和各IP数据包之间的对比可知。在防火墙穿透策略上,经分析得知每个节点把自己的ip地址和开放的端口号汇报到服务器,服务器把这些信息通知有连接需要的节点。节点不区分获得的ip是公网ip还是内网ip(丛发出的udp测速数据包目标经常为192.168.0.*网段可知)。如果是公网的节点发起连接,连接公网ip的节点一般可以正常连接,如果连接内网ip的节点,肯定无法连接。如果是内网节点发起连接,连接公网ip的节点一般可以正常连接,如果连接内网ip的节点,分为两种情况:1、此节点位于不同局域网中,肯定连接不上;2、此节点位于同一局域网中,正好实现了内网互联。由此可知数据分发引擎完全不具备不同局域网的节点连接能力,网络性能非常依赖公网节点数量。按照这种模式开发流媒体产品,对不同媒体格式和媒体服务器的兼容性较好,节点之间连接策略的处理也比较简单高效。但难点在于如何把流媒体服务器和数据分发层连接,和如何模拟流媒体服务器和播放器握手。这部分技术确实可以解决,但之前没有考虑过实现细节。节点开始播放流媒体之前,必须和服务器建立连接,获得节点列表,然后判断节点之间的联通性。和可以连通的节点建立连接,尝试获得数据填充本地缓冲区。在此过程中,判断速度较高的节点。在持续连接建立后,已经可以获得稳定数据,继续保持低速的连接的发起,遇到更高速的节点,则转向由更高速的节点提供数据(此动作为分析得知,没有非常明确的证据)。

       二、ppstream: ppstream内嵌了浏览器,太多80端口的操作严重干扰了对socket的分析。但是出乎意料,ppstream的连接建立过程比pplive清晰得多! ppstream的缓冲等待画面位于播放窗口内,而不是像pplive那样由数据分发引擎的单独窗口显示。具体内容为嵌入flash的html页面。由61.172.197.242的服务器提供节目表和频道表等内容,web Server:Apache/2.0.54 (Unix) PHP/4.4.0。61.152.199.56似乎是广告的web服务器。 ppstream和pplive共有的关键字串应该是验证协议。连接61.152.240.252:11012, 回复xml格式的广播源信息,可阅读内容为从61.152.240.252获得广播源信息后,开始连接大量节点,握手过程等同于61.152.240.252。从多次不同时段不同频道连接的情况看,此节点为超级node。并且一个节点上同时承载了多路流媒体的广播。分析可知1.0.0.2138为节点版本。产生本地的回环连接,过程如下:接受端口发送信息:连接到本地节点,之后连接断开。发起端口接到信息:连接到本地节点,之后也断开连接。这时已经从61.152.240.252:11012开始缓冲流媒体信息。并且尝试两个新的节点连接。 4436端口完成绑定。内嵌播放器打开http目录下的.asx文件,由4436端口发起连接至18988端口,按照.asx文件内容请求.asf流媒体。18898端口回复服务器信息及ok。4436端口断开。本地4441端口连接18898端口,请求播放.asf文件。本地4444端口连接18898端口,请求播放.asf文件,获得数据信息。规格等同广播源信息中所包含的可阅读内容。与60.220.82.165握手后,接到信息:上层节点服务繁忙,希望进行降层操作,之后连接断开。新连接的节点此时已经开始传输数据至本地缓存,保持稳定传输的有三个节点。同时还有若干连接正在发起。可以看出ppstream的每一个媒体数据包大小为4K。远程向本地请求数据包,的规则同上。握手信息的格式也相同。分析ppstream所采用的是所连接节点向本地节点通知其它节点存在的方法。预想中,这种调度算法认为与自己连接速度快的节点所连接的节点与自己的速度一般也快。以这种优化手段逐步遍历节点树中所有可能高速的节点。  

 

转载于:https://www.cnblogs.com/jia_vip/archive/2010/11/09/1872717.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495702.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

无人车、超级高铁、智慧城市......这是一份来自未来的出行报告

来源:机器之能 作者:Charles McLellan 编译:王宇欣在新兴技术的驱动下,运输业即将迎来第二春。虽然个中细节还需打磨,但未来的运输系统必然会实现数据驱动、彼此相关联、高度自动化。有关技术与运输业未来的文章比比皆…

在 VC++ 中使用 内联汇编

From:https://blog.csdn.net/root19881111/article/details/8450266 VC内联汇编(MSDN相关内容完整翻译):http://www.cppblog.com/xingkongyun/archive/2008/12/21/70003.html 调 call 和 偷功能 时,VC中内联汇编容易产生的错误:…

OFD 版式技术解析系列(一):开篇

在版式电子文件领域,大家比较熟悉的就是 PDF(Portable Document Format)格式,该格式由 Adobe 公司在 1992 年发布,迄今已经有 28 个年头,2008 年 7 月 1 日,IS 组织正式发布 PDF 的国际标准,PDF 成为了独立…

无人驾驶急需解决:规划控制和传感器价格高两大问题

来源:AI科技大本营 作者 :Mavis2017 年百度 AI 开发者大会上,现场视频连线了正乘坐无人驾驶汽车行驶在五环上朝会场赶来的李彦宏,他坐在副驾驶上解说,身边司机的双手并没有触碰方向盘,也正是因为这句话&am…

CString 与 LPCWSTR、LPSTR、char*、LPWSTR 等类型的转换

From:https://www.cnblogs.com/leanee/articles/2940088.html char [] 到 LPWSTR转换的一个具体应用:http://www.cppblog.com/lateCpp/articles/153358.html CString详细讲解:https://blog.csdn.net/qq_41786318/article/details/81989217 …

ofd电子文档内容分析工具(分析文档、签章和证书)

前言 ofd是国家文档标准,其对标的文档格式是pdf。ofd文档是容器格式文件,ofd其实就是压缩包。将ofd文件后缀改为.zip,解压后可看到文件包含的内容。 加入QQ交流群:618168615。获取下载程序。 ofd文件解压后,可以看到…

关于信任

[caption id"attachment_349" align"alignnone" width"374" caption"Trust is the most important thing to the team!"][/caption] 偶然间看到一张截图,是杭州小马哥不知何年何月何地做的show,这句话从他嘴里讲…

ES的安装和RestClient的操作

目录 初识elasticsearch 什么是elasticsearch elasticsearch的发展 Lucene的优缺点 elasticsearch的优势 倒排索引 es与mysql的概念对比 文档 索引 概念对比 架构 安装es 安装kibana 安装ik分词器 分词器 安装ik分词器 ik分词器的拓展和停用词典 操作索引库…

深度 | 智慧•城市,基于国际视野下的思考

来源:智慧城市决策参考智慧城市的兴起,得益于ICT技术的迅猛发展。经过这些年国内外诸多城市的探索和实践,智慧城市已经从最初的营销概念,逐渐发展成为一种支持城市发展的新理念。然而在实际应用中,智慧城市的内涵仍然是…

__cdecl、__stdcall、__fastcall 与 __pascal 浅析

X86调用约定 calling convention:https://www.cnblogs.com/shangdawei/p/3323252.html__cdecl、__stdcall、__fastcall 与 __pascal 浅析:https://www.cnblogs.com/yenyuloong/p/9626658.html王爽 汇编语言第三版 第9章 转移指令的原理:https…

适配ofd签章SES_CertList

import org.bouncycastle.asn1.*;import java.io.IOException;/*** 签章者证书信息列表** author 权观宇* since 2020-04-19 17:19:36*/ public class SES_CertList extends ASN1Objectimplements ASN1Choice {/*** 签章者证书列表*/private final CertInfoList certs;/*** 签章…

全文详解:「深度学习」如何协助处理医疗中的「数据难题」

原文来源:WordPress作者:Luke Oakden-Rayner「雷克世界」编译:嗯~是阿童木呀、KABUDA、EVA医疗数据很难处理。在医学成像中,数据存储(档案)是基于临床假设进行操作的。不幸的是,这意味着当你想提…

适配ofd签章SES_Signature

import org.bouncycastle.asn1.*; import java.io.IOException; import java.security.cert.Certificate; import java.security.cert.CertificateEncodingException; import java.util.Enumeration;/*** 电子签章数据** author 权观宇* since 2020-04-19 22:04:04*/ public cl…

B站 汇编语言 视频 教程

视频资源:https://search.bilibili.com/all?keyword汇编 王爽汇编语言(全) 自学必备(311集):https://www.bilibili.com/video/av34455803 小甲鱼零基础汇编真正全集1-17章(77集): http…

Android应用程序变量

Android应用程序开发中,有的时候我们在应用程序的任何一个地方都需要访问一个全局变量,也就是在任何一个Activity中都可以访问的变量。它不会因为Activity的生命周期结束而消失。要实现应用程序级的变量,我们可以通过Application这个类来实现…

百度谷歌等联合推出机器学习基准 加速AI软硬件发展

来源:中国新闻网5月2日,由包括百度、谷歌、斯坦福大学、哈佛大学在内的多家企业和高校联合发布了一套用于测量和提高机器学习软硬件性能的国际基准MLPerf。其巨大的学术和产业价值获业界肯定,被认为不仅将加速推进机器学习硬件软件相关技术创…

王爽 汇编语言第三版 第10章 call 和 ret 指令 以及 子程序设计

第10章 call 和 ret 指令 10.1 ret 和 reft 指令 call 和 ret 指令都是转移指令,他们都修改 IP,或同事修改 CS 和 IP 。他们经常被共同来实现子程序的设计。 10.2 call 指令 和 根据位移 转移的call指令 段间转移 的 call 指令 转移地址 在 寄存器 中 的…

org/apache/maven/cli/MavenCli : Unsupported major.minor version 51.0

一、错误现象: 当改变了jdk版本时,在编译java时,会遇到Unsupported major.minor version错误。 jdk版本和stanford parser对应关系 JDK版本和Java编译器内部的版本号 J2SE 8 52, J2SE 7 51, J2SE 6.0 50, J2SE 5.0 49, JDK 1.4 48, J…

ip, tcp, udp, icmp header

Figure 1. IPv4 header Figure 2. TCP header Figure 3. UDP header Figure 4. ICMP header reference:TCP/IP Reference转载于:https://www.cnblogs.com/lbsx/archive/2010/11/30/1891814.html

人民日报三问人工智能,给法律制度带来哪些挑战?

来源:亿欧网 作者:倪弋摘要:人工智能生成物是否具有知识产权?人工智能可以替代司法者吗?人工智能侵权责任如何认定?人工智能的出现会给现行的法律制度带来了不少挑战,只有在法律研究上未雨绸缪…