论文部分内容阅读
摘 要:本文在提出了应用于教学的P2P模型,针对这个系统的文件共享提出超级节点的思想并给出了模型的设计思想。接着介绍了如何实现对等端的通信--IP打洞,通过Java平台对系统中的即时通信功能和语音聊天功能进行了设计和实现。
关键词:P2P;Java平台;超级节点
中图分类号:G434文献标识码:A
Design of the Teaching Case System Based on P2P Technology
QIAO Zhi-hui
(School of Electronics & Computer Science and Technology North University of China, Shanxi Taiyuan 030051)
Key words: design;teaching case system;P2P technology
1 P2P介绍
P2P技术又称为对等计算,是建立在网络应用层上的一种特殊的分布式系统,每一个对等节点都可以通过各自的路由相互通信,实现计算机资源和服务共享的一种应用模式。P2P模式与传统C/S模式的关键区别在于:Peer与Peer在通信过程中,可以去掉服务器的角色,每一个Peer都是平等参与,同时作为服务使用者和服务提供者。这样资源的所有权和控制权被分散到网络的每一个节点中,就可以充分利用网络带宽,减少网络的拥塞状况,大大提高资源的有效利用率。
目前,网络教学直播系统中用户之间是没有任何联系的,但是采用P2P技术后,用户可以根据他们的网络状态和设备能力与一个或几个用户建立连接来分享数据,这种连接能减少服务器的负担和提高每个用户的视频质量。P2P技术在流媒体应用中特别适用于一些热门事件,即使是大量的用户同时访问流媒体服务器,也不会造成服务器因负载过重而瘫痪。此外,对于多人的多媒体实时通信,P2P技术也会对网络状况和视频质量带来很大改进。
2 基于P2P教学实例的系统设计
2.1系统模型
在P2P流媒体中,P2P并不是用来取代C/S模式,而是作为一种补充,每个用户节点都有两种方式获取媒体数据:从服务器直接获取或者通过其它节点获取。
本文所采取的P2P流媒体模型借鉴了DoNet模型中客户端的架构思想来实现Gossip机制。在改进型P2P流媒体模型中将媒体源和节点管理功能进行了分离, P2P流媒体模型的服务器只负责维护并管理系统中的节点信息,而把媒体源分离出来,作为一个特殊的客户端参与系统的数据分发。
系统的每个节点维护一个伙伴列表,节点可以从服务器或者伙伴节点获取媒体数据。其实,服务器作为一个特殊的节点是所有节点的伙伴。节点和伙伴节点不断地交换各自的缓存信息,然后根据伙伴的缓存信息,通过一定的数据调度算法从伙伴节点获取媒体数据。如下图所示,虚线代表控制消息的传输,实线代表媒体数据的传输。在图中,Peer2,Peer3,Peer4和服务器都是Peerl的伙伴节点,Peerl从这些节点获取媒体数据。节点的伙伴列表并不是固定的,节点在运行过程中会不断的优化伙伴列表。
图1 改进型P2P流媒体模型
从上图可以看出,总体框架分为两层结构:1、由服务器与系统中的所有客户端组成的C/S架构,所有客户端均与服务器建立一条长连接;2、由包括媒体直播源在内的所有客户端构成的一个无结构化的网状节点群,节点之间借由Gossip机制并根据一定的选择策略建立起连接。
2.2本文采取的P2P流媒体服务器
图2 改进型P2P流媒体服务器架构
服务器主要包括两个模块:节点管理模块和数据服务模块。
节点管理模块的功能为响应节点请求并且为节点随机选择伙伴节点,同时更新PeerList。协助客户端实现简单Gossip协议,同时负责维护系统中所有节点的信息。数据服务模块的功能为接收并管理其他节点的请求,并发送相应的媒体数据。
服务器作为整个系统的中央控制服务器,负责管理网络中所有节点,不参与系统的数据分发,维护所有节点的列表PeerList。可以充分进行协助节点实现Gossip协议、节点信息管理等方面。其功能主要在于节点信息的管理与维护。
2.3节点信息的管理与维护
本直播系统设计中只存在一个媒体源,而且这个媒体源也总是系统中第一个登陆进来的客户端。其他客户端节点进入网络之后,首先从服务器获取初始的成员列表,记为MemberList。而且MemberList会在程序运行过程当中被动态地更新,但是这些新的节点信息是由节点向自己的伙伴节点请求它们的伙伴列表信息,并非从服务器上获取的,而且将返回的节点添加到自己的成员列表中。
为了实时地保证PeerList总是反映真实的P2P覆盖网络,服务器通过客户端不断发送消息来监控所有节点的动态情况。服务器为每一个媒体源直播源维护一个保存所有节点信息的列表PeerList。每个客户端通过周期性地发送消息来向服务器证明其存在,如果服务端在预定的时间内未收到客户的消息,则认为该客户端已经下线。
由于引入了C/S的架构,并且在服务器端记录了系统中包含所有节点信息的PeerList,利用服务器本文设计了一个简单Gossip协议:在简单Gossip协议中,节点并不是通过与本地局部视图中节点的Gossip交互来感知整个网络的规模大小,而是由服务器在检测到系统节点总数发生一定规模的变化时,将网络规模变化通知给所有的节点,但是节点的局部视图仍然遵循SCAMP协议的设计,这样,不用遵循概率约束,覆盖网的所有节点也可以准确地知道网络的大小,以调整自己局部视图的大小。
2.4 P2P流媒体客户端
对于客户端的设计,本文主要参考DoNet模型的客户端架构思想,并借助服务器的协助实现Gossip协议。在客户端运行过程中,它作为一个独立的实体参与系统的数据分发,通过不断地优化伙伴节点以及设计良好的数据调度策略,遵循Gossip协议与系统中的其它节点进行交互,这样就可以达到提高本地媒体传输质量的最终目的。
图3 改进型P2P流媒体客户端架构
如图所示,客户端节点的架构主要包含两大模块:数据接收模块和节点服务模块。数据接收模块负责从其他节点接收媒体数据,主要功能包括:
(1)伙伴节点管理和缓冲区的更新:动态地维护一个伙伴列表,并不断地更新伙伴的缓冲区。
(2)数据调度算法,根据伙伴的缓冲区为每个数据片断寻找一个最优的提供者。
(3)数据接收,根据调度结果同时从多个节点接收数据。节点服务模块负责媒体数据的分发,主要功能为接收并管理其他节点的请求,并发送媒体数据。
(4)网络监视和QoS控制模块,主要功能为监测目前的网络状况,用于QoS控制。
2.5伙伴的管理与优化
节点加入网络后,首先从服务器获取初始的伙伴列表,记为PartnerList,在程序运行中,PartnerList会被动态地更新,节点会不断从服务器中选择新的节点作为新的伙伴,这样做主要有两个原因:
(1)网络中节点的不稳定性。网络中的任何一个节点都有可能在任何时候离开,为了维护数量相对稳定的伙伴数目,一旦检测到有伙伴离开,需要从服务器获取新的节点加入到伙伴列表PartnerList。
(2)优化节点的伙伴。好的伙伴应该有比较大的输出带宽,并且物理连接上应该尽可能地近。为了选择更好的伙伴节点,每个节点会为它当前的每个伙伴计算一个分数,在每一轮的调度后,节点会从伙伴列表中删除分数最低的伙伴节点,并从服务器获取一个新的节点作为伙伴节点。
(3)数据的调度策略
调度的目的就是根据节点和伙伴的BM信息,如何尽快地从伙伴节点获取媒体数据,不同的调度算法对整个系统的数据分发的性能有很大的影响。数据调度的主要约束有两个:在播放时间的约束下,媒体数据必须在播放时间到达之前获得,否则就没有任何意义;分层可扩展编码中,高层数据对低层数据的依赖,如果在播放时间到达之前没有获得基本层的数据,则所有获得的增强层的数据都无法解码,同样没有任何意义。改进型P2P流媒体中的调度算法采用以下的原则:
(1)低层数据优先:改进型P2P流媒体调度算法的第一个原则就是优先传输低层的数据,因为在分层可扩展性编码中,高层数据的解码依赖于低层的数据。
(2)稀少数据优先:在系统中,如果某个片断的提供者越少,就越难满足播放时间Deadline的要求,因此,在改进型P2P流媒体中,节点首先获取只有一个提供者的数据片断,然后获取有2个提供者的片断,依次类推。在获取多个提供者的片断时,在可以保证Deadline的情况下,选择带宽最大的提供者。
(3)随机选择第一个数据块:稀少数据优先的一个例外就是节点刚加入时选择下载的第一个数据块。从整个系统看,数据的总下载量等于数据的总上载量。在节点刚加入时,没有任何数据可以提供上载服务,所以需要尽快获取一块数据,在获得一块完整的数据之后,节点才开始提供数据分发服务。然而下载稀少的数据往往比较慢,所以在选择第一个数据块时采取随机的方式,在完成第一个数据块的下载后,调度策略转为前两个策略。
3 结束语
随着计算机技术和网络技术的发展,计算机辅助教学发挥着越来越重要的作用,然而其发展深受网络带宽的限制。由于P2P网络技术的日渐成熟,有效解决了网络带宽的瓶颈问题。P2P计算模式的体系结构有着独特的优势,它能利用Internet中的各个节点进行对等计算,充分挖掘Internet空闲资源,在利用率、扩展性、容错等方面具有潜在巨大优势,本文提出了应用于教学的P2P模型,针对这个系统的文件共享提出超级节点的思想并给出了模型的设
计思想。
参考文献:
[1]龚海刚.P2P流媒体关键技术的研究进展[J].计算机研究与发展,2005,(12).
[2]金一强,丁新.P2P技术及其在现代远程教育中的应用[J].现代远距离教育,2007,(02).
关键词:P2P;Java平台;超级节点
中图分类号:G434文献标识码:A
Design of the Teaching Case System Based on P2P Technology
QIAO Zhi-hui
(School of Electronics & Computer Science and Technology North University of China, Shanxi Taiyuan 030051)
Key words: design;teaching case system;P2P technology
1 P2P介绍
P2P技术又称为对等计算,是建立在网络应用层上的一种特殊的分布式系统,每一个对等节点都可以通过各自的路由相互通信,实现计算机资源和服务共享的一种应用模式。P2P模式与传统C/S模式的关键区别在于:Peer与Peer在通信过程中,可以去掉服务器的角色,每一个Peer都是平等参与,同时作为服务使用者和服务提供者。这样资源的所有权和控制权被分散到网络的每一个节点中,就可以充分利用网络带宽,减少网络的拥塞状况,大大提高资源的有效利用率。
目前,网络教学直播系统中用户之间是没有任何联系的,但是采用P2P技术后,用户可以根据他们的网络状态和设备能力与一个或几个用户建立连接来分享数据,这种连接能减少服务器的负担和提高每个用户的视频质量。P2P技术在流媒体应用中特别适用于一些热门事件,即使是大量的用户同时访问流媒体服务器,也不会造成服务器因负载过重而瘫痪。此外,对于多人的多媒体实时通信,P2P技术也会对网络状况和视频质量带来很大改进。
2 基于P2P教学实例的系统设计
2.1系统模型
在P2P流媒体中,P2P并不是用来取代C/S模式,而是作为一种补充,每个用户节点都有两种方式获取媒体数据:从服务器直接获取或者通过其它节点获取。
本文所采取的P2P流媒体模型借鉴了DoNet模型中客户端的架构思想来实现Gossip机制。在改进型P2P流媒体模型中将媒体源和节点管理功能进行了分离, P2P流媒体模型的服务器只负责维护并管理系统中的节点信息,而把媒体源分离出来,作为一个特殊的客户端参与系统的数据分发。
系统的每个节点维护一个伙伴列表,节点可以从服务器或者伙伴节点获取媒体数据。其实,服务器作为一个特殊的节点是所有节点的伙伴。节点和伙伴节点不断地交换各自的缓存信息,然后根据伙伴的缓存信息,通过一定的数据调度算法从伙伴节点获取媒体数据。如下图所示,虚线代表控制消息的传输,实线代表媒体数据的传输。在图中,Peer2,Peer3,Peer4和服务器都是Peerl的伙伴节点,Peerl从这些节点获取媒体数据。节点的伙伴列表并不是固定的,节点在运行过程中会不断的优化伙伴列表。
图1 改进型P2P流媒体模型
从上图可以看出,总体框架分为两层结构:1、由服务器与系统中的所有客户端组成的C/S架构,所有客户端均与服务器建立一条长连接;2、由包括媒体直播源在内的所有客户端构成的一个无结构化的网状节点群,节点之间借由Gossip机制并根据一定的选择策略建立起连接。
2.2本文采取的P2P流媒体服务器
图2 改进型P2P流媒体服务器架构
服务器主要包括两个模块:节点管理模块和数据服务模块。
节点管理模块的功能为响应节点请求并且为节点随机选择伙伴节点,同时更新PeerList。协助客户端实现简单Gossip协议,同时负责维护系统中所有节点的信息。数据服务模块的功能为接收并管理其他节点的请求,并发送相应的媒体数据。
服务器作为整个系统的中央控制服务器,负责管理网络中所有节点,不参与系统的数据分发,维护所有节点的列表PeerList。可以充分进行协助节点实现Gossip协议、节点信息管理等方面。其功能主要在于节点信息的管理与维护。
2.3节点信息的管理与维护
本直播系统设计中只存在一个媒体源,而且这个媒体源也总是系统中第一个登陆进来的客户端。其他客户端节点进入网络之后,首先从服务器获取初始的成员列表,记为MemberList。而且MemberList会在程序运行过程当中被动态地更新,但是这些新的节点信息是由节点向自己的伙伴节点请求它们的伙伴列表信息,并非从服务器上获取的,而且将返回的节点添加到自己的成员列表中。
为了实时地保证PeerList总是反映真实的P2P覆盖网络,服务器通过客户端不断发送消息来监控所有节点的动态情况。服务器为每一个媒体源直播源维护一个保存所有节点信息的列表PeerList。每个客户端通过周期性地发送消息来向服务器证明其存在,如果服务端在预定的时间内未收到客户的消息,则认为该客户端已经下线。
由于引入了C/S的架构,并且在服务器端记录了系统中包含所有节点信息的PeerList,利用服务器本文设计了一个简单Gossip协议:在简单Gossip协议中,节点并不是通过与本地局部视图中节点的Gossip交互来感知整个网络的规模大小,而是由服务器在检测到系统节点总数发生一定规模的变化时,将网络规模变化通知给所有的节点,但是节点的局部视图仍然遵循SCAMP协议的设计,这样,不用遵循概率约束,覆盖网的所有节点也可以准确地知道网络的大小,以调整自己局部视图的大小。
2.4 P2P流媒体客户端
对于客户端的设计,本文主要参考DoNet模型的客户端架构思想,并借助服务器的协助实现Gossip协议。在客户端运行过程中,它作为一个独立的实体参与系统的数据分发,通过不断地优化伙伴节点以及设计良好的数据调度策略,遵循Gossip协议与系统中的其它节点进行交互,这样就可以达到提高本地媒体传输质量的最终目的。
图3 改进型P2P流媒体客户端架构
如图所示,客户端节点的架构主要包含两大模块:数据接收模块和节点服务模块。数据接收模块负责从其他节点接收媒体数据,主要功能包括:
(1)伙伴节点管理和缓冲区的更新:动态地维护一个伙伴列表,并不断地更新伙伴的缓冲区。
(2)数据调度算法,根据伙伴的缓冲区为每个数据片断寻找一个最优的提供者。
(3)数据接收,根据调度结果同时从多个节点接收数据。节点服务模块负责媒体数据的分发,主要功能为接收并管理其他节点的请求,并发送媒体数据。
(4)网络监视和QoS控制模块,主要功能为监测目前的网络状况,用于QoS控制。
2.5伙伴的管理与优化
节点加入网络后,首先从服务器获取初始的伙伴列表,记为PartnerList,在程序运行中,PartnerList会被动态地更新,节点会不断从服务器中选择新的节点作为新的伙伴,这样做主要有两个原因:
(1)网络中节点的不稳定性。网络中的任何一个节点都有可能在任何时候离开,为了维护数量相对稳定的伙伴数目,一旦检测到有伙伴离开,需要从服务器获取新的节点加入到伙伴列表PartnerList。
(2)优化节点的伙伴。好的伙伴应该有比较大的输出带宽,并且物理连接上应该尽可能地近。为了选择更好的伙伴节点,每个节点会为它当前的每个伙伴计算一个分数,在每一轮的调度后,节点会从伙伴列表中删除分数最低的伙伴节点,并从服务器获取一个新的节点作为伙伴节点。
(3)数据的调度策略
调度的目的就是根据节点和伙伴的BM信息,如何尽快地从伙伴节点获取媒体数据,不同的调度算法对整个系统的数据分发的性能有很大的影响。数据调度的主要约束有两个:在播放时间的约束下,媒体数据必须在播放时间到达之前获得,否则就没有任何意义;分层可扩展编码中,高层数据对低层数据的依赖,如果在播放时间到达之前没有获得基本层的数据,则所有获得的增强层的数据都无法解码,同样没有任何意义。改进型P2P流媒体中的调度算法采用以下的原则:
(1)低层数据优先:改进型P2P流媒体调度算法的第一个原则就是优先传输低层的数据,因为在分层可扩展性编码中,高层数据的解码依赖于低层的数据。
(2)稀少数据优先:在系统中,如果某个片断的提供者越少,就越难满足播放时间Deadline的要求,因此,在改进型P2P流媒体中,节点首先获取只有一个提供者的数据片断,然后获取有2个提供者的片断,依次类推。在获取多个提供者的片断时,在可以保证Deadline的情况下,选择带宽最大的提供者。
(3)随机选择第一个数据块:稀少数据优先的一个例外就是节点刚加入时选择下载的第一个数据块。从整个系统看,数据的总下载量等于数据的总上载量。在节点刚加入时,没有任何数据可以提供上载服务,所以需要尽快获取一块数据,在获得一块完整的数据之后,节点才开始提供数据分发服务。然而下载稀少的数据往往比较慢,所以在选择第一个数据块时采取随机的方式,在完成第一个数据块的下载后,调度策略转为前两个策略。
3 结束语
随着计算机技术和网络技术的发展,计算机辅助教学发挥着越来越重要的作用,然而其发展深受网络带宽的限制。由于P2P网络技术的日渐成熟,有效解决了网络带宽的瓶颈问题。P2P计算模式的体系结构有着独特的优势,它能利用Internet中的各个节点进行对等计算,充分挖掘Internet空闲资源,在利用率、扩展性、容错等方面具有潜在巨大优势,本文提出了应用于教学的P2P模型,针对这个系统的文件共享提出超级节点的思想并给出了模型的设
计思想。
参考文献:
[1]龚海刚.P2P流媒体关键技术的研究进展[J].计算机研究与发展,2005,(12).
[2]金一强,丁新.P2P技术及其在现代远程教育中的应用[J].现代远距离教育,2007,(02).