思考重点
- 为甚麽要设计UDP?
- UDP对比TCP的优势?
核心知识
UDP与TCP的差别
众所皆知,TCP是面向连接的可靠传输,前几篇文章我们也从TCP消息的收发讲到如何确认回应,再谈到TCP一系列特殊的效率优化机制,本篇就要来谈谈传输层的另一种传输协议UDP(User Datagram Protocol),到底UDP相较TCP有什麽不同之处?其实如果我们知道TCP设计的初衷,那麽就可以理解UDP了
TCP具有响应确认与重传、滑动窗口、流量控制、壅塞控制,之所以这麽複杂,无非就是要面对几个问题:
- 怎麽样才能高效传输资料
- 在高效传输资料的情况下,要麽知道封包没有遗失
- 如何避免封包遗失
- 封包遗失了怎麽在最短时间内重传
- 要如何只重传特定遗失的封包,而不是重传整个资料
这些就是TCP的设计原因,为了解决特定封包的重传才有了这麽多的收发机制。UDP恰恰相反,它主打说走就走,随插即用的收发方式,也就是说上述原因一盖不讨论,UDP只管将应用程式数据装上头部消息就可以发送了
因为UDP发后不理的不可靠性,在封包传输过程中必须仰