我有一些关于使用UDP孔打孔的问题。基于wiki http://en.wikipedia.org/wiki/UDP_hole_punchingUDP孔冲孔
1)要在两方之间建立UDP会话(NAT后面的客户端,非NAT的服务器),客户端只需将数据包发送到服务器,然后会话允许双向通过防火墙(发送&接收)?意味着客户端也可以从服务器接收到。
2)UDP打孔:两个客户端首先conenct到服务器,然后服务器对上其它客户的客户端端口/ IP,所以客户端发送数据包到对方的端口。这是否合适?
3)如果#2是真实的,为什么会防火墙允许从另一个IP不是在做这非常端口连接所使用的一个接收到的数据?听起来像是一个很容易被过滤的安全漏洞?我知道源IP欺骗会欺骗它,但这?
由于提前, 约翰
所以私有端口(在应用程序中的bind()的端口)是从公共端口(这是在实际发送)不同。当客户端连接到服务器时,服务器会看到公共端口还是私有端口?我需要将公共端口而不是私人端口转发给其他客户端以允许他们进行通信吗? – KaiserJohaan 2011-01-24 11:16:19
@KaiserJohaan是的,私有端口与公共通信无关 – phihag 2011-01-24 12:17:10