首先,TCP传输数据前先要建立连接,而UDP是不需要连接的,即刻传输数据。TCP是一对一形成四元组的两点服务,就是源ip与源端口,目标ip和目标端口之间的通信,而UDP是支持一对一、一对多,多对多的通信方式。其次TCP是一个可以可靠交付数据的,就是数据可以没错误的到达,但是UDP并不保证可靠交付数据。然后就是传输速率这块,TCP有拥塞控制啊,流量控制,这些会提高数据的安全性,但也降低了TCP的传输速率,UDP则没有这些,即使网络非常拥堵了,也不会影响UDP的发送速率。嗯。。还有就是TCP的首部比较长,在首部没有使用其他字段时,是20个字节,而UDP首部是固定不变的8个字节,开销比较小。 TCP和UDP的这些不同也导致了它们的应用场景不同,TCP是面向连接的,能保证数据的可靠性,所以一般用于HTTP请求,而对应UDP,它的处理很高效,但是对数据的完整性不能充分保证,所以一般用于DNS域名服务查询,视频,音频等。
