免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: mik
打印 上一主题 下一主题

大家讨论一下 IM 的实现结构和方案 [复制链接]

论坛徽章:
0
51 [报告]
发表于 2009-07-07 09:54 |只看该作者
原帖由 flw 于 2009-7-7 00:00 发表

我也曾看过 ejabberd,感觉这种东西还是要用起来才算数,没用户就没成就感。

没用户也没钱

论坛徽章:
0
52 [报告]
发表于 2009-07-07 10:00 |只看该作者
此帖子值得顶

我总是对网游的速度感兴趣,当然路由器可以做到的速度,网游貌似也可以做到,觉得很牛,呵呵。

能描述下那几w台服务器之间的关系吗?

论坛徽章:
0
53 [报告]
发表于 2009-07-07 10:35 |只看该作者

xhl 说的分区服务器,就是前置连接server吧,后端就是其它的业务server了

rt

论坛徽章:
0
54 [报告]
发表于 2009-07-07 10:46 |只看该作者
原帖由 yulc 于 2009-7-7 09:38 发表


xhl, 这个好像不太对.
qq的音视频,  它首先会尝试udp的直连.
如果不可以, 它还会尝试 服务器中转 的方式来建立双方的连接.



早期的qq版本是这样的, 原则是尝试udp p2p, 如果不通, 也会尝试用udp relay, 自己用server, 但也可能不通, 因为firewall的原因

很多网络环境是禁止udp的。 所以建立tcp连接, 还不通, 建立tls连接, 通过8443 通过server relay,  这样做是保证了用户的服务, 但

运营成本很高, qq语音视频是免费的服务, 我想也许会员用户可能会这样, 不管如何, 都保证你能通, 普通的, 基本就是不通就不管了。

论坛徽章:
0
55 [报告]
发表于 2009-07-07 10:51 |只看该作者
原帖由 aaronvox 于 2009-7-7 10:00 发表
此帖子值得顶

我总是对网游的速度感兴趣,当然路由器可以做到的速度,网游貌似也可以做到,觉得很牛,呵呵。

能描述下那几w台服务器之间的关系吗?



网络游戏的同步, 是一大难点, 基本思路就是先同步时间, 大概估算某个时间段server跟没个用户之间上下行的时延, 一般在200ms内精确。

这个基本要不停的做, 因为某个时间段带宽情况会不停的变化。

然后就是逻辑上不能把带宽慢的拉快, 因为物理条件限制, 但可以把带宽好的, 速度快的拉慢。 达到所有视野内玩家的同步。

我只说理论, 实现很难, 基本只能用 udp的协议, 做到很同步的话, tcp的, 基本别想了。

我最近在研究这方面, 因为在做一款游戏。

论坛徽章:
0
56 [报告]
发表于 2009-07-07 10:52 |只看该作者

回复 #25 xhl 的帖子

我是从做产品的角度说制作难, 不是写程序难。


如果从头开始自己做的话,事实上是写程序更难。实现良好的伸缩性,其难度相对处理规模是呈几何级数上升的,个人意见。还好现实世界绝大多数系统的处理规模都相当有限。

论坛徽章:
0
57 [报告]
发表于 2009-07-07 11:03 |只看该作者
原帖由 xhl 于 2009-7-7 10:51 发表



网络游戏的同步, 是一大难点, 基本思路就是先同步时间, 大概估算某个时间段server跟没个用户之间上下行的时延, 一般在200ms内精确。

这个基本要不停的做, 因为某个时间段带宽情况会不停的变化。
...

和你的看法不同, 时间的同步理论上是不可行的. 把分布式系统的正确性建立在时间同步上, 根本上就是失败的. 为了避免网速影响客户端指令的处理速度, 服务器会限制单位时间内能处理单个客户端的指令数量. 如果某个客户端的速度超过了, 就停止服务该客户端.

[ 本帖最后由 ideawu 于 2009-7-7 11:05 编辑 ]

论坛徽章:
0
58 [报告]
发表于 2009-07-07 11:15 |只看该作者
原帖由 ideawu 于 2009-7-7 11:03 发表

和你的看法不同, 时间的同步理论上是不可行的. 把分布式系统的正确性建立在时间同步上, 根本上就是失败的. 为了避免网速影响客户端指令的处理速度, 服务器会限制单位时间内能处理单个客户端的指令数量. 如果某 ...



时间同步是有个误差限制的, 如果差的太多, 就踢掉该用户了。 这样做是为了保证大多数用户能玩, 不卡。

最近比较火的游戏DNF, 在这方面就做的很nb...

另外也不一定是要调整发包时间, 而是在收到包后, 稍后处理。 当然这个只有在及时pk类的, 例如赛车,足球, dnf类的游戏了, 才用的到,一般的rpg游戏, 没多大必要。

[ 本帖最后由 xhl 于 2009-7-7 11:17 编辑 ]

论坛徽章:
4
CU大牛徽章
日期:2013-04-17 11:48:26CU大牛徽章
日期:2013-04-17 11:48:40CU大牛徽章
日期:2013-04-17 11:48:45摩羯座
日期:2013-12-06 18:10:04
59 [报告]
发表于 2009-07-07 11:53 |只看该作者
这个贴子不错,学到不少东西。

只是,看到上面一位传唤说TCP打洞穿透NAT?如何做到?貌似只有UDP好穿透啊。

论坛徽章:
0
60 [报告]
发表于 2009-07-07 12:06 |只看该作者
原帖由 fire_cpp 于 2009-7-7 11:53 发表
这个贴子不错,学到不少东西。

只是,看到上面一位传唤说TCP打洞穿透NAT?如何做到?貌似只有UDP好穿透啊。



tcp的打洞理论上是可以的, 但因为很多网关都有firewall, 所以很难通过, 我觉得那个只是停留在理论上。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP