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,缺乏稳定性。
评论区