区别:
- TCP是面向连接的,传递数据前会通过三次握手来建立连接,UDP是无连接的,发送数据时不需要建立连接
- TCP是可靠,稳定的,在数据传递时有确认重传、滑动窗口、流量控制、拥塞控制机制,传递的数据是无差错、不丢失、不重复、按序到达的,传递数据比较慢,占用资源高,UDP没有那些机制,不保证数据的可靠传递,传递数据比较快,占用资源低
- TCP因为有很多机制来保证数据可靠传递,所以很容易被人利用,实现DOS、DDOS、CC等攻击,UDP没有这些机制,被利用的漏洞比较少,但也是无法能够避免攻击的,如UDP Flood攻击
- TCP面向字节流,将数据看成一串无结构的字节流,UDP是面向报文的
使用场景:
- TCP往往用于对网络质量要求高,传递数据要准确无误的应用上,如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议,像文件传输、邮件系统、金融领域
- UDP用于对网络质量要求不高、传输速度要求快的应用上,如一些直播平台,语音交流应用