TCP、UDP的区别和选择
区别:
tcp面向连接,要三次握手才会建立连接,然后再发送数据(连接性)
udp无连接,不需要和对方建立连接,就直接把数据发送过去(连接性)
tcp可靠(可靠性)
udp不可靠(可靠性)
tcp面向字节流(报文)
udp面向报文,保留报文的边界(报文)
tcp传输效率低(效率)
udp传输效率高(效率)
tcp是全双工(双工性)
udp一对一,一对多,多对一,多对多(双工性)
tcp有流量控制,滑动窗口(流量控制)
udp无流量控制(流量控制)
tcp有拥塞控制,慢开始,拥塞避免,快重传,快恢复(拥塞控制)
udp无拥塞控制
选择:
udp适用于一次只传送少量数据,对可靠性要求不高的应用环境,例如QQ
若需考虑数据传输的稳定性(比如网络环境较差时),选择TCP,否则选择UDP
若需考虑传输数据包的顺序性,选择TCP,否则直接由应用层来保证数据包的顺序性(UDP)
应用若需要广播或者组播,选择UDP
若需要很好的传输性能,选择UDP