计算机网络自顶向下方法知识总结3.3无连接运输UDP
目录
3.3 无连接运输UDP
运输层最低限度必须提供一种复用/分解服务,以便在网络层与正确的应用级进程之间传递数据。而UDP做了最少的工作,除了复用/分解功能以及少量的差错检测外,几乎没有对IP增加别的东西。
那么为什么许多应用选择UDP构建应用而不选择TCP呢?
- 关于发送什么数据以及何时发送的应用层控制更为精细:实时应用通常要求最小的发送速率,不希望过分地延迟报文段的传送,且能容忍一些数据丢失。
- 无须连接建立:UDP不会引入建立连接的时延。
- 无连接状态:TCP需要在端系统中维护连接状态,UDP不需要。
- 分组首部开销小:每个TCP报文段有20字节的首部开销,而UDP只有8字节的开销。
应用 | 应用层协议 | 下面的运输协议 |
---|---|---|
电子邮件 | SMTP | TCP |
远程终端访问 | Telnet | TCP |
Web | HTTP | TCP |
文件传输 | FTP | TCP |
远程文件服务器 | NFS | 通常UDP |
流式多媒体 | 通常专用 | UDP或TCP |
因特网电话 | 通常专用 | UDP或TCP |
网络管理 | SNMP | 通常UDP |
名字转换 | DNS | 通常UDP |
由无控制的UDP发送方引入的高丢包率将引起TCP发送方大大减小他们的速率。UDP中缺乏拥塞控制能够导致UDP发送方和接收方之间的高丢包率,并挤垮了TCP会话。使用UDP的应用是可能实现可靠数据传输的,通过在应用程序自身中建立可靠性机制来完成。
3.3.1 UDP报文结构
UDP报文段由4个字段和一个数据字段组成。应用层数据占用UDP报文段的数据字段。首部只有四个字段,每个字段由两个字节组成,分别是:源端口号,目的端口号,长度,检验和。
3.3.2 UDP检验和
UDP提供检验和的原因是不能保证源和目的之间的所有链路都提供差错检测,但是对差错恢复无能为力,可能会丢掉受损的报文段,也可能将受损的报文段交给应用程序并给出警告。