TCP和UDP

TCP和UDP的区别

  1. 连接
    TCP 是面向连接的传输层协议,传输数据前先要建立连接。
    UDP 是不需要连接,即刻传输数据。
  2. 服务对象
    TCP 是一对一的两点服务,即一条连接只有两个端点。
    UDP 支持一对一、一对多、多对多的交互通信
  3. 可靠性
    TCP 是可靠交付数据的,数据可以无差错、不丢失、不重复、按需到达。
    UDP 是尽最大努力交付,不保证可靠交付数据。
    4.拥塞控制、流量控制
    TCP 有拥塞控制和流量控制机制,保证数据传输的安全性。
    UDP 则没有,即使网络非常拥堵了,也不会影响 UDP 的发送速率。
    5.首部开销
    TCP 首部长度较长,会有一定的开销,首部在没有使用「选项」字段时是 20 个字节,如果使
    用了「选项」字段则会变长的。
    UDP 首部只有 8 个字节,并且是固定不变的,开销较小。
  4. 传输方式
    TCP 是流式传输,没有边界,但保证顺序和可靠。
    UDP 是一个包一个包的发送,是有边界的,但可能会丢包和乱序。
    分片不同
    TCP 的数据大小如果大于 MSS 大小,则会在传输层进行分片,目标主机收到后,也同样在传输
    层组装 TCP 数据包,如果中途丢失了一个分片,只需要传输丢失的这个分片。
    UDP 的数据大小如果大于 MTU 大小,则会在 IP 层进行分片,目标主机收到后,在 IP 层组装完
    数据,接着再传给传输层,但是如果中途丢了一个分片,则就需要重传所有的数据包,这样传输
    效率非常差,所以通常 UDP 的报文应该小于 MTU。

TCP和UDP的应用场景

由于 TCP 是面向连接,能保证数据的可靠性交付,因此经常用于:

  • FTP 文件传输
  • HTTP / HTTPS
    由于 UDP 面向无连接,它可以随时发送数据,再加上UDP本身的处理既简单又高效,因此经常用于:
  • 包总量较少的通信,如 DNS 、 SNMP 等
  • 视频、音频等多媒体通信
  • 广播通信

你可能感兴趣的:(笔记,udp,网络协议)