TCP和UDP的区别:
(1)TCP是面向连接的;UDP是无连接的。
TCP进行数据传输时,需要通过三次握手建立一条TCP传输连接,传输完成后通过四次挥手释放连接。UDP在传输报文之间不需要在通信双方之间建立连接。
(2)TCP保证数据可靠性,UDP可能会丢包。
通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。TCP提供校验和,重传控制,序号标识,滑动窗口、确认应答等机制保证数据的可靠性,而UDP除了提供一种可选的检验和,几乎没有提供其他的保证数据传输可靠性的传输。如果检测出收到的分组出错,则丢弃这个分组,既不确认,也不通知发送端和要求重传。
(3)TCP传输速度慢,UDP传输速度快。
TCP每发一次报文都需要确认应答,若超时则重新再发一次。而UDP没有这种机制,一个个数据包不断地发送,即使数据包是错的也直接丢弃该数据包
(4)TCP是面向字节流,而UDP是面向报文的。
TCP将数据看成是一连串的、无结构的字节流,在发送端和接收端都需要使用缓存,将几个字节流组成一个报文段;UDP对应用程序提交的报文既不合并,也不拆分,保留原报文的长度和格式,原封不动地发送出去。
(5)TCP连接只能是点到点的,但支持同时建立多个并发的TCP连接。而UDP支持一对一,一对多,多对一和多对多的交互通信。
(6)TCP对系统资源要求较多,UDP对系统资源要求较少。
(7)TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道。
应用场景:
TCP注重的是可靠性,而不是实时性,具有一定的延迟性。而UDP注重的是实时性,速度快,可靠性不高。对于特别的场合,可以对UDP协议基础上再进行封装。
UDP协议适用于(1)视频播放应用,(2)简短的交互式应用,(3)多播和广播应用。