Skip to content

[Roadmap] RTSP UDP 模式下 NAT 穿透优化 #143

@stackia

Description

@stackia

有些省份的 RTSP 源仅支持 UDP 传输模式(例如山东联通),因此当位于 NAT 后时,面临 NAT 穿透问题。

关于 RTSP UDP NAT 穿透,有两种解决方案:

  1. 使用 STUN 获取 mapped port,作为 client port 发送给 RTSP 服务器
  • https://github.com/plsy1/rtsproxy 用的是这种方式
  • 优点:标准协议,实现简单
  • 缺点1:需要外部 STUN server,如果是公网还好,如果是 IPTV 专网可能很难找到这样的 STUN server
  • 缺点2:在比较严格的 NAT 下无法工作
  1. 中兴 RTSP 服务器的私有 NAT 穿透协议
  • 通过在 DESCRIBE / SETUP 请求携带 x-NAT header 启动 NAT 协商流程
  • 具体协议流程参见 https://www.scribd.com/document/908526699/Android-MediaPlayer中的RTSP-简介
  • 优点:无需外部 STUN server,对于不支持 x-NAT 扩展的 RTSP 服务器也能无缝回落
  • 缺点:依赖服务器支持中兴私有的 x-NAT 扩展
  • 网络上的公开文档似乎不是最新,和我抓包细节有出入,具体需要进一步研究

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions