一、题目
UDP 是面向无连接的,必须依靠什么协议来保障传输的可靠性?
A.传输控制协议
B.应用层协议
C.网络层协议
D.网际协议
二、答案
B
三、解析
A. 传输控制协议
传输控制协议(TCP)本身就是一种面向连接的、可靠的传输层协议。它与UDP并列,是传输层的两个主要协议之一。如果使用TCP,则无需UDP,因此TCP不是UDP用来保障可靠性的协议。
B. 应用层协议
应用层协议工作在传输层之上,可以在UDP基础上增加可靠性机制。例如,DNS在使用UDP时通过应用层超时重传来保证可靠性。
C. 网络层协议
网络层协议主要负责寻址和路由,将数据包从源主机发送到目的主机。网络层本身不提供可靠性保障,数据包可能丢失、重复或乱序。
D. 网际协议
网际协议是网络层核心协议,不保证可靠性。IP协议仅尽力而为地交付数据包,不处理丢包、重复或顺序问题。因此,它无法弥补UDP的不可靠性。故该选项错误。
四、扩展——TCP 和 UDP 的对比
TCP:
- 面向连接:在数据传输之前需要建立连接。
- 可靠传输:提供错误检查、确认、重传等机制,确保数据的可靠传输。
- 顺序保证:保证数据包按顺序到达接收端。
- 流量控制和拥塞控制:通过滑动窗口等机制控制数据流量,避免网络拥塞。
UDP:
- 无连接:不需要建立连接,直接发送数据。
- 不可靠传输:不提供错误检查、确认、重传等机制。
- 速度快:适合对实时性要求高的应用。
- 简单高效:头部小,开销低。
