如果数据包丢失,DTLS是否仍然可以正常运行?

时间:2017-06-19 01:11:34

标签: networking openssl cryptography udp dtls

我希望制作一个使用DTLS的应用程序,让我们说一下语音聊天。
DTLS可以在原始声音数据包丢失时工作吗? 某些数据包是否会丢失且DTLS会话仍能正常运行而不重新发送丢失的数据包,这会破坏使用UDP的点(TCP延迟和拥塞)。
即使部分声音数据丢失,声音仍然可以听到 对于重播攻击,通信是否仍然安全?

1 个答案:

答案 0 :(得分:3)

是的,即使网络丢失或重新排序应用程序数据包,DTLS也会继续运行。在这种情况下,这些数据包中的纯文本数据也将丢失/重新排序,与您使用纯文本UDP看到的行为完全匹配。

DTLS确实在握手阶段执行重传,因为加密计算不需要丢失数据包。但这只会影响交易所的前几个数据包。

DTLS提供重播保护(在https://tools.ietf.org/html/rfc6347的第3.3节中描述),以便导致重复数据包到达的攻击者(或路由错误)仅导致单个明文数据包 - 丢弃重复数据包。重播保护是根据该规范可选的,但我所知道的所有实现都提供了它。