Dropbox服务器如何使其所有客户端应用程序保持连接活动状态?

时间:2015-02-20 07:00:01

标签: dropbox

Dropbox拥有超过300万的user.Dropbox桌面应用程序需要为每次更新保持与Dropbox服务器的连接。

但Dropbox服务器如何保持与其所有桌面用户的连接?

2 个答案:

答案 0 :(得分:2)

Dropbox客户端会不断打开TCP连接以侦听服务器端通知。当收到通知时,客户端会启动HTTPS对话以查看更改内容并下载。当客户端发生变化时,它还会启动HTTPS对话以更新服务器上的文件。

来源:http://www-net.cs.umass.edu/imc2012/papers/p481.pdf

  

Dropbox客户端不断打开TCP   连接到通知服务器(notifyX.dropbox.com),   用于接收有关其他变更的信息 -   哪里。与其他流量相比,通知连接   没有加密。延迟HTTP响应用于实现推送机制:本地客户端发送通知请求,要求最终更改;如果没有变化,大约60秒后定期收到服务器响应;收到后,客户立即   发送新请求。中央存储的更改将在执行后立即公布。

虽然解密的标题没有说明Dropbox使用哪些服务器来保持这么多开放的TCP连接,但是人们报告能够保持超过600k(https://stackoverflow.com/a/9676852/15472)甚至超过1M(http://blog.whatsapp.com/196/1-million-is-so-2011)。通过足够的负载平衡,300M用户(其中​​只有一小部分同时连接并主动共享数据)当然可以实现。

答案 1 :(得分:0)

我怀疑所有300M用户是否同时连接......并且根据他们提供的存储量,他们将拥有足够的服务器来处理所需的连接数量,一次可能是其用户数量的1%

如果您想自己调查,可以使用TCPView(Sysinternals Suite的一部分)等工具来检查应用程序打开哪些连接,或者使用Wireshark检查传输的数据。
我假设你的意思是“更新”存储内容;也可以通过打开连接,获取文件列表并在之后关闭连接,以固定间隔发生。在这种情况下,连接将在例如一个间隔内使用几秒钟。 5分钟。这将再次减少所需的同时连接数量~100。

相关问题