何时使用UDP来代替TCP

UDP优点

  • UDP支持多播和组播,若应用程序使用多播或组播,则必然使用UDP
  • UDP没有连接的建立和拆除(三次握手和四次挥手)。

TCP优点

不是所有的应用程序都需要这些特点。对于音视频应用程序而言,丢失的分组完全不必要重传。对简单的请求-应答事务处理,若两端事先定义好最大的请求和应答大小,就不需要窗口式的流量控制。

  • 正面确认,丢失分组重传,重复分组检测,排序乱序分组。
  • 窗口式流控,接收端TCP告知发送端自己为接收数据分配了多大的缓冲区空间,而发送端不能超过这个大小的数据。发送端的未确认数据量不能超过接收端告知的窗口。
  • 慢启动和拥塞避免,发送端实施的一种流控方式。通过检测当前的网络容量来应对阵发的拥塞。

总结

  • 广播和多播必须使用UDP
  • 对于简单的请求-应答程序可以使用UDP,错误检测可以在应用层实现,包括确认,超时和重传等。流量控制对于合理大小的请求和应答往往不成问题。若需要多个分组,则TCP的开销就无关紧要了。
  • 海量的数据传输(如文件传输)不应该使用UDP,这种情况下还需要流控,拥塞避免和慢启动等特性。

给UDP增加可靠性

  • 超时和重传,用于处理丢失的数据报
  • 序列号,供客户端验证一个应答是否匹配相应的需求

你可能感兴趣的:(网络,TCP网络)