我在学习STUN协议中有些疑惑,官网在定义Message header时,在RFC5389就规定了前两位必须置零,根据官方的解释,是为了和其他协议复用同一个端口。
对此我非常好奇?
- 这个other protocols 指的是哪个协议?
- 什么情况下需要和不同协议复用同一个端口?
猜测:是为了兼容原有的RFC3489
但是我查看文档后发现。RFC3489的前两位就是00,压根无法区分RFC3489和RFC5389。
所以我很纠结,RFC5389中的other protocols到底指的哪个协议?
RFC5389 比 RFC3489 多了 TCP,但完全向后兼容,所以不需要区分二者。
其他协议就是字面意思上的其他协议啊……其他协议也侦听 3478 端口,就这么区分……其实也不靠谱,就是拍脑袋定的,因为也有一些协议报文头两比特也可能是 00(比如 NTP),这就还得是尽量别共用一个端口。