面试题答案
一键面试- 网络拥塞:网络中的数据流量过大,路由器等设备的缓冲区已满,新到达的UDP数据包就可能被丢弃。因为UDP本身没有流量控制机制,不会根据网络拥塞情况调整发送速率。
- 路由问题:路由表错误、网络拓扑变化导致路由不可达等,数据包在传输过程中找不到正确路径,可能被路由器丢弃。
- 超时设置不合理:发送端如果设置的超时时间过短,在网络延迟稍大的情况下,即使数据包正常传输,发送端也可能因为超时而重传,原数据包可能因重复到达而被接收端丢弃(如果接收端有去重机制);或者接收端等待数据包超时,未等到数据包就将接收缓冲区清空。
- 链路故障:物理链路(如网线断开、光纤损坏等)或无线链路(如信号强度弱、干扰严重等)出现问题,导致数据包无法正常传输。
- 接收缓冲区溢出:接收端应用程序处理数据的速度较慢,而UDP数据包到达的速度过快,接收缓冲区被填满后,新到达的数据包就会丢失。因为UDP没有像TCP那样的反馈机制通知发送端降低发送速率。