论文摘要
CDN的全称是Content Delivery Network,即内容分发网络。其目的是通过在现有的Internet中增加一层新的网络架构,将网站的内容发布到最接近用户的网络"边缘",使用户可以就近取得所需的内容,从而解决Internet网络拥挤的状况,提高用户访问网站的响应速度。本文在北京市科委“基于IPv6的下一代互联网关键技术研发及产业化推动”项目课题“IPv6流媒体分发应用系统支持系统的开发”带动下,综合了其它内容发布模式的优点,提出了一种新的内容路由系统(Content Router),并对该系统进行了设计和实现,Content Router是在CDN系统中为用户提供内容定位和发布等功能的子系统。用户通过Content Router可以搜索定位资源,发布内容。Content Router对内容还要进行管理,删除过了期的内容。Content Router同时负责自己域的边缘服务器的管理和与DHT(分布式hash表服务)网络的交互。Content Router基于Linux平台,采用模块化的思想进行设计,针对系统高网络I/O的特点,采用Linux2.6内核的epoll机制进行网络事件交互,是一个单线程非阻塞的服务器。数据库的操作一般都是阻塞进行的,Mysql并不提供非阻塞的数据库操作接口。为了能够更好地进行数据库的操作,我们采用线程池的方式(类似于磁盘的异步I/O)实现对数据库的非阻塞操作。线程池是由许多个(个数可以配置)预先创建好的工作线程构成。这些工作线程都在一个请求队列上等待,当有新的请求加入队列时,工作线程就从请求队列中取出请求,然后根据请求的类型,执行相应的操作,操作完成后,将这个请求所对应的Task的地址写入到一个管道中,这个管道被epoll监听,epoll_wait会返回这个管道的描述符,主线程可以从这个管道中读出Task的地址,调用Task的状态机,执行相应的操作。由于多个线程共享请求队列,所以放请求到请求队列要加锁,为了能够非阻塞的加锁,CR采用尝试锁的方式(pthread_mutex_trylock),如果发现请求队列已被加锁,就把这个请求放到另一个备用队列中,访问备用队列无需加锁,因为备用队列只会被主线程访问。放请求时,当发现请求队列没有加锁,就先加锁,然后把新请求和备用队列中的所有请求都放到请求队列中。经过测试,该系统能够很好地完成搜索定位资源,发布内容,删除过了期的内容等功能,给中小型机构提供了一种比较实用的内容路由系统。
论文目录
摘要ABSTRACT第一章 绪论1.1 研究背景1.2 本文的工作及创新1.3 本文的内容和组织第二章 CDN 技术概述2.1 CDN 的技术原理2.2 CDN 关键技术2.3 CDN 的网络框架2.4 CDN 的应用2.5 小结第三章 CDN 内容路由的研究3.1 基于DNS 的内容路由3.1.1 传统访问模式3.1.2 CDN 的访问模式3.2 基于名字的内容路由3.3 基于DHT 覆盖网络的内容路由3.3.1 DHT 覆盖网络3.4 小结第四章 CR 概要设计4.1 概述4.1.1 PPCDN 系统介绍4.1.2 CR 服务器的系统框架4.2 CR 概要设计4.2.1 与DHT 交互的模块4.2.1.1 CR 加入DHT 覆盖网络4.2.1.2 CR 从DHT 覆盖网络注销4.2.1.3 CR 向DHT 覆盖网络发对象发布消息4.2.1.4 CR 向DHT 覆盖网络发对象查找请求4.2.1.5 CR 向DHT 覆盖网络发对象删除请求4.2.2 与ESP 交互的模块4.2.2.1 ESP 向CR 建立连接4.2.2.2 CR 向 ESP 询问4.2.2.3 CR 探测ESP 连接状况4.2.2.4 CR 通知ESP 有发布请求4.2.2.5 CR 通知ESP 删除数据4.2.3 与 Tracker 交互的模块4.2.3.1 Tracker 向CR 建立连接4.2.3.2 CR 向Tracker 通知有用户要下载4.2.3.3 CR 向Tracker 通知新发布的内容4.2.3.4 CR 向Tracker 通知删除内容4.2.3.5 CR 探测连接状况4.2.4 与CA 交互模块4.2.5 与DB 交互的模块4.2.6 与CP 交互的模块4.3 CR 的运行环境和程序框架4.3.1 基于 Linux 的环境的程序开发4.3.2 单线程服务器模型4.3.3 基于异步事件驱动的程序框架4.3.3.1 几种网络程序框架的研究4.3.3.2 CR 的I/O 驱动机制4.3.3.3 异步事件驱动框架概述4.3.3.4 异步事件驱动框架的实现–基于epoll 的高效事件检测技术4.3.3.5 自定义协议和交互实体状态变换4.4 CR 的主要数据结构的设计4.5 小结第五章 CR 详细设计5.1 与DHT 交互的模块的详细设计5.1.1 协议设计5.1.2 模块设计5.2 与ESP 交互模块详细设计5.2.1 协议设计5.2.2 模块设计5.3 与 Tracker 交互的模块设计5.3.1 协议设计5.3.2 模块设计5.4 与CA 交互的模块5.4.1 协议设计5.4.2 CAAgent 类5.5 与DB 交互的模块5.6 与 CP(Client)交互的模块5.6.1 协议设计5.6.2 CPAgent 类5.7 小结第六章 系统测试6.1 测试环境6.2 测试内容6.2.1 用户界面测试6.2.2 典型搜索测试6.2.3 异常搜索测试6.2.4 搜索压力测试6.3 测试结果分析6.4 小结第七章 结论7.1 主要结论7.2 Content Router 的特点和改进方向7.2.1 特点7.2.2 改进方向致谢参考文献攻硕期间取得的研究成果
相关论文文献
标签:内容分发网络论文; 内容路由器论文; 边缘服务器论文; 追踪服务器论文; 分布式表论文;