new*_*mer 8 networking udp tcp
我想制作一个在互联网上运行的多人游戏,而不仅仅是局域网等低延迟,高吞吐量的环境.
我的游戏中有一些网络方面,UDP显然更适合,比如传输有关各种玩家的位置和速度的信息.必须尽快接收此数据,并且重新发送丢弃的数据包将无济于事,因为该数据在到达客户端时无关紧要.删除某些数据包是完全可以的.
但是,我的游戏还有一些其他方面严格要求按顺序保证交付.数据包的自动分段(分解和重新组合在一起)也非常有用.似乎TCP完成了所有这些.除非严格按顺序且没有丢失数据包,否则数据根本没用.在某些情况下,延迟将不可避免地受到此类数据的影响,但这是不可避免的.
因此,不是在UDP之上实现类似TCP的功能,(使用数据缓冲区,用数字标记数据包以确定它们的顺序,数据包确认系统),这将是确保其正常和有效工作的大量工作,我想同时使用TCP和UDP.
但是,我听说如果你同时使用它们,TCP和UDP可以互相争夺带宽,并且使用TCP会增加UDP丢弃数据包的速率.这是真的吗?在混合使用这两个协议时,还有其他问题需要处理吗?