Socket通信——TCP、UDP区别总结、使用场景

来源:互联网 发布:福州seo推广 编辑:程序博客网 时间:2024/05/22 17:10

TCP

1.TCP是面向连接的
2.每条TCP连接只能用于两个断点,一对一
3.TCP提供可靠交付的服务:连接传输数据、无差错、不丢失、不重复、并且按序到达
4.TCP提供全双工通信
5.面向字节流。TCP根据对方给出的窗口和当前网络拥塞的程度来决定一个报文应该包含多少个字节


UDP

1.无链接。
2.UDP使用尽最大努力交付,不保证可靠性UDP是面向报文的,UDP对应用层交付下来的报文,既不合并,也不拆分,而是保留这些报文的边界
3.应用层交给UDP多长的报文,UDP就照样发送,即一次发送一个报文。 4.UDP没有拥塞控制。
5.UDP支持一对一、一对多、多对一和多对多的交互通信。
6.UDP的首部开销小,只有8字节


TCP如何保证可靠性?

(1)数据被分割成TCP认为最合适发送的数据块
(2)重传机制:TCP发出一个段后,启动定时器,如果不能及时收到报文段,则重发一个报文段
(3)当TCP收到一个段后,会发送一个确认
(4)TCP将保持它首部和数据的校验和
(5)TCP对收到的数据进行重新排序,保证数据的有序
(6)TCP会丢弃重复的数据
(7)TCP提供流量控制


TCP服务端、客户端交互步骤

    这里写图片描述


UDP服务端、客户端交互步骤

    这里写图片描述


TCP、UDP使用场景

  1. TCP协议需要三次握手通信成功后进行建立连接.

    • 场景:互联网和企业网上的客户端应用、数据传输的性能必须让位于数据传输的完整性、可控制性和可靠性时,TCP协议是当然的选择。
  2. UDP协议是直接发送,不会判断是否接收和发送成功.

    • 场景: 当强调传输性能而不是传输的完整性时,如:音频和多媒体应用,UDP是最好的选择。QQ使用的是UDP协议聊天,因为用户不需要等待就会接收。