TCP 的优点: 可靠,稳定
TCP 的可靠体现在 TCP 在传递数据之前,会有三次握手来建立连接,而且在 数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会断开连 接用来节约系统资源。
TCP 的缺点: 慢,效率低,占用系统资源高,易被攻击
TCP 在传递数据之前,要先建连接,这会消耗时间,而且在数据传递时,确 认机制、重传机制、拥塞控制机制等都会消耗大量的时间,而且要在每台设备上 维护所有的传输连接,事实上,每个连接都会占用系统的 CPU、内存等硬件资源。而且,因为 TCP 有确认机制、三次握手机制,这些也导致 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,用的 FTP Outlook,用的 POP、SMTP Putty,用 的 Telnet、SSH QQ 文件传输
什么时候应该使用 UDP:
当对网络通讯质量要求不高的时候,要求网络通讯速度能尽量的快,这时就 可以使用 UDP。 比如,日常生活中,常见使用 UDP 协议的应用如下: QQ 语音 QQ 视频 TFTP
有些应用场景对可靠性要求不高会用到 UPD,比如长视频,要求速率。
小结 TCP 与 UDP 的区别:
1.基于连接与无连接;
2.对系统资源的要求(TCP 较多,UDP 少);
3.UDP 程序结构较简单;
4.流模式与数据报模式 ;
5.TCP 保证数据正确性,UDP 可能丢包,TCP 保证数据顺序,UDP 不保证。