选择UDP的原因
- 关于发送什么数据以及何时发送的应用层控制更为精细。 采用UDP时,只要应用进程将数据传递给UDP,UDP就会将数据打包进UDP报文段并立即将其传递给网络层。
一些实时应用通常要求最小的发送速率,不希望过分地延迟报文段的传送,且能容忍一些数据丢失,TCP不适合这些应用的需要。 - 无须连接建立。 不需要握手,不需要建立连接的时延。
- 无连接状态。 TCP需要在端系统中维护连接状态。此连接状态包括接收和发送缓存、拥塞控制参数以及序号与确认号的参数。UDP不需要。因此,某些专门用于某种特定应用的服务器当应用程序运行在UDP之上而不是运行在TCP上时,一般都能支持更多的活跃用户。
- 分组首部开销小。 每个TCP报文段都有20字节的首部开销,而UDP仅有8字节首部开销。
UDP的应用
TCP的拥塞控制会使如因特网电话、视频会议之类的实时应用性能变得很差。
UDP怎样可靠
在应用层自身建立可靠机制。
UDP报文段结构
UDP首部只有4个字段,每个字段两字节:源端口号、目的端口号、长度、检验和
通过端口号可以使目的主机将应用数据交给运行在目的端系统中的相应进程(执行分解功能)。
长度字段指示了UDP报文段中的字节数(首部+数据)。
接收方使用检验和来检查在该报文段中是否出现了差错。
UDP报文段检验和
UDP使用检验和检查在报文段中是否出现了差错。
虽然UDP提供差错检测,但它对差错恢复无能为力。
对3个字。和如果有溢出,就要被回卷,做反码运算(01换成10)。
这三个字和它们的和相加,应该是全1。如果结果有0,就知道分组出错了。
:厌恶一切。