
一起动脑筋 · 先看一个小故事
游戏画面里机器人已经走到新位置,一条很旧的位置消息丢了。是否必须等它回来才能继续?
把过程摊开来看
- 产生消息当前位置
- 发送数据报交给网络
- 可能丢失UDP 不自动重传
- 应用决定跳过或自行补救
UDP 提供数据报传输,不在协议本身保证可靠送达或有序到达。
少一些等待机制,可以让应用按自己的需要设计通信。实时应用可能更关心最新状态,也可能在 UDP 上增加确认、纠错或重传。
使用 UDP 并不意味着什么错误都不管,而是这些需求需要其他层面处理。
轮到你来试一试
银行转账这样的业务能仅因为用了 UDP 就忽略丢失吗?
想好了吗?点开看解释
不能。重要业务仍需要可靠处理与确认机制,不能把某种协议的特性当作业务正确性的替代。
带走一个发现
UDP 提供数据报传输,不在协议本身保证可靠送达或有序到达。
试着遮住上面的图,把每一步讲给家人听。如果某一步说不清楚,就回到那张卡片再看一遍。