TCP
TCP全称为Transmission Control Protocol(传输控制协议),是一种可靠的面向连接传输协议,同时它也是一种client-server模式的协议,因为是可靠的传输协议,所以它比UDP要复杂的多
TCP的主要特点:
- TCP是面向连接的传输协议;
- 每一条TCP有且只有两个端点,为一对一关系;
- TCP提供可靠交互的服务;
- TCP提供全双工通信,全双工为即可传输又可接收;
- TCP是面向字节流的。
优点:可靠、稳定
TCP的可靠体现在TCP在传输数据之前,会有三次握手来建立连接,而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完之后,还会断开连接用来节约系统资源
缺点:慢,效率低,占用系统资源高,易被攻击
在传递数据之前要先建立连接,这会消耗时间,而且在数据传递时,确认机制、重传机制、拥塞机制等都会消耗大量时间,而且要在每台设备上维护所有的传输连接。然而,每个链接都会占用系统的CPU、内存等硬件资源。因为TCP有确认机制、三次握手机制,这些也导致TCP容易被利用,实现DOS、DDOS、CC等攻击
UDP
UDP的全称是User Date Protocal,翻译成中文是用户数据包协议,它是一种不可靠的传输协议,一般情况下一个数据包(大概64K)能完成的数据通讯使用UDP协议,比如请求DNS解析IP地址使用的就是UDP协议,因为解析IP一个数据包完全足够。还有就是文字聊天一般用的也是UDP,通常一段文字消息一个数据包就足够了,如果发送失败就再次发送,反正就一个数据包。还有一种传递大量数据包使用UDP协议的场景,就是广播,类似对讲机之类的,接收方并不一定能接收到所有的数据包。所以说UDP是一种不可靠的传输协议
UDP的主要特点:
- UDP是无连接的,即发送数据之前是不需要建立连接的;
- UDP使用尽最大努力交付,不保证可靠交付,同时不使用阻塞控制;
- UDP是面向报文的,UDP没有拥塞控制,很适合多媒体通信的要求;
- UDP支持一对一、一对多、多对一、多对多的交互通信;
- UDP的首部开销小,只需要8个字节。
优点:快,比TCP稍安全
UDP没有TCP拥有的各种机制,是一个无状态的传输协议,所以传递数据非常快,没有TCP的这些机制,被攻击利用的机制就少一些,但是也无法避免被攻击
缺点:不可靠,不稳定
因为没有TCP的那些机制,UDP在传输数据时,如果网络质量不好,就会很容易丢包,造成数据的缺失
适用场景:
TCP:当对网络通讯质量有要求时,比如HTTP、HTTPS、FTP等传输文件的协议, POP、SMTP等邮件传输的协议
UDP:对网络通讯质量要求不高时,要求网络通讯速度要快的场景
来源:CSDN
作者:Li_Pine
链接:https://blog.csdn.net/DevelopAndroid/article/details/103985911