无法在互联网上传输 UDP

无法在互联网上传输 UDP

我在 Windows 10 上使用 VLC 媒体播放器。

当我使用端口 9000 上的 HTTP 文件和流时,它运行完美。我在路由器上为端口 9000 上的 Windows 10 笔记本电脑的 IP 地址的两个端口设置了端口转发。

本地 IP:192.168.0.7

因此,当我在同一台 WINDOWS 笔记本电脑上使用 Http://<"ISP 公共 IP">>:9000 时,它运行完美。

ISP 公网 IP : 76.XXX.XXX.XXX

B)

现在,我尝试使用相同的方法进行 UDP 流传输

我选择了文件,然后选择了 UDP。然后我提供了 IP 地址 224.0.0.0 PORT: 9000

然后无需转码并且只需选择所有元素流。

尝试在同一台电脑上玩

udp://[电子邮件保护]:9000

它在本地计算机上播放为 udp://224.0.0.0:9000。

但是当我使用以下 udp://<<"ISP Public IP">>@224.0.0.0:9000 时,没有任何效果...... :(

请帮忙……我该怎么做才能播放来自互联网的 UDP 流。

在此处输入图片描述

在此处输入图片描述

在此处输入图片描述

根据 Ed 的建议再次尝试,仍然无法暴露 UDP。

在此处输入图片描述 在此处输入图片描述

按照互联网端口...它显示由 ISP 开放了端口 9000。

防火墙规则对 TCP 和 UDP 均开放。我在路由器中选择了“BOTH”,同时为防火墙端口开放了端口。

它可以本地播放 UDP 在此处输入图片描述

如何执行正常的UDP?

答案1

你不是想直接使用 UDP 流(这很可能完美运行),而是想使用 UDP多播流媒体。这是一个非常重要的区别。

多播是一种单一发送者可以单向通话多个接收器。它是通过使用互联网上通常不使用的特殊 IP 地址(224.0.0.0 到 239.255.255.255)来启动的。

在扁平的局域网中,这不会带来太多问题:发送的数据包将通过交换机到达所有连接的 PC,然后 PC 可以选择它们想要的数据包并从中组装流。

在具有路由器的网络中,这种简单的方法不再有效:从物理上讲,不可能将所有数据包从所有发送方传输到所有可能的接收方,以便他们可以选择他们想要的数据包。

这就是为什么大多数多播流量不会跨越路由器边界的原因——只有当接收方和发送方之间的所有路由器都具有一种机制来就传输哪些多播数据包达成一致时(再次强调:传输所有数据包是不可行的),它们才能被传送。最常见的机制是IGMP(但还有其他机制)。我不知道有任何 ISP 为其住宅或 SMB 客户提供 IGMP。

如果没有这样的机制,这种多播流的数据包就不会到达您的互联网连接,因此您家用路由器中的任何设置都无法使它们可见。

如果您控制发送方,则可以将其配置为使用单播(即“正常”UDP)发送到您的互联网连接的公共 IP 地址:然后,您的端口转发将与 VNC 流指示器一起使用udp://@:9000

如果您不控制发送方,则无法使用此类流式传输。

答案2

您使用的地址 224.0.0.0 是本地地址。请参阅这张桌子对于多播地址。

像设置 9000 tcp 端口转发一样设置端口转发(但这次是针对 udp)。然后使用公网 IP 访问 udp 流,而不是多播 IP。

答案3

交换 IP 地址。“UDP://[本地 ip]@[公共 ip]:[端口]”

它正在搜索“私有 IP 位置 @ 公共 IP 位置:公共端口”

您形成论点的方式是寻找一个不存在的 IP 来检索信息。

相关内容