TCP 和 UDP的最完整的区别
转自:https://www.cnblogs.com/williamjie/p/9390164.html
TCP(Transmission Control Protocol , 传输控制协议)
DUP(User Data Protocol, 用户数据报协议)
TCP优点与缺点:可靠,稳定。TCP的可靠体现在TCP在传递数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源。TCP的缺点:慢,效率低,占用系统资源高,易被攻击TCP在传递数据之前,要先建立连接,这会消耗时间,而且数据传递时,确认机制、重传机制、拥塞控制机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接,事实上,每个连接都会占用系统的CPU、内存等硬件资源。而且,因为TCPyou确认机制、三次握手机制、这些也导致TCP容易被人利用,实现DOS、DDOS、CC等攻击。
UDP优点和缺点:快,比TCP稍安全 UDP没有TCP的握手,确认,窗口、重传、拥塞控制等机制,UDP是一个无状态的传输协议,所以它在传输数据时非常的快。没有TCP的这些机制,UDP比TCP被攻击者利用的漏洞就要少一些。但UDP也是无法避免攻击的,比如:UDP Flood攻击.....UDP缺点:不可靠,不稳定 因为UDP没有TCP那些可靠的机制,在数据传递时,如果网络不好,就会容易丢包。
基于上面的优缺点,那么:什么时候使用TCP ?
当对网络通讯质量有要求的时候,比如:整个数据要准确无误的传递给对方,这往往用于一些要求可靠的应用,比如HTTP、HTTPS、FTP等传输文件的协议,POP、SMTP等邮件传输的协议。在日常生活中,常见使用TCP协议的应用如下:浏览器,用的HTTP FlashFXP,用的可以使用UDP.比如,日常生活中,常见使用UDP协议的应用如下:QQ 语音 QQ视频 TFTP.....
TCP只能点对点全双工通信;UDP支持一对一、一对多、多对一和多对多的交互通信。
TCP和UDP的使用场景
为了实现TCP网络通信的可靠性,增加校验和、序号标识、滑动窗口、确认应答、拥塞控制等复杂的机制,建立了繁琐的握手过程、增加了TCP对系统资源的消耗;TCP的重传机制、顺序控制机制等对数据传输有一定延时影响,降低了传输效率。TCP适合对传输效率要求低,但准确率要求高的应用场景,比如万维网(HTTP),文件传输(FTP)、电子邮件(SMTP)等。
UDP是无连接的,不可靠传输,尽最大努力交付数据,协议简单,资源要求少,传输速度快、实时性高的特点,适用于对传输效率要求高,但准确率要求低的应用场景,比如域名转换(DNS)、远程文件服务器(NFS)等。