# TCP与UDP的区别

# UDP

  • UDP 协议是面向无连接的:不需要在正式传递数据之前先连接起双方
  • UDP 协议只是数据报文的搬运工:不保证有序且不丢失的传递到对端
  • UDP 协议也没有任何控制流量的算法
  • UDP 相较于 TCP 更加的轻便
  • 无状态,不可控

# TCP

TCP 基本是和 UDP 是相反的 (客户端A,服务端B)

  • 面向有连接:客户端和服务器建立连接,在互相通信之前,TCP 需要三次握手建立连接
  • 建立连接需要进行三次握手
    1. A对B发起请求报文
    2. B收到A的请求,如果同意则向A发送应答
    3. A收到B的应答,并告诉B我准备好了
  • 断开连接都需要四次握手
    1. A对B发送释放链接的请求
    2. B收到A的请求,告诉应用层释放链接
    3. B将数据发送完毕后,再向A发送链接释放请求
    4. A收到释放请求,向B发送确认应答,同意释放
  • 在传输数据的过程中,通过各种算法保证数据的可靠性
  • 相比 UDP 来说不那么的高效。