MST

星途 面试题库

面试题:网络编程-UDP Socket编程中如何处理丢包问题

在UDP Socket编程场景下,数据传输可能会出现丢包现象。请描述至少两种应对UDP丢包问题的常见方法,并简要说明其原理和适用场景。
49.6万 热度难度
后端开发网络编程

知识考点

AI 面试

面试题答案

一键面试
  1. 重传机制
    • 原理:发送方在发送数据后启动一个定时器,若在定时器超时前未收到接收方的确认(ACK),则认为数据丢包,重新发送该数据。
    • 适用场景:适用于对数据完整性要求较高,但实时性要求相对不是特别苛刻的场景,比如文件传输。
  2. 前向纠错(FEC)
    • 原理:发送方在发送数据时,额外添加一些冗余信息。接收方根据这些冗余信息,在一定程度上可以恢复丢失的数据,而无需等待重传。
    • 适用场景:适用于实时性要求较高的场景,如实时视频流传输,因为重传可能导致较大延迟影响观看体验,FEC 可在不依赖重传的情况下部分恢复丢包数据。
  3. 使用可靠传输协议封装
    • 原理:如使用 QUIC(基于 UDP 的快速传输协议),它在 UDP 之上实现了可靠传输、拥塞控制等机制,利用类似 TCP 的确认、重传等技术来确保数据可靠传输。
    • 适用场景:适用于既想利用 UDP 的低延迟优势,又需要可靠传输的场景,如在线游戏等对延迟和数据准确性都有要求的应用。