Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/flutter/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Webrtc STUN服务器真的有必要吗?_Webrtc_Nat_Stun - Fatal编程技术网

Webrtc STUN服务器真的有必要吗?

Webrtc STUN服务器真的有必要吗?,webrtc,nat,stun,Webrtc,Nat,Stun,在WebRTC信令过程中,我必须通过向STUN服务器发出请求来找到自己的公共IP地址和端口。但它真的需要这么复杂吗 难道我不能向我的子网路由器发送一个请求,并获取它的IP地址和它为我打开的端口吗?甚至更好的是,我直接将我的公共地址存储在我的计算机中,路由器会在地址发生变化时通知我。浏览器将提供一个API来直接获取此公共地址。无需使用STUN服务器。我们为什么不这样做呢 谢谢你的帮助。这些都是很好的问题 难道我不能向我的子网路由器发送一个请求,并获取它的IP地址和它为我打开的端口吗 有一个名为的旧

在WebRTC信令过程中,我必须通过向STUN服务器发出请求来找到自己的公共IP地址和端口。但它真的需要这么复杂吗

难道我不能向我的子网路由器发送一个请求,并获取它的IP地址和它为我打开的端口吗?甚至更好的是,我直接将我的公共地址存储在我的计算机中,路由器会在地址发生变化时通知我。浏览器将提供一个API来直接获取此公共地址。无需使用STUN服务器。我们为什么不这样做呢


谢谢你的帮助。

这些都是很好的问题

难道我不能向我的子网路由器发送一个请求,并获取它的IP地址和它为我打开的端口吗

有一个名为的旧协议,它将动态地为您打开端口映射-只要路由器支持它。很多路由器都支持它。不知道现在有多标准

即使路由器是智能的,并且有一个标准的信令机制,在下面的场景中仍然需要STUN或类似于STUN的东西

当您的ISP与多个路由器共享公共IP地址时。也就是说,路由器启动时ISP配置的公用IP地址实际上只是另一个专用IP地址。在上游,有一个更大的路由器与多个其他客户共享公共IPv4地址。也就是说,你的电脑可能认为它的IP地址是192.16.1.2,而你的路由器报告它自己的IP地址是10.0.0.2。实际的公共IP地址1.2.3.4与其他客户共享。STUN解决了这个问题,因为到公共STUN服务器的出站数据包将同时经过NAT和创建端口映射

甚至更好的是,我直接将我的公共地址存储在我的计算机中,路由器会在地址发生变化时通知我

因为建立有效的P2P/WebRTC连接不仅仅是了解您的公共IP地址。它还包括知道要使用什么端口。虽然大多数路由器将尝试保留客户端PC在映射中使用的套接字的本地端口,例如10.0.0.2:9876映射到1.2.3.4:9876。情况并非总是如此-另一个节点可能正在使用网络上的端口9876和/或许多NAT只是选择一个随机可用的端口进行映射。在一天结束时,您必须向P2P/WebRTC连接的另一端发送信号,告知要使用哪个IP和哪个端口

浏览器将提供一个API来直接获取此公共地址


有很多网站会告诉你你的IP地址,比如whatismyipaddress.com。但是,如果在PC上显式配置了HTTP代理服务器,或者在网络上以静默方式部署了HTTP代理服务器,则web服务将只看到代理IP地址。此外,HTTPS是基于TCP的协议。STUN和WebRTC是基于UDP的。

这些都是很好的问题

难道我不能向我的子网路由器发送一个请求,并获取它的IP地址和它为我打开的端口吗

有一个名为的旧协议,它将动态地为您打开端口映射-只要路由器支持它。很多路由器都支持它。不知道现在有多标准

即使路由器是智能的,并且有一个标准的信令机制,在下面的场景中仍然需要STUN或类似于STUN的东西

当您的ISP与多个路由器共享公共IP地址时。也就是说,路由器启动时ISP配置的公用IP地址实际上只是另一个专用IP地址。在上游,有一个更大的路由器与多个其他客户共享公共IPv4地址。也就是说,你的电脑可能认为它的IP地址是192.16.1.2,而你的路由器报告它自己的IP地址是10.0.0.2。实际的公共IP地址1.2.3.4与其他客户共享。STUN解决了这个问题,因为到公共STUN服务器的出站数据包将同时经过NAT和创建端口映射

甚至更好的是,我直接将我的公共地址存储在我的计算机中,路由器会在地址发生变化时通知我

因为建立有效的P2P/WebRTC连接不仅仅是了解您的公共IP地址。它还包括知道要使用什么端口。虽然大多数路由器将尝试保留客户端PC在映射中使用的套接字的本地端口,例如10.0.0.2:9876映射到1.2.3.4:9876。情况并非总是如此-另一个节点可能正在使用网络上的端口9876和/或许多NAT只是选择一个随机可用的端口进行映射。在一天结束时,您必须向P2P/WebRTC连接的另一端发送信号,告知要使用哪个IP和哪个端口

浏览器将提供一个API来直接获取此公共地址

有很多网站会告诉你你的IP地址,比如whatismyipaddress.com。但是如果有一个HT
涉及的TP代理服务器在PC上显式配置或在网络上静默部署,web服务将只看到代理IP地址。此外,HTTPS是基于TCP的协议。STUN和WebRTC是基于UDP的。

我接受你的答案,但对我来说,你给出的所有实例都可以通过路由器的适当标准化来解决。对于运营商NAT,希望它将与IPv6冗余,不再有IP短缺,即使如此,我的家庭路由器仍然可以像我的计算机获取路由器公共IP一样将其真实IP地址获取到ISP路由器。我也知道,对于P2P连接,我们也需要端口,但在我描述的方法中,我暗示路由器提供了它已打开的公共端口及其公共地址。我接受你的回答,但对我来说,你提供的所有实例都可以通过路由器的适当标准化来解决。对于运营商NAT,希望它将与IPv6冗余,不再有IP短缺,即使如此,我的家庭路由器仍然可以像我的计算机获取路由器公共IP一样将其真实IP地址获取到ISP路由器。我也知道,对于P2P连接,我们也需要端口,但在我描述的方法中,我暗示路由器会提供它已打开的公共端口及其公共地址。