UDP特点:
1、面向无连接,基于数据报的;
2、包的传输过程中,存在丢包、无序问题;
3、包的结构简单,没有序号和确认序号等;
应用场景:
1、需要资源少,网络比较好的内容或者对于丢包不关心的应用;如DHCP(动态域名配置协议);
2、不需要建立连接,可以广播的应用;
3、要求处理速度快,低时延,可以容忍少数丢包,不考虑网络拥塞的应用;
常见的基于UDP的应用协议:QUIC,Thread(物联网应用场景),GTP-U(移动通信领域)
TCP特点:
1、面向连接,基于数据流的;客户端和服务端需要存储一些数据结构(如连接状态,establish,timewait等);
2、3次握手和4次挥手;(4次挥手的原因:在某一端发起断开连接的时候,另外一端还可以继续接收和处理包,更灵活)
3、可靠的传输,顺序性,丢包、超时重传,流量控制,滑动窗口算法,拥塞控制(BBR拥塞算法);
4、包结构更复杂,序号、确认序号等;
应用场景:所有需要可靠传输的场景。协议:RTMP(流媒体),http,https等