游戏开发论坛

 找回密码
 立即注册
搜索
楼主: sea_bug

MMOG网络同步算法揭秘(QQ幻想)

[复制链接]

0

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2012-8-4 23:28:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

http://gafferongames.com/networking-for-game-programmers/reliability-and-flow-control/
Reliability and Flow Control
解释了tcp为什么会影响流畅性。
The problem with TCP is that it abstracts data delivery as a reliable ordered stream. Because of this, if a packet is lost, TCP has to stop and wait for that packet to be resent. This interrupts the steady stream of packets because more recent packets must wait in a queue until the resent packet arrives, so the packets may be presented in order.
判断丢失的包的性质,如果需要重新发送的话,就重新发送
We never stop and resend packet n if it was lost, we leave it up to the application to compose a new packet containing the data that was lost, if necessary, and this packet gets sent with a new sequence number.

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
发表于 2012-8-4 23:30:00 | 显示全部楼层

Re: Re:MMOG网络同步算法揭秘(QQ幻想)

做过实验么?这种底层的损失1/100秒可能都没有,上层应用都不可能有任何察觉。
就这个理由重新封装一个tcp是不是很蛋痛?
而且谁能拿出一个比tcp更安全,更可靠,速度更快的协议层出来?多了没有我立刻拍1千块给他。
nut799: Re:MMOG网络同步算法揭秘(QQ幻想)

继续讨论,周末了 ,放假:
文章里解释不使用tcp的最大原因是:当tcp发现有丢包的时候,就会停止发送数据,...

0

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2012-8-5 00:39:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

我没做过试验,文中有数据支撑
The problem is that if we were to attempt to synchronize this using TCP, whenever a packet is dropped it has to stop and wait for that data to be resent. Yes, even if more recent data arrives, that new data gets put in a queue, and you cannot access it until you receive the lost packet. How long does it take to resend the packet? Well, it is going to take at least round trip latency for TCP to work out that data needs to be resent, and another one way trip from the sender to the receiver for the resent packet to get there. So if you have a 125ms ping, you will be waiting roughly 1/5th of a second for the packet data to be resent at best, and in worst case conditions you could be waiting up to half a second or more (consider what happens if the attempt to resend the packet fails to get through?) Fun times!

0

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2012-8-5 00:41:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

而且并不是拿出比tcp更好的协议,只是tcp的某些 特点并不适合 这种应用场景,所以才需要自己简单的封装udp.文章作者也这么说了

0

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2012-8-5 00:47:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

ping 是 125ms的话,一来一回至少就是250ms

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
发表于 2012-8-5 03:29:00 | 显示全部楼层

Re: Re:MMOG网络同步算法揭秘(QQ幻想)

看的出来你是追求完美的人,但这个东西单单比天平的一端是没有用的,
要看天平的另一端,自己维护udp所带来的坏处。
nut799: Re:MMOG网络同步算法揭秘(QQ幻想)

ping 是 125ms的话,一来一回至少就是250ms

30

主题

720

帖子

720

积分

高级会员

Rank: 4

积分
720
发表于 2012-8-5 09:28:00 | 显示全部楼层

Re: Re: Re:MMOG网络同步算法揭秘(QQ幻想)

难道是斑竹又拿qq讲堂的水货来卖 [em19] [em24]

0

主题

17

帖子

19

积分

新手上路

Rank: 1

积分
19
发表于 2012-8-5 12:39:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

呵呵  ,本来是讨论这个的,后来话题集中在 使用tcp 还是udp上面了。

30

主题

720

帖子

720

积分

高级会员

Rank: 4

积分
720
发表于 2012-8-5 14:01:00 | 显示全部楼层

Re:MMOG网络同步算法揭秘(QQ幻想)

你能指望他们的见识有多高?最多捣鼓玩具的业余水平。

58

主题

1437

帖子

2207

积分

金牌会员

Rank: 6Rank: 6

积分
2207
发表于 2012-8-8 21:02:00 | 显示全部楼层

Re: Re:MMOG网络同步算法揭秘(QQ幻想)

并不是国外的东西就都是好东西,这个世上有好东西和坏东西,
但并不分国内国外。QQ讲堂的这个文章空洞无物没什么可说。
udp和tcp都是会有丢包的问题,tcp重发包时间肯定是加倍,
udp丢包难道就可以不管了吗?当然不是,upd丢包也要重发。
那么这篇文章所说的upd比tcp效率提升,提升在哪呢?
这是第一个问题,那么第二个问题就是,这种提升所带来的收益究竟有多大。
假设一个tcp稳定链接的丢包率是10%。所带来的重发封包3次导致的效率降低是最大30%。
那么使用upd也会有丢包10%的问题,他的效率提升是重发1次或2次的问题,3次就和tcp一样所谓低效了。
那么所带来的效率降低就是10%,20%。那么对应的效率提升是最大20%或10%。
那么这提升10%或20%的效率是链接率的降低。重试3次肯定比重试2次或1次的链通率要高。
所以我怎么都看不出来自己维护udp所带来的那点效率提升比tcp要好。
nut799: Re:MMOG网络同步算法揭秘(QQ幻想)

而且并不是拿出比tcp更好的协议,只是tcp的某些 特点并不适合 这种应用场景,所以才需要自己简单的封装udp.文章作者也这么说了

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2025-2-26 19:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表