TCP是面向连接的,使用TCP连接需要经过三次握手,断开连接需要经过四次挥手。相比于TCP,UDP则是面向无连接的,它像一个随时可以进行通信的协议,只要接收方创建了Socket,设置了监听端口,就能接收到到达的UDP包,并且能随时建立Socket进行发包。
TCP可以对数据的发送速率作控制,它具有流量控制和拥塞控制机制,通过控制滑动窗口的大小控制数据的发送速率。而UDP理论上是可以无限地向网络中发数据包的,它的发送速率取决它的应用程序设置。
TCP保证可靠的数据传输,它根据速率控制,重传控制,还有数据校验保证提供可靠的数据传输服务。而UDP只是保证尽力而为地传输数据,并不保证数据的可靠性。
TCP的报文段头部占20各字节,比UDP的报文段头部多12个字节。消耗的资源更多。由于建立连接有握手的机制,TCP的使用效率会比UDP要低一些。