1.STUN协议介绍:
STUN存在的目的就是进行NAT穿越。
STUN是典型的客户端/服务端模式。客户端发送请求,服务端进行响应。
2.RFC STUN规范
RFC3489/STUN
Simple Traversal of UDP Through NAT
RFC5389/STUN
Session Traversal Utilities for NAT
3.STUN协议:
3.1.包括20字节的STUN header
3.2.Body中可以有0个或多个Attribute
4.STUN header格式
1)最高的2位必须置零,这可以在当STUN和其他协议复用的时候,用来区分STUN包和其他数据包。
2)STUN Message Type 字段定义了消息的类型(请求/成功响应/失败响应/指示)和消息的主方法。
虽然我们有4个消息类别,但在STUN中只有两种类型的事务,即请求/响应类型和指示类型。响应类型分为成功和出错两种,用来帮助快速处理STUN信息。Message Type字段又可以进一步分解为如下结构:
其中显示的位为从最高有效位M11到最低有效位M0,M11到M0表示方法的12位编码。C1和C0两