UDP打孔和UPnP有什么区别?

fpghost

因此,Skype和其他p2p类型的应用程序通常通过打孔(请参见此处的简单指南)来工作,以使两个客户端相互连接,这两个客户端都位于阻止传入连接的防火墙之后。

uPnP还用于绕过用户,必须手动转发端口。与上述打孔有什么不同?我认为它必须以不同的方式运行,因为大多数路由器都具有将其打开/关闭的设置,而我看不到有人可以阻止上述类型的UDP孔打孔(除了阻止传出连接和传入已建立/相关)。

其次,如果说Skype / bittorrent可以通过打孔建立AB之间的直接连接,这是否意味着它不需要在路由器上启用upnp?

劳伦斯

为了使UPnP正常工作,有问题的路由器必须支持它。具有UPnP的设备基本上会要求启用UPnP的路由器打开端口并将流量转发给该端口。除非LAN的路由器配置错误或对整个世界都开放,否则LAN外部的任何一方都不能做到这一点。

打孔利用了UDP的无连接特性:

  • A在端口+ IP上向B发送UDP数据包
  • A的NAT记住了这一点,并且由于A发起了数据包,因此认为A已经开始了对话(即使从技术上讲,它也无法肯定地知道UDP),然后允许该端口+ IP上的传入流量
  • 由于B的防火墙将阻止传入流量,因此仍需要一个中间方(在您提供的文章中,这是Skype“交换”服务器),但是现在交换服务器可以MITM并通过A的port + IP发送响应,该响应应该达到A因为NAT是由于A发起的流量而转发的。

打孔基本上可以使局域网外部的一方在中介的帮助下到达NAT后侦听的内容。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

DLNA和UPNP有什么区别?

来自分类Dev

在UPnP IGD中,防火墙针孔和端口映射之间有什么区别?

来自分类Dev

UDP端点和UDP客户端之间有什么区别?

来自分类Dev

“ as?”,“ as!”和“ as”有什么区别?

来自分类Dev

$ *和$ @有什么区别

来自分类Dev

$和〜有什么区别?

来自分类Dev

/ * ... * /和/ ** ... * /有什么区别

来自分类Dev

!=和<>有什么区别?

来自分类Dev

ö和ö有什么区别?

来自分类Dev

$ *和$ @有什么区别?

来自分类Dev

“ ==”和“ =〜”有什么区别?

来自分类Dev

= +和+ =有什么区别

来自分类Dev

$ @和$ *有什么区别

来自分类Dev

+ =和+有什么区别?

来自分类Dev

$ _和!$有什么区别?

来自分类Dev

\ 和 \\ 有什么区别

来自分类Dev

&&和||和有什么区别?

来自分类Dev

!= null和!== null有什么区别?

来自分类Dev

ConnectEx和_ConnectEx有什么区别?

来自分类Dev

LDADD和LIBADD有什么区别?

来自分类Dev

tempfile和mktemp有什么区别?

来自分类Dev

setFocusable和setFocusableInTouchMode有什么区别?

来自分类Dev

MySQLi和PDO有什么区别?

来自分类Dev

Jini和RMI有什么区别?

来自分类Dev

TLS和PGAS有什么区别?

来自分类Dev

QRegularExpression和QRegExp有什么区别?

来自分类Dev

“!window”和“ !! window”有什么区别?

来自分类Dev

ifne和ifnonnull有什么区别?

来自分类Dev

NSExceptionAllowsInsecureHTTPLoads和NSThirdPartyExceptionAllowsInsecureHTTPLoads有什么区别?