浅析TCP三次握手与UDP

144 阅读1分钟

TCP为什么需要三次握手

客户端和服务端都需要直到各自可收发,因此需要三次握手。

image.png 三次握手可简化为

  • C发起请求连接让S确认,S也发起连接让C确认
  • 第一次握手:S确认“自己可以接受C发送的报文段”
  • 第二次握手:C确认“自己可以给S发送报文,也能接受S发送的报文段”
  • 第三次握手:S确认“C收到了自己发送的报文段”

TCP和UDP区别

  • TCP是面向连接的。UDP是无连接的,发送数据前不需要先建立连接。
  • TCP提供可靠服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付。
  • 因为TCP可靠,面向连接,不会丢失数据因此适合大数据量的交换
  • TCP是面向字节流,UDP面向报文,并且网络出现拥塞不会使得发送速率降低(因此会出现丢包,对实时的应用比如IP电话和视频会议等)。
  • TCP只能是1对1的,UDP支持1对1,1对多。
  • TCP的首部较大为20字节,而UDP只有8字节。