我正在用Java编写一个线程/连接mmorpg服务器,我想知道,我应该使用普通的Socket类并自己为连接添加安全性(用某个握手顺序交换密钥吗?),或者是否最好使用SSLSocket类始终将客户端与服务器连接? 是否有任何基准测试或性能测试可以显示SSLSocket类的性能?
答案 0 :(得分:1)
大多数MMO服务器都不使用SSLSocket,但对于您的情况,建议使用它。您应该通过SSL连接执行Diffie-Hellman-Keyexchange,然后使用Blowfish对称地加密所有后续数据包。
附录: 我不认为它仍然认为SSLSockets在服务器上增加了更多的负载。如果服务器是最新的,他应该能够应付额外的加密负载。我知道星际争霸2它会自己加密数据包并使用UDP来达到这个目的。此外,WOW对其数据包使用加密,以防止在途中更改数据并嗅探玩家位置。加密适用于每个MMO,但是如何实现它取决于您。
我指出了这个问题,讨论了这个问题:http://www.gamedev.net/topic/589113-should-mmorpgs-use-encryption/
此外,还有一本关于此问题的Google图书: http://books.google.at/books?id=hiBFUv_FT0wC&pg=PA105&lpg=PA105#v=onepage&q&f=false
答案 1 :(得分:0)
我非常怀疑MMO服务器是否有额外的带宽来保存解密SSL数据包。我会使用SSL进行登录,然后降级到常规套接字。