TCP和UDP


TCP和UDP

TCP

  • TCP是面向连接的服务,在传输至前必须要建立起连接,传输数据后要释放连接。

  • TCP不提供广播或多播服务。

  • TCP利用校验和、序列号、超时重传、流量控制以及拥塞避免的方式保证传输的可靠性。

    • 应用数据被分割成TCP认为的最适合发送的数据块。TCP给发送的每一个包进行编号,接收方对数据包进行排序,把有序数据传送给应用层。
    • 校验和:TCP将保持它首部和数据的校验和。这是一个端到端的校验和,目的是监测数据在传输过程中的任何变化。如果收到段检验出现问题,则将丢掉这个报文段并不确认收到此段。
    • TCP接收端会丢弃重复的数据。
    • 流量控制:TCP连接的每一个地方都有固定大小的缓冲空间,TCP的接收端只允许发送端发送接收端缓冲区能够接纳的数据,若速率太快,会提示发送端降低发送的速率,防止包的丢失。
    • 拥塞控制:当网络拥塞时,减少数据的发送。
    • ARQ协议:为了实现可靠传输,它的基本原理就是每发送一个分组就停止发送,等待对方确认后,再发送下一个。
    • 超时重传:当发送一个段后,会启动一个定时器,若目的端不能及时收到确认,则会重新发送报文段。
  • TCP一般用于文件传输、发送和接收邮件、远程登录等场景。

  • TCP以字节流的形式进行传输。

  • 因为设有缓存,TCP允许通信双方的应用程序在任何时候都能发送数据

UDP

  • 在传送数据之前不需要先建立连接,远地主机在收到 UDP 报文后,不需要给出任何确认。
  • 虽然 UDP 不提供可靠交付。
  • UDP以独立报文形式一个一个进行传输。

TCP和UDP的区别

  1. TCP 面向连接((如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接。
  2. TCP 要求安全性,提供可靠的服务,通过 TCP 连接传送的数据,不丢失、不重复、安全可靠。而 UDP 尽最大努力交付,即不保证可靠交付。
  3. TCP 是点对点连接的,UDP 一对一,一对多,多对多都可以。
  4. TCP 传输效率相对较低,而 UDP 传输效率高,它适用于对高速传输和实时性有较高的通信或广播通信。
  5. TCP 适合用于网页,邮件等;UDP 适合用于视频,语音广播等。
  6. TCP 面向字节流,UDP 面向报文。

文章作者: Kevin Lee
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Kevin Lee !
评论
  目录