网络坐标

大规模分布式网络应用技术是当前互联网领域的研究热点之一，准确地获取互联网节点之间距离并基于邻近原则选择链路是提高这些应用系统整体性能的关键因素。网络坐标系统是一种互联网距离预测方法，具有高可扩展性和低测量开销。

概述 
在大规模分布式互联网系统的相关应用当中，通常有成千上万个互联网节点进行协作。通过这些节点的交互实现协同计算和信息共享。典型的大规模分布式网络应用包括：P2P覆盖网络包括Chord、Pastry、Tapestry、CAN、P2P文件共享（BitTorrent、eMule、Maze）、应用层组播（PPLive、ESM、Coolstreaming、Anysee）、应用层路由、在线网络游戏等等。这些应用都涉及了大量的互联网链路选择问题。基于邻近原则的链路选择可以大大提高这些应用的整体性能。

网络坐标系统（Network Coordinate System），又称为互联网坐标系统（Internet Coordinate System），是一种具有可扩展性的互联网距离预测方案。对于一个有N个节点的网络，每个参与网络坐标系统的节点通过少量测量，得到一个（或者多个）d维矢量，即为该节点的网络坐标。利用任意两个节点的网络坐标，根据事先定义的计算法则，就可以预测它们之间的网络距离。对于一个包含N个网络节点的系统，其测量复杂度为O(N)，因此，网络坐标系统可以通过复杂度为O(N)的测量预测N(N − 1)条链路的距离，从而可以避免大量的端到端测量。这是一种具有高可扩展性的方案，可以应用于大规模分布式网络系统。

发展与现状 
 中心式网络坐标系统：对网络坐标系统的研究从2001年开始，出现了很多典型的系统。GNP(Global_network_positioning) 、VL 、ICS等称为第一代系统，又称为中心式网络坐标系统。这一代系统的特点是首先布置少量的中心式服务器节点（以下简称中心节点），中心节点通过相互的测量获取两两之间的距离信息，将这些信息汇总后利用一个中心式的优化算法求得所有中心节点的坐标。系统的其他所有参与节点称为普通节点，它们在中心节点的辅助下计算自身坐标。每一个普通节点通过测量自身到中心节点的距离，再利用中心节点的坐标，通过非线性优化或者主成分分析等方法，求得自身坐标。第一代网络坐标的方法主要不足之处是当参与节点数量较大时，中心节点需要承受很重的测量负载，因而限制了坐标系统的服务规模。
 
 非中心式网络坐标系统：从2004年开始，以Vivaldi() 、NPS、PIC等系统为代表的第二代网络坐标系统被相继提出。第二代网络坐标系统的特点是完全非中心式实现，不需要事先布置和维护少量的中心式服务器节点，这样，坐标系统的服务规模就不再会受到限制。但是第二代网络坐标系统距离预测的准确性和第一代系统相比并没有提高。

研究热点 
 非最短路径路由（sub-optimal routing）对于网络坐标系统距离预测的准确性的影响：由于当前互联网采用的基于自治域的分层路由政策并不是整个互联网范围内的最短路径路由，各节点之间的网络距离存在大量违反三角不等式的现象（Triangle Inequality Violation，以下简称为TIV）现象 。基于欧氏距离的网络坐标系统的预测距离必须满足三角形法则，由于互联网大量存在的TIV，其准确程度在达到一定精度之后即使增加坐标维数也无法得到提高 。有一系列工作试图建立更能符合互联网实际链路距离特性的模型如下：
 基于矩阵分解模型的网络坐标：IDES，Phoenix和DMF；IDES最早提出利用矩阵分解模型计算网络坐标，使得预测得到的网络距离不再受到三角形法则的限制。DMF实现了一套纯分布式的系统，并利用regularization技术避免了坐标的漂移。Phoenix在坐标计算中引入了权重的概念，取得了比Vivaldi, IDES等已有系统更高的准确性。
 基于双曲线空间模型的网络坐标：Hyperbolic Vivaldi(基于双曲线空间的Vivaldi)；
 分层网络坐标系统：Pharos()和Hierarical Vivaldi(分层Vivaldi)。

 安全问题：由于恶意节点可能利用网络坐标协议与其它正常节点进行交互，通过提供错误的信息影响坐标系统预测的准确性。因此，如何通过节点行为检测恶意节点并消除其不良影响是能否实现大规模部署的关键。
 网络坐标系统恶意攻击研究：
 网络坐标系统安全机制研究：基于Kalman滤波的恶意节点检测，基于信誉系统的恶意节点检测

 实际分布式系统中的应用. 
 基于邻近原则的服务器选择
 覆盖网络构建
 基于移动3G网络的在线游戏

相关研究机构 
 哈佛大学网络坐标研究 
 CMU网络坐标研究 
 马里兰大学网络坐标研究 
 清华大学网络坐标研究 
 莱斯大学网络坐标研究

相关软件
 NCSim网络坐标仿真器（支持多种网络坐标系统） 
 Toread网络坐标（开源网络坐标，基于Python实现，部署于PlanetLab） 
 Pyxida网络坐标系统（部署于PlanetLab）

参考文献 

 
互联网