热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

P2P网络电视须跨6道坎包括网络不可控问题

P2P技术曾被《财富》杂志列为影响Internet未来的四项科技之一,确实,从互联网设计之初的Peer-to-Peer的工作方式到现在互联网上广为流传的基于P2P的文件下载、网络电视等应用,都有着P2
P2P技术曾被《财富》杂志列为影响Internet未来的四项科技之一,确实,从互联网设计之初的Peer-to-Peer的工作方式到现在互联网上广为流传的基于P2P的文件下载、 网络电视等应用,都有着P2P技术的影子。目前,P2P技术正不断应用到军事、商业、政府、通信等领域。而IPTV业务是近两年电信领域的一个热门业务,不少的运营商将其作为下一个真正的业务增长点。目前结合P2P技术的IPTV业务应用已经有多种实现,然而P2P技术为IPTV业务实现带来灵活和高效率等优点的同时也带来一些问题,比如时延、网络不可控、可管理性差等问题,在IPTV业务中应用P2P技术必须要考虑和解决上述问题。

P2P技术的基本理念就是对等,体现在应用中就是参与者不但接受服务而且提供服务(如:共享资源等)。另外该技术主要应用于互联网,同样具有互联网尽力而为的印迹,其本身并不考虑控制、管理等问题,而这些问题在电信业务应用中则是不可或缺的重要部分,因此在IPTV的内容分发系统中应用P2P技术就必须考虑和解决一些问题,包括:业务时延问题、网络不可控问题、ADSL节点上下行带宽不对称的问题、NAT/FW穿越的问题、安全性问题、可管理性问题。

时延

用P2P技术实现IPTV业务的内容分发实际上也是一种应用层组播方式,也就是在各个Peer上实现的组播,由于P2P方式的内容分发每个内容切片往往要经过多跳才能到达请求端,因此这种方式必然会带来时延的叠加效应,即离根节点越远的用户时延越大。为解决这种时延叠加的问题,可采用:第一,对有条件的地区,推荐采用IP组播实现直播,即结合使用IP组播与应用层组播;第二,对应用层组播需考虑如下因素:

*组播树尽可能扁平,树的层次和深度不能太多,以减少时延。

*构建树的时候,将能力较强的节点(带宽、时延、CPU、内存综合能力)放在靠近根节点的位置。

*树建立后,需要采用一定的网络性能测量机制,及时对能力变弱的节点的位置进行调整。

网络不可控

用户加入、退出P2P网络有一定的随意性、偶然性。P2P网络的拓扑不可控,具有随机的动态变化的特点,如果不采取其他补偿措施,必然会导致IPTV业务的服务质量无法得到有效保障。针对此问题补偿的办法有:路由备份,即为用户请求的每个时间段的流文件切片都提供至少两条路由,当其中一条路由中断时,能迅速切换到其他可选路由继续下载所需的文件切片,以保证流文件在观看过程中的流畅性。内容本地缓存技术,也就是在用户正式播放流文件前,在其终端预先缓存一定时间长度的流文件片段,从而为观看过程中的业务抖动留出处理时间,并使用户能够顺序观看。

上、下行带宽不对称

P2P网络具有异构的特点,也就是实际的用户终端能力和网络能力都不尽相同,特别是随着宽带用户逐渐的增加,而ADSL网络用户占宽带用户很大的比例。ADSL网络上下行带宽不对称的特点对于P2P技术应用的影响比较大。即使在网络条件比较好的情况下,一个ADSL用户的上行带宽可能也无法满足其它用户的媒体接收速度,这样造成接收者带宽的浪费,同时接收媒体的质量低,会严重影响用户体验。既然无法改变大多数宽带用户采用ADSL网络的现状,就只能通过其他办法来解决这一问题,可行的方法有:接收者同时选择几个ADSL用户的发送者,根据不同的发送者的上传速度,在各个发送者之间进行平衡。根据不同的用户带宽来提供变码率的媒体编码技术,目前MPEG-2、MPEG-4、MPEG-7以及H.264等主流的高压缩率的编码技术都支持变码率的编码技术。这样可以为不同带宽的用户提供最合理的服务质量,只是实现的复杂度稍高。

 

 

NAT/FW穿越

同样,在实际网络中部署的大量NAT和防火墙设备是P2P技术应用时不得不考虑的,基于P2P的内容分发过程也必须要穿越NAT和防火墙设备才能保证IPTV业务的正常提供。常用的穿越NAT的方法有很多,可分类如下:需要修改NAT设备(ALG)、需要修改client(STUN、TURN、ICE)、需要修改Server(SBC)、需要修改NAT和client(RSIP、NSIS)、需要修改NAT和Server(Midcom)、需要修改client和增加设备(代理)。

