如果将用户数据报协议(UDP)与TCP做比较,可以认为UDP基本是一个缩小规模的经济化模式,有时也被称为瘦协议。UDP并不像TCP那样叮以提供所有的功能,但它在传送不要求可靠传输的信息方面的确做F很大的贡献,它在完成传输I作时只需要非常少的网络资源(请注意UDP是在RFC768中被定义的)。
最终使用UDP还足TCP的选择取决于应用程序开发者,而不是那些想加快数据传送的用户。UDP不排序所要发送的数据段.不关心这些数据段到达目的方时的顺序。UDP在发送完数据段后,就忘记它们。它不去进行这些后续工作,如去核对它们,或者产生一个安全抵达的确认,它完全放弃了可以保障传送可靠性的操作。
正是冈为这样,UDP被称为是一个不可靠的协议。但这并不意味着UDP就是无效率的,它仅仅表明,UDP是一个不处理传送可靠性的协议。更进一步讲,UDP不去创建虚电路,并且在数据传送前也不联系口的方。正因为这一点,它叉被称为是无连接的协议。由于UDP假定应用程序会保证数据传送的可靠性,因而它不需要对此做任何的△作。这给应用程序开发者在使用因特网协议栈时多提供了一个选择:使用传输可靠的TCP,还是使用传输更快的UDP。
UDP数据段的格式:
源端口号(16) | 目的端口号(16) | ||||
长度(16) | 校验和(16) | ||||
数据(若有的话) |
源端口号 发送数据主机上应用程序的端口号。
目的端口号 日的主机上请求应用程序的端口号。
长度 UDP报头和UDP数据的长度。
校验和 UDP报头和UDP数据字段两者的校验和。
数据 上层数据。