CDN 仿真器现状和 CDNsim
开发新的网络服务需要大量的投资,因此有必要在一个可控的仿真环境下建立原型,监控和预测服务的行为。很多技术已经被提出以提高CDN的性能,但是大部分却没有被CDN提供商采用,这是因为这些技术并没有广泛地在一个仿真测试床上进行评估,而一些学术性的CDN网络,如CoralCDN和Codeen则是运行上PlanetLab上,但PlanetLab是一个黑箱且需要大量学术界的人员参与,在这样的环境下开发新技术显得很困难甚至不可能。
因此有必要开发一种在真实仿真环境下的CDN模拟器,而且必须是可靠和节省内存的,要求对大规模的CDN网络能进行较细节的仿真。大部分的CDN仿真系统没有考虑几个关键的因素,如网络中可能出现的瓶颈,每个网络元素(router,surrogate server等)可以处理的的session数目等等。这样,仿真结果可能产生误导。因为它们只是通过遍历每个节点来测量而没有考虑TCP/IP的网络架构;另一方面,现存的很多网络模拟器不能有效地仿真Internet的架构,例如NS-2是一个离散事件仿真框架,通常用来仿真TCP/IP协议,流量控制等,然而它需要大量的内存来仿真大规模的网络。同样的,一些测试床不能由非研究机构自由进行仿真,且PlanetLab的一个显著缺点是仿真不可以重复进行。
| Testbed | TCP/IP | 内存占用 | 可重复性 | 规模 | 可用性 | 运行环境 |
| CDNsimulator
(ns2&logsim) |
是 | 高 | 是 | 中 | 否 | 本地 |
| CDN simulator
[Bent et al 2004] |
否 | 中 | 是 | 大 | 否 | 本地 |
| CDN simulator
[Kulkarni et al. 2003] |
否 | 低 | 是 | 大 | 否 | 本地 |
| Codeen | 是 | 低 | 否 | 中 | 限制 | 实时 |
| CoralCDN | 是 | 低 | 否 | 中 | 限制 | 实时 |
| Globule | 是 | 低 | 否 | 小 | 开源 | 实时 |
| CDNsim | 是 | 低 | 是 | 大 | 开源 | 本地 |
从上面的讨论可以看出,目前缺少可靠而且可伸缩的CDN仿真器,且CDN仿真器只能以有限的细节来模拟真实的网络(例如对网络的传输时间进行静态估计),总的来说,开发一个完整的CDN仿真器,包括相关的应用程序和网络工具,是一个极消耗时间的任务,因为典型的网络或缓存仿真器不能用在CDN仿真中使用。
专门用于CDN仿真的CDNsim是基于OMNet++仿真环境和INET框架开发的,其中:
- 基于离散事件的OMNeT++,是一个免费的、开源的多协议网络仿真软件,在网络仿真领域中占有十分重要的地位。OMNeT++英文全称是Objective Modular Network Testbed in C++,是近年来在科学和工业领域里逐渐流行的一种基于组件的模块化的开放的网络仿真平台。OMNeT++作为离散事件仿真器,具备强大完善的图形界面接口。
- INET框架则是在OMNet++环境中的开源通信网络仿真包,它包括几个Internet协议,如UDP,TCP,SCTP,IP,IPV6,Ethernet,PPP,IEEE 802.11,MPLS,OSPF等等。
CDNsim只是使用OMNet++中的基本的网络操作,如TCP/IP传送和离散事件的调度。请求路由,内容分发和管理以及所有CDN的特性则是由CDNsim本身完成的。

评论