1. 无连接运输:UDP
1.1 概述
UDP是一种不提供不必要服务的最简化运输层协议。 (1)功能
(2)执行过程
- UDP从应用进程得到数据块,并附加上首部字段形成报文段,然后传递给网络层。
- 报文段到达接收主机后,根据目的端口将报文段通过套接字定向分解到正确的进程。
特点: 无连接,在发送报文段之前,发送方和接收方之间没有握手。
(3)特点
- 无连接。
- 无可靠数据传输。
- 无拥塞控制机制。
- 无流量控制。
1.2 流行的因特网应用及其运输层协议
UDP不提供可靠数据传输服务,可能导致分组丢失。那为什么很多应用还会使用UDP协议呢?
问题:UDP的优缺点
(1)优点
- 无须连接建立,从而不会引入建立连接的时延。
- 无需维护连接状态,从而一般能支持更多活跃客户。
①连接状态包括:接收和发送缓存、拥塞控制参数和序号与确认号的参数。 - 分组首部开销小,每个TCP报文都有20个字节的首部开销,而UDP报文只有8个字节的开销。
- 应用层控制更加精细:应用进程将数据传递给UDP,UDP立即将数据封装成报文段并发送给网络层。
①因为TCP有拥塞控制机制,当链路拥塞时,为了保证每个报文段都能无差错的到达目的主机,TCP可能会反复传递某个报文段,而导致T报文段传播延时过长。
(2)缺点 因为UDP不提供可靠数据传输、拥塞控制机制,所以可能导致大量的分组溢出。
- 可能导致UDP发送方和接收方之间的高丢包率。并挤垮TCP会话。
为了弥补UDP没有提供可靠数据传输服务的问题,可以在应用层的应用程序本身建立可靠数据传输机制。
(3)流行应用的运输层协议 UDP不提供可靠数据传输服务,因此一些无法容忍分组丢失的应用,只能采用TCP协议。因为UDP不提供拥塞控制机制,因此对于能够容忍少量分组丢失,并对实时性要求较高或者在高拥塞环境下运行的应用,则可以选择UDP服务。
1.3 UDP报文段结构
UDP报文段是由8个字节的首部字段和由应用层数据占用的数据字段两部分组成。 (1)首部字段
- 源端口号
作为接收方发送给发送方的报文段的地址的一部分。 - 目的端口号
用于执行多路分解功能。 - 长度
指示了UDP报文段中的字节数。 - 检验和
UDP检验和提供了差错检验服务。
1.3.1 UDP检验和
UDP检验和提供了差错检验服务。但没有提供差错恢复功能。对于有差错的数据,UDP可以采取一下两种方式处理:
- 丢失受损报文段。
- 将受损报文段发送给应用程序并给出警告。
(1)差错检验步骤
- Step1: 发送方的UDP对报文段的所有16比特字进行求和并取反获得检验和。求和过程中的溢出都被回卷。
- Step2: 接收方对所有16比特字包括检验和求和,若结果中所有比特全为1则没有差错。
Step1:对所有16比特字求和并取反 取反后的结果为:1011 0101 0011 1101
|