2. 南京理工大学 自动化学院, 南京 210094
2. College of Automation, Nanjing University of Technology, Nanjing 210094, China
天地一体化网络是按照"天基组网、地网跨代、天地互联"的思路, 以地面网络为基础、以天基网络为延伸, 覆盖太空、空中、陆地、海洋等自然空间, 为天基、陆基、海基等各类用户活动提供信息保障的基础设施[1]。随着网络中节点计算、存储和通信转发能力的大幅提升, 天地一体化网络向天地一体化智能网络方向不断演进。
天地一体化智能网络借鉴信息中心网络(Information Centric Network, ICN)的通信模式, 使得内容传输由发送者驱动的端到端通信模式向接收者驱动的海量内容获取模式转变, 减小了信息传输时延, 但同时存在以下两方面的问题。一方面, 卫星节点移动性使得传输路径中的返回路径进行调整, 进而导致待处理的兴趣表(Pending Interest Table, PIT)与转发信息库(Forward Information Base, FIB)的信息有误, 内容包找不到请求节点, 同时路径改变会使内容副本缓存的位置发生变化, 从而降低缓存收益; 另一方面, ICN网络上的传统缓存策略的缓存收益低, 而新型缓存策略开销大, 均不适用于卫星节点传输。本文利用卫星节点运动的规律性设定虚拟位置, 采用提前向后方进行内容缓存的方式解决卫星移动导致的传输路径改变问题, 提出一种基于ProbCache的缓存策略, 在组的层面上进行分区, 并按照内容副本流行度阈值进行存储位置迁移, 使得流行度高的内容副本存储至离请求节点近的位置, 以提高网络缓存收益。
1 相关工作在ICN网络上的缓存策略大致分为传统缓存策略与新型缓存策略两类。传统缓存策略主要包括LCE[2]、LCD[3]、MCD[4]和ProbCache[5]等。LCE是在内容传输的路径节点上进行缓存, 但物理节点存储空间有限, 限制了所有内容副本的存储。LCD随着请求次数的增加, 内容副本的放置位置会单跳地向请求节点移动, 且不删除节点的内容副本, 但因为节点存储空间有限, 所以最终将导致网络中的内容副本差异较小。MCD与LCD的主要区别在于当存储下一跳内容副本时, 会将节点内的缓存副本进行删除, MCD的冗余度比LCD低, 但当某节点的中心度[6]很高时, 其无法将内容副本流行度高的内容存储于该节点。同时, MCD与LCD都是以单跳为单位进行内容副本移动, 当传输路径经过节点的数量太多时, 内容副本的缓存收益会很低。在ProbCache缓存策略中, 节点以加权概率缓存收到的包, 加权概率与当前节点到请求节点的距离成反比, 即当前节点离请求节点越近时, 缓存内容副本的概率越大, 但在该过程中并没有体现出内容副本的流行度。可以看出, 传统缓存策略的内容副本缓存收益[7]较低。
在传统缓存策略的基础上, 一些新型缓存策略相继被提出。文献[8]对路径访问代价和节点替换代价进行综合考虑, 并将代价总量作为内容副本缓存的决策依据。文献[9]提出SatCache缓存方案, 该方案基于简单的用户模型, 通过聚合大量用户生成的内容请求, 并利用卫星通信媒介的广播特性, 创建用户偏好表, 估计用户对于给定内容的潜在兴趣。文献[10]构建一种内容交付的双层模型, 其中放置于地面站的缓存构成第一层缓存, 部署在卫星上的缓存构成第二层缓存, 并且提出基于遗传算法的高速缓存策略, 从而降低上行和下行链路的卫星消耗带宽。文献[11]通过将缓存决策提前至请求转发阶段, 将下游节点的缓存决策信息及内容统计信息逐级反馈给上游节点, 辅助上游节点完成缓存决策。文献[12]根据内容传播规律将内容分为早期传播与晚期传播, 然后计算出内容副本在不同时期的缓存概率。文献[13]提出一种基于动态流行度与请求代价的命名数据网络缓存策略DPCP, 在该策略中所有节点都对每个内容副本进行动态流行度和请求代价的计算, 并根据计算结果进行内容替换和缓存节点的选择。文献[14]在多层卫星网络中部署网络内的缓存策略, 并提出基于缓存容量和内容流行度的概率缓存策略。文献[15]利用卫星节点对内容的高敏感性和可选择性等特点, 将SDN和ICN相结合, 提出一种ContentSDSN架构, 减小了内容获取时延。文献[16]提出一种APDR新型缓存策略, 该策略中的兴趣包除了携带对内容的请求外, 还收集沿途各节点对该内容的潜在需求、缓存开销等信息, 使得兴趣包的汇聚和目的节点可据此计算出一个缓存方案, 并将该方案附加在内容包上, 通知返程途中的某些节点缓存该内容包并设置指定的缓存时间。APDR缓存策略的缓存开销小, 但是内容潜在需求是指瞬时潜在需求, 并未准确反映内容流行度, 缓存收益还有上升空间。缓存开销是指将内容副本缓存于传输路径上造成的网络资源开销。可以看出, 新型缓存策略由于缓存复杂度高, 缓存开销较大, 因此不适用于天地一体化智能网络, 尤其是卫星网络。
2 卫星节点静态处理机制在卫星路由算法的研究中, 对于卫星节点的静态处理通常采用虚拟节点策略。假设卫星的位置与地球表面的固定位置相对应, 则该卫星节点就是虚拟节点[17]。当使用虚拟节点替换物理卫星节点时, 卫星间只传输路由信息, 但该策略仅适用于小规模数据传输, 而非内容副本传输。基于此, 本文设计基于虚拟位置的卫星节点静态处理机制BVL, 具体步骤为:
步骤1 确定卫星节点的虚拟位置。卫星节点虚拟位置的确定与传统路由中虚拟节点的位置确定方法[17]一致。
步骤2 定义缓存区域半径的基本单位。将同一卫星轨道相邻两个卫星节点的距离定义为
步骤3 确定缓存区域, 如图 1所示。设定内容副本流行度阈值S, 缓存半径Rd和RD, 高流行度的内容(S~1)对应的缓存区域为(0~Rd), 低流行度的内容(0~S)对应的缓存区域为(Rd~RD), 具体表示如式(1)所示:
$ \left\{ {\begin{array}{*{20}{l}} {\left( {S\sim 1} \right)\sim\left( {0\sim{R_d}} \right)}\\ {\left( {0\sim S} \right)\sim\left( {{R_d}\sim{R_D}} \right)} \end{array}} \right. $ | (1) |
![]() |
Download:
|
图 1 缓存区域示意图 Fig. 1 Schematic diagram of caching area |
步骤4 确定卫星节点的缓存替换策略。卫星节点采用最近最少使用(Least Recently Used, LRU)策略, 当内容副本被替换时, 告知虚拟位置的卫星节点。
按照卫星节点静态处理机制对位于虚拟位置的卫星节点内的CS表进行修改, 如表 1所示。在修改完成后, 当虚拟位置节点由下一个物理卫星节点进行替换时, 位于虚拟位置的卫星将CS表、FIB表和PIT表移交给下一个卫星节点, 并将CS表中的跳数字段数减1。
![]() |
下载CSV 表 1 CS表 Table 1 CS table |
在BVL卫星节点静态处理机制的基础上, 借鉴APDR中缓存开销较小的通信模式, 对ProbCache缓存策略进行改进, 提出一种缓存收益大且缓存开销小的缓存策略PBP。PBP实现原理为:随着请求频率的增加, 内容副本会在组的层级上跳跃式地接近请求节点, 从而快速挑选出流行度高的内容副本缓存在离请求节点较近的区域。
PBP算法具体步骤如下:
步骤1 兴趣包到达目的节点时, 目的节点依据兴趣包携带的沿途节点存储信息和路径传输时间信息, 对传输路径中存储空间和传输时间相似的节点进行分组。
步骤2 分组后按照ProbCache策略计算每个分组内缓存内容副本的概率, 并将该分组信息通过内容包传输至路径节点。
步骤3 设定组内节点的内容副本流行度阈值S1和S2。若每个分组以概率
步骤4 若节点内有该内容包对应的分组, 则节点无视内容包携带的分组信息; 若节点内没有该内容包对应的分组, 则在PIT表内增加分组信息。
本文假设某个请求节点发送兴趣包, 且网络中某些节点存在内容包, 将请求节点发送的兴趣包命中的节点称为目的节点, 而路径中某个节点属于哪个分组由该节点的PIT表决定。
算法1 网络信息传输算法
输入 兴趣包, 网络中的各个节点及路径
输出 内容包的缓存位置
1.If(兴趣包到达目的节点)
2.目的节点通过兴趣包收集到路径节点的存储空间信息和传输时间信息进行决策分组;
3.目的节点依据ProbCache策略计算每个分组缓存内容副本的概率
4.目的节点发送内容包及携带的分组表告知路径各个节点属于哪一个分组;
5.Else
6.兴趣包沿途收集经过各个节点的传输时间和处理时间信息, 并收集节点剩余存储空间信息, 同时向下一个节点进行传输;
7.建立PIT表中该内容对应的条目, 若PIT表中有对应的内容请求记录, 则更新节点的内容请求次数表
算法2 缓存内容副本节点处理算法
输入 兴趣包请求次数, 网络中的各个节点
输出 内容包的迁移位置
1.根据兴趣包的请求次数, 更新节点的请求次数表;
2.If内容副本流行度阈值为S2~1, Then进行内容副本的组间存储位置迁移;
3.When组间迁移有相同内容, Then丢弃重复的内容包;
4.Else If内容副本流行度阈值为S1~S2, Then进行内容副本的组内存储位置迁移;
5.Else不进行内容副本的组内存储位置迁移
缓存策略的传输实例如图 2所示。在图 2(a)中, 请求节点Q1发送兴趣包, 兴趣包沿途收集路径节点的存储空间信息和节点间的传输时间等信息, 当找到位于目的节点D的内容包后, 目的节点会原路返回内容包, 并利用兴趣包携带的信息, 依据节点相似性对路径节点进行分组, 如椭圆实线所示。在图 2(b)中, 当请求节点Q1多次请求达到组内存储区域阈值S1和S2时, 进行存储位置的组内迁移。在图 2(c)中, 当请求节点Q2对内容副本进行请求时, 会将内容副本存储在非原路径的第一个节点上, 并依据目的节点划分的分组对本路径剩余的节点进行分组, 如椭圆虚线所示。
![]() |
Download:
|
图 2 缓存策略的传输实例 Fig. 2 Transmission example of caching strategy |
将PIT表更改为如表 2所示, 计算组内缓存的概率
![]() |
下载CSV 表 2 PIT表 Table 2 PIT table |
在分组后, 存储空间和距离决定了分组B的缓存概率
$ P\left( {{x_B}} \right) = {\rm{TimesIn}}\left( {{x_B}} \right) \times {\rm{CacheWeight}}\left( {{x_B}} \right) $ | (2) |
$ {\rm{TimesIn}}\left( {{x_B}} \right) = \frac{{\mathop \sum\limits_{i = 1}^{{c_B} - \left( {{x_B} - 1} \right)} N_i^B}}{{T_{{\rm{tw}}}^B{N^B}}} $ | (3) |
$ {\rm{CacheWeight}}\left( {{x_B}} \right) = \frac{{{x_B}}}{{{c_B}}} $ | (4) |
其中:
本文主要分析通过组内缓存分区得到内容传输的减少时间, 而一次路径传输中的组内缓存分区如图 3所示, 其中, 分组B为路径上的一个分组, 组内共有j个节点, 开始节点为i, 节点u到上一个节点的传输时间为
![]() |
Download:
|
图 3 组内缓存分区示意图 Fig. 3 Schematic diagram of caching partition within a group |
假设不进行组内存储区域划分, 则当前分组中所有内容副本到请求节点的平均传输时间为:
$ {T_1} = \frac{{\mathop \sum\limits_{n = 1}^j \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{j} $ | (5) |
其中, n(
当内容副本进行组内区域迁移时, 假设请求频率高的内容所占比例为
$ {T_2} = \frac{{\mathop \sum\limits_{n = 1}^{j \times \delta } \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{{j \times \delta }} $ | (6) |
流行度高的内容传输减少时间为:
$ \begin{array}{*{20}{l}} {{T_3} = \frac{{\mathop \sum\limits_{n = 1}^j \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{j} - \frac{{\mathop \sum\limits_{n = 1}^{j \times \delta } \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{{j \times \delta }} = }\\ {\quad \quad {\rm{}}\left( {\frac{{\mathop \sum\limits_{n = j \times \left( {1 - \delta } \right)}^j \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{{j \times \left( {1 - \delta } \right)}} - \frac{{\mathop \sum\limits_{n = 1}^j \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{j}} \right) \times \frac{{1 - \delta }}{\delta }} \end{array} $ | (7) |
因为
当内容副本进行组间迁移时:
$ {T_4} = \frac{{\mathop \sum\limits_{n = 1}^{j \times \delta } \mathop \sum\limits_{u = 1}^{i + n} {T_u}}}{{j \times \delta }} - {T_U} $ | (8) |
其中,
本文策略的优势在于:1)与传统策略相比, 该策略以组的形式向请求节点移动, 缓解了路径拥塞; 2)阈值设置使得节点能更准确地将流行度高的内容副本向请求节点移动, 解决了ProbCache和APDR策略中无法兼顾内容副本流行度的问题; 3)将组内节点到请求节点的平均传输时间作为分组时间, 据此确定组内缓存概率, 使得概率计算更加准确; 4)分组能考虑网络拓扑对节点中心度的影响, 使得中心度[7]高的节点隶属于不同分组, 增大了该节点缓存内容副本的概率; 5)与传输缓存策略相比, 该策略使用兴趣包携带路径信息的方法来缓存决策, 节点间协作次数少且缓存开销小, 更加适用于天地一体化智能网络。
由理论分析可得, 在现有天地一体化网络中, 当进行星地信息传输时, 由于卫星节点存储空间和传输时延的限制, 因此内容副本会大量存储到地面网络中。然而, 本文策略通过网络缓存内容副本的分布位置优化, 可降低请求内容的传输时延, 并提升用户满意度。
4 仿真与结果分析在天地一体化智能网络中节点数量较多, 且节点类型与网络拓扑结构复杂。本文使用基于NS-3[18]环境的开源仿真工具NDNSim[19]对PBP策略进行实现。实验环境设置为Ubuntu16.04, 内存为4 GB, CPU为Intel Core i7 16 GHz, 版本为NDNSim-v2.6。为与实际情况相符, 搭建卫星节点静态化后的天地一体化智能网络传输模型, 模型中的节点总数为35, 其中的2个普通节点没有存储能力, 所有节点的存储总量和节点间的传输时间如图 4所示。在天地一体化智能网络中, 天基骨干网、天基接入网、地基骨干网、地面互联网和移动通信网节点的缓存总量为40M、20M、200M、100M和100M, 相邻节点之间的传输时延为300 ms、100 ms、1 ms、0.5 ms和0.5 ms, 地基骨干网和移动通信网与地面互联网节点之间的传输时延均为1 ms。
![]() |
Download:
|
图 4 天地一体化智能网络传输模型 Fig. 4 Transmission model of space-ground integrated intelligent network |
每个节点都产生内容请求, 并且对内容块的请求模式遵循Zipf分布[20]。节点产生的访问速率模型服从
![]() |
下载CSV 表 3 实验参数设置 Table 3 Setting of experimental parameters |
为反映服务质量, 定义平均跳数和缓存命中率两个指标, 这两个指标反映了路径中的节点缓存收益。平均跳数的计算公式为:
$ P{\rm{'}} = \frac{{\mathop \sum\limits_{\alpha = 1}^A C\left( \alpha \right)}}{{\mathop \sum\limits_{\alpha = 1}^A C'\left( \alpha \right)}} $ | (9) |
其中,
缓存命中率的计算公式为:
$ P{\rm{''}} = \frac{{\mathop \sum\limits_{\beta = 1}^B D\left( \beta \right)}}{{\mathop \sum\limits_{\beta = 1}^B D'\left( \beta \right)}} $ | (10) |
其中,
本节主要研究Zipf分布参数对缓存性能的影响。从图 5可看出, Zipf分布参数从0.7增加到1.3时, 缓存性能逐渐改善, 这主要是因为Zipf分布参数增加使得内容局部性增强, 节点对同一内容副本的请求概率增加, 所以平均跳数降低, 缓存命中率整体提高, 而PBP策略性能表现最佳, 相比ProbCache策略平均跳数减少22%, 平均缓存命中率提高97%。
![]() |
Download:
|
图 5 Zipf分布参数对缓存策略的影响 Fig. 5 The impact of Zipf distribution parameter on caching strategy |
本节主要研究内容总量对缓存性能的影响。从图 6可看出, 传统缓存策略除LCD策略外, 随着网络内容总量的增加, 平均跳数呈上升趋势, 缓存命中率逐渐降低, 这主要是因为内容总量变化较大导致内容局部性降低。LCD策略的平均跳数和缓存命中率基本不变, 这主要是因为其本身就是反映内容的需求次数, 而与内容总量无关。同时, PBP策略具有最佳性能表现, 在内容总量为50 000 slot时, PBP策略的平均跳数比ProbCache策略减少20%, 平均缓存命中率提高51%。
![]() |
Download:
|
图 6 内容总量对缓存策略的影响 Fig. 6 The impact of total content on caching strategy |
本节主要研究请求速率对缓存性能的影响。从图 7可看出, 随着请求速率的变化, 各种缓存策略的性能指标并没有明显变化, 这表明当前请求速率在节点能力范围内。PBP策略随着用户请求速率的增加, 平均跳数和平均缓存命中率没有明显变化, 但总体性能表现仍为最佳, 相比ProbCache策略平均跳数减少14%, 平均缓存命中率提高48%。
![]() |
Download:
|
图 7 请求速率对缓存策略的影响 Fig. 7 The impact of request rate on caching strategy |
本文针对天地一体化智能网络中卫星节点移动导致的缓存路径改变问题, 提出基于虚拟位置与提前缓存的卫星节点静态处理机制与基于ProbCache的轻量级分组缓存策略, 将天地一体化智能网络中的路径节点进行分组并划分组内缓存区域, 使得缓存空间更加符合内容副本流行度的特点, 从而筛选出流行度高的内容副本缓存至离请求节点较近的区域。实验结果表明, 与ProbCache、LCE和LCD等策略相比, 本文策略能有效减少缓存开销, 并提高路径节点的内容副本缓存收益, 更适用于天地一体化智能网络。后续将对卫星节点静态处理规则进行优化, 使其能适用于更多类型的网络拓扑结构, 进一步扩大应用范围。
[1] |
The 54th Research Institute of China Electronics Technology Group Corporation.China Electronics Technology Group Corporation knits the "space-ground integrated information network"[EB/OL].[2019-09-09].https://www.sohu.com/a/192285971_706518.html.(in Chinese) 中国电子科技集团公司第五十四研究所.中国电科编织"天地一体化信息网"[EB/OL].[2019-09-09].https://www.sohu.com/a/192285971_706518.html. |
[2] |
LAOUTARIS N, SYNTILA S, STAVRAKAKIS I.Meta algorithms for hierarchical Web caches[C]//Proceedings of IEEE International Conference on Performance.Washington D.C., USA: IEEE Press, 2005: 445-452.
|
[3] |
BERNARDINI C, SILVERSTON T, FESTOR O.A comparison of caching strategies for content centric networking[C]//Proceedings of 2015 IEEE Global Communications Conference.Washington D.C., USA: IEEE Press, 2015: 1-6.
|
[4] |
ZHANG Guoqiang, LI Yang, LIN Tao. Caching in information centric networking:a survey[J]. Computer Networks, 2013, 57(16): 3128-3141. DOI:10.1016/j.comnet.2013.07.007 |
[5] |
PSARAS I, CHAI W K, PAVLOU G.Probabilistic in-network caching for information-centric networks[C]//Proceedings of the 2nd ICN Workshop on Information-centric Networking.New York, USA: ACM Press, 2012: 55-60.
|
[6] |
RUI Lanlan, PENG Hao, HUANG Haoqiu, et al. Information center network caching strategy based on content popularity and node centrality matching[J]. Journal of Electronics and Information, 2016, 38(2): 75-81. (in Chinese) 芮兰兰, 彭昊, 黄豪球, 等. 基于内容流行度和节点中心度匹配的信息中心网络缓存策略[J]. 电子与信息学报, 2016, 38(2): 75-81. |
[7] |
CHEN Long, TANG Hongbo, LUO Xingguo, et al. Information center network caching mechanism based on revenue perception[J]. Journal of Communications, 2016, 37(5): 134-146. (in Chinese) 陈龙, 汤红波, 罗兴国, 等. 基于收益感知的信息中心网络缓存机制[J]. 通信学报, 2016, 37(5): 134-146. |
[8] |
CAI Ling, WANG Jinkuan, WANG Xingwei.Path cost and node cost based caching strategy for information-centric network[EB/OL].[2019-09-09].http://www.en.cnki.com.cn/Article_en/CJFDTotal-XXWX201711007.htm.
|
[9] |
D'ORO S, GALLUCCIO L, MORABITO G, et al. SatCache:a profile-aware caching strategy for information-centric satellite networks[J]. Transactions on Emerging Telecommunications Technologies, 2014, 25(4): 436-444. DOI:10.1002/ett.2723 |
[10] |
WU Hao, LI Jian, LU Hancheng, et al.A two-layer caching model for content delivery services in satellite-terrestrial networks[C]//Proceedings of 2016 IEEE Global Communications Conference.Washington D.C., USA: IEEE Press, 2016: 1-8.
|
[11] |
ZHI Jiang, LI Jun, WU Haibo, et al. Edge first based ICN cache collaboration strategy[J]. Journal of Communications, 2017, 38(3): 53-64. (in Chinese) 智江, 李俊, 吴海博, 等. 基于边缘优先的ICN缓存协作策略[J]. 通信学报, 2017, 38(3): 53-64. |
[12] |
LIU Waixi, YU Shunzheng, HU Xiao, et al. Research on selective caching mechanism in CCN[J]. Chinese Journal of Computers, 2014, 37(2): 19-32. (in Chinese) 刘外喜, 余顺争, 胡晓, 等. CCN中选择性缓存机制的研究[J]. 计算机学报, 2014, 37(2): 19-32. |
[13] |
GUO Chen, ZHENG Quan, DING Yao, et al. Cache strategy based on dynamic popularity and request cost in named data networking[J]. Computer Engineering, 2018, 44(2): 46-50. (in Chinese) 郭晨, 郑烇, 丁尧, 等. 基于动态流行度与请求代价的命名数据网络缓存策略[J]. 计算机工程, 2018, 44(2): 46-50. |
[14] |
XU Ji, SONG Tian, YANG Yating, et al. Research on data caching technology for multilayer satellite network[J]. Manned Space, 2019, 25(4): 461-467. (in Chinese) 徐冀, 嵩天, 杨雅婷, 等. 多层卫星网络数据缓存技术研究[J]. 载人航天, 2019, 25(4): 461-467. |
[15] |
LIU Zhiguo, ZHU Jie, PAN Chengsheng, et al.Satellite network architecture design based on SDN and ICN technology[C]//Proceedings of the 8th International Conference on Electronics Information and Emergency Communication.Washington D.C., USA: IEEE Press, 2018: 124-131.
|
[16] |
LIU Waixi, YU Shunzheng, CAI Jun, et al. A cooperative caching mechanism in ICN[J]. Journal of Software, 2013, 24(8): 257-272. (in Chinese) 刘外喜, 余顺争, 蔡君, 等. ICN中的一种协作缓存机制[J]. 软件学报, 2013, 24(8): 257-272. |
[17] |
EKICI E, AKYILDIZ I F, BENDER M D. A distributed routing algorithm for datagram traffic in LEO satellite networks[J]. IEEE/ACM Transactions on Networking, 2002, 9(2): 137-147. |
[18] |
HENDERSON T R, et al.NS-3 project goals[C]//Proceedings of 2006 Workshop on NS-2: the IP Network Simulator.New York, USA: ACM Press, 2006: 1-7.
|
[19] |
AFANASYEV A, MOISEENKO I, ZHANG L.NDNSim: NDN simulator for NS-3: NDN-0005[R].[S.l.]: NDN, 2012: 1-7.
|
[20] |
YAMAKAMI T.A Zipf-like distribution of popularity and hits in the mobile Web pages with short life time[C]//Proceedings of the 7th International Conference on Parallel and Distributed Computing, Applications and Technologies.Washington D.C., USA: IEEE Press, 2006: 240-243.
|