TCP与UDP
在计算机网络世界里,有一套计算机互联的标准模型--OSI模型,它将计网分为由上至下应用层、表示层、会话层、传输层、网络层、数据链路层、物理层七层,以便于分层管理;
而每一层或都依据与本层相关的协议处理自己的操作,其中TCP与UDP就是属于传输层的协议,它们二者都作用于网络传输。TCP协议主要适用于要求通信数据可靠的场景,例如文件、邮件传输;UDP主要用于要求通信速度快的场景,例如视频、音频、直播等。
区别
1、TCP协议的使用是基于连接的,就是说,在使用TCP协议时需要将服务器与客户端端对端创建连接,接收方收到数据后需要给予发送方确认收到的回复;UDP则不需要创建连接,发送方只管发送,接收方接收到后也不需要给予任何回复
2、 TCP是安全可靠的,在传输数据前需要进行三次握手以确保连接的创建,在断开连接时需要进行四次挥手安全断开连接,它需要确保每条数据都安全完整得传输到位;UDP则不需要,就算在发送的过程中出现了丢包的现象,也不会补发丢掉数据(就好比打视频的时候网络出现卡顿,那卡顿期间没看见的内容就会直接跳过)
3、由于用TCP传输前要进行三次握而且在数据传递时,有确认、窗口、重传、拥塞控制机制,在数据传完后,还会进行四次挥手,所以难免会增加额外的开销,也使得协议数据单元的首部增大(最少20个字节,最大60个字节),占用许多资源;UDP不像TCP那么复杂,首部中也只有源端口、目的端口、长度和校验和四个字段(一共8个字节),占用的资源较少
TCP数据单元首部:
UDP数据单元首部:
4、TCP传输数据是基于字节流,以InputStream输入流和OuputStream输出流的形式传输数据;而UDP是基于数据报文段的形式传输数据