本文主要介绍了一种UDP穿越Symmetric NAT的技术,即端口准随机猜测方法。这种方法用于解决Bryan Ford等人研究的开洞穿越NAT技术在面对Symmetric NAT时的局限性。Symmetric NAT是一种更为严格的网络地址转换类型,每次外部请求都会映射到不同的内部端口,这给点对点通信带来了挑战。
2.1 准随机猜测方法与算法思路
- 在端口猜测过程中,两个通信方(A和B)通过互相发送猜询报文尝试确定对方的端口。如果A猜中了B的端口,但在会话存活期内B未猜中A的端口,A将继续发送猜询报文。
- 端口映射方式的判定主要依据NAT设备的三种映射策略:递增固定值、随机变化以及全范围随机。通过分析服务器S记录的目标客户端(B)的端口号变化,可以推测NAT映射方式。
- 如果端口号递增且最大,可能是第1种映射方式,也可能是第2或第3种。
- 如果端口号不是递增且最大,那肯定是第2或第3种映射方式。
- 猜测方法根据映射方式的不同而调整:
- 对于判定为第2种映射方式的情况,猜测目标端口可能在最近端口号附近,逐步扩大搜索范围。
- 对于判定为第1种映射方式,目标端口可能在最近端口号的右侧,首先假设是递增1进行猜测,若不成功,则尝试递增其他固定值。
2.1.3 算法细节
- 猜测过程分为数百段(例如400段),针对不同映射方式有不同的策略,如猜测邻近段落、完全随机等。
- 猜测次数与未知的k值有关,k代表端口映射的次数。k的估计基于双方内网的客户端数量、可能的注册客户端数量以及NAT的全局IP地址总数。
2.1.4 k值的确定
- k值的估算涉及到B向S注册到发送猜询报文期间,B方内网主机端口映射的次数。影响k的因素包括A、B方内网的客户端总数以及B方NAT的全局IP地址数量。
这种方法和算法称为准随机猜测,其简化版客户端算法流程图被提及,但未在摘要中详细展开。实验证明了该方法在互联网环境下的正确性和可行性,为UDP通信穿越Symmetric NAT提供了有效解决方案。
关键词:UDP开洞,准随机猜测,锥形NAT,对称NAT,端口映射。
该研究对于实现位于不同NAT设备后的客户端间的点对点通信具有重要意义,尤其对于需要穿透严格NAT限制的应用场景,如P2P网络、在线游戏和远程协作工具等。