【发布时间】:2016-03-19 03:37:40
【问题描述】:
我遇到了这样的情况:“唯一需要 TURN 的情况是其中一个对等方位于对称 NAT 之后,而另一个对等方位于对称 NAT 或端口限制 NAT 之后。”那么对称 NAT 后面的对等方如何连接后面的另一个,例如全锥 NAT?
例如,假设对称 NAT 后面的对等方是 A,而全锥 NAT 后面的另一个是 B。调用过程应该是这样的:
- A 从 STUN(无 TURN)服务器发现其本地地址和端口 (Al:Alp) 映射到服务器反身值 (As:Asp),这应该只在 A 和 STUN 服务器之间有意义,因为它是对称 NAT。 (对吗?)
- 同样,B 发现其 Bl:Blp 映射到 Bs:Bsp。
- A 发出 SIP INVITE,INVITE 中的 SDP 部分告诉使用 As:Asp 接收媒体。
- B 回复 200 OK 表示使用 Bs:Bsp 接收媒体。
- 媒体启动,A 发送给 B。注意,由于是对称 NAT,NAT 会创建一个新端口,因此数据包将是 As:Asp' -> Bs:Bsp(其中 Asp' 是新创建的端口)。 B 侧的 NAT 将通过数据包(因为它是完整的锥形),B 将获得 A 的媒体。
- 通过 SIP/SDP,B 知道使用 As:Asp 向 A 发送媒体,这将在 A 的对称 NAT 中被丢弃,对吗?
请检查我是否正确理解了这些步骤。那么 A(在对称 NAT 之后)如何与 B(在完整锥体或地址限制锥体之后)通信?
谢谢。
【问题讨论】: