TCP和UDP的区别及优缺点
区别
区别 | TCP | UDP |
---|---|---|
是否基于连接 | 面向连接的协议 | 无连接的协议 |
可靠性和有序性 | TCP的逻辑通信信道是全双工的可靠信道且有序 | UDP是不可靠的信道 不提供任何有序性或序列性保证 |
实时性 | 一般 | 较好的实时性 适用于对高速传输和实时性有较高的通信或广播通信。 |
协议首部大小 | 20个字节 | 8个字节 |
运行速度 | 慢 | 快 |
传输模式 | 字节流模式 | 数据报模式 |
资源占用 | 系统资源要求较多 | 系统资源要求较少 |
应用 | 点到点 | 无需建立连接 适用于多播的环境 如游戏和娱乐场所 |
优缺点
基于上面的区别;TCP和UDP的优缺点也很明显了。
UDP 优点:简单、传输快。
- 网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。
- TCP为了实现网络通信的可靠性,使用了复杂的
拥塞控制算法
,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。
缺点:不可靠,不稳定;
UDP应用场景:
- 1.面向数据报方式
- 2.网络数据大多为短消息
- 3.拥有大量Client
- 4.对数据安全性无特殊要求
- 5.网络负担非常重,但对响应速度要求高
TCP:优点:可靠 稳定
TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认. 窗口. 重传. 拥塞控制机制,在数据传完之后,还会断开来连接用来节约系统资源。
缺点:慢,效率低,占用系统资源高,易被攻击
TCP应用场景:当对网络质量有要求时,比如HTTP,HTTPS,FTP等传输文件的协议;POP,SMTP等邮件传输的协议。
TCP协议如何保证可靠性
- 校验和
- 回传等待确认
- 流量控制
- 拥塞控制
参考:https://blog.csdn.net/u014401141/article/details/122961741