参考:《计算机网络(第六版)》(谢希仁)
①:UDP是无连接的,减少数据发送的开销和时延,TCP是面向连接的运输层协议,应用进程间的通信必须要先通过三次握手,四次挥手建立连接。
②:UDP尽最大努力交付,不保证可靠交付,TCP提供可靠的交付,TCP连接传送的数据,无差错、不丢失、不重复、并且按序到达。
③:UDP是面向报文的,面对应用程序传下来的报文,UDP不合并、不拆分,一次交付一个报文,所以应用层交给UDP的报文应该选择合适的长度,不然在IP层要进行拆分,会降低效率;TCP是面向字节流的,TCP把应用程序递交的数据看成一连串无结构的字节流,TCP并不关心应用进程把多长的报文发送到TCP的缓存中,根据对方给出的窗口值和当前网络拥塞程度来决定一个报文段应包含多少个字节。
④:UDP没有拥塞控制,当网络出现拥塞的时候它不会降低发送速率;TCP有流量控制和拥塞控制。
⑤:UDP可以用于一对一,一对多,多对多,多对一通信;TCP是点对点的。
⑥:UDP的首部开销小,只有八个字节,由四个字段组合,分别为源端口,目的端口,长度,检验和;TCP首部为20个字节。