在这些方法中,我们需要注意到的是,P2P软件穿越NAT的需求是不可预知的,因此,需要修改NAT的方法就不可行了,而P2P软件的Server端也是不统一的,仅修改Server也无法达到目的,另外增加代理设备穿越NAT的方法需要预知网络拓扑,因此不适合于P2P的动态网络,可见剩下的就只有修改Client的方法了。

在IPTV的应用中,P2P方式的通信信令要穿越NAT/FW有下面几点考虑:NAT/FW后的用户共享的资源属于低优先级资源,只有在公网上相同资源紧缺时,才考虑将其提供给其他用户使用;私网用户向公网用户申请资源前,需主动用其接收服务端口向提供服务者发包,以在NAT/FW上建立映射关系;当用户向私网用户请求服务时,可采用ICE的方式确定最佳路径。

安全性

P2P网络中大量的交互在用户之间完成,欺骗、伪装相对比较容易。从安全角度考虑,系统有必要记录下参与交互的双方用户的身份,当发生危及系统安全的事件时,追究相关用户的责任。为此,首先需引入认证机制,在客户登入P2P网络时,鉴定其身份的合法性,用户注册时,服务器向用户颁发一个以服务器私钥签名的证书,证书中包括用户名与公钥等信息。下次用户登录时不仅提供用户名与密码,还会提供服务器签名的证书,更加保证了用户身份的安全;其次用户双方交换信息前也需要互相认证对方的身份,例如:确保用户必须登录才能检索对等端的信息,检索到所需信息后,两端相互交换在注册阶段由服务器颁发的证书并验证证书的真实性,确认对端身份后通信的双方可以协商一个共享的密钥,用于数据传输或通信阶段使用。

可管理性

传统P2P网络是一种自治的网络,节点加入、退出P2P网络,注册、搜索、请求资源都不需要中心服务器的参与。这一方面降低了组网的成本,另一方面也带来了管理的难度,P2P网络的运营者很难管理整个网络和单个节点。在IPTV业务中应用时,则必须要解决P2P网络可管理性差的问题,为此,可以考虑在网络的关键部位布置一定的中心服务器,负责网络的管理工作,这样虽然在一定程度上增加了成本,但是必须要在成本和可管理性两者之间进行必要的权衡。

尽管P2P技术在IPTV这样的要求可运营可管理的电信业务中应用时存在着很多需要去解决的问题,但是这些问题并不能掩盖P2P技术所固有的优势,在设计和构建基于P2P的IPTV业务系统时,综合考虑上述问题,不但可以在一定程度上克服这些问题,而且还可以在降低成本的同时为IPTV业务带来更多更灵活的业务形式。另一方面,P2P技术有着坚实的用户需求基础,需求决定存在。无论是互联网业务还是电信业务,个性化和多样化是其发展的必然趋势,也是大多数用户的共同需求,P2P技术的应用正好能够促成这两点。


推荐阅读
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文介绍了RPC框架Thrift的安装环境变量配置与第一个实例,讲解了RPC的概念以及如何解决跨语言、c++客户端、web服务端、远程调用等需求。Thrift开发方便上手快,性能和稳定性也不错,适合初学者学习和使用。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法
    本文介绍了解决nginx启动报错epoll_wait() reported that client prematurely closed connection的方法,包括检查location配置是否正确、pass_proxy是否需要加“/”等。同时,还介绍了修改nginx的error.log日志级别为debug,以便查看详细日志信息。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 本文讨论了在VMWARE5.1的虚拟服务器Windows Server 2008R2上安装oracle 10g客户端时出现的问题,并提供了解决方法。错误日志显示了异常访问违例,通过分析日志中的问题帧,找到了解决问题的线索。文章详细介绍了解决方法,帮助读者顺利安装oracle 10g客户端。 ... [详细]
  • 网卡工作原理及网络知识分享
    本文介绍了网卡的工作原理,包括CSMA/CD、ARP欺骗等网络知识。网卡是负责整台计算机的网络通信,没有它,计算机将成为信息孤岛。文章通过一个对话的形式,生动形象地讲述了网卡的工作原理,并介绍了集线器Hub时代的网络构成。对于想学习网络知识的读者来说,本文是一篇不错的参考资料。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • 本文详细介绍了云服务器API接口的概念和作用,以及如何使用API接口管理云上资源和开发应用程序。通过创建实例API、调整实例配置API、关闭实例API和退还实例API等功能,可以实现云服务器的创建、配置修改和销毁等操作。对于想要学习云服务器API接口的人来说,本文提供了详细的入门指南和使用方法。如果想进一步了解相关知识或阅读更多相关文章,请关注编程笔记行业资讯频道。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
author-avatar
焦作艾文斯
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有