TCP的有点:
可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立链接,而在数据传递时,有确认、重传、拥塞控制机制,还会断开连接用来节约系统资源
TCP的缺点:慢,效率低、占用系统资源高、易被攻击
在传输数据之前,要先建立连接,这会消耗时间,确认机制、重传机制、拥塞控制机制都会消耗大量时间,而且要在每台设备上维护所有的传输连接,而每个连接都会占用系统的CPU、内存等硬件资源。
UDP的优点:
快,比TCP稍安全,UDP没有TCP的握手,确认、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传输数据时非常快。
UDP的缺点:
不可靠、不稳定。因为UDP没有TCP那些可靠的机制,在网络不好的时候,就很容易丢包
怎么选择:
选择TCP协议:
当对网络通讯质量有要求的时候:比如整个数据要准确无误的传递给对方,这往往需要选择一些要求可靠的应用,如HTTP、HTTPS、FTP等传输协议,POP、SMTP等邮件传输协议,如:浏览器、QQ传文件等
选择UDP协议:
当网络通讯质量要求不高的时候,要求网络通讯迅速度能尽量的快,这是就可以使用UDP,如:QQ语音、QQ视频、TFTP等
小结TCP和UDP的区别:
基于连接与无连接
对系统资源的要求(TCP较多、UDP少)
UDP程序结构较简单
流模式与数据报模式
TCP保证数据正确性,UDP可能丢包,TCP保证数据顺序,UDP不保证
TCP适合传输大量数据的,UDP适合传输少量数据