如何决定使用TCP和UDP?

如何决定使用TCP和UDP?

本文旨在回答什么情况下适合用UDP协议,什么情况下适合用TCP协议?参考下列文章
https://www.forbes.com/sites/quora/2014/01/27/how-does-one-decide-between-tcp-and-udp/#4b6f8c5b664d
https://www.geeksforgeeks.org/differences-between-tcp-and-udp/
https://www.v*nmentor.com/blog/tcp-vs-udp/

TCP与UDP对比

如何决定使用TCP和UDP?
总结:

  1. 如果想要快速连接并且不介意丢失一些数据包,则应选择UDP。而如果可靠性是主要的关注,则应选择TCP。
  2. TCP用于可靠性更为重要的应用程序中,例如文件传输,电子邮件和Web浏览。UDP用于速度更为重要的应用程序中,例如视频会议,实时流媒体和在线游戏。
  3. TCP具有错误检测和纠正方法。当发现数据包损坏时,TCP不会发送确认信息。这提示发送方重新发送数据包。这样,完整的消息将毫无错误地传递。**在UDP中,通过校验和进行错误检测,但是没有错误纠正。**如果发现给定的数据包是错误的,则将其简单地丢弃。
  4. 接收者接收到TCP数据包后,会将确认发送回发送者。如果发件人未收到确认,它将假定数据包未传递或传递已损坏。然后它将继续重新发送数据包。另一方面,UDP不会发送确认,因此发送方将不知道是否已接收到数据包。
  5. TCP发送数据包流,而UDP包单独发送。数据流没有定义的边界,但是单个数据包具有适当的边界。
  6. TCP具有拥塞或流量控制的规定。由于TCP是面向连接的,因此可以确保已设置的数据通道不会出现拥塞。UDP是无连接的,并不关心拥塞。每个数据包都是单独发送的,如果由于拥塞而丢失了数据包,接收者将无能为力。