广域网上,如何评价两台机器之间的网络质量?能够有一个可以计算“最短路径”的评分么?

2014-04-14 11:44:56 +08:00
 lsylsy2
有两台服务器,之间通过广域网(或者套一层VPN)链接;跑的应用以动态Web内容反向代理为例,但是不限于此;
延迟、路由跳数、丢包率、带宽、等等……现在有没有一个算法,可以量化评价出一条线路的好坏?
如果有一个在广域网上若干服务器构成的网络,从源到边缘节点可能经过多层代理,有一个可以计算“最短路径树”的评分么?
如果没有现有的研究,大家又觉得从什么角度测量比较好?
5295 次点击
所在节点    程序员
26 条回复
ceyes
2014-04-14 12:05:48 +08:00
延迟、丢包率: ping
跳数: traceroute
带宽: netperf
halfbloodrock
2014-04-14 12:07:00 +08:00
thousandeyes !他可以帮你测试点到点的网络情况。我们用这个测机房是不是真的BGP

https://app.thousandeyes.com/login?fwd=%2Fdashboard
halfbloodrock
2014-04-14 12:09:13 +08:00
est
2014-04-14 12:25:32 +08:00
LZ应该把这个点子卖给360


你的adsl 网络质量到 360.cn 打分89分,打败了全国99.9%的对手。
lsylsy2
2014-04-14 12:51:23 +08:00
@ceyes 我是想要把这些综合在一起,然后能够给出一个“线路A比线路B好的结论”;

@halfbloodrock 感谢,正在研究
lsylsy2
2014-04-14 13:03:01 +08:00
@halfbloodrock 看了一眼,似乎是99刀每月……具体怎么收费还不清楚……

@est 我想做的是服务器的,比如海底光缆最近……你懂的,比如说绕道新加坡和绕道香港也许速度就不同
taomaree
2014-04-14 13:10:44 +08:00
可以用iperf测试
lsylsy2
2014-04-14 13:24:06 +08:00
@taomaree 感谢已发送,正在研究。
tywtyw2002
2014-04-14 13:31:38 +08:00
自己写个算法被

可以轻易比较出是1%丢包影响大 还是300ms延时影响大。

找片论文看看
tywtyw2002
2014-04-14 13:34:09 +08:00
我记得之前有人搞vpn的时候因为丢包太严重。做了个随机丢包补偿去减少vpn中载荷的丢包率
lsylsy2
2014-04-14 13:39:35 +08:00
@tywtyw2002 “随机”补偿……理论上不如稳定的双倍发包吧……?
echo1937
2014-04-14 13:41:54 +08:00
楼主可以去看看路由器寻址算法,和你解决的问题基本是类似的.

比如开放标准OSPF协议.
lsylsy2
2014-04-14 13:47:33 +08:00
@echo1937 OSPF做过很粗略的研究(看了一些介绍、论文,没能看懂具体实现)
OSPF做的应该是“给定带宽延迟,选择最短的路径”;
但是它的应用范围是“我自己建立了骨干网络,路由器之间直接用双绞线or光纤连接”,这种情况下的网络情况应该比较简单;
我想做的是“在广域网,在Internet这一个非常复杂非常多变的环境下,综合考虑诸如拥塞、掉包乃至机房超售这些情况”,计算出一个可以用来跑OSPF的 [网络质量评分] 。
echo1937
2014-04-14 14:10:57 +08:00
@lsylsy2

OSPF只是举个例子,我自身是做系统运维的,了解一些常见R&S的知识,但是对原理的掌握和你也差不多.

但是你的应用场景和路由选择算法是高度相似的.路由算法使用了许多不同的metric以确定最佳路径。复杂的路由算法可以基于多个metric选择路由,并把它们结合成一个复合的metric。常用的metric包括路径长度/可靠性/延迟/带宽/负载/通信代价等等.

OSPF不行还可以看看其他的路由选择算法,但是肯定是往这个方向走,无需自己造轮子.
tywtyw2002
2014-04-14 14:10:59 +08:00
@lsylsy2 双倍 带宽占用有些大。而且没啥必要,ack 双倍倒是无妨,数据包双倍有些扯淡了。

ospf的考虑是在直连的条件下,非直连目前ospf不适用。

广域网vpn性能优化其实一直都是很小众的东西,大企业直接mpls了 至少业务sla是保证的。

我记得这个问题在v2ex上面看到不下5次。
多服务器多级vpn在广域网下基本无解吧 那个调优太扯淡了。

楼主如果跑缓存的话 最好用3层以上的东西去解决,3层解决这个东西太复杂了
比如同时query2个parent cache server 哪个快要哪个内容。
大文件的话在根据网络测量的加权去选择服务呗。

测试得分还是根据自己的环境去写算法比较好,看看论文,我记得这方面论文不少
lsylsy2
2014-04-14 14:15:38 +08:00
@tywtyw2002 主要问题就是动态内容,能缓存的缓存下来中间网络不太好也能忍,动态内容post请求什么的同时query两个显然就不行……而且有了这个算法之后哪怕我用来决定squid的“上层代理”走哪个也可以,这都是七层的事情了。


@echo1937 见你楼下,广域网上这轮子似乎还真没什么好的方案,我之前也说过了,算法就是个最短路径,重点是那个“评分公式”应该。
tywtyw2002
2014-04-14 14:20:25 +08:00
@lsylsy2 看论文吧,找到了顺便告诉我下
感觉关键字可以有。te(流量工程)

两条路走
一,做选路去。
二,动态补偿。
三,花钱。
itsjoke
2014-04-14 15:33:48 +08:00
拿OSPF举例是错了吧,这个明明是跟链路有关的
pauldjinni
2014-04-14 17:47:13 +08:00
基调、阿里测、360测什么的不就是干这个事儿的么
lsylsy2
2014-04-14 19:42:59 +08:00
@pauldjinni 他们测得应该是“从很多很多地方,访问你的网站,到底快不快”
而我要的是“我现在ABCD几台服务器,到底是A-B-C这么走快,还是A-D-C这么走快,还是A-C直接走快”

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/108471

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX