发明名称 基于会话初始化协议的流媒体直播P2P网络方法
摘要 本发明属于互联网流媒体信息传输技术领域,其特征在于:本发明含有客户端程序,SIP服务器程序,对等体选择程序和流媒体服务器程序,他们依次放在客户端、SIP服务器、扩展媒体服务器和流媒体服务器上,基于SIP协议,客户端利用P2P网络向SIP服务器请求节目,SIP服务器则把该请求转发至扩展媒体服务器,扩展媒体服务器为客户选择最佳节目源,可以是别的客户或者是流媒体服务器,客户端便可根据该节目源的地址下载流媒体节目,并把节目缓存信息发往扩展媒体服务器,客户端或流媒体服务器也可向扩展媒体服务器发送节点状态的变更信息,从而引起媒体信息数据库的刷新;本发明具有:延时小、带宽消耗小、视频、音频效果好的优点。
申请公布号 CN100493091C 申请公布日期 2009.05.27
申请号 CN200610011473.7 申请日期 2006.03.10
申请人 清华大学 发明人 黄永峰;刘辉;何杰;李星
分类号 H04L29/06(2006.01)I 主分类号 H04L29/06(2006.01)I
代理机构 代理人
主权项 1. 基于会话初始化协议的流媒体直播P2P网络方法,其特征在于,该方法是在一个基于会话初始化协议的IPTv系统中实现的,所述系统含有:客户端:为各单独的PC机,或移动通信终端,或其它的非PC机终端;在该客户端上设有:SIP消息接收、发送、解析模块,所述SIP是会话初始化协议的简称,下同;SIP消息处理模块,与所述SIP消息接收、发送、解析模块互连;同时设有与其它P2P用户交互的接口;流媒体接收模块,与所述SIP消息处理模块互连;流媒体播放模块,输入接口与该流媒体接收模块的输出接口连接;下游节点连接处理模块,分别设有所述SIP消息处理模块、流媒体接收模块输出数据的输入接口;流媒体发送模块,与所述下游节点连接处理模块互连,而且该流媒体发送模块还设有该流媒体接收模块输出数据的输入接口;下游节点探测模块,设有:该下游节点连接处理模块输出数据的输入端口,分别向该流媒体发送模块、SIP消息处理模块输送下游节点探测数据的输出端口;备份节点探测模块,与所述SIP消息处理模块互连;状态信息处理模块,设有向所述SIP消息处理模块输出处理后的状态信息的输出端口,以及接收所述下游节点连接处理模块的下游节点信息的接收端口;延时计算模块,与该状态信息处理模块互连,通过检测本节点到某个标准节点的延时,以确定自己的相对时延,传送给该状态信息处理模块;有效带宽计算模块,根据延时计算模块提供的延时数据来计算有效带宽,再向状态信息处理模块发出:发送的数据量/延时时间的比值;以上所述各模块实现以下的操作:与其他的客户交互,从他们那里得到需求的节目信息;向下述SIP服务器注册自己的信息;向下述扩展媒体服务器实时的发送自己的更新消息,或者请求节目,并注册自己的节目信息;从包括其他客户端和下述媒体服务器在内的节目源下载、存储并播放节目;SIP服务器,分布在SIP高速路由服务器上,SIP服务器是一个工业增强型的基于SIP协议的自由SIP服务器;扩展媒体服务器,拥有自己单独的通用资源标识符URI,通过以下程序模块为客户端选择最佳的节目源进行节目下载:SIP消息接收、发送、解析模块与客户端的相应模块等同;SIP消息处理模块,与所述扩展媒体服务器中的SIP消息接收、发送、解析模块互连,该SIP消息处理模块与客户端的相应模块等同;信息收集模块,设有从所述SIP消息处理模块输出的更新后的状态信息,并且对发送来的离去节点是否删除的信息进行决策:是否与该离去节点相关的所有节点都向信息收集模块发出了该节点离去的信息;状态信息数据库,接收所述信息收集模块发来的状态信息;最佳对等体选择模块,与所述SIP消息处理模块互连,同时设有接收来自该状态信息数据库发送来的状态信息输入端口;该最佳对等体选择模块根据SIP消息处理模块的节目对等体选择需求,再根据状态信息库中的数据,选择最佳的对等体节点,即:针对一个节目请求,首先从状态信息数据库中选择缓存了该节目的节点,再考虑双方的IP关系,分析是否在一个网段内,若是,则优先考虑该节点,否则,任选一个节点作为最佳对等体节点;用户更新模块,设有:从该状态信息模块所发送来的状态信息的接收端口,以及发向该SIP消息处理模块的用户更新消息接口,以完成向所有快要过期的节点发送即将过期用户的信息;媒体服务器,用PC机实现,相当于一个普通用户,把本地采集到的信息流化,发送给相应的提出请求的用户,这是通过以下程序模块实现的:SIP消息接收、发送、解析模块与客户端的相应模块等同;SIP消息处理模块,与所述媒体服务器中的SIP消息接收、发送、解析模块互连;除了没有设其他用户交互接口外,该SIP消息处理模块与客户端相应模块相同;流媒体文件读取模块,从原始的编码好的视频文件中提取出必需的文件头信息以及文件头本身,并把这些内容传送给下述下游节点连接处理模块,同时向下述流媒体发送模块提供相关的遵守实时传输协议的流媒体包;下游节点连接处理模块,设有所述媒体文件读取模块输出的编码好的视频文件信息的接收端口;同时设有接收SIP消息处理模块输出的下游节点信息的输入端口;流媒体发送模块,与所述下游节点连接处理模块互连,同时设有接收该流媒体文件读取模块输出的遵守实时传输协议的流媒体包的输入端口;下游节点探测模块,设有:来自该下游节点连接处理模块发送来的下游节点连接处理信息接收端口,分别发往所述流媒体发送模块和SIP消息处理模块的下游节点探测信息输出端口;状态信息处理模块,设有:下游节点连接处理信息接收端口,以及发送到SIP消息处理模块的状态信息处理数据输出端口;延时计算模块,与所述的状态信息处理模块相连,通过监测本节点到几个标准节点的延时以确定自己的相对延时,传送给所述状态信息处理模块;有效带宽计算模块,根据延时计算模块提供的延时数据来计算有效带宽,再向状态信息处理模块发出:发送的数据量/延时时间的比值;所述基于会话初始化协议的流媒体直播P2P网络方法依次含有如下的步骤:步骤1. 初始化客户端,设定:IP地址,端口号,文件保存的位置以及编解码方式;SIP服务器,设定:IP地址,端口号,初始化用户信息数据库;扩展媒体服务器,设定:IP地址,端口号,初始化媒体信息数据库;媒体服务器,设定:IP地址,端口号,以及编码方式;步骤2. 注册客户端向SIP服务器注册包括用户名和密码在内的自己的信息;SIP服务器在接收到用户注册后,更新用户信息数据库;扩展媒体服务器向SIP服务器注册包括用户名和密码在内的自己的信息,然后,等待媒体服务器向扩展媒体服务器注册媒体信息,更新媒体信息数据库;媒体服务器向SIP服务器注册包括用户名和密码在内的自己的信息,向扩展媒体服务器注册包括节目名称、下载速度在内的自己的媒体信息;步骤3. 客户端向SIP服务器请求节目;步骤4. SIP服务器在接收到用户的请求后,判断目的地,向扩展媒体服务器转发用户的请求;步骤5. 扩展媒体服务器在接收到客户端的节目请求之后,进行媒体信息数据库查询,找出最佳的节点来提供给客户端;步骤6. 客户端收到扩展媒体服务器的节目源地址后,向节目源请求节目;步骤7. 客户端接收、下载并播放节目源发送过来的节目,同时,缓存一部分节目;同时向扩展媒体服务器注册自己的缓存的节目信息,该信息包括:节点的IP、节点能提供的最大带宽、节点的缓存大小、以及节点内缓存的节目编号;步骤8. 客户端等待下游节点的连结,准备向下游节点发送节目;退出时向下游节点、节目源、以及扩展媒体服务器发送离开消息;步骤9. 客户端或媒体服务器在状态改变后,向扩展媒体服务器发送更新消息,该扩展媒体服务器在收到所述的更新消息后,存入,并更新媒体信息数据库。
地址 100084北京市北京100084-82信箱