[Unity Mirror] TCP 和 UDP
TCP 和 UDP 都是用于通过 Internet 发送信息的协议 - 事实上,它们是世界上最常用的两种 Internet 协议:TCP 是在 1970 年代开发的,而 UDP 是在 1980 年代引入的。但是,重要的是要注意 TCP 和 UDP 通信之间的两个主要区别:
- TCP 具有内置的可靠性,可确保数据正确地从 A 传输到 B,并以更高的延迟进行权衡。
- UDP 的数据传输延迟较低,但原始协议本质上是不可靠的,并且不能保证数据会正确地从 A 发送到 B。
TCP(传输控制协议)
如前所述,TCP 是 Internet 上最流行的协议。 TCP 用于 HTTP、SSH、FTP 和更多应用程序。 TCP 核心特性使程序员可以轻松地使用该协议,因为程序员将能够确保数据正确地从 A 发送到 B。然而,虽然这听起来不错,但当连接出现故障或遇到严重动荡时,它可能会引入更高的延迟。
在游戏环境中,TCP 更适合节奏较慢的游戏,延迟并不重要,但游戏数据很重要。
主要特点包括
可靠:应用程序不必担心丢失数据包。如果数据包丢失,TCP 将重新发送它。所有数据要么成功传输,要么出现错误并关闭连接。
顺序:TCP 保证每条消息都按照发送的顺序到达。如果您先发送“a”然后发送“b”,那么您也会在另一侧收到“a”然后“b”。
面向连接:TCP 有连接的概念。连接将保持打开状态,直到客户端或服务器决定关闭它。当连接结束时,客户端和服务器都会收到通知。
拥塞控制:如果服务器不堪重负,TCP 将限制数据以避免拥塞崩溃。
使用 TCP 协议进行传输
- Telepathy
- WebSockets
UDP(用户数据报协议)
UDP 用于实时应用程序,例如快节奏的动作游戏或 IP 语音 (VoIP),在这些应用程序中,低延迟比可靠性更重要。应用示例包括 Skype、Discord、Zoom 等。
在游戏环境中,可以利用 UDP 的原始功能来更好地控制数据的发送方式,从而更快地发送非关键数据。这反过来使 UDP 更适合快节奏的游戏,其中服务器和客户端之间的延迟很重要,如果丢失了一些数据包,游戏可以恢复。
主要特点包括
低延迟:UDP 更快,因为它不需要等待远程端确认数据包。相反,它可以一个接一个地不断发送新的数据包。它也被称为“散点图”协议,因为它只会向客户端发送数据,而不能保证他们会真正获得数据。
通道支持:通道允许不同的交付类型。根据实现的不同,一个通道可用于需要到达目的地的关键数据,而另一个通道可用于“发送并忘记”数据传输,没有任何可靠性。
不同的数据包类型:根据 UDP 协议之上的实现,一些传输提供不同的数据包发送方法,例如 Reliable Ordered、Reliable Unordered、Unreliable 等等,具体取决于实现。可靠的 UDP 传输依赖于实现,但它通常模仿 TCP 的可靠性系统。
使用 UDP 协议传输
- Ignorance
- KCP
- LiteNetLib
选择权在你手中
Mirror 是独立于传输的,它们可以简单地添加到您的 NetworkManager GameObject 中。 Mirror 默认带有 KCP 传输(除 WebGL 之外的所有平台)和 Websocket (WebGL) 传输。有关传输的更多信息,请参阅传输页面。
选择最适合您和您的游戏的传输工具。我们建议您在做出最终决定之前分析您的游戏网络并收集真实世界的数字。
[Unity Mirror] TCP 和 UDP相关推荐
- [Unity Mirror] Network Manager
英文原文: https://mirror-networking.gitbook.io/docs/components/network-manager 网络管理器是用于管理多人游戏的网络方面的组件. ...
- TCP和UDP相关记录
有关于计算机网络的知识,准确来说我也忘得差不多了,现在要开始找实习了.努力从新学一下,记录在这里以防丢失. ---------------------------------------------- ...
- 基于tcp和udp的socket实现
2019独角兽企业重金招聘Python工程师标准>>> 本文介绍如何用Java实现Socket编程.首先介绍Java针对Socket编程提供的类,以及它们之间的关系.然后分别针对TC ...
- TCP和UDP DNS DHCP OSPF的五种包:
TCP和UDP: 通俗易懂的TCP里面的三次握手以及四次挥手 [网络协议]TCP分段与IP分片 DNS :https://blog.csdn.net/weixin_42859280/article/d ...
- 40 张图带你搞懂 TCP 和 UDP
前言 拿下计网协议后,我就是公园里最靓的仔 TCP/IP 基础知识总结 计算机网络基础知识总结 那么下面就开始我们本篇文章,文章组织脉络如下 运输层位于应用层和网络层之间,是 OSI 分层体系中的第四 ...
- tcp、udp协议连接的建立和释放
tcp协议连接的建立和释放 一.tcp协议 (1)tcp的头部结构 (2)tcp的三次握手(重点) (3)tcp的四次挥手(重点) (4)tcp的状态转移图 (5)tcp可靠性的体现 二.UDP协议 ...
- TCP 和 UDP 在socket编程中的区别
(网络收集) 一.TCP与UDP的区别 基于连接与无连接 对系统资源的要求(TCP较多,UDP少) UDP程序结构较简单 流模式与数据报模式 TCP保证数据正确性,UDP可能丢包 TCP保证 ...
- TCP和UDP 粘包 消息保护边界
在socket网络程序中,TCP和UDP分别是面向连接和非面向连接的.因此TCP的socket编程,收发两端(客户端和服务器端)都要有一一成对的socket,因此,发送端为了将多个发往接收端的包,更有 ...
- TCP和UDP的最完整的区别
TCP UDP TCP与UDP基本区别 1.基于连接与无连接 2.TCP要求系统资源较多,UDP较少: 3.UDP程序结构较简单 4.流模式(TCP)与数据报模式(UDP); ...
最新文章
- iOS 9 适配系列教程
- Oracle集合操作
- 隐私计算--代理重加密
- 解决spring配置c3p0连接池,tomcat无法正常启动
- Socket 多线程FTP软件开发
- 案例 github_2019年12月Github上最热门的Java开源项目,速来围观!
- 揭开HTTPS的神秘面纱
- mysql配置两个猪数据库_Linux下安装启动多个Mysql
- [原]问题解决办法:there are offline or missing virtual drivers with preserved cache
- JAVA基础系列:Object类
- 【三石jQuery视频教程】02.创建 FontAwesome 复选框和单选框
- wlan消失 网络适配器文件夹空了 设备管理器黄色感叹号 wifi那里看不到任何WiFi解决
- 物联网如何改变医疗保健行业
- ArcGIS:如何进行栅格数据的拼接和裁剪、坡度坡向的提取、地形透视图的建立、等高线的提取、剖面图的创建?
- MVC AJAXPro
- java properties文件 变量_properties文件和环境变量
- php 内核 字符串 比较,PHP内核探索之变量- 不平凡的字符串
- c语言表达式5278的值是 1 .,c语言表达式5278的值是_____。
- MHDD硬盘坏道检测修复教程(转)
- SpringBoot 整合eazyPoi 4.3.0 Excel数据导入导出(持续更新功能)