TCP与UDP的区别总结

来源:互联网 发布:花生壳软件联系电话 编辑:程序博客网 时间:2024/06/05 00:14
  1. 特点
    TCP协议(传输控制协议):提供一个可靠的、面向链接的、基于数据流的服务。
    UDP协议(用户数据报协议):提供一个不可靠的、无链接的、基于数据报的服务
  2. 主要区别
    (1)TCP是面向链接的,双方在通信之前必须要建立连接,而使用UDP通信之前不需要建立连接,所以应用程序每次发送数据之前必须明确接收端的地址。
    (2)TCP是基于流的,而UDP是基于数据报的。
    (3)TCP提供可靠的服务,TCP连接传输服务,无差错,不丢失不重复,且按序到达,UDP则尽最努力交付。
    (4)TCP为全双工的可靠通信,而UDP是不可靠信道。
    (5)TCP只能提供点对点的服务,而UDP可以支持一对一,一对多,多对一,多对多的交互通信。
    (6)TCP首部固定开销为20字节,而UDP则为8字节。

  3. 小知识点
    (1)字节流和数据报
    字节流和数据报的主要区别在于发送方的写入次数和接收端的读出次数是否相同。
    字节流:发送方的写入次数和接收端的读出次数相同。即就是当发送端进行多次写操作后,把数据先放在一个发送缓冲区中,当发送端真正要发送数据后,在把数据封装成一个或者多个TCP数据段发送。
    数据报:当发送端发送数据后,UDP模块立即将其封装成一个UDP数据报,接收端在一定时间内必须接受这个数据报,否则会造成数据包丢失。并且,如果没有提供较大的应用程序缓冲区来读取UDP数据,UDP数据会造成截断。
    (2)
    《1》TCP通过三次握手来建立连接,四次挥手来断开连接,从而保证建立的传输信道是可靠的。
    《2》TCP采用了连续ARQ协议(回退N,GO-back-N,超时自动重传)来保证数据传输的正确性,使用滑动窗口协议来保证双方能即使处理所接收到的数据,进行流量控制。
    《3》最后,TCP使用慢开始,拥塞控制,快重传和快恢复来进行拥塞控制,避免网络拥塞。