【问题标题】:Do you need exchange ICE candidates for TCP connection您是否需要为 TCP 连接交换 ICE 候选人
【发布时间】:2023-03-15 02:05:02
【问题描述】:

A 用户 A 想通过 ICE/TURN/STUN 机制向用户 B 发送 TCP 请求。如果用户 B 生成一个带有其 ICE 候选者的 SDP 并将其发送给用户 A。用户 A 是否必须直接回答用户 B 而无需将其 SDP 和 ICE 候选者发送给用户 B? 我们只需要 TCP 连接(没有 UDP)。

确实,当用户 A 收到用户 B 的 SDP 和用户 B 的 ICE 候选时。它可以发起检查以知道它可以使用用户 B 的哪个 IP 来创建 TCP 连接(因此向用户 B 发送 stun 请求每个 IP)。 当 TCP 连接打开时。用户 A 向用户 B 发送请求,B 可以通过 TCP 响应此请求,不是吗? 用户 B 不需要检查它可以联系 A 的哪个 IP,因为它不需要向用户 A 发送请求,不是吗?

【问题讨论】:

    标签: stun sdp turn ice


    【解决方案1】:

    通过 TCP 进行 P2P NAT 遍历比 UDP 更难。但是,是的,它需要交换候选地址,包括从 STUN 或 TURN 服务器获得的公共地址。主要技巧通常是两个端点需要同时尝试相互连接。

    在此处阅读更多信息:https://en.wikipedia.org/wiki/TCP_hole_punching

    【讨论】:

    • 谢谢,但我的问题是,如果我只需要从用户 A 向用户 B 发送 TCP 请求,我们是否需要用户 A 将其候选冰发送给用户 B。当用户 A 收到冰候选用户 B. 它可以建立连接并向 B 发送 TCP 请求(并接收 TCP 响应),不是吗?还是为了 TCP 响应用户 B 需要与用户 A 建立连接?
    • 是的。因为为了有效地进行 TCP NAT 穿越,A 和 B 都需要同时连接。另外,也会有A连接不上B,B可以连接A的情况,所以需要双向尝试。
    猜你喜欢
    • 1970-01-01
    • 2014-02-10
    • 1970-01-01
    • 1970-01-01
    • 2022-01-03
    • 1970-01-01
    • 1970-01-01
    • 2015-03-30
    • 1970-01-01
    相关资源
    最近更新 更多