CAN系统即上下文可编址网络,是基于DHT的系统。CAN系统部署一个d维的笛卡尔坐标空间,并按照参与该系统的所有结点进行划分。
由于分布式考试的需要,这篇bolg主要结合考试题介绍二维情况下的CAN系统的主要解题步骤。
在解题之前,我们需要清楚欧几里得距离,接下来会用到这些公式:
eg:
解:对于此题,将(0.2, 0.8)的结点消息路由到坐标为 (0.7, 0.2) 的结点, 此时会有多种可能性。
(1) 一种路由策略是考虑整体最优的路径, 也就是根据欧几里得距离得到一条最短距离的路径。
路径1: (0.2, 0.8) ---> (0.2, 0.4) ---> (0.7, 0.2)
欧几里得距离为:
路径2:(0.2, 0.8) ---> (0.7, 0.7) ---> (0.7, 0.2)
欧几里得距离为:
所以, 这种策略时选择路径1。
(2)一种路由策略是假设知道其紧邻结点的坐标, 把消息路由给距离目的地最近的结点。
此时比较 (0.2, 0.4) ---> (0.7, 0.2)和 (0.7, 0.7) ---> (0.7, 0.2)的欧几里得距离, 根据计算可知(0.7, 0.7) ---> (0.7, 0.2)的欧几里得距离更小.
所以此时的路径选择(0.2, 0.8) ---> (0.7, 0.7) ---> (0.7, 0.2)