UDP是用户数据报协议,它是一种无连接的传输层协议,它面向报文,也就是说,UDP对应用层交下来的报文,在添加UDP头之后直接发送出去,不会对数据进行拆分和合并。因此,UDP传输的数据单位是报文,每个报文之间是独立的,互不影响。
而TCP是传输控制协议,它也是一种传输层协议,它面向字节流,也就是说,TCP对应用层交下来的数据进行拆分和合并后再发送出去。因此,TCP传输的数据单位是字节流,数据流之间没有明显的界限,需要应用层自己解决数据的边界问题。
简单来说,UDP面向报文,TCP面向字节流。在应用场景上,UDP适合对实时性要求较高的场景,比如音视频传输,而TCP适合对数据完整性和可靠性要求较高的场景,比如文件传输等。
TCP应用场景: 效率要求相对低,但对准确性要求相对高的场景。因为传输中需要对数据确认、重发、排序等操作,相比之下效率没有UDP高。例如:文件传输(准确高要求高、但是速度可以相对慢)、接受邮件、远程登录。
UDP应用场景: 效率要求相对高,对准确性要求相对低的场景。例如:QQ聊天、在线视频、网络语音电话(即时通讯,速度要求高,但是出现偶尔断续不是太大问题,并且此处完全不可以使用重发机制)、广播通信(广播、多播)。
https://blog.csdn.net/weixin_47750287/article/details/123727950