A. 常见的网络多路径负载均衡算法包括 LACP 源IP地址 虚拟机ID 源MAC地址
这是其中一种,不管哪个厂家哪个型号哪个版本,大致思路都是一样的,先建立聚合组,然后端口加入聚合组。
指定负载均衡算法的命令也大同小异,比如华为93系列交换机是进入Eth-trunk接口用load-balance src-mac,还有的设备是在全局下用link-aggregation load-sharing mode来指定,在设备里找一下就能找到,实在不行就打厂家电话咨询一下。
B. 如何用贪心算法解决磁盘文件最优存储问题
dp??
方程为
a(fi,fj)=min{(a(fi,fk)+a(fk,fj)),a(fi,fj)}(k=i+1,i+2...j-1);
C. 无向图中求两定点之间所有路径。图用二维数组存储。最好用c语言、给我解题思路也行。谢谢
/*
深度优先搜索算法。
*/
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
// 图中最多的点数
#define MAX_NODES_NUM 10
// 图中两点最多的路径数
#define MAX_PATHS_BETWEEN_TWO_NODES_NUM (1<<(MAX_NODES_NUM-2))
// 标记无穷远的路径长度
#define INFINTITY (1<<30)
// 标记可以到达的路径长度
#define REACHABLE 1
#define TRUE 1
#define FALSE 0
struct Path
{
int size;
int nodes[MAX_NODES_NUM];
};
/*
获取地图 map 中 点 start 到 点 end 的所有路径
map : 地图
n : 地图的点数
start : 起点
end : 终点
paths : 保存找到的所有从 start 到 end 路径
paths : 保存找到的所有从 start 到 end 路径数目
*/
void getPaths(int map[][MAX_NODES_NUM],int n ,int start,int end,int isNodeUsed[],struct Path paths[],int * pathsNum)
{
int i,j;
struct Path tempPaths[MAX_PATHS_BETWEEN_TWO_NODES_NUM];
int tempPathsNum ;
// 标记当前起点不可用
isNodeUsed[start] = TRUE;
for(i=0;i<n;i++)
{
// 节点不在路径中,且可以到达
if(isNodeUsed[i] == FALSE && map[start][i]== REACHABLE)
{
// 当前起点能直接到达终点
if(i == end)
{
paths[(*pathsNum)].size = 2;
paths[(*pathsNum)].nodes[0] = end;
paths[(*pathsNum)].nodes[1] = start;
(*pathsNum)++;
}
// 当前起点能不能直接到达终点,尝试当前节点通过其他节点达到终点
else
{
// 递归计算从当前起点到达终点的所有路径
tempPathsNum = 0;
getPaths(map,n,i,end,isNodeUsed,tempPaths,&tempPathsNum);
// 处理找到的,从当前起点到达终点的所有路径
for(j=0;j<tempPathsNum;j++)
{
// 在当前起点到达终点的所有路径中,添加当前起点
tempPaths[j].nodes[tempPaths[j].size] = start;
tempPaths[j].size ++;
// 合并到最终的路径中
paths[(*pathsNum)] = tempPaths[j];
(*pathsNum)++;
}
}
}
}
isNodeUsed[start] = FALSE;
}
int main(int argc, char *argv[])
{
int map[MAX_NODES_NUM][MAX_NODES_NUM];
int isNodeUsed[MAX_NODES_NUM];
struct Path paths[MAX_PATHS_BETWEEN_TWO_NODES_NUM];
int pathsNum;
int i,j;
int start,end;
int a,b;
int n,m;
// 读取点数,路径数
while(scanf("%d%d",&n,&m)!=EOF)
{
// 初始化图
for(i=0;i<n;i++)
{
isNodeUsed[i] = FALSE;
for(j=0;j<n;j++)
{
map[i][j] = INFINTITY;
}
}
// 读入路径
for(i=0;i<m;i++)
{
scanf("%d%d",&a,&b);
// 标记 a b 间有路径,注意是无向图,标记两次
map[a][b] = REACHABLE;
map[b][a] = REACHABLE;
}
// 要连接的两个点
scanf("%d%d",&start,&end);
// 查找点 start 到点 end 的所有路径
pathsNum = 0;
getPaths(map,n,start,end,isNodeUsed,paths,&pathsNum);
// 打印点 start 到点 end 的所有路径
for(i=0;i<pathsNum;i++)
{
for(j=paths[i].size-1;j>=1;j--)
{
printf("%d -> ",paths[i].nodes[j]);
}
printf("%d\n",paths[i].nodes[j]);
}
}
return 0;
}
/*
测试用数据:
1)首先输入点数 n,路径条数 m,
2)接下来输入 m 对点的编号,每对点 a,b 表示点 a 和 点 b 之间有一条路
点的编号从 0 开始到 n-1.
3)最后输入要连接的两个点
输入:
6 14
0 1
0 2
1 0
1 3
2 0
2 4
2 5
3 1
3 5
4 2
4 5
5 2
5 3
5 4
0 5
输出:
0 -> 1 -> 3 -> 5
0 -> 2 -> 4 -> 5
0 -> 2 -> 5
*/
D. 分布式存储技术有哪些
中央存储技术现已发展非常成熟。但是同时,新的问题也出现了,中心化的网络很容易拥挤,数据很容易被滥用。传统的数据传输方式是由客户端向云服务器传输,由服务器向客户端下载。而分布式存储系统QKFile是从客户端传送到 N个节点,然后从这些节点就近下载到客户端内部,因此传输速度非常快。对比中心协议的特点是上传、下载速度快,能够有效地聚集空闲存储资源,并能大大降低存储成本。
在节点数量不断增加的情况下,QKFile市场趋势开始突出,未来用户数量将呈指数增长。分布式存储在未来会有很多应用场景,如数据存储,文件传输,网络视频,社会媒体和去中心化交易等。因特网的控制权越来越集中在少数几个大型技术公司的手中,它的网络被去中心化,就像分布式存储一样,总是以社区为中心,面向用户,而分布式存储就是实现信息技术和未来因特网功能的远景。有了分布式存储,我们可以创造出更加自由、创新和民主的网络体验。是时候把因特网推向新阶段了。
作为今年非常受欢迎的明星项目,关于QKFile的未来发展会推动互联网的进步,给整个市场带来巨大好处。分布式存储是基于因特网的基础结构产生的,区块链分布式存储与人工智能、大数据等有叠加作用。对今天的中心存储是一个巨大的补充,分布式时代的到来并不是要取代现在的中心互联网,而是要使未来的数据存储发展得更好,给整个市场生态带来不可想象的活力。先看共识,后看应用,QKFile创建了一个基础设施平台,就像阿里云,阿里云上面是做游戏的做电商的视频网站,这就叫应用层,现阶段,在性能上,坦白说,与传统的云存储相比,没有什么竞争力。不过另一方面来说,一个新型的去中心化存储的信任环境式非常重要的,在此环境下,自然可以衍生出许多相关应用,市场潜力非常大。
虽然QKFile离真正的商用还有很大的距离,首先QKFile的经济模型还没有定论,其次QKFile需要集中精力发展分布式存储、商业逻辑和 web3.0,只有打通分布式存储赛道,才有实力引领整个行业发展,人们认识到了中心化存储的弊端,还有许多企业开始接受分布式存储模式,即分布式存储 DAPP应用触达用户。所以QKFile将来肯定会有更多的商业应用。创建超本地高效存储方式的能力。当用户希望将数据存储在QKFile网络上时,他们就可以摆脱巨大的集中存储和地理位置的限制,用户可以看到在线存储的矿工及其市场价格,矿工之间相互竞争以赢得存储合约。使用者挑选有竞争力的矿工,交易完成,用户发送数据,然后矿工存储数据,矿工必须证明数据的正确存储才能得到QKFile奖励。在网络中,通过密码证明来验证数据的存储安全性。采矿者通过新区块链向网络提交其储存证明。通过网络发布的新区块链验证,只有正确的区块链才能被接受,经过一段时间,矿工们就可以获得交易存储费用,并有机会得到区块链奖励。数据就在更需要它的地方传播了,旋转数据就在地球范围内流动了,数据的获取就不断优化了,从小的矿机到大的数据中心,所有人都可以通过共同努力,为人类信息社会的建设奠定新的基础,并从中获益。