Questions tagged «udp»

10
在数据量大的实时游戏中,UDP是否仍优于TCP?
我知道对于高数据使用率的实时多人游戏通常建议使用UDP。 大多数文章都是有用的,并且由于互联网上传输的所有数据中约80%是TCP,因此必须对TCP进行很多优化。 这让我感到奇怪:UDP在速度和延迟方面是否仍然优越?最近的TCP优化是否可以使TCP的性能优于UDP?
71 c++  networking  udp  realtime 

4
使用UDP的确认可靠性
我对UDP有疑问。对于上下文,我正在开发实时动作游戏。 我已经阅读了很多有关UDP和TCP之间的区别的文章,并且我对它们的理解非常好,但是其中有一件从未感觉过正确,那就是可靠性,尤其是致谢。我了解默认情况下UDP不提供可靠性(即数据包可能会被丢弃或乱序发送)。当需要某种可靠性时,我所见的解决方案(从概念上讲是有意义的)是使用确认(即服务器向客户端发送数据包,并且当客户端收到该消息时,它将确认发送回服务器)。 。 取消确认后会发生什么? 在上面的示例中(一台服务器向一个客户端发送数据包),服务器通过每帧重新发送数据包直到收到针对这些数据包的确认,来处理潜在的数据包丢失。您仍然可能会遇到带宽问题或消息混乱的情况,但是仅从丢包的角度来看,服务器已被覆盖。 但是,如果客户端发送了从未到达的确认,则服务器别无选择,只能最终停止发送该消息,如果需要该数据包中包含的信息,这可能会破坏游戏。您可以对服务器采取类似的方法(即一直发送确认,直到收到确认的确认?),但是这种方法会使您永远来回循环(因为您需要为确认而需要一个确认)等等)。 我觉得这里的基本逻辑是正确的,这给了我两个选择。 发送单个确认包,并希望最好。 发送少量确认数据包(可能是3-4个),并希望达到最佳状态,前提是并非所有数据包都将被丢弃。 这个问题有答案吗?我是从根本上误解了吗?是否可以保证使用我不知道的UDP?我对继续使用太多的网络代码感到犹豫,直到我对自己的逻辑是合理的感到满意为止。
16 networking  udp 

4
同时使用TCP和UDP是否有意义?
读完之后对于大量数据实时游戏,UDP是否仍然优于TCP?,我想知道同时使用TCP和UDP是否有意义,但是对于不同的事物: TCP,用于发送很少发送的信息,但应确保可靠到达。 例如分数更新,玩家的名字,甚至是游戏世界中灯光的开/关状态。 UDP用于传输不断更新的信息,有时可能会丢失,因为总是有更新的信息出现。 例如位置,旋转度等 这是一个合理的主意吗?可能的缺点是什么? 有更好的方法来解决这个问题吗?

2
UDP非阻塞还是单独的线程来接收?
我正在创建一个多人游戏(适用于64位以下的玩家)。我已经决定为网络循环设置一个单独的线程,但是我想知道是否最好创建一个额外的线程来接收UDP或将接收套接字设置为非阻塞(没有额外的线程)。 还是使用其他方法(例如异步套接字)更好?始终欢迎更好的方法!

3
如何避免被节制?
我正在写一个联网的iOS游戏。当以每秒60个数据包(即相邻数据包之间的16毫秒)发送数据包GKMatchSendDataReliable(我假设是UDP并写有自己的数据包接收代码)时,平均ping时间迅速恶化:我在下面打开了7个GameCenter匹配项(一个接一个) ),然后简单地发送了100个数据包(每秒60个数据包)。我测量了平均往返时间,结果如下: [ 21:16:39 ]: I saw an average roundtrip time of 52.342787 ms, he saw 54.496590 ms [ 21:16:34 ]: I saw an average roundtrip time of 62.631942 ms, he saw 61.991655 ms [ 21:16:45 ]: I saw an average roundtrip time of 88.394380 ms, he saw 83.619123 ms …
9 networking  udp 

2
服务器端输入
当前在我的游戏中,客户端不过是渲染器。当输入状态更改时,客户端将数据包发送到服务器,并像对待输入一样处理播放器,但是服务器保留最终决定权。 除了一个大问题:掉落边缘,这通常效果很好。基本上,如果玩家正朝着一条边走,比如说一个悬崖,并且在走出边缘之前就停下来了,有时是一秒钟之后,他将被传送到边缘之外。这是因为在服务器处理信息后发送了“我停止按W”数据包。 这是一个滞后图,可以帮助您理解我的意思:http : //i.imgur.com/Prr8K.png 我可以每帧发送一个“ W Pressed”数据包供服务器处理,但这似乎是带宽成本很高的解决方案。 任何帮助表示赞赏!

3
如何防止多人游戏中的身份欺骗?
我正在考虑客户端欺骗IP地址,欺骗其他客户端他们是服务器。这样的东西。(对此我不太了解,因此,如果这是完全错误的,请纠正我。) 我应该怎么做才能防止这种情况?因为它是实时游戏,所以如果我要使用加密,我会使用快速而安全的东西,例如RC4。我应该使用服务器提供给客户端的密钥来加密数据包数据吗? 如果有什么不同,我正在使用UDP。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.