问三:TCP和UDP的特点和区别?
它们有着怎样的基本区别?
* 用户数据报协议 UDP(User Datagram Protocol)是无连接的,尽最大可能交付,但有可能丢包,不能保证到达的顺序,没有拥塞控制,面向报文(对于应用程序传下来的报文不合并也不拆分,只是添加 UDP 首部),支持一对一、一对多、多对一和多对多的交互通信。
* 传输控制协议 TCP(Transmission Control Protocol)是面向连接的,提供可靠交付(能够保证数据的正确与顺序),有流量控制,拥塞控制,提供全双工通信,面向字节流(把应用层传下来的报文看成字节流,把字节流组织成大小不等的数据块),每一条 TCP 连接只能是点对点的(一对一)。
什么时候使用UDP呢?
因为UDP是无连接的,尽最大可能进行交互,可能会出现数据丢失的情况。因此适合于对数据安全性没有什么特殊要求,数据短、网络负担重,并且对响应速度要求高的场景下使用。
同时,由于UDP支持一对多、一对多这样的交互通信,所以也可以在一个系统中拥有大量Client的时候使用。