页面

2011年6月3日星期五

dropbox的通知服务器改为notify4了

关键词:dropbox, stork, stork47, notify, notify4, notification, gfw, 实时同步

又是一篇关于dropbox的文章,觉得烦了的就不用看了吧。之前研究过dropbox的实时同步机制,说是dropbox通过stork47.dropbox.com通知客户端进行实时同步。今天注意到这个服务器已经改成notify4.dropbox.com了。它还有一个服务器名,是sjc-not4.sjc.dropbox.com。


请务必搞清楚“实时同步”的意思再看本文。看看上面引用的那篇文章即可明白。之前有人说把stork47.dropbox.com加进hosts就能不受gfw影响了,但我用这个方法一直不成功,只好另辟蹊径了。不过如果你用hosts方法成功了,那么现在你就需要改一下hosts了。ip地址可以到http://just-ping.com查,这个比nslookup可信,不用担心dns污染。


通过观察一段时间的dropbox连接情况,发现它向服务器轮询的时间有了变化。以前是每60秒轮询一次,现在则是以50秒为平均值上下浮动。说来奇怪,实时同步似乎和这个轮询并没有关系。因为我抢在两次轮询之间更新某个文件,客户端也能立即同步。但是如果用gfw挡住这个轮询请求,就会没法实时同步。看来是通知服务器也同时发起到本地计算机的连接,而且是实时的,只要有更新,就会发起通知。而本地发起的轮询只是通知一下服务器最新的客户端IP地址,并不是去获取更新。客户端和服务器之间不保持一个长连接,便靠这种机制互相通信。当然我对网络什么的并不在行,只是凭直觉乱猜。想要证实这个想法的话也简单,有闲的人可以试试:


我们先设置dropbox为不走代理,这个时候是无法实时同步的。然后抢在两次轮询之间动态切换成国外代理,同时在其他客户端修改一个文件,观察dropbox是否立即更新。如果直到下次轮询时才进行更新,那便说明我的猜想是正确的。


该实验的重点是动态切换代理。我们不能按正常手段切换代理,因为那样会破环两次轮询的间隔,导致本地立即进行一次轮询。使用动态代理的目的是,不直接操作dropbox客户端而改变它的ip地址。我手头没有这样的软件(似乎wallproxy-plugins可以做到),就算有也懒得去试,因为即使实验成功,也体会不到相应程度以上的成就感。


使用Facebook社交插件参与评论:

没有评论:

发表评论