论文部分内容阅读
目前网络应用中人们对于视频的需求越来越迫切,然而视频数据因为非常庞大,所以很占用网络资源。为提高用户访问的响应速度,减少网络拥塞,经常采用的网络优化方案是在现有的因特网上建立一个中间层CDN,使用户能以最快的速度,从最接近用户的地方获得所需的信息。在普通CDN网络系中采用的是基于C/S方式的内容分发机制。在此方式中,源服务器承受了内容分发的大部分负载,且这种负载随参加分发的边缘服务器的数量增多而增大。这种方式用来分发体积庞大且为数众多的视频文件容易使服务器不堪重负。为解决上述问题,本文提出了一种在CDN网络中以P2P方式进行内容分发的机制。在本文提供的方案中,通过采用P2P技术将内容分发的负载分摊在CDN网络中的各个节点(包括中心节点和边缘节点)上。采用这种机制进行内容分发时,源服务器和边缘服务器都成为一个对等节点。因此边缘服务器不仅是内容分发的客户端,还是分发的服务器端,也就是说边缘服务器可以承担内容分发的大部分负载,这样就在一定程度上提高了整个CDN网络的负载均衡能力。在此基础上着重详细分析与阐述了这一系统中一个核心调度部分-资源控制器的设计与实现。RC在CDN中是资源控制和调度模块,是PPSCDN系统的中心服务器,负责各种服务器信息的搜集和查询。它从ESD,TS收集信息,为CP,TS,CR提供服务。为完成如此功能,RC必须与多种通信实体进行交互。通过设计使一个线程中能够与多种通信实体进行交互,并且这些交互都以非阻塞的方式进行,尽可能地提高性能。我们将业务逻辑抽象成TASK类,TASK类中有业务的状态机,业务流程由GOTONEXTSTATE函数来控制。按照IO事件来给TASK划分状态,这样就可以使用EPOLL来完成业务的驱动。具体的业务驱动由READFROM和WRITETO函数来完成。一个TASK的流程处理会涉及到多个AGENT,TASK在不同AGENT间的转换就是由TASK的状态机所控制。然后通过详细设计RC与其它相关模块的接口与相互间的通信协议最终完成RC的系统功能。最后通过设计测试来验证,该RC服务器完全实现了原先设计的功能,较好地承担了资源控制和调度的任务。