(1)首先,TCP和UDP是TCP/IP体系结构中的传输层中很主要的两个协议,UDP的全称是用户数据报协议,TCP的全称是传输控制协议
(2)区别有五个方面
①有无连接: 使用UDP协议的通讯双方是随时可以进行数据传输的,无需建立连接,而TCP是面向连接服务的,在传输数据的时候需要三次握手进行连接。四次挥手释放连接
②是否支持广播或多播 UDP支持了广播、多播和单播的服务,而TCP只支持单播
③报文是面向字节流或报文段 UDP是面向应用报文,UDP对应用层交下来的报文,既不会拆分,也不会合并。TCP是面向字节流的,发送方的TCP把应用进程交付下来的报文数据块,看成是无结构的字节流,它不保证接收方收到的数据块和发送方发送的数据块具有对应大小关系。发送方TCP会将数据放入缓冲区,等到可以发送的时候再发送,TCP会根据发送策略,发送给接受方
④首部 UDP首部开销比较小,只有8字节,TCP最少首部为20字节,最大首部是60字节,主要因为他实现的功能比较多,实现可靠传输、拥塞控制、流量传输等等。
⑤可靠性 UDP向其上层提供无连接不可靠传输服务,数据可能会发生丢失,误码,但是传输效率高。所以常用于实时性要求高的场景,比如视频会议,因为我们可以接受图像稍微模糊一点,声音稍微不清晰一点
TCP向其上层提供面向连接可靠传输服务,主要适用于要求可靠传输的应用 比如文件传输,当我们下载文件,希望得到的是完整的文件,而不仅仅是文件的一部分。
6、 有序性 TCP传输数据有序,UDP不保证数据的有序性;
7 、TCP有流量控制和拥塞控制,UDP没有;
8、TCP传输速度相对UDP较慢;
9、TCP不保存数据边界,UDP保留数据边界;
|