上QQ阅读APP看书,第一时间看更新
第6章 ◄ UDP套接字编程 ►
UDP套接字就是数据报套接字,一种无连接的Socket,对应于无连接的UDP应用。在使用TCP编写的应用程序和使用UDP编写的应用程序之间存在一些本质差异,其原因在于这两个传输层之间的差别:UDP是无连接不可靠的数据报协议,不同于TCP提供的面向连接的可靠字节流。从资源的角度来看,相对来说UDP套接字开销较小,因为不需要维持网络连接,而且无须花费时间来连接,所以UDP套接字的速度较快。
因为UDP提供的是不可靠服务,所以数据可能会丢失。如果数据对于我们来说非常重要,就需要小心编写UDP客户程序,以检查错误并在必要时重传。实际上,UDP套接字在局域网中是非常可靠的,如果在可靠性较低的网络中使用UDP通信,就只能靠程序设计者来解决可靠性问题了。虽然UDP传输不可靠,但是效率确实很高,因为它不用像TCP那样建立连接和撤销连接,所以特别适合一些交易性的应用程序。交易性的程序通常是一来一往的两次数据报的交换,若采用TCP,则每次传送一个短消息都要建立连接和撤销连接,开销巨大。常见的TFTP、DNS和SNMP等应用程序都是采用的UDP通信。