DTLS与HTTPS等协议调研对比
要求:
- 网络延迟80ms以内
- TLS防止数据网络传输被窥探
可实现的方案有
- HTTPS: 最稳定可靠的方案,但是网络延迟比较高,大约3 - 4倍的网络延迟消耗。
- HTTP AES: 性价比最高的方案,既有HTTP的速度和稳定,也具备对称加密的性能。非TLS协议
- UDP AES:速度最快的方案,既有UDP的速度,也具备对称加密的性能。非TLS协议,且UDP包在网络堵塞的时候容易丢包,且不支持数据包重传。
- DTLS:最新的技术方案,基于udp协议,在TLS的基础上改造的新协议。速度略快于HTTPS,但是同样会有udp协议的弊端,网络阻塞的时候容易丢包。可能会有NAT穿透的问题。
对比各方案
HTTPS | HTTP AES | UDP AES | DTLS | |
---|---|---|---|---|
协议 | TCP | TCP | UDP | UDP |
握手 | 3次 | 3次 | 1次 | 2次 |
连接 | 有 | 有 | 无 | Cookie模拟 |
稳定性 | 强 | 强 | 弱 | 较弱 |
包序列 | 有 | 有 | 无 | 有 |
丢包重传 | 有 | 有 | 无 | 1次 |
网络延迟 | 3-4倍 | < 2倍 | 1倍 | 3倍左右 |
特点 | 稳定、安全、速度慢 | 稳定、安全、速度快 | 不稳定、安全、速度极快 | 不够稳定、安全、速度快 |
快: UDP AES > HTTP AES > DTLS > HTTPS 安全: HTTPS > DTLS > HTTP AES > UDP AES 稳定: HTTP AES > HTTPS > DTLS > UDP AES 稳定且安全: HTTPS > HTTP AES > DTLS > UDP AES 快、稳定且安全:HTTP AES > DTLS > HTTPS > UDP AES 稳定、安全且快: HTTP AES > HTTPS > DTLS > UDP AES
分析与结论
首先,需要烤考虑一个问题: 稳定和速度 哪个更重要。让二者不可兼得的时候,哪一个更重要。
以上的4种方案,安全性都是不错的。只是 HTTP AES 和 UDP AES并非TLS协议类。而是通过加密本身数据,达到安全的目的。
批量IP查询接口支持200个域名同时查询,数据量比较大,数据包大将会产生UDP包切割帧的问题,出现丢包的概率就会变大。
综上所述:
- 个人建议: HTTP AES 。 安全、稳定、速度,兼顾。
- 最有挑战: DTLS。 性能优于HTTPS,缺乏稳定性。