计算机网络面试题(十四):TCP和UDP的区别

计算机网络面试题(十四):TCP和UDP的区别
计算机网络面试题(十四):TCP和UDP的区别


TCP与UDP都位于网络模型中的传输层,负责传输应用层产生的数据

【1】UDP

UDP(User Datagram Protocol 用户数据报协议):UDP不需要所谓的握手操作,从而加快了通信速度,允许网络上的其他主机在接收方同意通信之前进行数据传输

数据报是与分组交换网络关联的传输单元

UDP特点:

  • UDP低延迟
  • UDP能够发送大量数据包
  • UDP能够允许DNS查找(DNS是应用层协议)

【2】TCP

TCP(Transfer Control Protocol 传输控制协议):通过三次握手建立TCP连接,一旦建立就可以发生数据,传输完成之后,会通过关闭虚拟电路来断开连接

TCP特点:

  • TCP可以确保连接的建立和数据包发送可靠性
  • TCP支持差错重传
  • TCP支持拥塞控制,能够在网络发生堵塞的情况下延迟发送
  • TCP能够提供差错检验,甄别有害数据包

【3】TCP和UDP对比

TCP UDP
面向连接的 无连接的
先建立连接,在发送数据 无需连接,直接发送大量数据
顺序排列数据包 数据包相互独立
传输速度较 传输速度较
头部字节20 头部字节8
错误校验并恢复 差错校验但丢弃错误数据包
有发送确认 无发送确认
握手:SYN、SYN-ACK、ACK 无握手
可靠的 不能保证数据传送到
  • TCP是重量级的:在发送任何数据前,TCP都需要三次握手建立连接
  • UDP是轻量级的:没有跟踪连接、消息排列等