TCP与UDP基本区别:

  • TCP提供的是面向连接,类似于打电话,会有握手流程。UDP无连接,类似广播。
  • TCP要求系统资源较多,UDP程序结构较简单,要求的系统资源也较少。
  • TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达。UDP尽最大努力交付,即不保证可靠交付。
  • 流模式(TCP)与数据报模式(UDP),TCP面向字节流,UDP面向报文。
  • TCP保证数据正确性,UDP可能丢包。
  • TCP保证数据顺序,UDP不保证。
  • TCP连接只能是点到点的;UDP支持一对一、一对多、多对一和多对多的交互通信。

为什么UDP有时比TCP更有优势:

UDP以其简单、传输快的优势,在越来越多场景下取代了TCP,如实时游戏。

  1. 网速的提升给UDP的稳定性提供可靠网络保障,丢包率很低,如果使用应用层重传,能够确保传输的可靠性。
  2. TCP为了实现网络通信的可靠性,使用了复杂的拥塞控制算法,建立了繁琐的握手过程,由于TCP内置的系统协议栈中,极难对其进行改进。采用TCP,一旦发生丢包,TCP会将后续的包缓存起来,等前面的包重传并接收到后再继续发送,延时会越来越大,基于UDP对实时性要求较为严格的情况下,采用自定义重传机制,能够把丢包产生的延迟降到最低,尽量减少网络问题对游戏性造成影响。
最后修改:2019 年 05 月 04 日
如果觉得我的文章对你有用,请随意赞赏