情景:
我会说一个非常糟糕的解决方案:
最有效的方法是什么?我们正在努力使上述比率最大化,同时保持合理的转移时间。
答案 0 :(得分:1)
客户端发送文件名,服务器发回该文件内容的哈希值(md5)。客户端尝试所有可能的组合以获得完全相同的md5。然后发送回猜测,服务器验证。
答案 1 :(得分:1)
最有效的方式是什么?
除非您可以将数据压缩到 y 字节,否则
。所有通过猜测来解决问题的尝试都是徒劳的,因为猜测的ACK / NACK答案也是通信的一部分。要区分x个字节的两个数据,需要x个字节的答案。
从不同角度看一下:在猜测游戏中,发送猜测的整个任务可以由自动机器替换,一个接一个地猜测。哎呀,服务器可以自己进行枚举。然后它会简单地说:嘿,#1051351尝试是正确的。但要再次传输,您需要 x 字节。如您所见,另一方面的沟通完全无关紧要。
答案 2 :(得分:-1)
好的,如果我理解正确,客户端收到的总字节数有限制,他需要从服务器获取文件(或者至少弄清楚该文件的内容)。
选项:
所以我认为最好/最快的方法就是正常下载文件(部分内容,如果这是限制)。 否则,你想要找到N的值,其中FILESIZE / N< MAX_RECEIVE_BYTES。
修改强>: 我能想到的另一件事是,客户端向服务器询问文件中的0和1的数量,这样他就可以进行更多有根据的猜测,从而减少可能组合的空间=请求数量=更快。